From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (EUR05-VI1-obe.outbound.protection.outlook.com [40.107.21.73]) by mx.groups.io with SMTP id smtpd.web08.3293.1629491523792215071 for ; Fri, 20 Aug 2021 13:32:04 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@armh.onmicrosoft.com header.s=selector2-armh-onmicrosoft-com header.b=6rRaHZiP; spf=pass (domain: arm.com, ip: 40.107.21.73, mailfrom: samer.el-haj-mahmoud@arm.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1/6BRMoCLtSxELUajHeTngTd9yuETZLMLPOg3q5m//Y=; b=6rRaHZiPA9xBgyAtRPl45DZXxQULeYsGxJchtOgHGWVkrxEVh44Enrg6/274StsCeVzR4kmmFfaCWkHcvjmzW2vmTyNeSfoIV6KNvoAFyt2FAmc8DGDi36UI6K4guXx+mRFiMSsPWrBr/5FqXsbcwKK04CNmhAsC07iy1MXQ2IU= Received: from AS8PR04CA0150.eurprd04.prod.outlook.com (2603:10a6:20b:127::35) by AM6PR08MB4852.eurprd08.prod.outlook.com (2603:10a6:20b:cc::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Fri, 20 Aug 2021 20:31:56 +0000 Received: from AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:127:cafe::4b) by AS8PR04CA0150.outlook.office365.com (2603:10a6:20b:127::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 20:31:56 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; edk2.groups.io; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;edk2.groups.io; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT035.mail.protection.outlook.com (10.152.16.119) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19 via Frontend Transport; Fri, 20 Aug 2021 20:31:56 +0000 Received: ("Tessian outbound f11f34576ce3:v103"); Fri, 20 Aug 2021 20:31:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1d186f447125c6a5 X-CR-MTA-TID: 64aa7808 Received: from 1133a52adac0.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 26E3BB6F-5D1C-46AA-8897-CC6ACFEA0E56.1; Fri, 20 Aug 2021 20:31:44 +0000 Received: from FRA01-PR2-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 1133a52adac0.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 20 Aug 2021 20:31:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RSIms47hltSnenx0NwVJamwuftL3Jq+GQSlsuHn9uSpcTEjomTRbiazceUso/2GKQmuR6WHB3i58S/6Y1w3/3nJJFZvpU7BBxn0WiQQ/VM9lSGnulQpOjODTS494XH7+c0FlPCU4VUojEBqBpYDh0GGdmvD53NMnLXJcWsr8R9K82EM5xyAEh96fvntGl45EE0VnGMin7lWxIZ0Gpzp/ylhcgvXIzUB1bOatsLclfddz1U70hkNREQt2cKuVge6HxCK6MGg25Ew28SLwKUASDF1CV1H9GbXw3DVk/2ffxuddPvs25wd/VQUsbOKli8JJQFYHu+j7Wxbp+1HeFHdo+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1/6BRMoCLtSxELUajHeTngTd9yuETZLMLPOg3q5m//Y=; b=TTbGdNjp18J3ib7tRdlV7UMK9kMZ8mpFmhlczH5r+yG9xFBypHEkAwea1Bdvb0zhym/lscRbrOXTOSnfFNbrttheWvJT9Hr6NLXSe/4eyaA67yPskioN547pfFCGI+E2bkK7BVrvhqez3IFh6C4m7kIbznAJENYCAlRhhRoNshXHKbON74gXSn2+UIcBf6atXUKFDFncj9GZYGaDoqNgVWkgBlpxyKVDwj7sRnDzV86JVb/iSIHICgslgSOEnJ2JV1Tqnl/fyvDVqOHygLHum0h/lygrZIVwEAyENGTthyn+MjfYrC2TJYxYmE7Tz6hLxZanRkOEKCCcodyVrHOqwg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=1/6BRMoCLtSxELUajHeTngTd9yuETZLMLPOg3q5m//Y=; b=6rRaHZiPA9xBgyAtRPl45DZXxQULeYsGxJchtOgHGWVkrxEVh44Enrg6/274StsCeVzR4kmmFfaCWkHcvjmzW2vmTyNeSfoIV6KNvoAFyt2FAmc8DGDi36UI6K4guXx+mRFiMSsPWrBr/5FqXsbcwKK04CNmhAsC07iy1MXQ2IU= Received: from PAXPR08MB6987.eurprd08.prod.outlook.com (2603:10a6:102:1df::15) by PR2PR08MB4906.eurprd08.prod.outlook.com (2603:10a6:101:26::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4436.19; Fri, 20 Aug 2021 20:31:40 +0000 Received: from PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::8888:874d:364:7237]) by PAXPR08MB6987.eurprd08.prod.outlook.com ([fe80::8888:874d:364:7237%6]) with mapi id 15.20.4436.019; Fri, 20 Aug 2021 20:31:40 +0000 From: "Samer El-Haj-Mahmoud" To: Jeremy Linton , "devel@edk2.groups.io" CC: "pete@akeo.ie" , "ardb+tianocore@kernel.org" , "Andrei Warkentin (awarkentin@vmware.com)" , Sunny Wang , Jeremy Linton , Samer El-Haj-Mahmoud Subject: Re: [PATCH v3 1/7] Platform/RaspberryPi: Add XHCI/PCI selection menu Thread-Topic: [PATCH v3 1/7] Platform/RaspberryPi: Add XHCI/PCI selection menu Thread-Index: AQHXlXosQ5X/l7SRP0itpYtC3GfwNqt82aag Date: Fri, 20 Aug 2021 20:31:40 +0000 Message-ID: References: <20210820041619.87248-1-jeremy.linton@arm.com> <20210820041619.87248-2-jeremy.linton@arm.com> In-Reply-To: <20210820041619.87248-2-jeremy.linton@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: b9ebbcef-89b7-421f-1c7b-08d964198d83 x-ms-traffictypediagnostic: PR2PR08MB4906:|AM6PR08MB4852: x-ld-processed: f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: UZvL7K59EmjE5i2+/iTKbauBLZ+ciag1RxipFchzQjFhADs58Pp5kf8jOYnXyc7gKvT2kgoZfY4rdO9Oeai3uWDIPdXtPDhWFLpYL1j/AkAzjeQI9RBfNGUrMvWtqrTlzChF8F+U9wwEzwJlU/GfrHB4grXUaZ3j5k5qr7Mg8XuiAb/WZ2IdYG1dN1pEA7EUb9oTsEpNO42znM4wnDHGaoAEvr8O3Eo1ukhYZeGrd3Rpf35YpE2o0A8DTiN+O2xMXSZJD5v1ITWpHVccJeITVHUWx+fDW7J1AuH97RkIof9t6gdCnNc+EoXMRulFUpcuOOHbFt5YBZy+cBLzzzRCtsoK8gCQZTvXAM0wC91MXtLjtBUCBc2GvXtyQtOnO3rBc4wd7OgRaW886y523RzArt7G1LUUTTwEWe2OpCV/WnrQnecMXfnPoXRxIY1K86lMhkEQLwETvqlZLdu0I9hDCe4Fm4dBlfpfiMcORJkHiuIhnNiENjfbmVFWJKOt/H5DwCrOFgGVfTsK47CX136vCBM40dp5+XXBbesYd5Igl6GL9IMTeS+0/+6GozduEhHiW7axZbfKy7WbDCqDIan2l5R0/UJahUbIG1NIMz8gEEgXhVZWQqrGyrtRic34ylr+ZMx3ahpVRfzZdUEiv0qupdGUF7DpkSWhZJ1dpZRIfk9XhJSCAQx4W8X9/XIYDlSMaD6PaUZGh4xpSkkemU0IsA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6987.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(39850400004)(136003)(376002)(396003)(346002)(366004)(316002)(86362001)(8936002)(33656002)(54906003)(66946007)(53546011)(478600001)(83380400001)(26005)(64756008)(8676002)(38070700005)(55016002)(110136005)(38100700002)(2906002)(6506007)(9686003)(71200400001)(76116006)(4326008)(66556008)(186003)(52536014)(19627235002)(66446008)(66476007)(5660300002)(7696005)(122000001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?sFGbAf4qmDMh1iksSGwTJ2q4Vy4aLkEpOUJmRb6tnn3UNld2aLsmWlymXmhs?= =?us-ascii?Q?wDDtTQfxO0aYa8IGOq+u55NCPVxkUTTWqFjWpWOgZhZcLq9Ns4/X1vPEkNB6?= =?us-ascii?Q?KZ0XO8FLLEvT0nga/hkYivQ3jHWWkoWdLK0ZiypjmEbTh/KLW4Hyfks/yuQC?= =?us-ascii?Q?xRIiOiLU3YJxQsyc+5ci8ZhWYKXZri4CyX7zz8wPTnHPOCKloxa6exgLANYi?= =?us-ascii?Q?ZVaWjxGvNEqoPPf93I3uWV6qohxGhM8JNFReeC1LH1yelFxEhEgKsIgQqK3R?= =?us-ascii?Q?6bIHtriofsedkZr/i1Pv+NgNmLHqW6Np0iIMA13vDAiXt99TNeSEXQCg365e?= =?us-ascii?Q?ASFc5PYRPDjCRvSNeGNRzSLgjZ+jWoRb/ciEPJUA1Vc63UeAgDfScDa3S9U4?= =?us-ascii?Q?kPb0DmUnGR0Dka8eDBFo0oSuuD/cUO9w9Dauf/Q6uta6yZB4vDumEBBjt7ZM?= =?us-ascii?Q?fsY564YyMv9LahF2Zfa4A7ksvsPoX3dDmf7IgsZGSo8pqnuXq8+Wbq24mlE9?= =?us-ascii?Q?Gmcibp+nX5mhg6nHqor4RMv/LxDjl0lvMeyom4H4N29b3YesBhGm4NGIj+VD?= =?us-ascii?Q?yJQQcbpzei7jxkXAy2FnExwzINkkOprGEiFgxjSHpKoRsIic9jV0H2iKFbTv?= =?us-ascii?Q?UAkKhuxCKlWvjJ0DeUHLCxq8TnKBQ/dvBEptKD9NO+BNzbHosBr/UQ2oj8h/?= =?us-ascii?Q?vz5ZIrGYDBoG9n0y6+EKtua0/39eho321fYDx8t/TKk2iUH8Uw62ShZELw0G?= =?us-ascii?Q?9FGnQ0gWXCiK8nK7hAU9I1Z2dSjFtrKmh2owM7VaG3d9Gr3Qy6pQEMkD+Yp0?= =?us-ascii?Q?xW0Aobsp3f1N43tQvTtt0HS4j1f4A8rxRYsfp1ZvuuAM1/o+XIvXitNhZtBU?= =?us-ascii?Q?sQdmqXyplUuDbSDsqHfpQfxVjq1dCuXOyMAPQ/V9DYwW5BRBmVnFdKVz0zVZ?= =?us-ascii?Q?rwQDMU8reBvGNWEPevYbe00vh8f3oXJmkFiLzacwNNKyaEFnGUqbd39GcqhK?= =?us-ascii?Q?gN8jGqrXVojxvS6Ifunxhi59mwkV6aZxs9v4FX/TeKtQUAd6O0taxDvoFZ4e?= =?us-ascii?Q?I5pFNC5j2OupgfASvj5lEYw4hhYcEgQb0o/V01QUJrawsApD1D10C8QX7sZQ?= =?us-ascii?Q?3ZdAWgwZM4mO+z5HAdffHBUvWtOUjwqq9ms7KyhiqVy/6ZJV9VCs4ZO7IWCp?= =?us-ascii?Q?4TZOaDXTVuQf5eWFC9ximYcrH05cjtS4CKPNGMexoSbfpFum70vr8nK8HCcM?= =?us-ascii?Q?Y7HgLV61QBA8WhdfkUBSzdI614T960dy7PnrpVaDdNcgOn+3KwjyQQeuWZoa?= =?us-ascii?Q?V5rzsxB6Mmt+ojyaz38nAjeu?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4906 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; Return-Path: Samer.El-Haj-Mahmoud@arm.com X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 416303f8-953a-4403-3172-08d96419840e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zgCuUGb/ph+Q4jTxgp+o+H5t5aHJ0b5/fB67mrKr93xqJBFmjEeqQzVF/tRyAgprX71smKDsQ9w0goXgGFLqlyjaY3aAlIWUvYAkvLOxcuo7pX2axyE82gb2SR0dYmAYdv1qQaDLIatlSoLzMhNMs5YErUgGmUT9LlqdByqAZT1NYzyK4pq61seG35tx75pnO1va1Vg6jDe7rifhOYSVQ6YwouiXypYuyDROdNBacAqvqPIgveK0P5Tc8x1G3+qs7kfPIp0eFfQgyriiHBHI9MHstI3Q6sytqY7jNPF2tv8aoOMWUudb0aCA41xvGBqgSMA3G7eG+fe6e/vU7hSkJN7rL9oVUWcCcd5UaAahZ1WstzrDCm5SLBGbHF0ObTRPokWlSmqZqVB1L70qQsKHVCXqkvAgLqRDxQ4gkiQXPpkefULXFRS3NFsp0h84i+11iOtYDtorvifxu+Pu837GbJm91noXuSwj0a7NgxzPrG8vTztcmYk7rmhl3XhAwp27exxsvLkcZ8k9WsJn+Ol1ZW9C3Y1YcwqcGDXYrJ2VnAYPDzTZs8f/ZxU0UlXDFr7pW+UuT25Smvul9NvaVMQx7WvcfK3Zw/N8udIvq+CFb+rMiIoVx1K1DV9xR+hlNrn2hYkEJn/jCdKPA+yAVmG37nZDOdcl3MSZAnpAu1KdZeKJovR0HfcC0laEs2R5Xs65QtaGlGzq7nNQKKcSQKqywg== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(4636009)(36840700001)(46966006)(508600001)(82310400003)(9686003)(19627235002)(5660300002)(8676002)(83380400001)(8936002)(70206006)(70586007)(36860700001)(110136005)(81166007)(316002)(2906002)(33656002)(356005)(52536014)(47076005)(53546011)(86362001)(54906003)(4326008)(336012)(6506007)(26005)(7696005)(55016002)(186003);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Aug 2021 20:31:56.0016 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9ebbcef-89b7-421f-1c7b-08d964198d83 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT035.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4852 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable One feedback is to add the new HII setting to the README. Otherwise, looks = good! Reviewed-By: Samer El-Haj-Mahmoud > -----Original Message----- > From: Jeremy Linton > Sent: Friday, August 20, 2021 12:16 AM > To: devel@edk2.groups.io > Cc: pete@akeo.ie; ardb+tianocore@kernel.org; Andrei Warkentin > (awarkentin@vmware.com) ; Sunny Wang > ; Samer El-Haj-Mahmoud Mahmoud@arm.com>; Jeremy Linton > Subject: [PATCH v3 1/7] Platform/RaspberryPi: Add XHCI/PCI selection menu > > Arm has standardized a PCI SMC conduit that can be used > to access the PCI config space in a standardized way. This > functionality doesn't yet exist in many OS/Distro's. Lets > add another advanced config item that allows the user > to toggle between presenting the XHCI on the base RPi4 > as a platform device, or presenting this newer PCIe > conduit. The CM4 doesn't have an attached XHCI controller > soldered to the PCIe, so PCIe mode is the default. > > Signed-off-by: Jeremy Linton > --- > Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c | 42 > ++++++++++++++++++++++ > .../RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf | 1 + > .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni | 5 +++ > .../RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr | 17 +++++++++ > Platform/RaspberryPi/Include/ConfigVars.h | 4 +++ > Platform/RaspberryPi/RPi3/RPi3.dsc | 6 ++++ > Platform/RaspberryPi/RPi4/RPi4.dsc | 8 +++++ > Platform/RaspberryPi/RaspberryPi.dec | 1 + > 8 files changed, 84 insertions(+) > > diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > index 9e78cb47ad..87f6b4e7bb 100644 > --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.c > @@ -43,6 +43,7 @@ extern UINT8 ConfigDxeStrings[]; > STATIC RASPBERRY_PI_FIRMWARE_PROTOCOL *mFwProtocol; > STATIC UINT32 mModelFamily =3D 0; > STATIC UINT32 mModelInstalledMB =3D 0; > +STATIC UINT32 mModelRevision =3D 0; > > STATIC EFI_MAC_ADDRESS mMacAddress; > > @@ -271,6 +272,40 @@ SetupVariables ( > ASSERT_EFI_ERROR (Status); > } > > + if (mModelFamily >=3D 4) { > + if (((mModelRevision >> 4) & 0xFF) =3D=3D 0x14) { > + /* > + * Enable PCIe by default on CM4 > + */ > + Status =3D PcdSet32S (PcdXhciPci, 2); > + ASSERT_EFI_ERROR (Status); > + } else { > + Size =3D sizeof (UINT32); > + Status =3D gRT->GetVariable (L"XhciPci", > + &gConfigDxeFormSetGuid, > + NULL, &Size, &Var32); > + if (EFI_ERROR (Status) || (Var32 =3D=3D 0)) { > + /* > + * Enable XHCI by default > + */ > + Status =3D PcdSet32S (PcdXhciPci, 0); > + ASSERT_EFI_ERROR (Status); > + } else { > + /* > + * Enable PCIe > + */ > + Status =3D PcdSet32S (PcdXhciPci, 1); > + ASSERT_EFI_ERROR (Status); > + } > + } > + } else { > + /* > + * Disable PCIe and XHCI > + */ > + Status =3D PcdSet32S (PcdXhciPci, 0); > + ASSERT_EFI_ERROR (Status); > + } > + > Size =3D sizeof (AssetTagVar); > Status =3D gRT->GetVariable (L"AssetTag", > &gConfigDxeFormSetGuid, > @@ -888,6 +923,13 @@ ConfigInitialize ( > DEBUG ((DEBUG_INFO, "Current Raspberry Pi installed RAM size is %d M= B\n", > mModelInstalledMB)); > } > > + Status =3D mFwProtocol->GetModelRevision (&mModelRevision); > + if (Status !=3D EFI_SUCCESS) { > + DEBUG ((DEBUG_ERROR, "Couldn't get the Raspberry Pi revision: %r\n", > Status)); > + } else { > + DEBUG ((DEBUG_INFO, "Current Raspberry Pi revision %x\n", > mModelRevision)); > + } > + > Status =3D SetupVariables (); > if (Status !=3D EFI_SUCCESS) { > DEBUG ((DEBUG_ERROR, "Couldn't not setup NV vars: %r\n", Status)); > diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf > b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf > index 4bb2d08550..e6e22ad82e 100644 > --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf > +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxe.inf > @@ -94,6 +94,7 @@ > gRaspberryPiTokenSpaceGuid.PcdFanOnGpio > gRaspberryPiTokenSpaceGuid.PcdFanTemp > gRaspberryPiTokenSpaceGuid.PcdUartInUse > + gRaspberryPiTokenSpaceGuid.PcdXhciPci > > [Depex] > gPcdProtocolGuid AND gRaspberryPiFirmwareProtocolGuid > diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni > b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni > index 466fa852cb..5ec17072c3 100644 > --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni > +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.uni > @@ -57,6 +57,11 @@ > #string STR_ADVANCED_FANTEMP_PROMPT #language en-US "ACPI fan > temperature" > #string STR_ADVANCED_FANTEMP_HELP #language en-US "Cycle a fan at C" > > +#string STR_ADVANCED_XHCIPCI_PROMPT #language en-US "ACPI > XHCI/PCIe" > +#string STR_ADVANCED_XHCIPCI_HELP #language en-US "OS sees XHCI USB > platform device or PCIe bridge" > +#string STR_ADVANCED_XHCIPCI_XHCI #language en-US "XHCI" > +#string STR_ADVANCED_XHCIPCI_PCIE #language en-US "PCIe" > + > #string STR_ADVANCED_ASSET_TAG_PROMPT #language en-US "Asset Tag" > #string STR_ADVANCED_ASSET_TAG_HELP #language en-US "Set the system > Asset Tag" > > diff --git a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr > b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr > index fa34eab809..18b3ec726e 100644 > --- a/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr > +++ b/Platform/RaspberryPi/Drivers/ConfigDxe/ConfigDxeHii.vfr > @@ -56,6 +56,11 @@ formset > name =3D FanTemp, > guid =3D CONFIGDXE_FORM_SET_GUID; > > + efivarstore ADVANCED_XHCIPCI_VARSTORE_DATA, > + attribute =3D EFI_VARIABLE_BOOTSERVICE_ACCESS | > EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, > + name =3D XhciPci, > + guid =3D CONFIGDXE_FORM_SET_GUID; > + > efivarstore SYSTEM_TABLE_MODE_VARSTORE_DATA, > attribute =3D EFI_VARIABLE_BOOTSERVICE_ACCESS | > EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE, > name =3D SystemTableMode, > @@ -212,6 +217,18 @@ formset > default =3D 60, > endnumeric; > endif; > + > + suppressif ideqval XhciPci.Value =3D=3D 2; > + grayoutif NOT ideqval SystemTableMode.Mode =3D=3D > SYSTEM_TABLE_MODE_ACPI; > + oneof varid =3D XhciPci.Value, > + prompt =3D STRING_TOKEN(STR_ADVANCED_XHCIPCI_PROMPT), > + help =3D STRING_TOKEN(STR_ADVANCED_XHCIPCI_HELP), > + flags =3D NUMERIC_SIZE_4 | INTERACTIVE | RESET_REQUI= RED, > + option text =3D STRING_TOKEN(STR_ADVANCED_XHCIPCI_XHCI), v= alue =3D > 0, flags =3D DEFAULT; > + option text =3D STRING_TOKEN(STR_ADVANCED_XHCIPCI_PCIE), v= alue =3D > 1, flags =3D 0; > + endoneof; > + endif; > + endif; > #endif > string varid =3D AssetTag.AssetTag, > prompt =3D STRING_TOKEN(STR_ADVANCED_ASSET_TAG_PROMPT), > diff --git a/Platform/RaspberryPi/Include/ConfigVars.h > b/Platform/RaspberryPi/Include/ConfigVars.h > index 142317985a..a5b32b5284 100644 > --- a/Platform/RaspberryPi/Include/ConfigVars.h > +++ b/Platform/RaspberryPi/Include/ConfigVars.h > @@ -77,6 +77,10 @@ typedef struct { > } ADVANCED_FANTEMP_VARSTORE_DATA; > > typedef struct { > + UINT32 Value; > +} ADVANCED_XHCIPCI_VARSTORE_DATA; > + > +typedef struct { > #define SYSTEM_TABLE_MODE_ACPI 0 > #define SYSTEM_TABLE_MODE_BOTH 1 > #define SYSTEM_TABLE_MODE_DT 2 > diff --git a/Platform/RaspberryPi/RPi3/RPi3.dsc > b/Platform/RaspberryPi/RPi3/RPi3.dsc > index 1c8a5408e7..6ab5d1ae6d 100644 > --- a/Platform/RaspberryPi/RPi3/RPi3.dsc > +++ b/Platform/RaspberryPi/RPi3/RPi3.dsc > @@ -520,6 +520,12 @@ > > > gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay|L"ResetDelay"|gRaspberr > yPiTokenSpaceGuid|0x0|0 > > + # Select XHCI/PCIe mode (not valid on rpi3) > + # > + # 0 - DISABLED > + # > + > gRaspberryPiTokenSpaceGuid.PcdXhciPci|L"XhciPci"|gConfigDxeFormSetGuid|0 > x0|0 > + > # > # Common UEFI ones. > # > diff --git a/Platform/RaspberryPi/RPi4/RPi4.dsc > b/Platform/RaspberryPi/RPi4/RPi4.dsc > index dcf9bb5f11..babcbb2f41 100644 > --- a/Platform/RaspberryPi/RPi4/RPi4.dsc > +++ b/Platform/RaspberryPi/RPi4/RPi4.dsc > @@ -536,6 +536,14 @@ > > > gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay|L"ResetDelay"|gRaspberr > yPiTokenSpaceGuid|0x0|0 > > + # Select XHCI/PCIe mode > + # > + # 0 - XHCI Enabled (default on !cm4) > + # 1 - PCIe Enabled > + # 2 - PCIe Enabled (default on cm4) > + # > + > gRaspberryPiTokenSpaceGuid.PcdXhciPci|L"XhciPci"|gConfigDxeFormSetGuid|0 > x0|0 > + > # > # Common UEFI ones. > # > diff --git a/Platform/RaspberryPi/RaspberryPi.dec > b/Platform/RaspberryPi/RaspberryPi.dec > index 2ca25ff9e6..797be59274 100644 > --- a/Platform/RaspberryPi/RaspberryPi.dec > +++ b/Platform/RaspberryPi/RaspberryPi.dec > @@ -71,3 +71,4 @@ > gRaspberryPiTokenSpaceGuid.PcdPlatformResetDelay|0|UINT32|0x0000001E > gRaspberryPiTokenSpaceGuid.PcdMmcEnableDma|0|UINT32|0x0000001F > gRaspberryPiTokenSpaceGuid.PcdUartInUse|1|UINT32|0x00000021 > + gRaspberryPiTokenSpaceGuid.PcdXhciPci|0|UINT32|0x00000022 > -- > 2.13.7 IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.