{"id":817281,"url":"http://patchwork.ozlabs.org/api/patches/817281/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/d2e446ccb46d71bed3191fc97fe1aa6c884ea4ba.1506037164.git.alistair.francis@xilinx.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<d2e446ccb46d71bed3191fc97fe1aa6c884ea4ba.1506037164.git.alistair.francis@xilinx.com>","list_archive_url":null,"date":"2017-09-21T23:41:50","name":"[RFC,v2,1/2] machine: Add a valid_cpu_types property","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"880a60eddae28ea9e9d4965e29f3fc43d3ffe104","submitter":{"id":47878,"url":"http://patchwork.ozlabs.org/api/people/47878/?format=json","name":"Alistair Francis","email":"alistair.francis@xilinx.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/d2e446ccb46d71bed3191fc97fe1aa6c884ea4ba.1506037164.git.alistair.francis@xilinx.com/mbox/","series":[{"id":4510,"url":"http://patchwork.ozlabs.org/api/series/4510/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4510","date":"2017-09-21T23:41:53","name":"Add a valid_cpu_types property","version":2,"mbox":"http://patchwork.ozlabs.org/series/4510/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/817281/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/817281/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=xilinx.onmicrosoft.com\n\theader.i=@xilinx.onmicrosoft.com header.b=\"b7j/nZ+H\"; \n\tdkim-atps=neutral","spf=pass (sender IP is 149.199.60.83)\n\tsmtp.mailfrom=xilinx.com; redhat.com; dkim=none (message not signed)\n\theader.d=none;redhat.com; dmarc=bestguesspass action=none\n\theader.from=xilinx.com;"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xyv8x1wxXz9sxR\n\tfor <incoming@patchwork.ozlabs.org>;\n\tFri, 22 Sep 2017 10:13:53 +1000 (AEST)","from localhost ([::1]:56036 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dvBHw-0001yW-TA\n\tfor incoming@patchwork.ozlabs.org; Thu, 21 Sep 2017 19:53:48 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:45882)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <alistai@xilinx.com>) id 1dvBAD-0004mM-Qv\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:54 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <alistai@xilinx.com>) id 1dvBA9-00026i-Oh\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:49 -0400","from mail-sn1nam02on0045.outbound.protection.outlook.com\n\t([104.47.36.45]:5872\n\thelo=NAM02-SN1-obe.outbound.protection.outlook.com)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <alistai@xilinx.com>) id 1dvBA9-00025f-GT\n\tfor qemu-devel@nongnu.org; Thu, 21 Sep 2017 19:45:45 -0400","from BLUPR0201CA0035.namprd02.prod.outlook.com (10.163.116.45) by\n\tBLUPR0201MB1922.namprd02.prod.outlook.com (10.162.239.156) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7;\n\tThu, 21 Sep 2017 23:45:42 +0000","from BL2NAM02FT014.eop-nam02.prod.protection.outlook.com\n\t(2a01:111:f400:7e46::207) by BLUPR0201CA0035.outlook.office365.com\n\t(2a01:111:e400:52e7::45) with Microsoft SMTP Server (version=TLS1_2, \n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.56.8 via\n\tFrontend Transport; Thu, 21 Sep 2017 23:45:42 +0000","from xsj-pvapsmtpgw01 (149.199.60.83) by\n\tBL2NAM02FT014.mail.protection.outlook.com (10.152.76.154) with\n\tMicrosoft SMTP Server (version=TLS1_0,\n\tcipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.35.14\n\tvia Frontend Transport; Thu, 21 Sep 2017 23:45:41 +0000","from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01)\n\tby xsj-pvapsmtpgw01 with esmtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dvBA5-00044y-1j; Thu, 21 Sep 2017 16:45:41 -0700","from [127.0.0.1] (helo=localhost)\n\tby xsj-pvapsmtp01 with smtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dvBA4-0006jX-U4; Thu, 21 Sep 2017 16:45:40 -0700","from xsj-pvapsmtp01 (smtp3.xilinx.com [149.199.38.66])\n\tby xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id\n\tv8LNjVX7016700; Thu, 21 Sep 2017 16:45:31 -0700","from [172.19.2.220] (helo=localhost.localdomain)\n\tby xsj-pvapsmtp01 with esmtp (Exim 4.63)\n\t(envelope-from <alistair.francis@xilinx.com>)\n\tid 1dvB9v-0006iC-Jz; Thu, 21 Sep 2017 16:45:31 -0700"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=xilinx.onmicrosoft.com; s=selector1-xilinx-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=E5azjI6WlpQSnxq5/6CZpyUtawHThpq2PNJHtELgS/s=;\n\tb=b7j/nZ+HeYGZVH9fW2etWgvhcsTUKd7c3IqUBd3/k0KEdRz8tWAOxx+JtqiZwHuWIEfJbGRikkJXbLIyRg+LH+y3A4ATTy2sRZEDgnHziIakMrvaV2dgVcrn+YtNXFb2qPeoLo81KK674Liy5YiMjfMXXIkrVay5C7AHRxCNqAY=","Received-SPF":"Pass (protection.outlook.com: domain of xilinx.com designates\n\t149.199.60.83 as permitted sender)\n\treceiver=protection.outlook.com; \n\tclient-ip=149.199.60.83; helo=xsj-pvapsmtpgw01;","From":"Alistair Francis <alistair.francis@xilinx.com>","To":"<qemu-devel@nongnu.org>","Date":"Thu, 21 Sep 2017 16:41:50 -0700","Message-ID":"<d2e446ccb46d71bed3191fc97fe1aa6c884ea4ba.1506037164.git.alistair.francis@xilinx.com>","X-Mailer":"git-send-email 2.11.0","In-Reply-To":"<cover.1506037164.git.alistair.francis@xilinx.com>","References":"<cover.1506037164.git.alistair.francis@xilinx.com>","X-RCIS-Action":"ALLOW","X-TM-AS-Product-Ver":"IMSS-7.1.0.1224-8.1.0.1062-23342.005","X-TM-AS-User-Approved-Sender":"Yes;Yes","X-EOPAttributedMessage":"0","X-MS-Office365-Filtering-HT":"Tenant","X-Forefront-Antispam-Report":"CIP:149.199.60.83; IPV:NLI; CTRY:US; EFV:NLI;\n\tSFV:NSPM;\n\tSFS:(10009020)(6009001)(346002)(376002)(39860400002)(2980300002)(438002)(199003)(189002)(5003940100001)(575784001)(2906002)(6666003)(4326008)(2351001)(39060400002)(9786002)(478600001)(47776003)(36386004)(33646002)(305945005)(356003)(8676002)(76176999)(551934003)(50986999)(8936002)(106466001)(81156014)(118296001)(50466002)(81166006)(36756003)(63266004)(316002)(48376002)(50226002)(16586007)(2950100002)(189998001)(6916009)(54906003)(5660300001)(77096006)(107986001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0201MB1922;\n\tH:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com;\n\tA:1; MX:1; LANG:en; ","X-Microsoft-Exchange-Diagnostics":["1; BL2NAM02FT014;\n\t1:/MfQi52k2T3CnDFvu2Ok1Gs6BODKEULcCM8qFEpu1QY1xW2jZcv0DT4P3JXBkPWTElHKYoeW367WIojfHVsYe343wkM5nxPbPtDJ9rbcLa7IBuxm1QJmpiN9lWuWclfz","1; BLUPR0201MB1922;\n\t3:X7XhuHI8h4vtHeUMtjfnrT7GmOv7eHh6NihCpytAOKlMQPmknDRuGMeLWrXnlOs4cpqSuD4m4YciwgYKmEGhP2GLgZpxBF0yh+S35p0Jd08HnpOf0AUT4+nGvi8nddl9KH9gEuVdaljQL8fLWUswldpy2P3N+dttxLb4xOC8dPuil33X5FHNdY8sJw2a+zyCeKN/HsskqIgNIzFk4xC5kM38lESOtsJmk7KfZFv3oAXT+bE4c/fhg7OVSCZimZvCAVrD9YZyfFIWx75p6dHmB7VO1XHu59ktbCniZYsvT3JGfkNwOFVG/VpqXCypBMMutOYeaKlgovc1fKVDLi7ev9IRlscHwWbVA26kWxnAzUI=;\n\t25:p4jEPGltX7HU/hhJfM6F0u83ClDMDq/WCd8VaUIyYDLRhj4XhOGiuDfmAC70h29+MARb3Pgvj0BDYzpp1bafpTCB0XhbAph+1Rr7JovZpn06029RKcAuqaAdcZE2SfzY0qTBhTtQc8jr3PPVC/zGdYfGbkTeKs3WsRoEpJIeVdLDQ2UMkPqmWaZFL2nuEQklPRRpgtAEvoYa4YBHTA05S3Axcf251hTuhQ1s0Z9/793hi7LSanPBY4XRv+kSM5Saqqvbkgkn7QqDMHQv6dSJwNxDqrRymN8mqXl0Cp2PUHzAcjnDfZcNcQ1U+dpiQu0gFNJYTMYbSPCcc9rKksY06g==","1; BLUPR0201MB1922;\n\t31:lIa/sC3I4r5oEpZSzynSkHyGjp4LR43GG3L1UCsTXOKpQ1NnaYRIxUURSfadSFZK8jckLD6kQx1KosD+Ht1Q33SLuL3HXbW/bHNkXNQq8z/VdNkjdWyhx4WfmAY1/4B2h+Am/raQqL2q91kuLOUUJvuNOkaRyLSlQw6pQUxAwDB/WQ+svt8FFumWxtTp0fYCBhjPg+uGbR7JqxuMsvkg0ihBBgBqdijj6QUNOz2/ktQ=;\n\t20:PB+ipj3Oddnk/tmfBG9x8MmA1QBlAZqT2CY2Nn5UlMRDNHABJQ9w51BIRL5CFoElNtFRRN2qrsoizRL4/HMePd4WX6mQXBY3bMAw62ZVP2Xdi1uP1EFUxEJjgwRtoBPyIEY9k0dg45DkHZrracXLYnOrFpPSmaMvWTNjvFyrc0J34MPC/EQ7LxvMZdWGe+Z+Fnwy0hH8SoyjqFj9yAoku+W4JVt6HHU+VpGS+py4ZsmcRDlxK10dHf5KNefcJqE3Y8s3jvolR10mOs41E/TxWLxoBf/IOcSK0jIKfNykosx7NosypMZtAZYlKKPkfoAYrNTAsctJIClNw9N1OUf3nosqQqpUfZmjGw/UixkviEVlEIBFYcvwplXjY8YkuU4veRj8mBKLQU7AlD2bDev7CRyzanmJzVzvUZOdD3Qp8UgWZQUCf0IR+m6dg8+YoZWlADofVf9dkYZsoJyee9Swvh2G/gP0VTqEjUipE3CktR1LRA7zEMcucWQBw35AC4Pu","1; BLUPR0201MB1922;\n\t4:9pmKyNF87+hbCNDC/cPZulDHnHxpveJnmJyQaiy6VZnVbPBQG4xzJJfCOE/VI8Rf0JqzG2bpaeq20XAoqxiLeLc0X4Rw0EasaS7RawStAjA9pehJswGqM7mBI/tjoJQbCZ+MtlSjCFfaQtrA2FQoqYgtvKXQitLMzdnNpFyni62cRZHSPkP97/mjXEvr6MS6WJLe5ct7fN6LBSyA9KfKIScRh/Yy3Y2S0a4aF7FgtmkDynlLn0QB05vUHgkDlxsRTJTbmtabu6xvjtbsTAc6SHhOcy45KOhwXiMXBmFCOmM=","=?us-ascii?Q?1; BLUPR0201MB1922;\n\t23:CNyBiO+kdTk1WwFBq+rLttEoNgNalm2orG/zFpU?=\n\tIRW5TJS0RRuNHAasuImBBxXKfIFaGDruywjDoFOWO2TQCG6jBeMPf4+SVoaHqNTAOrMRUq4gciZuAgWf4X2L+s8/3fabS69YJo75A0ovDq4ef6H0go2Ya1Bz9UWj3joVIfwiZtcgJP8tpZHV8nnXWhA+qfoxYTyn6emte/PZhiXkFrzd3kmbtFV2tg1PxB7/6OzI4pWwUyBnFIdrmywDm5GN0bNWgNMPfnL3+2EJ6xRqzZP4nv6ahc5r8U7pDRQJk5OCaNBAoG6Zf9/c1qzj7wDZzc17WkJaX5gc5XL5ebwuO9V1h+VpHUGe/1xErcVMcLAl6pn7R+l7gKhhf1Ag3NqIwgosCmvG9Xqndtl9IoSo3LSB7s7bbTGXszFkmO13DuvyNmXKOMQv7sf4wR6rOP2CNT1gb36VXK8wv65BfX7QZTPozd1Ul/XnpmQANNWGCLSHom1rSCSJqOx0/BWgT+ZqcjGjSucHcQJX4tVpgQDUoj1Ged6tKYF+21X2lB/3Wd+SWWiG4OBbgBOdSeegKbkDpg3FDeK1/xc4dtPaTONKXdPRS38HmdgS8YqiFDJ52RIQuH/7r4eQeZNUe8iGRfMlWG1lCl9+IWm69uf9NfRWmSlMqBjue0pqoJuyv7SW0JpyRF1EhoBGQcC3NVECfxdkecFcdmzorxI4VS5yCLMdU5bksXWPZ90bnPtyZfKwjF/nL+fcvsEsps21882vUEZGuOAIMF3VYdgCRwAWFEqItNLQEtbZ8Oh5WNdwq8aaRi4NHuHVOECOK+W+r0JFkZEpHuSpl1ZiQBFEv8vuNoS6JQoOSaDTFjWOmrJz/UQ4zEUG1hmbp+F6HQhmuLFYndztxkHbSYhGXFnaH/RhC3pBSP8wtFH6nxgLO2p5yemQSAKwUpuTiuJtWQbsDLO36Ic2Uaw51yCTxZ0VmmmCFtZZL0b7gkD6wvaYVniYdpBjRABfATEB6ortG+CQ6nH52+Q9OOig6MY5tIhDcAUkk5vhwzQZ3fdUaRJTUE9KvdQdMs40ceq3ZsVIRXlln7tSWv+6E","1; BLUPR0201MB1922;\n\t6:ZDqH9NjWfYCMdJkWxodmKAHSSeK9JSDzNInFPAuyJ/p/SgwTTI7QINZOiIa51fcxbhdjQL9rxKn+kf2U+3R7lkp8vf35HJYIQI3HsuYh0FJjBK7pi8GPSZgVCEjR3oMu5JNAwsl5sRfyPaOh5aF+QZePji0d1pmJhiDiZMbDA2QemTrgLkV7H7oT3BpYPASuVq+Rn5+DPR9Y6EB0UmxLvbC7EARwCPC6H+AIm7iNbyRO2L1ZX9JxGn0KYUqmspsJB0cOtloVAf2eV8d6/jNBA3F/26prilhPHx0MNWtFTSLw39Rb8CkZDEw1wxsxoTB/l3oWw7l+KdAe+EFYq1aE2Q==;\n\t5:TE1EIPOjaJEjVlqu5BOcLPZRGvrhoBR0/GJfqFMR11In9RXOS/gas2oeuJAwrIoevPtgVR7twAxpy2U81G8ycULIuFmg8uB7NntpTDRI95/Ldw64V6BSd/5gq7efKwS0tN/ndnoUDmrbXhff10kkWg==;\n\t24:5BtzmYgejlOHuUvzYDsJOQwHBTuCnLN8rqeNGunbjaC3/Bt2SE1WE81C0RyE8mYkO6faR43U5PkM3Lkw3vcB24fgfX5wEpY8Kjwi9Fq3Fvw=;\n\t7:VpkhE3P7pxjhv4lTErLQet26SLZ2ojRfTioBI91WBZk2Qu6vC6Y7r9r/BTVlE79oNCrZhgMk5hzBZrDLUEI2EaoXOtcGrFx3qIrfUVY7B+p3D4WHAIxDr78+GFpJ+qn2fLkEkI08YRcv4iuuqNX6odAR8dpSjJYfrYF09x0jvlkMZD9U9faY4w/QgC6R6T1nTK0vYy20rLBgPJI1xoesTcf/FCrqV+9pmxkKZIjEdOg="],"MIME-Version":"1.0","Content-Type":"text/plain","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id":"fe356f06-8896-4ac2-36ca-08d5014adebb","X-Microsoft-Antispam":"UriScan:; BCL:0; PCL:0;\n\tRULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(8251501002)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);\n\tSRVR:BLUPR0201MB1922; ","X-MS-TrafficTypeDiagnostic":"BLUPR0201MB1922:","X-Exchange-Antispam-Report-Test":"UriScan:(192813158149592);","X-Microsoft-Antispam-PRVS":"<BLUPR0201MB19221C7160FE0CF70E5F02F0DC660@BLUPR0201MB1922.namprd02.prod.outlook.com>","X-Exchange-Antispam-Report-CFA-Test":"BCL:0; PCL:0;\n\tRULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93004095)(6055026)(6041248)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123562025)(20161123555025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);\n\tSRVR:BLUPR0201MB1922; BCL:0; PCL:0;\n\tRULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);\n\tSRVR:BLUPR0201MB1922; ","X-Forefront-PRVS":"04371797A5","SpamDiagnosticOutput":"1:99","SpamDiagnosticMetadata":"NSPM","X-OriginatorOrg":"xilinx.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"21 Sep 2017 23:45:41.5843\n\t(UTC)","X-MS-Exchange-CrossTenant-Id":"657af505-d5df-48d0-8300-c31994686c5c","X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp":"TenantId=657af505-d5df-48d0-8300-c31994686c5c; \n\tIp=[149.199.60.83]; Helo=[xsj-pvapsmtpgw01]","X-MS-Exchange-CrossTenant-FromEntityHeader":"HybridOnPrem","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"BLUPR0201MB1922","X-detected-operating-system":"by eggs.gnu.org: Windows 7 or 8 [fuzzy]","X-Received-From":"104.47.36.45","Subject":"[Qemu-devel] [RFC v2 1/2] machine: Add a valid_cpu_types property","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"marcel@redhat.com, alistair23@gmail.com, imammedo@redhat.com,\n\tehabkost@redhat.com, alistair.francis@xilinx.com","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>\n---\n\nRFC v2:\n - Rebase on Igor's cpu_type work\n - Use object_class_dynamic_cast()\n - Use a NULL terminated cahr** list\n - Do the check before the machine_class init() is called\n\n\n hw/core/machine.c   | 35 +++++++++++++++++++++++++++++++++++\n include/hw/boards.h |  1 +\n 2 files changed, 36 insertions(+)","diff":"diff --git a/hw/core/machine.c b/hw/core/machine.c\nindex 80647edc2a..abebfabdb8 100644\n--- a/hw/core/machine.c\n+++ b/hw/core/machine.c\n@@ -758,6 +758,41 @@ void machine_run_board_init(MachineState *machine)\n     if (nb_numa_nodes) {\n         machine_numa_finish_init(machine);\n     }\n+\n+    if (machine_class->valid_cpu_types && machine->cpu_type) {\n+        int i;\n+\n+        for (i = 0; machine_class->valid_cpu_types[i]; i++) {\n+            ObjectClass *class = object_class_by_name(machine->cpu_type);\n+\n+            if (!class) {\n+                break;\n+            }\n+\n+            if (object_class_dynamic_cast(class,\n+                                          machine_class->valid_cpu_types[i])) {\n+                /* The user specificed CPU is in the valid field, we are\n+                 * good to go.\n+                 */\n+                goto done;\n+            }\n+        }\n+\n+        /* The user specified CPU must not be a valid CPU, print a sane\n+         * error\n+         */\n+        error_report(\"Invalid CPU: %s\", machine->cpu_type);\n+        error_printf(\"The valid options are: %s\",\n+                     machine_class->valid_cpu_types[0]);\n+        for (i = 1; machine_class->valid_cpu_types[i]; i++) {\n+            error_printf(\", %s\", machine_class->valid_cpu_types[i]);\n+        }\n+        error_printf(\"\\n\");\n+\n+        exit(1);\n+    }\n+\n+done:\n     machine_class->init(machine);\n }\n \ndiff --git a/include/hw/boards.h b/include/hw/boards.h\nindex 156e0a5701..191a5b3cd8 100644\n--- a/include/hw/boards.h\n+++ b/include/hw/boards.h\n@@ -191,6 +191,7 @@ struct MachineClass {\n     bool has_hotpluggable_cpus;\n     bool ignore_memory_transaction_failures;\n     int numa_mem_align_shift;\n+    const char **valid_cpu_types;\n     void (*numa_auto_assign_ram)(MachineClass *mc, NodeInfo *nodes,\n                                  int nb_nodes, ram_addr_t size);\n \n","prefixes":["RFC","v2","1/2"]}