From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-he1eur02on0609.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe05::609]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 6D30A822B0 for ; Wed, 21 Dec 2016 01:43:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=GmLCN0Ld12racUsen0q8DyizbHnX2KinTJrB3PQINAY=; b=qAhJK+2vwxBtE2rZrnZLsZjn4549427PAf6eKN4Bvr/zc+thzkqX8asgZzRUSkXm3hM3rgxxe8lH2eiBHWyzOgvWpxKkY7mWpHdc6ZsJ8j0p52vSGRuORS3JkbuKCgcE3ibbBw3r3awv1Iz7hnKqShLBLf4/pwuYYHtekwP4+OA= Received: from DB5PR08CA0062.eurprd08.prod.outlook.com (10.166.166.158) by DB5PR08MB1015.eurprd08.prod.outlook.com (10.166.14.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Wed, 21 Dec 2016 09:43:55 +0000 Received: from DB3FFO11FD036.protection.gbl (2a01:111:f400:7e04::161) by DB5PR08CA0062.outlook.office365.com (2a01:111:e400:c576::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via Frontend Transport; Wed, 21 Dec 2016 09:43:55 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; linaro.org; dkim=none (message not signed) header.d=none;linaro.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by DB3FFO11FD036.mail.protection.outlook.com (10.47.217.67) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.789.10 via Frontend Transport; Wed, 21 Dec 2016 09:43:54 +0000 Received: from dennis-ws.shanghai.arm.com (10.1.2.79) by mail.arm.com (10.1.105.66) with Microsoft SMTP Server id 14.3.294.0; Wed, 21 Dec 2016 09:43:51 +0000 From: Dennis Chen To: CC: , , Dennis Chen , Leif Lindholm , "Ard Biesheuvel" , Lorenzo Pieralisi , Steve Capper Date: Wed, 21 Dec 2016 17:43:39 +0800 Message-ID: <1482313419-20791-1-git-send-email-dennis.chen@arm.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(39860400002)(39410400002)(39850400002)(39840400002)(39450400003)(2980300002)(438002)(199003)(189002)(26826002)(38730400001)(2906002)(77096006)(36756003)(50466002)(626004)(33646002)(5003940100001)(189998001)(4326007)(92566002)(50986999)(8676002)(305945005)(2351001)(575784001)(86362001)(356003)(50226002)(5660300001)(48376002)(551934003)(110136003)(47776003)(106466001)(6666003)(6916009)(104016004)(246002)(8936002)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB5PR08MB1015; H:nebula.arm.com; FPR:; SPF:Pass; PTR:fw-tnat.cambridge.arm.com; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD036; 1:JOJmlzNClLRP1MeP9g0R3yspQmf5NDwUtnGnoE7tJ/QM3bkXyTvnOS8PhaGlWeXh6rpRpSjHqXy9PjydiS1vbU5AJ6I6mIifqjsKriuQb5UMWLbEBUCAUdoQI48MchJW8KwzujuICKd/p4v017zThbrDCYbFbHVnfxJEWln7Tw6BrHUrtT0JbzO3jkTD5wtPpgymvH50cIl6f6qK1NFzmDsTtT3dkj36VkSNMHPhTLreAp9GOymS2IyUCaJqT6RVFw/7aZo7s1651RXVj6DYhgq7cDAiAyCSG3Dy6EKKYNoLIzn0uNIwmjdze20sO0d99tWv05RclO0EfkZb3sM19i3fpXRq+7deAMZtCU46+VwuX2sg9xievL4P2X9trbTeS9Zr1riQ+w0Kj399ZK3Dsz6mn4OlS+VycH/QEtcEiEvd3AvTzw2Lalg+KAL1l5Vi6lw3t7baXlj8GGLJZQERRXbQcrWXDZ9Wq4b0LlJlFCQ32DNKqo7orE0yfUcHfaGhZDIHeACwi0P9RBYNnkZ5RCr67r8+mnRHPWFSu7PPqEYGmOCYG0V2fbdB/Hz8T4xgmgjylxkOvpZmE24rA1v1tZ0t3BNElpZEMXe/0AdknBs= X-MS-Office365-Filtering-Correlation-Id: 1f8ae4db-beb0-4388-6725-08d42985e12d X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:DB5PR08MB1015; X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 3:7ZkmHY5VtbAmMytkxZL4D9SVg7PgMXaABsDaI7ByvaPR9pZ56Ad+c87dpBoRqbhYyprmDV/SJJRmNlUhdg2RuYuEjvU7Do8dGQAKZ7EfZlyqcaNjIlNQ0TNPRT5LBgjmha4NRN6E5tfPHwz+PPijwAVYV/aK9ZZ92vnyEf9tU1K/JgnOtaSM+gv3tBYhErzYZ4KboUSl5/fue4eVMrPt3R8jc9X55qAc96eqfgBzTv+1qUsFwMHbTPn6rDCuWpLyq7GXeHJLtS0GxKgZgSkf0F0+LTqTDWl8dJYeL1ycP/7Lo3HRQExTZKRgcznOUJteJjGKie4yhUHMY4/VTRCtxGAkIJoe02DPi3V1tJbbb0Wr2huTazhnOyeJq30nWc+yotDFyOACF2eb4Ksi+frtMw== X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 25:RkUYIfhAgt6Itx4oEESH6VYKO0Gowz1QPkn8kCVAmrMFjz/zzfm0GDLYp2xYDENyyhUAEMHBjOQ/upMR81SX3OcRyDqfSOiPxaF4s+yiKXQGzspaTZ80VK7fbRG2Cz4ItrSNFaFZmyZQNuQXh/5+csxRL4oK8o89ov0oBEBjELfh4cwDZ7/JMYOHRhLXTgr2hD0/gFKVcIE2m1Cz3GdvzRur5PZPB+CIQQvmLQZ+faOKpS3bMvgTtoGajcNfWJooD1ZVlM4R5iVT+3WR+jx0AhIAF2PzUY9uNHm94gHxzsZ2gudQKuxhCOfEb1BTlgrZpiQBDEM4wj2hoED+MgspvwWtf0wxMH3HU3lXmO5LwRFDKkr1R81JljbGxPE8VGT7DqnI6DNXUDGA7VS3C4EwOTs28le0xqPrDhpys65CNfWQ6DsYfJ7MMYIxghUSYnYGmxI3VKPAZyqNGyRY00Xgh0Ko8tIxjPG7wl9pYoxX502k/N+56d8CHvT3lRvqFV4MPT/9fA+Alpc7aTDO14UFBeuq/WFgS3+YiVSsuCrNQKT9hL4KjBkfgi0qODnZPE6rnn/v5MjSS/kw4RRrAo0wCkWBKX2U26U3pEB28g+KGpkNg6+KmHhTSrbYZ9SmWuwdxXzvJziyjMo/wIUK5X6CZ26b9MRbpAJu439FGJahmH57P5ANVGOJjiZLrBAMj12UjfMyjA5TmMpQo3RWXs0b86cSDZmp4fhKqi6noPjxP3dodCsO/CaIfr+wWuIcCP2hCAL3edXh8J7uHfiU5Xd/Rkft5tdQOvxDvEZcS59pu7qy3Vdy6C3v0h5ds5YriFf0dS7/kTSUcoDkBo/9rTV9BA== X-LD-Processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 31:Xe9JN/+AUcHOiQ2cNr8BNYbz9zuOQ6bDK4fCPAb46iJxZNMsUVn05LtAOpPV8mmjNzsI03viIyc+dwreF8KNF1uoaIxkqFnm8yDm4a/69RS8FC5cYgO6NjkY56Cb6HWx5G6OqG4Rq2UeY4PEQftrFlzsEC3IuXDDYpsvI+ufexPVBMO52y/sy4QQUcfaMCm/wdaMVOo8lrUxoSeG4L8qCVqBwYEwO0/vucBeTTdBiniJWMqi35PxTc5dBX7WJEHzRZQd5XIJliTylXxw4/0AOUNvRS7tOvcpUOTCWZw9gOs=; 20:4zLOMp3ulkPBz8mBUw9vFWtcRqXuQOVt+vT+0LmjC+sv2jRbtWkAXupSRT75MYF08wQM5iNjjlGDkXVUVIxy+vQXp5uIrs4+bYPuEiOnRBUDbpQrm8beqTyEY0MgLuYrmauiaJwsoEsvjiaR/CrsJg5JPJpTNgGHKn6xVMClJlZDIbySh/RPtCRbXNtC/FIrYwamg8Zo2YT41z5DIvE2nMDFMjx2dYSeDq8+IODb8zstNfyl6T1h0/H4G98vUEx4 NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(13020025)(5005006)(13024025)(13023025)(13013025)(3002001)(10201501046)(6055026)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(6072148); SRVR:DB5PR08MB1015; BCL:0; PCL:0; RULEID:; SRVR:DB5PR08MB1015; X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 4:g1Y91CfUPkfcKu2uGbh68iudhDqGJNb7ORCtk1747Cfp20/CjP92gsfIy7Phd7HvtAGAa0GQFrIdpRykvQYyACJ9zt+do6ofMw5kmsdtwIKwL1W727X8Jv1tD07U5r3yx9b29zyPcZmc3RHLsmMXdRGewp3IIiy8XDzG73bguMQsciRj0UzhejzrOpSpuGNo6/BZJOeR4Gmd3KMSIqKSRxG7m8K55p7iMjdkIza+eVWCchMh4Hqyv0RProqmcMVfpbL6bXV8rz+wnRMuTb4Z7q1ZSlHv22AvAArpPySsjU8RCoNjEDxZ7NLQjXwq9S0uxfPjc7cR11oez4WLiD9HfK4QpxIxXbT9l7+bLceSKdaC4z5CMKCqr2wyehSQqLMKMXTPFtpaGvcTjdIwBvXdybymvcl1Cxlbyd+h9sSKz6L9+HfjHhc53HEVSga4Cs11DklARS7Xet9ua2ZnCG9tktyfRWmXL5a8pW7SMgzXVuLW1RXY9OkgWYXEW1t0CkGQ+4LrBt4i8+Ek77rF5/ddsFLstBdg7fJ04nk9+g5fzJ/GDjvxXdXbOp/cyRaEBfFrgQqnW1Cgmv94RsQUCEtK0/F4EjJ0WJEjuUxl4JRw4wujI0zzyYxg5NjK44uRA8rqXcIcVrFia5ha8KbV+igiUWmt7MQevGzR77ScQmOx1IxE2ovegKrFLSeveWf2QJNCVcZDr6fkRqc56uGna/GDMQ== X-Forefront-PRVS: 01630974C0 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB5PR08MB1015; 23:pSUJAyVb0srABqZ61X3nsJDyQA1zHZBJcCgQqgzHb?= =?us-ascii?Q?P649Vg96wsiEoVaSRb0qTVyhHsoDc229nYWCWqKO3iy52TESIi2GHMZznjEO?= =?us-ascii?Q?tpoGa5e2q6NK2AUwN99ktvaewIyLq0ctc7RzWMPcJuS43epKq4W0cg/0QlM4?= =?us-ascii?Q?sNfX0CP/VZAJSe9Z2de3wJwE5u8Y17TAcqGHUS/me0eMYcZj3GyArsuGNQBR?= =?us-ascii?Q?X4HaJnWi20NZLBlx0tlbsuKj7WX8Fukw1f4LnsYKXD/Q5FuTPSNwAAfKGls3?= =?us-ascii?Q?v8E5SsiMjw9QkeiSeMPXQQZLxZfKp6SlO30Sxo0nyuDdrbm06RAtObXXFNJn?= =?us-ascii?Q?eu9y6KrpaMlSfqn8QkfMycRmeK5BH3sT2ViMS4szYdLAWc4ymi0SWsp/RJXJ?= =?us-ascii?Q?lGyAXhlN/KhB/9wEtZ/aA9YBWxXmKmF4N7ZQfRwHj6MG8Ltv3AXY4PBbfD7E?= =?us-ascii?Q?3pb5HwKEzQBKs5EDvL+DpguBlR5gLS4+t9KfPbraHu6d7DzhmxmrADLNC8YK?= =?us-ascii?Q?Nsrx3cFqyTHV+Skc0FVQyJNnz49xR3JvwDyiXKV3HgyxVdpumuR2qGJLiYgc?= =?us-ascii?Q?dwIk+DO1+vYzJCE3W2qK3lByrI7LOFvOpMf3ckkR296FPWVZ3JCz3qxOavUr?= =?us-ascii?Q?nWBGGD7b+XgXJHkSx5LdryTZ/IKEoxlaicckd+E+pO4N8RuhWmow818pNNfG?= =?us-ascii?Q?I22xYtKdn3XGl0K427D3vwLVjCyhmetC3TqtMah0VvlnJcCIjTHCeob23Zw7?= =?us-ascii?Q?itVQhKIM02KIliM9ZjOIQwKWw0IcIUa6yQ0YhX5eHpkkl+oDt4RMupYIopKW?= =?us-ascii?Q?sEw9PrUdX6RU6FSgmvrbl4w2VLHvV4ecS+ZOez4JW97F9r/QVRxStvBjvO+U?= =?us-ascii?Q?DIoWC0e05uTaxPmTbK0EPPQA0DH/LyydedfzH3sp6O7mY1XNYE6wfoD/9zo0?= =?us-ascii?Q?wo7hrYZrV5P3UA2xci3gLrA1IpoHLVM49DMjtW91c/0AZaVbYCsDviUxmH87?= =?us-ascii?Q?BV7U0ybhbNAorKb1T2Xzk0/CF8EcF6pjCbjuVKBdsY5j07qQmpkQjLZFI8ul?= =?us-ascii?Q?3VU7mIHMBS4oVaPWOBcwuEO3Lzt?= X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 6:fGNEHlokkUYjhjGCzmjBz9fGty5Be1CISuHvHke/KtGh1Uot0px4lqgWqmKLWyFNcRq6Srkiflr6fGfvBbmAMVpn/hFKyv9lVSrF9zYViCGeWoPVbdyA1vNJ/ftBWPNr+ClxYScthFYeouiXN33tmyvws6mXW8NFFccptgMLSqoQPEO2bmZUBH0cFWRFGVlYojmM7WIvNd996AtJ43Px5NCgvQqFQGARWFy2HiHx4mcMn7+dZpPvS4QNzl0Sm1aab4O2eNi7ZkqvIn6Bebv08a1cZUf24NDrKcB9eU/E1aZMhcm/oPFdKFemkZaLdqeU159HDPg0QammRikefTk68Tng0z50q+KAB+eKB3bv1yWLcUoPlyHHDBJ78aklZ6H+s01k5s7Cs58N+iArHzPlFHrDzaI67Uu9CUaqwd4O6KBbx0YFqhCqcXa4F2cxaeRGg7d+K4VDBuS/VrTpCMPd/Q==; 5:8H3CHF1GUXGsyYSo2gFjXDD1Ckh2p2/xvPx6KW7xqJYl/DuIIL37HYpJyP5hfhuebcMQl81qFQFnufmH6yq8edRA/QYUSm1OVsR8HHszeyxv741LVFWg4FfzQIw2saILSqR8LR6ElpTKPkPou3L0EQ==; 24:G8iqnHpUCxvDxdd00fXezol1OlMCligOg2RktFQtbT5CAxuwIFhIRqK34C51QgPkBm2iNXxX456MZ+Z7/8sxIgk1OE7nNdBIEPMukbpU2BM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB5PR08MB1015; 7:0t4X8vrg0aEVhTWDhOpXQ2T+wJcBFS3LUyKykEKWlIfEJ8rKpvfVLZMCyBnS/kbQ+gvhA4O1FtrRdoVTHH2AwQyBDPhcqQyWB/snHtrv0j+9pDn8P2rs97rkuXGzFZf0EmEvBNU7lXIZfE6f3hfAM7j46FUulxBj8SKIYX6ZDXOzdhoM8W5TWNqQKfgiX+m8DgPaboefLewgTJHUzAFgHQ2UuLnh6WlltIsx4FzJ/PrMHJrKQAN7UCADB15E/U4L9JpAahb9Jz2sauWuV6OiucjmuKyXxSyTWa7jwjeFY4vhHJFH/FZLWBbkSXE096SPXvMG07zMumw+C2GhuXlCg5FJiqgZR3fcMHaRKNgJ2tCT4JZcIq2aKDCsgj1AqxY2G4dwzjPIUg8XtodcNfdHtd/BfvYO66Z2ZE986XmVrpvRg72RiE0fAmagZm19rMvlnOvzp7jUaCzuDyGoLOBrDg== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Dec 2016 09:43:54.8824 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB1015 Subject: [PATCH] FVP: ACPI Add iort and GICv3 ITS support X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Dec 2016 09:43:59 -0000 Content-Type: text/plain Since ARM VExpress FVP platform will support some PCIe devices (e.g, SMMU Test Engine) behind the PCIe Root Complex and SMMUv3 which can generate PCI ITS-MSI/memory transaction to the core. Moreover, the IORT based SMMU patch has been merged into the linux kernel, in order to ease the testing/verification effort of those features, we need to integrate those ACPI tables (mcfg, iort...) into the FVP UEFI binary. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dennis Chen Cc: Leif Lindholm Cc: Ard Biesheuvel Cc: Lorenzo Pieralisi Cc: Steve Capper --- Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf | 4 + Platforms/ARM/VExpress/AcpiTables/Madt.aslc | 54 ++++++------ Platforms/ARM/VExpress/AcpiTables/iort-smmuv3.asl | 89 ++++++++++++++++++++ Platforms/ARM/VExpress/AcpiTables/mcfg.asl | 25 ++++++ Platforms/ARM/VExpress/AcpiTables/ssdt.asl | 98 ++++++++++++++++++++++ Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 1 + 6 files changed, 247 insertions(+), 24 deletions(-) create mode 100644 Platforms/ARM/VExpress/AcpiTables/iort-smmuv3.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/mcfg.asl create mode 100644 Platforms/ARM/VExpress/AcpiTables/ssdt.asl diff --git a/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf index 59d3238..000e83d 100644 --- a/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf +++ b/Platforms/ARM/VExpress/AcpiTables/AcpiTables.inf @@ -27,6 +27,9 @@ Fadt.aslc Gtdt.aslc Madt.aslc + mcfg.asl + ssdt.asl + iort-smmuv3.asl [Packages] ArmPkg/ArmPkg.dec @@ -41,3 +44,4 @@ gArmTokenSpaceGuid.PcdGicDistributorBase gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase gArmTokenSpaceGuid.PcdGicRedistributorsBase + gArmTokenSpaceGuid.PcdGicItsBase diff --git a/Platforms/ARM/VExpress/AcpiTables/Madt.aslc b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc index bf90a9f..d2d9d9a 100644 --- a/Platforms/ARM/VExpress/AcpiTables/Madt.aslc +++ b/Platforms/ARM/VExpress/AcpiTables/Madt.aslc @@ -30,8 +30,15 @@ typedef struct { EFI_ACPI_6_1_GIC_STRUCTURE GicInterfaces[8]; EFI_ACPI_6_1_GIC_DISTRIBUTOR_STRUCTURE GicDistributor; EFI_ACPI_6_1_GICR_STRUCTURE Gicr; + EFI_ACPI_6_1_GIC_ITS_STRUCTURE GicIts; } FVP_MULTIPLE_APIC_DESCRIPTION_TABLE; +#define FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(GicId, AcpiCpuUid, Mpidr) \ + EFI_ACPI_6_0_GICC_STRUCTURE_INIT( \ + GicId, AcpiCpuUid, Mpidr, \ + EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase),\ + 0x2C02F000, 0x2C010000, 0x19, 0, 0) + #pragma pack () FVP_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { @@ -47,33 +54,22 @@ FVP_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { 0, // LocalApicAddress 0, // Flags }, + + /* Gic Interfaces array */ { - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 0, 0, GET_MPID(0, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 1, 1, GET_MPID(0, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 2, 2, GET_MPID(0, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 3, 3, GET_MPID(0, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 4, 4, GET_MPID(1, 0), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 5, 5, GET_MPID(1, 1), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 6, 6, GET_MPID(1, 2), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), - EFI_ACPI_6_0_GICC_STRUCTURE_INIT( - 7, 7, GET_MPID(1, 3), EFI_ACPI_6_0_GIC_ENABLED, 0, FixedPcdGet64 (PcdGicInterruptInterfaceBase), - 0x2C02F000, 0x2C010000, 0x19, 0, 0), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(0, 0, GET_MPID(0, 0)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(1, 1, GET_MPID(0, 1)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(2, 2, GET_MPID(0, 2)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(3, 3, GET_MPID(0, 3)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(4, 4, GET_MPID(1, 0)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(5, 5, GET_MPID(1, 1)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(6, 6, GET_MPID(1, 2)), + FVP_EFI_ACPI_6_0_GICC_STRUCTURE_INIT(7, 7, GET_MPID(1, 3)), }, + + /* GIC Distributor */ EFI_ACPI_6_0_GIC_DISTRIBUTOR_INIT(0, FixedPcdGet64 (PcdGicDistributorBase), 0, 3), + /* GIC Redistributor */ { EFI_ACPI_6_1_GICR, // UINT8 Type @@ -81,6 +77,16 @@ FVP_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = { EFI_ACPI_RESERVED_WORD, // UINT16 Reserved FixedPcdGet64 (PcdGicRedistributorsBase), // UINT64 DiscoveryRangeBaseAddress 0x00200000, // UINT32 DiscoveryRangeLength + }, + + /* GIC ITS */ + { + EFI_ACPI_6_1_GIC_ITS, // UINT8 Type + sizeof(EFI_ACPI_6_1_GIC_ITS_STRUCTURE), // UINT8 Length + EFI_ACPI_RESERVED_WORD, // UINT16 Reserved + 0x00000000, // UINT32 GicItsId + FixedPcdGet64 (PcdGicItsBase), // UINT64 GicItsBaseAddress + EFI_ACPI_RESERVED_DWORD, // UINT32 Reserved } }; diff --git a/Platforms/ARM/VExpress/AcpiTables/iort-smmuv3.asl b/Platforms/ARM/VExpress/AcpiTables/iort-smmuv3.asl new file mode 100644 index 0000000..6caee57 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/iort-smmuv3.asl @@ -0,0 +1,89 @@ +/* + * Intel ACPI Component Architecture + * iASL Compiler/Disassembler version 20151124-64 + * Copyright (c) 2000 - 2015 Intel Corporation + * + * Template for [IORT] ACPI Table (static data table) + * Format: [ByteLength] FieldName : HexFieldValue + */ +[0004] Signature : "IORT" [IO Remapping Table] +[0004] Table Length : 0000029e +[0001] Revision : 00 +[0001] Checksum : BC +[0006] Oem ID : "ARM " +[0008] Oem Table ID : "VExpress" +[0004] Oem Revision : 00000000 +[0004] Asl Compiler ID : "INTL" +[0004] Asl Compiler Revision : 20150410 + +[0004] Node Count : 00000008 +[0004] Node Offset : 00000044 +[0004] Reserved : 00000000 +[0004] Optional Padding : 00 00 00 00 + +/* ITS Group : 24-byte */ +[0001] Type : 00 +[0002] Length : 0018 +[0001] Revision : 00 +[0004] Reserved : 00000000 +[0004] Mapping Count : 00000000 +[0004] Mapping Offset : 00000000 + +[0004] ItsCount : 00000001 +[0004] Identifiers : 00000000 + +/* SMMUv3 : 80-byte */ +[0001] Type : 04 +[0002] Length : 0050 +[0001] Revision : 00 +[0004] Reserved : 00000000 +[0004] Mapping Count : 00000001 +[0004] Mapping Offset : 0000003C + +[0008] Base Address : 000000002b400000 +[0004] Flags (decoded below) : 00000001 + COHACC Override : 1 + HTTU Override : 0 +[0004] Reserved : 00000000 +[0008] VATOS Address : 0000000000000000 +[0004] Model : 00000000 +[0004] Event GSIV : 6a/*4a*/ +[0004] PRI GSIV : 6b/*4b*/ +[0004] GERR GSIV : 6f/*4f*/ +[0004] Sync GSIV : 6d/*4d*/ +[0004] Input base : 00000000 +[0004] ID Count : 0000ffff +[0004] Output Base : 00000000 +[0004] Output Reference : 00000034 /* ITS Group node offset */ +[0004] Flags (decoded below) : 00000000 + Single Mapping : 0 + +/* RC 0 : 52-byte */ +[0001] Type : 02 +[0002] Length : 0034 +[0001] Revision : 00 +[0004] Reserved : 00000000 +[0004] Mapping Count : 00000001 +[0004] Mapping Offset : 00000020 + +[0008] Memory Properties : [IORT Memory Access Properties] +[0004] Cache Coherency : 00000001 +[0001] Hints (decoded below) : 00 + Transient : 0 + Write Allocate : 0 + Read Allocate : 0 + Override : 0 +[0002] Reserved : 0000 +[0001] Memory Flags (decoded below) : 00 + Coherency : 0 + Device Attribute : 0 +[0004] ATS Attribute : 00000000 +[0004] PCI Segment Number : 00000000 + +[0004] Input base : 00000000 +[0004] ID Count : 0000ffff +[0004] Output Base : 00000000 +[0004] Output Reference : 0000004C +[0004] Flags (decoded below) : 00000000 + Single Mapping : 0 + diff --git a/Platforms/ARM/VExpress/AcpiTables/mcfg.asl b/Platforms/ARM/VExpress/AcpiTables/mcfg.asl new file mode 100644 index 0000000..caa2b38 --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/mcfg.asl @@ -0,0 +1,25 @@ +/* + * Intel ACPI Component Architecture + * iASL Compiler/Disassembler version 20160212-64 + * Copyright (c) 2000 - 2016 Intel Corporation + * + * Template for [MCFG] ACPI Table (static data table) + * Format: [ByteLength] FieldName : HexFieldValue + */ +[0004] Signature : "MCFG" [Memory Mapped Configuration table] +[0004] Table Length : 0000003C +[0001] Revision : 01 +[0001] Checksum : 19 +[0006] Oem ID : "INTEL " +[0008] Oem Table ID : "TEMPLATE" +[0004] Oem Revision : 00000001 +[0004] Asl Compiler ID : "INTL" +[0004] Asl Compiler Revision : 20100528 + +[0008] Reserved : 0000000000000000 + +[0008] Base Address : 0000000040000000 +[0002] Segment Group Number : 0000 +[0001] Start Bus Number : 00 +[0001] End Bus Number : 01 +[0004] Reserved : 00000000 diff --git a/Platforms/ARM/VExpress/AcpiTables/ssdt.asl b/Platforms/ARM/VExpress/AcpiTables/ssdt.asl new file mode 100644 index 0000000..08c7e7b --- /dev/null +++ b/Platforms/ARM/VExpress/AcpiTables/ssdt.asl @@ -0,0 +1,98 @@ +/* + * Intel ACPI Component Architecture + * AML/ASL+ Disassembler version 20141107-64 [Feb 4 2015] + * Copyright (c) 2000 - 2015 Intel Corporation + * + * Disassembling to symbolic ASL+ operators + * + * Disassembly of ssdt.aml, Tue Aug 9 10:17:31 2016 + * + * Original Table Header: + * Signature "SSDT" + * Length 0x00000168 (360) + * Revision 0x01 + * Checksum 0x42 + * OEM ID "ARMLTD" + * OEM Table ID "ARM-JUNO" + * OEM Revision 0x00000000 (0) + * Compiler ID "INTL" + * Compiler Version 0x20141107 (538185991) + */ +DefinitionBlock ("ssdt.aml", "SSDT", 1, "ARMLTD", "ARM-JUNO", 0x00000000) +{ + Scope (_SB) + { + Device (PCI0) + { + Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID + Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID + Name (_SEG, Zero) // _SEG: PCI Segment + Name (_BBN, Zero) // _BBN: BIOS Bus Number + Name (_CCA, One) // _CCA: Cache Coherency Attribute + Device (RP0) + { + Name (_ADR, 0xF0000000) // _ADR: Address + } + + Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings + { + Name (RBUF, ResourceTemplate () + { + WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, + 0x0000, // Granularity + 0x0000, // Range Minimum + 0x0001, // Range Maximum + 0x0000, // Translation Offset + 0x0002, // Length + ,, ) + DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, + 0x00000000, // Granularity + 0x50000000, // Range Minimum + 0x5FFFFFFF, // Range Maximum + 0x00000000, // Translation Offset + 0x10000000, // Length + ,, , AddressRangeMemory, TypeStatic) + }) + Return (RBUF) /* \_SB_.PCI0._CRS.RBUF */ + } + + Name (SUPP, Zero) + Name (CTRL, Zero) + Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities + { + If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) + { + CreateDWordField (Arg3, Zero, CDW1) + CreateDWordField (Arg3, 0x04, CDW2) + CreateDWordField (Arg3, 0x08, CDW3) + SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ + CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ + If (((SUPP & 0x16) != 0x16)) + { + CTRL &= 0x1E + } + + CTRL &= 0x1D + If ((Arg1 != One)) + { + CDW1 |= 0x08 + } + + If ((CDW3 != CTRL)) + { + CDW1 |= 0x10 + } + + CDW3 = CTRL /* \_SB_.PCI0.CTRL */ + Return (Arg3) + } + Else + { + CDW1 |= 0x04 + Return (Arg3) + } + } + } + } +} + diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index cf4b803..1d4db81 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -153,6 +153,7 @@ gArmTokenSpaceGuid.PcdGicDistributorBase|0x2f000000 gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x2f100000 gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C000000 + gArmTokenSpaceGuid.PcdGicItsBase|0x2f020000 # # ARM OS Loader -- 2.7.4