From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (NAM10-MW2-obe.outbound.protection.outlook.com [40.107.94.101]) by mx.groups.io with SMTP id smtpd.web12.9445.1623252033302054876 for ; Wed, 09 Jun 2021 08:20:33 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@os.amperecomputing.com header.s=selector2 header.b=uiiFPMj2; spf=pass (domain: os.amperecomputing.com, ip: 40.107.94.101, mailfrom: nhi@os.amperecomputing.com) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gc6dEPgN7ANMyvccTL/iYWZ13L7MSifCea95KCNvF23e7Op2R7i6LM315VvhKsSMrPZLVoCxy6uI3hI/Uy3pOCQyDDE7lhdJKTI6S0WXcnPzeICPmVXB0UUAHxiIAX8hy7IEK3HqhxMJETHdH6mqBvqLw1oJ/ruuoxY3nWgi52ZO61eWTCb8KjGhtk6A6JoUaRjjEXQs+mH87pDLy3cEroawk5yRyN80QBLwRZ07xAip2lCKAyVg1r3b1D4vnl8PQHc3BxxMmK3Lt4JYWZGM5yi7Db7j27JE2InDZpNF+TWChnrPx1sfetxPD/TAE/epIs98b07PWs+YrYmusLbe5Q== 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=tjAsZGJSuPxkdIKt+p7JcBu/HKEblCd3n3KrroNz0T8=; b=MeRavQIGM78rE5lhIiswiBHMXOfbHcLXuMvoqoNxoRibs1P9ZluC6XTowdC/FSROsJ93/q82IvlG2k9NUUPPDUm7LpXrFvci5dZGtis6TAAA8MlNNExKDzOzrqu7bmo3jhseuQhM7wyTUez14lIVlA081xxXVS0dRrP3VNpu1poIp+1dkeh+gzh1erlW6fQgGiGjhfoPtg8GfBvelJQ2XTyWvG89FVu8kxsGQQ1oKk0H5AHTbHaCkYhIZiRijqFNBZAA+UbEAqRUCTM1H3JGITbpD4hHvl7aZ9c0Ej2v9yi3ylKnpT8Mt7cBryYEgFF8iQc1q3AkOteIgtDjOwPXaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tjAsZGJSuPxkdIKt+p7JcBu/HKEblCd3n3KrroNz0T8=; b=uiiFPMj2xfoMJSDpH/Zuf5CZIkG3VZV7/0NeCc0ez8OQ5g1YkYX0F7NRI8mBkx4dflo8zNiJqnIUD+7Oykk7vuXLqGr+DbFPXzmlxXtsM4PDqkeZhJuEqKg+vf5szht9tHAEyfD/ilRivejZfxeMB3ZmygaA4GUdUeh98BOPj8E= Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=os.amperecomputing.com; Received: from DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) by DM8PR01MB6807.prod.exchangelabs.com (2603:10b6:8:22::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Wed, 9 Jun 2021 15:20:30 +0000 Received: from DM6PR01MB5849.prod.exchangelabs.com ([fe80::60d2:86dd:1f1c:51dd]) by DM6PR01MB5849.prod.exchangelabs.com ([fe80::60d2:86dd:1f1c:51dd%7]) with mapi id 15.20.4195.030; Wed, 9 Jun 2021 15:20:30 +0000 Subject: Re: [edk2-platforms][PATCH v2 32/32] AmpereAltraPkg,JadePkg: Support LinuxBoot DSC/FDF build for Jade platform To: Leif Lindholm , Ard Biesheuvel Cc: devel@edk2.groups.io, Thang Nguyen , Chuong Tran , Phong Vo , Michael D Kinney , Nate DeSimone References: <20210526100724.5359-1-nhi@os.amperecomputing.com> <20210526100724.5359-34-nhi@os.amperecomputing.com> <20210607235808.ychjgz4wvgcfc5oh@leviathan> From: "Nhi Pham" Message-ID: <19579508-88b9-6af1-9de5-461a206d456e@os.amperecomputing.com> Date: Wed, 9 Jun 2021 22:20:20 +0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 In-Reply-To: <20210607235808.ychjgz4wvgcfc5oh@leviathan> X-Originating-IP: [2405:4802:919c:1740:2071:cb7e:eca5:b6e0] X-ClientProxiedBy: HKAPR03CA0009.apcprd03.prod.outlook.com (2603:1096:203:c8::14) To DM6PR01MB5849.prod.exchangelabs.com (2603:10b6:5:205::20) Return-Path: nhi@os.amperecomputing.com MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [IPv6:2405:4802:919c:1740:2071:cb7e:eca5:b6e0] (2405:4802:919c:1740:2071:cb7e:eca5:b6e0) by HKAPR03CA0009.apcprd03.prod.outlook.com (2603:1096:203:c8::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4242.9 via Frontend Transport; Wed, 9 Jun 2021 15:20:27 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 59c98d67-2102-40af-8ae6-08d92b5a1e26 X-MS-TrafficTypeDiagnostic: DM8PR01MB6807: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: lY9tA6cbaYGsjssAVgeFKeNJSejl+28YsGoCKMDHc1wXeWhDbiUJEATE72mcXHKwq0zFhoVUriSi/j65eCYf5QL1nJMHzKcjcATf1XWL6PS+DO/aO7ciUw4+vtLGtjQNzfsZildn9HQcYFMEVoCw2cbJM5Ajky0gW9bk2nmn2Zpf54RsaNWGW2kjRMAjjb/P38hHvW7U3asCEGYP88Sg0AqOdglHmCx7DPEZdd7p7KJZ+OmBIHBP0U59pF5b9zk0eSo1f+IDfsQex6P4pTP5C7+jl/FcM8lAUl/meSEVAAFj/uvZCQNpUiSl34+2mWsRXWGfIiADsgvHBswtDnKPXVcOmSxWvpzcE4hZOw17gVa25bsW8gns04ozeL0qLKZ3JmwUnJWL4gSqNl3JYXhvvjoGHrfdp+AYQyMqBsthFu+MiGqWNnsG6R/jBSFlpmnKFVtg1NE7m6jTsv3vsjt5gZY47voO02nVKOOEO6HT0fed6SIx+Vnni45s45em6KmbQraHWxwPoGYhhQHsQiCBnvuMub5uIDstnE40RnyhNsPy+H1DpdHYCKNKqPFHC57Xd2Ii2XBYfuJF2zlhfHyUaxsE7Q2qgwzn9TMB8ZyxeXVxNDjhvkvqxMeFwfdFeYGCV2cwmczsmhb7WL7XDN+ex/mRheSDpT1jbK4k8BLYEudIj0s6FBuOW/LdGcN6vb7WQljKRPmPddo/KyGl6Z8WSNvFDceGDPbgW0segR4/P0IAHkqFBUpnWaXrQhUNO+2vx1LWkcuw0cuXdCnyhRo9MwghfTP29eFcPmMLrFYVhC861vc9EZWcAD3OGBDMyctI X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR01MB5849.prod.exchangelabs.com;PTR:;CAT:NONE;SFS:(4636009)(376002)(39850400004)(366004)(136003)(396003)(346002)(110136005)(5660300002)(16526019)(2616005)(2906002)(186003)(4326008)(31696002)(54906003)(316002)(6486002)(38100700002)(66556008)(8936002)(19627235002)(30864003)(6666004)(86362001)(8676002)(966005)(53546011)(478600001)(31686004)(66476007)(83380400001)(52116002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1kzQ1l2MkVTT1BJUENrWW1JMk80cy8yaFlUVUVWNjlWNEx1dXpwWnNaRmRX?= =?utf-8?B?OVFPM01XQ0M5OStFNk0vc1FpbzNGT1lWcmJ4RjVHWERxVnd5VTdyMTBkMU9R?= =?utf-8?B?cVNQNDJiREtXRHRLNVc1Zzlma0RWSUUwaWwwdlNTdkkxc0x2WHdWTlUxVEo0?= =?utf-8?B?ZjZ5MklSWWVZeE1PSWk1UVBzZVcwRERNQ1h6eUpEYWVJU2N6bWtYZkdSN3kz?= =?utf-8?B?bnBaZDA1Q0FvWk44cmRXMVJzcU9paHF6Rmh5MWFrTnRkQzhkMW1VSGQ1VXVW?= =?utf-8?B?TkthUmxzYUExNmtTVWpVY1NpT0FJTEQ0eVhkTTUySUNjaGduSDUvemM2TERk?= =?utf-8?B?Q1NJeWNRT2NLTGtyVitFUVZLcDQ4UW00cStZSVdxNE1rTGZ1R3NHMWhqeGNO?= =?utf-8?B?a2xrdWYraFFtN3BUZkVoOW1GRExzMzJOVEJwUEdvQWxTOXZ6NDZJbFVyYnJt?= =?utf-8?B?RTVQL3JaVGtBVytMcEM3T0NRY0xrUlNRMjRHYmZNSHlzY0NVbTZpczNOYWtu?= =?utf-8?B?Mk1pR01UZHhITkpWbmQ5MXJFd05ROHp4WHEzVnF2Z2Fxc1YzZmlPbVNjcVdl?= =?utf-8?B?eE1nSXFkaGRCTlp6bnVUckFQY2JpSE41WlhxeXZHNnEzQ1ZOTzlTY0Z0U3RF?= =?utf-8?B?Wll6RlBkb3N3SEsxV202RktoN3BkcVNyOTcvcFNOcmN0Y0x6cDEzWW1xSlRt?= =?utf-8?B?ZWhXTUNyajlIWFBvTThZeHozVGNEcU92Q2cyT2h3TFBzL0tsdXhXcEQ1Z0Q1?= =?utf-8?B?WkRQZC9jU21PM0I4SUFUZ2NZd2xwM0h6eXN2NFFOaWhCaGQwSkxzQnFJMVZI?= =?utf-8?B?V1NhS3Z6V25kN2FCMDd2Q2V0SFZ4enVnUmkwOFFaelJ3UkE1VFcyTkk4blBM?= =?utf-8?B?T1o5RG9hVzh3OFl1MzRHUm1sSVl1MkY2aUxrK21ycUQzeU43MHN6bXM0S1l3?= =?utf-8?B?VFNrNVV5WUtocWtjK1NROHZaSE45QjVSRHNpc2JkL2VGSHUvalJRUkoxYlV2?= =?utf-8?B?SDZuRzhpSW44c0t6RTNXSFdzaC80RStKSXQyTmIrbXpSdTM0TXRESmx0YktV?= =?utf-8?B?blZ0UGp1RGZibkFGaUFNVlJleFJvSldhUjl4UTdqOXdWQUNkOHEvZ1JRMVp1?= =?utf-8?B?MVNNYVNRc3lEZ1RCTFdQcVphY040dFVSUVpTUkZRcnJkWng3aVg3WVd4ZzlG?= =?utf-8?B?cWtSb28yYUphem11SEhZN05nZDBFVE9Fb2RTTXJCcTBySndFQnlVSVFVYTUw?= =?utf-8?B?djlBS0lNV3RxWFh2T05BNnFEd2p4Z2tROFJ2clR1SWFiWUpxYkZIaUROcHB6?= =?utf-8?B?a0F4YTFrRldveXplcE9xUGZ1VnZac3BudTlaT3NTWnZxdjZ2Tk10NDZQQngz?= =?utf-8?B?MUVSZ1k0bVJtUU5LaEtldU45YVdVaWhyYUI5VnlWSHFwUlpCZGYvMU50bEJR?= =?utf-8?B?c1BDZWdGL1VoOWY1N2NoeStSQ0xvVkFWeWN5d2FzWmdtaFdsd25HRHBjdDFo?= =?utf-8?B?ZzV4VEJOVHhoRmorM0hYZDFDemZUYlJSVmR1ajJRUUJhSy9OcWZnN2E2Ny9K?= =?utf-8?B?T1kwRFpXeXR1WjJ0eWViMUova1hLMTY1ejUrV29YNUp4OUhGSENjSXBIWDN2?= =?utf-8?B?ai9XNlVzSlhvL0VYVngrUmFBay9TNDFQOG40ZTlwOXFGUlNNcml3cUFDSWNN?= =?utf-8?B?WkdCOW53VE1KeHNZZzNPdkhNZWExUUZ2Qlh1dEhUQ0d1bk81b29hSDBSRW0r?= =?utf-8?B?OFNoSWZPdmZwcitoWXJNeWJrUUludzdEeURoREhjRlA5UXZ6QXovcnVIQWNG?= =?utf-8?B?VzBCSGphcmNxb0VhYThLbGtvbXRlM0N0QTVBL28wRHQ3Uk5XQkFCWFp0OVd3?= =?utf-8?Q?cdKsLdPIyQA8K?= X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59c98d67-2102-40af-8ae6-08d92b5a1e26 X-MS-Exchange-CrossTenant-AuthSource: DM6PR01MB5849.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2021 15:20:30.7666 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F+fAugy6IJW/wg3VolWTgC9pEywyrpeGBuXhq7/irBb7hKSf0UKhkfxblvWYu0dIrdMA27KSoVUNoRf/HyCsOlIxp8O79sLfUmEgk+TKG2g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR01MB6807 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US On 6/8/21 06:58, Leif Lindholm wrote: > On Wed, May 26, 2021 at 17:07:24 +0700, Nhi Pham wrote: >> Adds DSC and FDF files to support the LinuxBoot build. Some PEI/DXE >> drivers are not added into the target build as they are not required for >> booting to the LinuxBoot Shell. >> >> Please note that we MUST have the LinuxBoot binary in the >> Platform/Ampere/LinuxBootPkg/AArch64 directory before compiling. > Hmm. So, this step feels a little bit weird to me. > I think a more common workflow would be to treat the LinuxBoot module > like an edk2-non-osi module. The LinuxBoot binary, named flashkernel, that consists of Linux kernel and initramfs is built separately from the https://github.com/linuxboot/mainboards reposistory. So, I just concern about adding the LinuxBoot module with a pre-built flashkernel image will violate the Linux kernel's license. Hi Ard, do you have any idea about that? Best regards, Nhi > I could go along with adding it like this for now, with an > understanding that we would need to figure out some better solution > medium-term. > > / > Leif > >> Cc: Thang Nguyen >> Cc: Chuong Tran >> Cc: Phong Vo >> Cc: Leif Lindholm >> Cc: Michael D Kinney >> Cc: Ard Biesheuvel >> Cc: Nate DeSimone >> >> Signed-off-by: Nhi Pham >> --- >> Silicon/Ampere/AmpereAltraPkg/AmpereAltraLinuxBootPkg.dsc.inc | 550 ++++++++++++++++++++ >> Platform/Ampere/JadePkg/JadeLinuxBoot.dsc | 90 ++++ >> Platform/Ampere/JadePkg/JadeLinuxBoot.fdf | 201 +++++++ >> 3 files changed, 841 insertions(+) >> >> diff --git a/Silicon/Ampere/AmpereAltraPkg/AmpereAltraLinuxBootPkg.dsc.inc b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraLinuxBootPkg.dsc.inc >> new file mode 100755 >> index 000000000000..06b2bb928fe8 >> --- /dev/null >> +++ b/Silicon/Ampere/AmpereAltraPkg/AmpereAltraLinuxBootPkg.dsc.inc >> @@ -0,0 +1,550 @@ >> +## @file >> +# >> +# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
>> +# >> +# SPDX-License-Identifier: BSD-2-Clause-Patent >> +# >> +## >> + >> +[BuildOptions.common.EDKII.DXE_CORE,BuildOptions.common.EDKII.DXE_DRIVER,BuildOptions.common.EDKII.UEFI_DRIVER,BuildOptions.common.EDKII.UEFI_APPLICATION] >> + GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x1000 >> + >> +[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER] >> + GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000 >> + >> +[BuildOptions] >> + GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG >> + >> +[LibraryClasses.common] >> +!if $(TARGET) == RELEASE >> + DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf >> +!else >> + DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf >> +!endif >> + DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf >> + >> + BaseLib|MdePkg/Library/BaseLib/BaseLib.inf >> + BaseMemoryLib|MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf >> + SafeIntLib|MdePkg/Library/BaseSafeIntLib/BaseSafeIntLib.inf >> + SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf >> + PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf >> + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf >> + PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf >> + PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf >> + IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf >> + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf >> + CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf >> + >> + UefiLib|MdePkg/Library/UefiLib/UefiLib.inf >> + HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf >> + UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf >> + DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf >> + UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf >> + DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf >> + UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf >> + UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf >> + HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf >> + UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf >> + UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf >> + >> + # >> + # Allow dynamic PCDs >> + # >> + PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf >> + >> + # >> + # ARM Architectural Libraries >> + # >> + ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf >> + ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf >> + CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf >> + DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf >> + CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf >> + ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf >> + ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf >> + ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf >> + ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf >> + ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf >> + ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf >> + ResetSystemLib|ArmPkg/Library/ArmSmcPsciResetSystemLib/ArmSmcPsciResetSystemLib.inf >> + TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf >> + >> + # >> + # Ampere Altra specific Libraries >> + # >> + ArmPlatformLib|Silicon/Ampere/AmpereAltraPkg/Library/ArmPlatformLib/ArmPlatformLib.inf >> + PlatformPeiLib|Silicon/Ampere/AmpereAltraPkg/Library/PlatformPeiLib/PlatformPeiLib.inf >> + NVParamLib|Silicon/Ampere/AmpereAltraPkg/Library/NVParamLib/NVParamLib.inf >> + MailboxInterfaceLib|Silicon/Ampere/AmpereAltraPkg/Library/MailboxInterfaceLib/MailboxInterfaceLib.inf >> + SystemFirmwareInterfaceLib|Silicon/Ampere/AmpereAltraPkg/Library/SystemFirmwareInterfaceLib/SystemFirmwareInterfaceLib.inf >> + PciePhyLib|Silicon/Ampere/AmpereAltraBinPkg/Library/PciePhyLib/PciePhyLib.inf >> + PcieCoreLib|Silicon/Ampere/AmpereAltraPkg/Library/PcieCoreLib/PcieCoreLib.inf >> + AmpereCpuLib|Silicon/Ampere/AmpereAltraPkg/Library/AmpereCpuLib/AmpereCpuLib.inf >> + TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf >> + I2cLib|Silicon/Ampere/AmpereAltraPkg/Library/DwI2cLib/DwI2cLib.inf >> + GpioLib|Silicon/Ampere/AmpereAltraPkg/Library/DwGpioLib/DwGpioLib.inf >> + MmCommunicationLib|Silicon/Ampere/AmpereAltraPkg/Library/MmCommunicationLib/MmCommunicationLib.inf >> + >> + # >> + # ARM PL011 UART Driver >> + # >> + PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf >> + SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf >> + PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf >> + >> + # >> + # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window >> + # in the debugger will show load and unload commands for symbols. You can cut and paste this >> + # into the command window to load symbols. We should be able to use a script to do this, but >> + # the version of RVD I have does not support scripts accessing system memory. >> + # >> + #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf >> + PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf >> + #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf >> + >> + DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >> + DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf >> + >> + SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf >> + >> + # >> + # BDS Libraries >> + # >> + UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf >> + PlatformBootManagerLib|Silicon/Ampere/AmpereSiliconPkg/Library/LinuxBootBootManagerLib/LinuxBootBootManagerLib.inf >> + BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf >> + SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf >> + >> + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLib.inf >> + VariablePolicyHelperLib|MdeModulePkg/Library/VariablePolicyHelperLib/VariablePolicyHelperLib.inf >> + >> + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >> + CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >> + >> + ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf >> + >> +[LibraryClasses.common.SEC] >> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >> + DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf >> + >> +!ifdef $(EDK2_SKIP_PEICORE) >> + PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf >> + ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf >> + LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf >> + MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf >> + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf >> + PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf >> + PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >> +!endif >> + >> + ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf >> + >> +[LibraryClasses.common.PEI_CORE] >> + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf >> + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf >> + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf >> + PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf >> + PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >> + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf >> + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf >> + ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf >> + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf >> + >> + PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf >> + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf >> + >> +[LibraryClasses.common.PEIM] >> + PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf >> + HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf >> + PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf >> + MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf >> + PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf >> + PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf >> + ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf >> + OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf >> + PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf >> + ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf >> + PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf >> + >> +[LibraryClasses.common.SEC, LibraryClasses.common.PEIM] >> + MemoryInitPeiLib|Silicon/Ampere/AmpereAltraPkg/Library/MemoryInitPeiLib/MemoryInitPeiLib.inf >> + BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf >> + >> +[LibraryClasses.common.DXE_CORE] >> + HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf >> + MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf >> + DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf >> + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf >> + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf >> + PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf >> + >> +[LibraryClasses.common.DXE_DRIVER] >> + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf >> + SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf >> + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >> + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf >> + FlashLib|Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLib.inf >> + >> +[LibraryClasses.common.UEFI_APPLICATION] >> + UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiTianoCustomDecompressLib.inf >> + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >> + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf >> + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf >> + >> +[LibraryClasses.common.UEFI_DRIVER] >> + ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf >> + PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf >> + DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf >> + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf >> + >> +[LibraryClasses.common.DXE_RUNTIME_DRIVER] >> + MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf >> + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >> + ReportStatusCodeLib|MdeModulePkg/Library/RuntimeDxeReportStatusCodeLib/RuntimeDxeReportStatusCodeLib.inf >> +!if $(TARGET) != RELEASE >> + DebugLib|MdePkg/Library/DxeRuntimeDebugLibSerialPort/DxeRuntimeDebugLibSerialPort.inf >> +!endif >> + VariablePolicyLib|MdeModulePkg/Library/VariablePolicyLib/VariablePolicyLibRuntimeDxe.inf >> + >> + EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf >> + ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf >> + FlashLib|Silicon/Ampere/AmpereAltraPkg/Library/FlashLib/FlashLib.inf >> + >> +[LibraryClasses.ARM,LibraryClasses.AARCH64] >> + # >> + # It is not possible to prevent the ARM compiler for generic intrinsic functions. >> + # This library provides the instrinsic functions generate by a given compiler. >> + # [LibraryClasses.ARM] and NULL mean link this library into all ARM images. >> + # >> + NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf >> + >> + # >> + # Add support for GCC stack protector >> + # >> + NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf >> + >> +################################################################################ >> +# >> +# Pcd Section - list of all EDK II PCD Entries defined by this Platform >> +# >> +################################################################################ >> + >> +[PcdsFeatureFlag.common] >> + gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE >> + gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE >> + gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|FALSE >> + gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE >> + >> + # >> + # Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress >> + # >> + gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE >> + >> + gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE >> + >> + gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE >> + >> + # >> + # If TRUE, Graphics Output Protocol will be installed on virtual handle >> + # created by ConsplitterDxe. It could be set FALSE to save size. >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE >> + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE >> + >> + gEfiMdeModulePkgTokenSpaceGuid.PcdInstallAcpiSdtProtocol|TRUE >> + >> +[PcdsFixedAtBuild.common] >> +!ifdef $(FIRMWARE_VER) >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)" >> +!endif >> + >> + gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000 >> + gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000 >> + gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000 >> + gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000 >> + gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF >> + gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1 >> + gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0 >> + gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320 >> + >> + # DEBUG_ASSERT_ENABLED 0x01 >> + # DEBUG_PRINT_ENABLED 0x02 >> + # DEBUG_CODE_ENABLED 0x04 >> + # CLEAR_MEMORY_ENABLED 0x08 >> + # ASSERT_BREAKPOINT_ENABLED 0x10 >> + # ASSERT_DEADLOOP_ENABLED 0x20 >> +!if $(TARGET) == RELEASE >> + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21 >> +!else >> + gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2A >> +!endif >> + >> + # >> + # SBSA Watchdog Count >> + # >> +!ifndef DISABLE_SBSA_WATCHDOG >> + gArmPlatformTokenSpaceGuid.PcdWatchdogCount|1 >> +!endif >> + >> + # DEBUG_INIT 0x00000001 // Initialization >> + # DEBUG_WARN 0x00000002 // Warnings >> + # DEBUG_LOAD 0x00000004 // Load events >> + # DEBUG_FS 0x00000008 // EFI File system >> + # DEBUG_POOL 0x00000010 // Alloc & Free (pool) >> + # DEBUG_PAGE 0x00000020 // Alloc & Free (page) >> + # DEBUG_INFO 0x00000040 // Informational debug messages >> + # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers >> + # DEBUG_VARIABLE 0x00000100 // Variable >> + # DEBUG_BM 0x00000400 // Boot Manager >> + # DEBUG_BLKIO 0x00001000 // BlkIo Driver >> + # DEBUG_NET 0x00004000 // SNP Driver >> + # DEBUG_UNDI 0x00010000 // UNDI Driver >> + # DEBUG_LOADFILE 0x00020000 // LoadFile >> + # DEBUG_EVENT 0x00080000 // Event messages >> + # DEBUG_GCD 0x00100000 // Global Coherency Database changes >> + # DEBUG_CACHE 0x00200000 // Memory range cachability changes >> + # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may >> + # // significantly impact boot performance >> + # DEBUG_ERROR 0x80000000 // Error >> + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|$(DEBUG_PRINT_ERROR_LEVEL) >> + >> + # >> + # Optional feature to help prevent EFI memory map fragments >> + # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob >> + # Values are in EFI Pages (4K). DXE Core will make sure that >> + # at least this much of each type of memory can be allocated >> + # from a single memory range. This way you only end up with >> + # maximum of two fragements for each type in the memory map >> + # (the memory used, and the free memory that was prereserved >> + # but not used). >> + # >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|80 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|65 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20 >> + gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0 >> + >> + gArmTokenSpaceGuid.PcdVFPEnabled|1 >> + >> + gArmTokenSpaceGuid.PcdArmPrimaryCore|0x0 >> + >> + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800 >> + >> + # >> + # Stacks for MPCores in Normal World >> + # >> + gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x91100000 >> + gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x20000 >> + gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000 >> + >> + # >> + # System Memory Base >> + # >> + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x90000000 >> + >> + # >> + # UEFI region size >> + # >> + gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x08000000 >> + >> + # >> + # Ampere Altra Core-Cluster profile >> + # >> + gArmPlatformTokenSpaceGuid.PcdCoreCount|80 >> + gArmPlatformTokenSpaceGuid.PcdClusterCount|40 >> + >> + # >> + # PL011 - Serial Terminal >> + # Ampere Altra UART0 >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x100002600000 >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200 >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|32 >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|8 >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1 >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1 >> + >> + gArmPlatformTokenSpaceGuid.PL011UartClkInHz|1843200 >> + gArmPlatformTokenSpaceGuid.PL011UartInterrupt|0x62 >> + >> + # >> + # PL011 - Serial Debug UART >> + # Ampere Altra UART2 >> + # >> + gArmPlatformTokenSpaceGuid.PcdSerialDbgRegisterBase|0x100002620000 >> + gArmPlatformTokenSpaceGuid.PcdSerialDbgUartBaudRate|115200 >> + >> + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE >> + >> + # >> + # ARM SBSA Watchdog >> + # >> + gArmTokenSpaceGuid.PcdGenericWatchdogControlBase|0x1000027c0000 >> + gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase|0x1000027d0000 >> + gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum|92 >> + >> + # >> + # ARM Generic Interrupt Controller >> + # >> + gArmTokenSpaceGuid.PcdGicDistributorBase|0x100100000000 >> + gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x100100140000 >> + >> + # >> + # ARM Architectural Timer Frequency >> + # >> + # Set it to 0 so that the code will read frequence from register >> + gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0 >> + gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000 >> + >> + # >> + # use the TTY terminal type >> + # >> + gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4 >> + >> + # >> + # GUID of the UI app >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 } >> + >> + # >> + # ACPI table >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId|"Ampere" >> + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemTableId|0x2020206172746C41 # Altra >> + gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultCreatorId|0x2E504D41 # AMP. >> + >> + # >> + # Enable strict image permissions for all images. (This applies >> + # only to images that were built with >= 4 KB section alignment.) >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy|0x3 >> + >> + # >> + # Enable NX memory protection for all non-code regions, including OEM and OS >> + # reserved ones, with the exception of LoaderData regions, of which OS loaders >> + # (i.e., GRUB) may assume that its contents are executable. >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy|0xC000000000007FD1 >> + >> + # >> + # Enable the non-executable DXE stack. (This gets set up by DxeIpl) >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE >> + >> + # >> + # MmCommunication >> + # >> + gArmTokenSpaceGuid.PcdMmBufferBase|0x88300000 >> + gArmTokenSpaceGuid.PcdMmBufferSize|0x100000 >> + >> +[PcdsDynamicHii.common.DEFAULT] >> + gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|0 >> + >> +[PcdsDynamicDefault.common] >> + # >> + # Fist DRAM Memory region under 4GB address range >> + # >> + gArmTokenSpaceGuid.PcdSystemMemorySize|0x70000000 >> + >> +################################################################################ >> +# >> +# Component Section - list of all EDK II Component Entries defined by this Platform >> +# >> +################################################################################ >> + >> +[Components.common] >> + # >> + # PEI Phase modules >> + # >> + ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf >> + MdeModulePkg/Core/Pei/PeiMain.inf >> + MdeModulePkg/Universal/PCD/Pei/Pcd.inf { >> + >> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >> + } >> + ArmPlatformPkg/PlatformPei/PlatformPeim.inf >> + Silicon/Ampere/AmpereAltraPkg/Drivers/ATFHobPei/ATFHobPeim.inf >> + Silicon/Ampere/AmpereAltraPkg/Drivers/MemoryInitPeim/MemoryInitPeim.inf >> + ArmPkg/Drivers/CpuPei/CpuPei.inf >> + UefiCpuPkg/CpuIoPei/CpuIoPei.inf >> + MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >> + MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf { >> + >> + NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf >> + } >> + >> + # >> + # DXE Phase modules >> + # >> + MdeModulePkg/Core/Dxe/DxeMain.inf { >> + >> + NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf >> + } >> + >> + # >> + # PCD >> + # >> + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf { >> + >> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf >> + } >> + >> + # >> + # Architectural Protocols >> + # >> + ArmPkg/Drivers/CpuDxe/CpuDxe.inf >> + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >> + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >> + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >> + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf >> + EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf >> + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >> + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >> + >> + # >> + # Environment Variables Protocol >> + # >> + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { >> + >> + gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE >> + >> + AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf >> + TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf >> + VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf >> + } >> + >> + # >> + # Timer >> + # >> + ArmPkg/Drivers/TimerDxe/TimerDxe.inf >> + >> + # >> + # ARM GIC Dxe >> + # >> + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >> + >> + # >> + # Console >> + # >> + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >> + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >> + >> + # >> + # Hii Database >> + # >> + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >> + >> + # >> + # PCIe Support >> + # >> + Silicon/Ampere/AmpereAltraPkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf >> + >> + # >> + # Bds >> + # >> + MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >> diff --git a/Platform/Ampere/JadePkg/JadeLinuxBoot.dsc b/Platform/Ampere/JadePkg/JadeLinuxBoot.dsc >> new file mode 100755 >> index 000000000000..d3c7328fb7ed >> --- /dev/null >> +++ b/Platform/Ampere/JadePkg/JadeLinuxBoot.dsc >> @@ -0,0 +1,90 @@ >> +## @file >> +# >> +# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
>> +# >> +# SPDX-License-Identifier: BSD-2-Clause-Patent >> +# >> +## >> + >> +################################################################################ >> +# >> +# Defines Section - statements that will be processed to create a Makefile. >> +# >> +################################################################################ >> +[Defines] >> + PLATFORM_NAME = Jade >> + PLATFORM_GUID = 7BDD00C0-68F3-4CC1-8775-F0F00572019F >> + PLATFORM_VERSION = 0.1 >> + DSC_SPECIFICATION = 0x0001001B >> + OUTPUT_DIRECTORY = Build/Jade >> + SUPPORTED_ARCHITECTURES = AARCH64 >> + BUILD_TARGETS = DEBUG|RELEASE >> + SKUID_IDENTIFIER = DEFAULT >> + FLASH_DEFINITION = Platform/Ampere/JadePkg/JadeLinuxBoot.fdf >> + >> + # >> + # Defines for default states. These can be changed on the command line. >> + # -D FLAG=VALUE >> + # >> + DEFINE DEBUG_PRINT_ERROR_LEVEL = 0x8000000F >> + DEFINE FIRMWARE_VER = 0.01.001 >> + DEFINE EDK2_SKIP_PEICORE = TRUE >> + >> +# Include default Ampere Platform DSC file >> +!include Silicon/Ampere/AmpereAltraPkg/AmpereAltraLinuxBootPkg.dsc.inc >> + >> +# >> +# Specific Platform Library >> +# >> +[LibraryClasses.common] >> + # >> + # RTC Library: Common RTC >> + # >> + RealTimeClockLib|Platform/Ampere/JadePkg/Library/PCF85063RealTimeClockLib/PCF85063RealTimeClockLib.inf >> + >> + # >> + # Library for FailSafe support >> + # >> + FailSafeLib|Platform/Ampere/AmperePlatformPkg/Library/FailSafeLib/FailSafeLib.inf >> + >> + # >> + # ACPI Libraries >> + # >> + AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf >> + AcpiHelperLib|Platform/Ampere/AmperePlatformPkg/Library/AcpiHelperLib/AcpiHelperLib.inf >> + AcpiPccLib|Platform/Ampere/AmperePlatformPkg/Library/AcpiPccLib/AcpiPccLib.inf >> + >> + # >> + # Pcie Board >> + # >> + PcieBoardLib|Platform/Ampere/JadePkg/Library/PcieBoardLib/PcieBoardLib.inf >> + >> +[PcdsDynamicDefault.common.DEFAULT] >> + # SMBIOS Type 0 - BIOS Information >> + gAmpereTokenSpaceGuid.PcdSmbiosTables0BiosReleaseDate|"MM/DD/YYYY" >> + >> +# >> +# Specific Platform Component >> +# >> +[Components.common] >> + >> + # >> + # ACPI >> + # >> + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >> + Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf >> + Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf >> + Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf >> + >> + # >> + # SMBIOS >> + # >> + MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >> + Platform/Ampere/JadePkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf >> + Platform/Ampere/JadePkg/Drivers/SmbiosCpuDxe/SmbiosCpuDxe.inf >> + Platform/Ampere/JadePkg/Drivers/SmbiosMemInfoDxe/SmbiosMemInfoDxe.inf >> + >> + # >> + # FailSafeDxe added to prevent watchdog from resetting the system >> + # >> + Platform/Ampere/AmperePlatformPkg/Drivers/FailSafeDxe/FailSafeDxe.inf >> diff --git a/Platform/Ampere/JadePkg/JadeLinuxBoot.fdf b/Platform/Ampere/JadePkg/JadeLinuxBoot.fdf >> new file mode 100755 >> index 000000000000..aa5817ec6f4a >> --- /dev/null >> +++ b/Platform/Ampere/JadePkg/JadeLinuxBoot.fdf >> @@ -0,0 +1,201 @@ >> +## @file >> +# >> +# Copyright (c) 2020 - 2021, Ampere Computing LLC. All rights reserved.
>> +# >> +# SPDX-License-Identifier: BSD-2-Clause-Patent >> +# >> +## >> + >> +################################################################################ >> +# >> +# FD Section >> +# The [FD] Section is made up of the definition statements and a >> +# description of what goes into the Flash Device Image. Each FD section >> +# defines one flash "device" image. A flash device image may be one of >> +# the following: Removable media bootable image (like a boot floppy >> +# image,) an Option ROM image (that would be "flashed" into an add-in >> +# card,) a System "Flash" image (that would be burned into a system's >> +# flash) or an Update ("Capsule") image that will be used to update and >> +# existing system flash. >> +# >> +################################################################################ >> + >> +[FD.BL33_JADE_UEFI] >> +BaseAddress = 0x92000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash. >> +Size = 0x00AC0000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device >> +ErasePolarity = 1 >> + >> +# This one is tricky, it must be: BlockSize * NumBlocks = Size >> +BlockSize = 0x10000 >> +NumBlocks = 0xAC >> + >> +################################################################################ >> +# >> +# Following are lists of FD Region layout which correspond to the locations of different >> +# images within the flash device. >> +# >> +# Regions must be defined in ascending order and may not overlap. >> +# >> +# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by >> +# the pipe "|" character, followed by the size of the region, also in hex with the leading >> +# "0x" characters. Like: >> +# Offset|Size >> +# PcdOffsetCName|PcdSizeCName >> +# RegionType >> +# >> +################################################################################ >> + >> +0x00000000|0x00AC0000 >> +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize >> +FV = FVMAIN_COMPACT >> + >> +################################################################################ >> +# >> +# FV Section >> +# >> +# [FV] section is used to define what components or modules are placed within a flash >> +# device file. This section also defines order the components and modules are positioned >> +# within the image. The [FV] section consists of define statements, set statements and >> +# module statements. >> +# >> +################################################################################ >> + >> +[FV.FvMain] >> +BlockSize = 0x10000 >> +NumBlocks = 0 # This FV gets compressed so make it just big enough >> +FvAlignment = 16 # FV alignment and FV attributes setting. >> +ERASE_POLARITY = 1 >> +MEMORY_MAPPED = TRUE >> +STICKY_WRITE = TRUE >> +LOCK_CAP = TRUE >> +LOCK_STATUS = TRUE >> +WRITE_DISABLED_CAP = TRUE >> +WRITE_ENABLED_CAP = TRUE >> +WRITE_STATUS = TRUE >> +WRITE_LOCK_CAP = TRUE >> +WRITE_LOCK_STATUS = TRUE >> +READ_DISABLED_CAP = TRUE >> +READ_ENABLED_CAP = TRUE >> +READ_STATUS = TRUE >> +READ_LOCK_CAP = TRUE >> +READ_LOCK_STATUS = TRUE >> +FvNameGuid = 5C60F367-A505-419A-859E-2A4FF6CA6FE5 >> + >> +APRIORI DXE { >> + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >> +} >> + >> + INF MdeModulePkg/Core/Dxe/DxeMain.inf >> + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >> + >> + # >> + # PI DXE Drivers producing Architectural Protocols (EFI Services) >> + # >> + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf >> + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >> + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >> + INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >> + INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf >> + INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf >> + INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >> + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >> + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >> + >> + # >> + # Environment Variables Protocol >> + # >> + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf >> + >> + # >> + # Multiple Console IO support >> + # >> + INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >> + INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >> + >> + # >> + # Timer >> + # >> + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf >> + >> + # >> + # ARM GIC Dxe >> + # >> + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >> + >> + # >> + # PCIe Support >> + # >> + INF Silicon/Ampere/AmpereAltraPkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf >> + >> + # >> + # Linuxboot in Flash Support >> + # >> + INF Platform/Ampere/LinuxBootPkg/LinuxBoot.inf >> + >> + # >> + # Bds >> + # >> + INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf >> + >> + # >> + # Driver to handle HW Watchdog >> + # >> + INF Platform/Ampere/AmperePlatformPkg/Drivers/FailSafeDxe/FailSafeDxe.inf >> + >> + # >> + # ACPI >> + # >> + INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf >> + INF Platform/Ampere/JadePkg/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf >> + INF RuleOverride=ACPITABLE Silicon/Ampere/AmpereAltraPkg/AcpiCommonTables/AcpiCommonTables.inf >> + INF RuleOverride=ACPITABLE Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf >> + >> + # >> + # SMBIOS >> + # >> + INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf >> + INF Platform/Ampere/JadePkg/Drivers/SmbiosPlatformDxe/SmbiosPlatformDxe.inf >> + INF Platform/Ampere/JadePkg/Drivers/SmbiosCpuDxe/SmbiosCpuDxe.inf >> + INF Platform/Ampere/JadePkg/Drivers/SmbiosMemInfoDxe/SmbiosMemInfoDxe.inf >> + >> +[FV.FVMAIN_COMPACT] >> +FvAlignment = 16 >> +ERASE_POLARITY = 1 >> +MEMORY_MAPPED = TRUE >> +STICKY_WRITE = TRUE >> +LOCK_CAP = TRUE >> +LOCK_STATUS = TRUE >> +WRITE_DISABLED_CAP = TRUE >> +WRITE_ENABLED_CAP = TRUE >> +WRITE_STATUS = TRUE >> +WRITE_LOCK_CAP = TRUE >> +WRITE_LOCK_STATUS = TRUE >> +READ_DISABLED_CAP = TRUE >> +READ_ENABLED_CAP = TRUE >> +READ_STATUS = TRUE >> +READ_LOCK_CAP = TRUE >> +READ_LOCK_STATUS = TRUE >> + >> +APRIORI PEI { >> + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf >> +} >> + >> + INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf >> + INF MdeModulePkg/Core/Pei/PeiMain.inf >> + INF UefiCpuPkg/CpuIoPei/CpuIoPei.inf >> + INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf >> + INF Silicon/Ampere/AmpereAltraPkg/Drivers/ATFHobPei/ATFHobPeim.inf >> + INF Silicon/Ampere/AmpereAltraPkg/Drivers/MemoryInitPeim/MemoryInitPeim.inf >> + INF ArmPkg/Drivers/CpuPei/CpuPei.inf >> + INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf >> + INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf >> + >> + INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf >> + >> + FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >> + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { >> + SECTION FV_IMAGE = FVMAIN >> + } >> + } >> + >> +!include Platform/Ampere/AmperePlatformPkg/FvRules.fdf.inc >> -- >> 2.17.1 >>