On 10/18/2016 04:31 AM, Ard Biesheuvel wrote:
On 17 October 2016 at 23:15, Alan Ott alan@softiron.co.uk wrote:
Add a configuration for the SoftIron Overdrive 1000. This is similar to OverdriveBoard/ configuration (which is for the Overdrive 3000).
The Overdrive 1000 contains an AMD Opteron-A-based SoC with 4 Cortex-A57 cores. The board contains Marvell Yukon 1Gbit ethernet, two SATA 3.0 ports, and two USB 3.0 ports.
This configuration contains a PreUefiFirmware.bin image which was generated using the AMD Firmware Development Kit (FDK) version 1.0.0.2, configured for use with DDR4 memory.
In comparison with the .dsc and .fdf in OverdriveBoard/, the files for Overdrive1000Board contain the following differences:
- Number of cores,
- XGBE support (none in Overdrive 1000),
- SataPi and SataPortCount for available ports,
- PCIe configuration,
- Addition of MarvellYukonDxe driver.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Alan Ott alan@softiron.co.uk
.../Overdrive1000Board/Binary/PreUefiFirmware.bin | Bin 0 -> 401408 bytes .../FdtBlob/styx-overdrive1000.dtb | Bin 0 -> 8329 bytes .../FdtBlob/styx-overdrive1000.dts | 458 +++++++++++++ .../Styx/Overdrive1000Board/Overdrive1000Board.dsc | 734 +++++++++++++++++++++ .../Styx/Overdrive1000Board/Overdrive1000Board.fdf | 412 ++++++++++++ 5 files changed, 1604 insertions(+) create mode 100644 Platforms/AMD/Styx/Overdrive1000Board/Binary/PreUefiFirmware.bin create mode 100644 Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dtb create mode 100644 Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dts create mode 100644 Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc create mode 100644 Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.fdf
[...]
diff --git a/Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dts b/Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dts new file mode 100644 index 0000000..483924e --- /dev/null +++ b/Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dts
This file is mostly identical to the existing one, save for one node (see below)
@@ -0,0 +1,458 @@ +/*
- DTS file for AMD Seattle (Rev.B) Overdrive Development Board
- Copyright 2015 - 2016 ADVANCED MICRO DEVICES, INC. All Rights Reserved.
- This program and the accompanying materials are licensed and made available
- under the terms and conditions of the BSD License which accompanies this
- distribution. The full text of the license may be found at
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
- IMPLIED.
- */
+/dts-v1/;
+/ {
model = "AMD Seattle (Rev.B) Development Board (Overdrive)";
compatible = "amd,seattle-overdrive", "amd,seattle";
interrupt-parent = <0x1>;
#address-cells = <0x2>;
#size-cells = <0x2>;
interrupt-controller@e1101000 {
compatible = "arm,gic-400", "arm,cortex-a15-gic";
interrupt-controller;
#interrupt-cells = <0x3>;
#address-cells = <0x2>;
#size-cells = <0x2>;
reg = <0x0 0xe1110000 0x0 0x1000>,
<0x0 0xe112f000 0x0 0x2000>,
<0x0 0xe1140000 0x0 0x10000>,
<0x0 0xe1160000 0x0 0x10000>;
interrupts = <0x1 0x9 0xf04>;
ranges = <0x0 0x0 0x0 0xe1100000 0x0 0x100000>;
linux,phandle = <0x1>;
phandle = <0x1>;
v2m@e0080000 {
compatible = "arm,gic-v2m-frame";
msi-controller;
reg = <0x0 0x80000 0x0 0x1000>;
linux,phandle = <0x4>;
phandle = <0x4>;
};
};
timer {
compatible = "arm,armv8-timer";
interrupts = <0x1 0xd 0xff04>,
<0x1 0xe 0xff04>,
<0x1 0xb 0xff04>,
<0x1 0xa 0xff04>;
};
pmu {
compatible = "arm,armv8-pmuv3";
interrupts = <0x0 0x7 0x4>,
<0x0 0x8 0x4>,
<0x0 0x9 0x4>,
<0x0 0xa 0x4>,
<0x0 0xb 0x4>,
<0x0 0xc 0x4>,
<0x0 0xd 0x4>,
<0x0 0xe 0x4>;
};
smb {
compatible = "simple-bus";
#address-cells = <0x2>;
#size-cells = <0x2>;
ranges;
/*
* dma-ranges is 40-bit address space containing:
* - GICv2m MSI register is at 0xe0080000
* - DRAM range [0x8000000000 to 0xffffffffff]
*/
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
clk100mhz_0 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <100000000>;
clock-output-names = "adl3clk_100mhz";
};
clk375mhz {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <375000000>;
clock-output-names = "ccpclk_375mhz";
};
clk333mhz {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <333000000>;
clock-output-names = "sataclk_333mhz";
linux,phandle = <0x2>;
phandle = <0x2>;
};
clk500mhz_0 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <500000000>;
clock-output-names = "pcieclk_500mhz";
};
clk500mhz_1 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <500000000>;
clock-output-names = "dmaclk_500mhz";
};
clk250mhz_4 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <250000000>;
clock-output-names = "miscclk_250mhz";
linux,phandle = <0xd>;
phandle = <0xd>;
};
clk100mhz_1 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <100000000>;
clock-output-names = "uartspiclk_100mhz";
linux,phandle = <0x3>;
phandle = <0x3>;
};
sata@e0300000 {
compatible = "snps,dwc-ahci";
reg = <0x0 0xe0300000 0x0 0xf0000>;
interrupts = <0x0 0x163 0x4>;
clocks = <0x2>;
dma-coherent;
};
sata@e0d00000 {
status = "disabled";
compatible = "snps,dwc-ahci";
reg = <0x0 0xe0d00000 0x0 0xf0000>;
interrupts = <0x0 0x162 0x4>;
clocks = <0x2>;
dma-coherent;
};
i2c@e1000000 {
compatible = "snps,designware-i2c";
reg = <0x0 0xe1000000 0x0 0x1000>;
interrupts = <0x0 0x165 0x4>;
clocks = <0xd>;
};
i2c@e0050000 {
compatible = "snps,designware-i2c";
reg = <0x0 0xe0050000 0x0 0x1000>;
interrupts = <0x0 0x154 0x4>;
clocks = <0xd>;
};
serial@e1010000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x0 0xe1010000 0x0 0x1000>;
interrupts = <0x0 0x148 0x4>;
clocks = <0x3 0x3>;
clock-names = "uartclk", "apb_pclk";
};
ssp@e1020000 {
compatible = "arm,pl022", "arm,primecell";
reg = <0x0 0xe1020000 0x0 0x1000>;
spi-controller;
interrupts = <0x0 0x14a 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
ssp@e1030000 {
compatible = "arm,pl022", "arm,primecell";
reg = <0x0 0xe1030000 0x0 0x1000>;
spi-controller;
interrupts = <0x0 0x149 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
num-cs = <0x1>;
#address-cells = <0x1>;
#size-cells = <0x0>;
sdcard@0 {
compatible = "mmc-spi-slot";
reg = <0x0>;
spi-max-frequency = <20000000>;
voltage-ranges = <3200 3400>;
pl022,hierarchy = <0x0>;
pl022,interface = <0x0>;
pl022,com-mode = <0x0>;
pl022,rx-level-trig = <0x0>;
pl022,tx-level-trig = <0x0>;
};
};
gpio@e1040000 { /* [0 : 7] */
compatible = "arm,pl061", "arm,primecell";
#gpio-cells = <0x2>;
reg = <0x0 0xe1040000 0x0 0x1000>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
interrupts = <0x0 0x167 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
... this one, which the Seattle DTS version in the Linux kernel documents as
/* Not available to OS for B0 */
which I assume means B0 and later.
Those GPIOs exist on B1, which is what we are using. The issue is that LSIOC_GPIO0 - LSIOC_GPIO2 are used by the firmware for resetting the PCIe devices and are controlled by the firmware. This bank shouldn't be mapped for the OS.
Fixed in v2.
Does the OS have a use for this GPIO block in your case? If not, I'd rather we stick with a single dts/dtb combo.
Agreed. and done in v2
gpio@e1050000 { /* [0 : 7] */
compatible = "arm,pl061", "arm,primecell";
#gpio-cells = <0x2>;
reg = <0x0 0xe1050000 0x0 0x1000>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
interrupts = <0x0 0x166 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
gpio@e0020000 { /* [8 : 15] */
status = "disabled";
compatible = "arm,pl061", "arm,primecell";
#gpio-cells = <0x2>;
reg = <0x0 0xe0020000 0x0 0x1000>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
interrupts = <0x0 0x16e 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
gpio@e0030000 { /* [16 : 23] */
status = "disabled";
compatible = "arm,pl061", "arm,primecell";
#gpio-cells = <0x2>;
reg = <0x0 0xe0030000 0x0 0x1000>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
interrupts = <0x0 0x16d 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
gpio@e0080000 { /* [24] */
compatible = "arm,pl061", "arm,primecell";
#gpio-cells = <0x2>;
reg = <0x0 0xe0080000 0x0 0x1000>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
interrupts = <0x0 0x169 0x4>;
clocks = <0x3>;
clock-names = "apb_pclk";
};
ccp: ccp@e0100000 {
compatible = "amd,ccp-seattle-v1a";
reg = <0x0 0xe0100000 0x0 0x10000>;
interrupts = <0x0 0x3 0x4>;
dma-coherent;
amd,zlib-support = <0x1>;
};
pcie: pcie@f0000000 {
compatible = "pci-host-ecam-generic";
#address-cells = <0x3>;
#size-cells = <0x2>;
#interrupt-cells = <0x1>;
device_type = "pci";
bus-range = <0x0 0x7f>;
msi-parent = <0x4>;
reg = <0x0 0xf0000000 0x0 0x10000000>;
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
interrupt-map = <0x1000 0x0 0x0 0x1 0x1 0x0 0x0 0x0 0x120 0x1>,
<0x1000 0x0 0x0 0x2 0x1 0x0 0x0 0x0 0x121 0x1>,
<0x1000 0x0 0x0 0x3 0x1 0x0 0x0 0x0 0x122 0x1>,
<0x1000 0x0 0x0 0x4 0x1 0x0 0x0 0x0 0x123 0x1>;
dma-coherent;
dma-ranges = <0x43000000 0x0 0x0 0x0 0x0 0x100 0x0>;
ranges = <0x1000000 0x0 0x00000000 0x0 0xefff0000 0x00 0x00010000>, /* I/O Memory (size=64K) */
<0x2000000 0x0 0x40000000 0x0 0x40000000 0x00 0x80000000>, /* 32-bit MMIO (size=2G) */
<0x3000000 0x1 0x00000000 0x1 0x00000000 0x7f 0x00000000>; /* 64-bit MMIO (size= 124G) */
};
ccn@0xe8000000 {
compatible = "arm,ccn-504";
reg = <0x0 0xe8000000 0x0 0x1000000>;
interrupts = <0x0 0x17c 0x4>;
};
gwdt@e0bb0000 {
status = "disabled";
compatible = "arm,sbsa-gwdt";
reg = <0x0 0xe0bb0000 0x0 0x10000
0x0 0xe0bc0000 0x0 0x10000>;
reg-names = "refresh", "control";
interrupts = <0x0 0x151 0x4>;
interrupt-names = "ws0";
};
kcs@e0010000 {
status = "disabled";
compatible = "ipmi-kcs";
device_type = "ipmi";
reg = <0x0 0xe0010000 0 0x8>;
interrupts = <0 389 4>;
interrupt-names = "ipmi_kcs";
reg-size = <1>;
reg-spacing = <4>;
};
clk250mhz_0 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <250000000>;
clock-output-names = "xgmacclk0_dma_250mhz";
linux,phandle = <0x5>;
phandle = <0x5>;
};
clk250mhz_1 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <250000000>;
clock-output-names = "xgmacclk0_ptp_250mhz";
linux,phandle = <0x6>;
phandle = <0x6>;
};
clk250mhz_2 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <250000000>;
clock-output-names = "xgmacclk1_dma_250mhz";
linux,phandle = <0x7>;
phandle = <0x7>;
};
clk250mhz_3 {
compatible = "fixed-clock";
#clock-cells = <0x0>;
clock-frequency = <250000000>;
clock-output-names = "xgmacclk1_ptp_250mhz";
linux,phandle = <0x8>;
phandle = <0x8>;
};
phy@e1240800 {
status = "disabled";
compatible = "amd,xgbe-phy-seattle-v1a";
reg = <0x0 0xe1240800 0x0 0x0400>, /* SERDES RX/TX0 */
<0x0 0xe1250000 0x0 0x0060>, /* SERDES IR 1/2 */
<0x0 0xe12500f8 0x0 0x0004>; /* SERDES IR 2/2 */
interrupts = <0x0 0x143 0x4>;
amd,speed-set = <0x0>;
amd,serdes-blwc = <0x1 0x1 0x0>;
amd,serdes-cdr-rate = <0x2 0x2 0x7>;
amd,serdes-pq-skew = <0xa 0xa 0x12>;
amd,serdes-tx-amp = <0xf 0xf 0xa>;
amd,serdes-dfe-tap-config = <0x3 0x3 0x1>;
amd,serdes-dfe-tap-enable = <0x0 0x0 0x7f>;
linux,phandle = <0x9>;
phandle = <0x9>;
};
phy@e1240c00 {
status = "disabled";
compatible = "amd,xgbe-phy-seattle-v1a";
reg = <0x0 0xe1240c00 0x0 0x0400>, /* SERDES RX/TX0 */
<0x0 0xe1250080 0x0 0x0060>, /* SERDES IR 1/2 */
<0x0 0xe12500fc 0x0 0x0004>; /* SERDES IR 2/2 */
interrupts = <0x0 0x142 0x4>;
amd,speed-set = <0x0>;
amd,serdes-blwc = <0x1 0x1 0x0>;
amd,serdes-cdr-rate = <0x2 0x2 0x7>;
amd,serdes-pq-skew = <0xa 0xa 0x12>;
amd,serdes-tx-amp = <0xf 0xf 0xa>;
amd,serdes-dfe-tap-config = <0x3 0x3 0x1>;
amd,serdes-dfe-tap-enable = <0x0 0x0 0x7f>;
linux,phandle = <0xa>;
phandle = <0xa>;
};
xgmac@e0700000 {
status = "disabled";
compatible = "amd,xgbe-seattle-v1a";
reg = <0x0 0xe0700000 0x0 0x80000 0x0 0xe0780000 0x0 0x80000>;
interrupts = <0x0 0x145 0x4>,
<0x0 0x15a 0x1>,
<0x0 0x15b 0x1>,
<0x0 0x15c 0x1>,
<0x0 0x15d 0x1>;
amd,per-channel-interrupt;
mac-address = [02 a1 a2 a3 a4 a5];
clocks = <0x5 0x6>;
clock-names = "dma_clk", "ptp_clk";
phy-handle = <0x9>;
phy-mode = "xgmii";
#stream-id-cells = <0x18>;
dma-coherent;
linux,phandle = <0xb>;
phandle = <0xb>;
};
xgmac@e0900000 {
status = "disabled";
compatible = "amd,xgbe-seattle-v1a";
reg = <0x0 0xe0900000 0x0 0x80000 0x0 0xe0980000 0x0 0x80000>;
interrupts = <0x0 0x144 0x4>,
<0x0 0x155 0x1>,
<0x0 0x156 0x1>,
<0x0 0x157 0x1>,
<0x0 0x158 0x1>;
amd,per-channel-interrupt;
mac-address = [02 b1 b2 b3 b4 b5];
clocks = <0x7 0x8>;
clock-names = "dma_clk", "ptp_clk";
phy-handle = <0xa>;
phy-mode = "xgmii";
#stream-id-cells = <0x18>;
dma-coherent;
linux,phandle = <0xc>;
phandle = <0xc>;
};
};
chosen {
stdout-path = "/smb/serial@e1010000";
/* Note:
* Linux support for pci-probe-only DT is not
* stable. Disable this for now and let Linux
* take care of the resource assignment.
*/
/* linux,pci-probe-only = <1>; */
};
psci {
compatible = "arm,psci-0.2", "arm,psci";
method = "smc";
};
+};
diff --git a/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc b/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc new file mode 100644 index 0000000..b2a5474 --- /dev/null +++ b/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.dsc @@ -0,0 +1,734 @@ +# +# Copyright (c) 2014 - 2016, AMD Incorporated. All rights reserved. +# +# This program and the accompanying materials are licensed and made +# available under the terms and conditions of the BSD License which +# accompanies this distribution. The full text of the license may +# be found at http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +#
+################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines]
+DEFINE DO_XGBE = 0
You can remove this and the dependent blocks completely (we did the same for Cello)
Done in v2.
+DEFINE NUM_CORES = 4 +DEFINE DO_PSCI = 1 +DEFINE DO_ISCP = 1 +DEFINE DO_KCS = 1
- PLATFORM_NAME = Overdrive1000
- PLATFORM_GUID = B2296C02-9DA1-4CD1-BD48-4D4F0F1276EB
Please change the GUID
Done in v2.
- PLATFORM_VERSION = 0.1
- DSC_SPECIFICATION = 0x00010005
- OUTPUT_DIRECTORY = Build/Overdrive1000
- SUPPORTED_ARCHITECTURES = AARCH64
- BUILD_TARGETS = DEBUG|RELEASE
- SKUID_IDENTIFIER = DEFAULT
- FLASH_DEFINITION = OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.fdf
+################################################################################ +# +# Library Class section - list of all Library Classes needed by this Platform. +# +################################################################################ +[LibraryClasses.common] +!if $(TARGET) == RELEASE
- DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
- UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
+!else
- DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
- UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
+!endif
- DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
- BaseLib|MdePkg/Library/BaseLib/BaseLib.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
- PciExpressLib|MdePkg/Library/BasePciExpressLib/BasePciExpressLib.inf
- UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
- CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
- UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
- UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.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
- PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
- # 1/123 faster than Stm or Vstm version
- #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
- BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
This library is deprecated and will be removed. Please switch to MdePkg's BaseMemoryLib (for SEC, PEIM and PEI_CORE) and BaseMemoryLibOptDxe (for remaining module types)
Done in v2.
- # Networking Requirements
- NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
- DpcLib|MdeModulePkg/Library/DxeDpcLib/DxeDpcLib.inf
- UdpIoLib|MdeModulePkg/Library/DxeUdpIoLib/DxeUdpIoLib.inf
- IpIoLib|MdeModulePkg/Library/DxeIpIoLib/DxeIpIoLib.inf
- # ARM Architectural Libraries
- CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
- DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
- CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
- ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
- DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.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
- PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
- ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
- ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA5xLib/ArmCortexA5xLib.inf
- ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
- ArmPlatformLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/AmdStyxLib/AmdStyxLib.inf
- TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
- UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
- # ARM PL011 UART Driver
- PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
- SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
- #
- # PCI support
- #
- PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
- PciLib|MdePkg/Library/BasePciLibPciExpress/BasePciLibPciExpress.inf
- PciHostBridgeLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/AmdStyxPciHostBridgeLib/AmdStyxPciHostBridgeLib.inf
- #
- # Styx specific libraries
- #
- AmdSataInit|AmdModulePkg/Library/AmdSataInitLib/AmdSataInitLib.inf
- AmdStyxAcpiLib|OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiTables.inf
- EfiResetSystemLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/ResetSystemLib/ResetSystemLib.inf
- RealTimeClockLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/RealTimeClockLib/RealTimeClockLib.inf
- CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
- UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
- PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
- CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.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
- DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
- SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
- FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
- DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
- SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
- FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+[LibraryClasses.common.SEC]
- HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
- PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
- MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
- PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
- ArmPlatformLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/AmdStyxLib/AmdStyxLibSec.inf
- ArmPlatformSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf
- DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
- DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
- # Trustzone Support
- ArmTrustedMonitorLib|ArmPlatformPkg/Library/ArmTrustedMonitorLibNull/ArmTrustedMonitorLibNull.inf
- ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
+[LibraryClasses.common.PEIM, LibraryClasses.common.SEC]
- MemoryInitPeiLib|OpenPlatformPkg/Platforms/AMD/Styx/Library/MemoryInitPei/MemoryInitPeiLib.inf
+[LibraryClasses.common.PEI_CORE]
- PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
- HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.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
- PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
- UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
- ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
- PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+[LibraryClasses.common.PEIM]
- PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
- HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.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
- PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
- PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
- UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
- ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
- PeiServicesTablePointerLib|ArmPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
+[LibraryClasses.common.DXE_CORE]
- HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
- MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
- DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
- ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
- UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
- PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
+[LibraryClasses.common.DXE_DRIVER]
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
- SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
- PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
- MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+[LibraryClasses.common.DXE_RUNTIME_DRIVER]
- HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
- MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
- CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
+[LibraryClasses.common.UEFI_APPLICATION]
- UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
- PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
- MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
- HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
- ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
+[LibraryClasses.common.UEFI_DRIVER]
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
- UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
- ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
- PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
- MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
+[LibraryClasses.ARM]
- #
- # 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
+[LibraryClasses.AARCH64]
- NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
- NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
+################################################################################################### +# BuildOptions Section - Define the module specific tool chain flags that should be used as +# the default flags for a module. These flags are appended to any +# standard flags that are defined by the build process. +###################################################################################################
+[BuildOptions]
- RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
You can drop RVCT
Done in v2.
- GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
- *_*_*_ASL_FLAGS = -tc -li -l -so
- *_*_*_ASLPP_FLAGS = -x c -E -P $(ARCHCC_FLAGS)
- *_*_*_ASLCC_FLAGS = -x c $(ARCHCC_FLAGS)
- GCC:*_*_AARCH64_ARCHCC_FLAGS = -DDO_XGBE=$(DO_XGBE) -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
- GCC:*_*_AARCH64_PP_FLAGS = -DDO_XGBE=$(DO_XGBE) -DDO_KCS=$(DO_KCS) -DNUM_CORES=$(NUM_CORES) -DARM_CPU_AARCH64
- GCC:*_*_AARCH64_PLATFORM_FLAGS = -I$(BIN_DIR)/OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiAml/OUTPUT
+[BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
- GCC:*_*_AARCH64_DLINK_FLAGS = -z common-page-size=0x10000
+################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################
+[PcdsFeatureFlag.common]
- gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
- gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
- gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
- gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
This is cargo culted junk. There is no reason to disable these, and dropping them makes the output of dh/drivers/etc much more comprehensible. I intend to remove these for the other board shortly as well.
Removed in v2.
- # All pages are cached by default
- gEmbeddedTokenSpaceGuid.PcdCacheEnable|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
+[PcdsFixedAtBuild.common]
- 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|0x2f
+!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's
- # DEBUG_PAGE 0x00000020 // Alloc & Free's
- # DEBUG_INFO 0x00000040 // Verbose
- # DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
- # DEBUG_VARIABLE 0x00000100 // Variable
- # DEBUG_BM 0x00000400 // Boot Manager
- # DEBUG_BLKIO 0x00001000 // BlkIo Driver
- # DEBUG_NET 0x00004000 // SNI Driver
- # DEBUG_UNDI 0x00010000 // UNDI Driver
- # DEBUG_LOADFILE 0x00020000 // UNDI Driver
- # DEBUG_EVENT 0x00080000 // Event messages
- # DEBUG_GCD 0x00100000 // Global Coherency Database changes
- # DEBUG_CACHE 0x00200000 // Memory range cachability changes
- # DEBUG_ERROR 0x80000000 // Error
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
- gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
- #
- # 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|1000
- gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|1000
- gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
- gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|12000
- gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
- gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
- gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
- gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
- gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
- gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVendor|L"SoftIron Overdrive 1000"
- # Number of configured cores
- gArmPlatformTokenSpaceGuid.PcdCoreCount|$(NUM_CORES)
- # Stacks for MPCores in Normal World
- gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x8001680000
- gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x10000
- gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x800
- # Declare system memory base
- gArmTokenSpaceGuid.PcdSystemMemoryBase|0x8000000000
- # Size of the region used by UEFI in permanent memory (Reserved 64MB)
- gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
- # 40 bits of VA space is sufficient to support up to 512 GB of RAM in the
- # range 0x80_0000_0000 - 0xFF_FFFF_FFFF (all platform and PCI MMIO is below
- # that)
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuMemorySize|40
- #
- # ARM PrimeCell
- #
- ## PL011 - Serial Terminal (Atlas UART)
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x0E1010000
- gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
- gEfiMdePkgTokenSpaceGuid.PcdUartDefaultReceiveFifoDepth|0
- # serial port is clocked at 100MHz
- gArmPlatformTokenSpaceGuid.PL011UartClkInHz|100000000
- gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
- gAmdStyxTokenSpaceGuid.PcdSerialDbgRegisterBase|0x0E1010000
- gAmdStyxTokenSpaceGuid.PcdUartDbgBaudRate|115200
- #
- # ARM General Interrupt Controller
- #
- gArmTokenSpaceGuid.PcdGicDistributorBase|0xE1110000
- gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xE112F000
- #
- # ARM Architectual Timer Frequency
- #
- gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|187500000
- #
- # Bitmask for ports implemented on the SATA controller
- # (2 ports active on Overdrive 1000: 0b00000011 = 0x03)
- #
- gAmdStyxTokenSpaceGuid.PcdSataPi|0x03
- # Only PcdSataPortCount or PcdSata1PortCount are used. The selection is
- # made by #define in Drivers/SataControllerDxe/InitController.c
- gAmdStyxTokenSpaceGuid.PcdSataPortCount|2
- gAmdStyxTokenSpaceGuid.PcdSata1PortCount|0
- # PCIe Support
- gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xF0000000
- gArmTokenSpaceGuid.PcdPciBusMin|0x0
- gArmTokenSpaceGuid.PcdPciBusMax|0xFF
- gArmTokenSpaceGuid.PcdPciIoBase|0x1000
- gArmTokenSpaceGuid.PcdPciIoSize|0xF000
- gArmTokenSpaceGuid.PcdPciIoTranslation|0xEFFF0000
- gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
- gArmTokenSpaceGuid.PcdPciMmio32Base|0x40000000
- gArmTokenSpaceGuid.PcdPciMmio32Size|0x80000000
- gArmTokenSpaceGuid.PcdPciMmio32Translation|0x0
- gArmTokenSpaceGuid.PcdPciMmio64Base|0x100000000
- gArmTokenSpaceGuid.PcdPciMmio64Size|0x7F00000000
- gArmTokenSpaceGuid.PcdPciMmio64Translation|0x0
- ## Use PCI emulation for ATA PassThru
- # gEfiMdeModulePkgTokenSpaceGuid.PcdAtaPassThruPciEmulation|TRUE
- ## ACPI (no tables < 4GB)
- gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiExposedTableVersions|0x20
+!if $(DO_PSCI)
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|TRUE
+!else
- gAmdStyxTokenSpaceGuid.PcdPsciOsSupport|FALSE
+!endif
+!if $(DO_ISCP)
- gAmdStyxTokenSpaceGuid.PcdIscpSupport|TRUE
+!else
- gAmdStyxTokenSpaceGuid.PcdIscpSupport|FALSE
+!endif
Please remove this unless DO_ISCP==FALSE produces a working system
It does boot up with DO_ISCP=0, so I left it.
- # SMBIOS 3.0 only
- gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2
- gAmdModulePkgTokenSpaceGuid.PcdSataNumChPerSerdes|2
- gAmdModulePkgTokenSpaceGuid.PcdSataSerdesBase|0xE1200000
- gAmdModulePkgTokenSpaceGuid.PcdSataSerdesOffset|0x00010000
+!if $(DO_XGBE)
- gAmdModulePkgTokenSpaceGuid.PcdXgbeEnable|TRUE
- gAmdModulePkgTokenSpaceGuid.PcdPort0PhyMode|0
- gAmdModulePkgTokenSpaceGuid.PcdPort1PhyMode|0
- gAmdModulePkgTokenSpaceGuid.PcdPort0NetSpeed|1
- gAmdModulePkgTokenSpaceGuid.PcdPort1NetSpeed|1
+[PcdsDynamicDefault.common]
- gAmdStyxTokenSpaceGuid.PcdEthMacA|0x02A1A2A3A4A5
- gAmdStyxTokenSpaceGuid.PcdEthMacB|0x02B1B2B3B4B5
+[PcdsPatchableInModule]
- gAmdModulePkgTokenSpaceGuid.PcdXgbeUseMacFromIscp|TRUE
- gAmdModulePkgTokenSpaceGuid.PcdXgbeRev|2
+!endif
As mentioned above, you can drop this entirely
Done in V2.
+[PcdsPatchableInModule] +# PCIe Configuration: x4x2x2 (=2 See Include/FDKGionb.h)
- gAmdModulePkgTokenSpaceGuid.PcdPcieCoreConfiguration|2
- gAmdModulePkgTokenSpaceGuid.PcdPciePort0Present|0
- gAmdModulePkgTokenSpaceGuid.PcdPciePort1Present|1
- gAmdModulePkgTokenSpaceGuid.PcdPciePort2Present|1
- gAmdModulePkgTokenSpaceGuid.PcdPcieHardcodeEnumeration|TRUE
+[PcdsDynamicDefault.common]
- gAmdStyxTokenSpaceGuid.PcdSocCoreCount|$(NUM_CORES)
- gArmTokenSpaceGuid.PcdSystemMemorySize|0x0400000000
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64|0x0
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64|0x0
- gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64|0x0
+[PcdsDynamicExHii.common.DEFAULT]
- gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|L"Timeout"|gEfiGlobalVariableGuid|0x0|5
+################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform +# +################################################################################ +[Components.common]
- #
- # PEI Phase modules
- #
- ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
- MdeModulePkg/Core/Pei/PeiMain.inf
- MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
<LibraryClasses>
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
- }
- ArmPlatformPkg/PlatformPei/PlatformPeim.inf
- AmdModulePkg/Iscp/IscpPei.inf
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
- ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
- ArmPkg/Drivers/CpuPei/CpuPei.inf
- MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
- MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
<LibraryClasses>
NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
- }
- #
- # DXE
- #
- MdeModulePkg/Core/Dxe/DxeMain.inf {
<LibraryClasses>
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
- }
- MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
<LibraryClasses>
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/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
- MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
- EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
- EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
- EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
- MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
- #
- # Console IO support
- #
- MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
- MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
- MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
- ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
- ArmPkg/Drivers/TimerDxe/TimerDxe.inf
- #
- # Environment Variables Protocol
- #
- MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
<LibraryClasses>
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
VarCheckLib|MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
- }
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.inf
- #
- # Iscp support
- #
- AmdModulePkg/Iscp/IscpDxe.inf
- #
- # FDT support
- #
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/FdtDxe/FdtDxe.inf {
<LibraryClasses>
# deprecated BdsLib from the ARM BDS
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
- }
- #
- # PCI support
- #
- AmdModulePkg/Gionb/Gionb.inf
- ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
- MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
- MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
- #
- # MP-Boot: ACPI[Parking Protocol] + FDT[Spin-Table]
- #
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/MpBootDxe/MpBootDxe.inf
- #
- # AHCI Support
- #
- MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
- MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
- MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
- MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/SataControllerDxe/SataControllerDxe.inf
- #
- # USB Support
- #
- MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
- MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
- MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
- MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
- MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
+!if $(DO_XGBE)
- #
- # SNP support
- #
- AmdModulePkg/SnpDxe/SnpDxePort0.inf
- AmdModulePkg/SnpDxe/SnpDxePort1.inf
+!endif
- #
- # Marvell Yukon Ethernet (Overdrive 1000 has 88e8059)
- #
- OpenPlatformPkg/Drivers/Net/MarvellYukonDxe/MarvellYukonDxe.inf
- #
- # Networking stack
- #
- MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
- MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
- MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
- MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
+# MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
- MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
- MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf {
<PcdsFixedAtBuild>
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
- }
- MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
- MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
- MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
- MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
- MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
+## Bug https://bugs.linaro.org/show_bug.cgi?id=2239 +# MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
- #
- # Core Info
- #
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
- #
- # ACPI Support
- #
- MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiAml.inf
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
- #
- # SMBIOS Support
- #
- MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
- #
- # FAT filesystem + GPT/MBR partitioning
- #
- MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
- MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
- FatPkg/EnhancedFatDxe/Fat.inf
- MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
- #
- # Bds
- #
- MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
- MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
- MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
- MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
- MdeModulePkg/Application/UiApp/UiApp.inf {
<LibraryClasses>
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
- }
- #
- # Crypto Accelerator support (RNG only)
- #
- OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
- #
- # UEFI application (Shell Embedded Boot Loader)
- #
- ShellPkg/Application/Shell/Shell.inf {
<LibraryClasses>
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf
NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf
NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf
NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf
HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
<PcdsFixedAtBuild>
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFF
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000
- }
diff --git a/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.fdf b/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.fdf new file mode 100644 index 0000000..95fd835 --- /dev/null +++ b/Platforms/AMD/Styx/Overdrive1000Board/Overdrive1000Board.fdf @@ -0,0 +1,412 @@ +# +# Copyright (c) 2014 - 2016, AMD Incorporated. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +#
+################################################################################ +# +# 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.Overdrive1000_ROM] +BaseAddress = 0x8000C80000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash. +Size = 0x00500000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device +ErasePolarity = 1
+# This one is tricky, it must be: BlockSize * NumBlocks = Size +BlockSize = 0x00001000 +NumBlocks = 0x500
+################################################################################ +# +# 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 <FV, DATA, or FILE> +# +################################################################################
+0x00000000|0x00200000 +FILE = OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/Binary/PreUefiFirmware.bin
+0x00200000|0x00260000 +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize +FV = STYX_EFI
+!include OpenPlatformPkg/Platforms/AMD/Styx/Common/Varstore.fdf.inc
+################################################################################ +# +# 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] +FvNameGuid = 94f067ae-2aa6-4b30-aa07-4e47fe518bb8 +BlockSize = 0x40 +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
- 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/FaultTolerantWriteDxe/FaultTolerantWriteDxe.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/EbcDxe/EbcDxe.inf
- INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
- INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
- #
- # Console IO support
- #
- INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
- INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
- INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
- INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
- #
- # FAT filesystem + GPT/MBR partitioning
- #
- INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
- INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
- INF FatPkg/EnhancedFatDxe/Fat.inf
- INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
- #
- # Environment Variables Protocol
- #
- INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxSpiFvDxe/StyxSpiFvDxe.inf
- #
- # Iscp support
- #
- INF AmdModulePkg/Iscp/IscpDxe.inf
- #
- # FDT support
- #
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/FdtDxe/FdtDxe.inf
- FILE FREEFORM = PCD(gAmdStyxTokenSpaceGuid.PcdStyxFdt) {
- SECTION RAW = OpenPlatformPkg/Platforms/AMD/Styx/Overdrive1000Board/FdtBlob/styx-overdrive1000.dtb
- }
- #
- # PCI support
- #
- INF AmdModulePkg/Gionb/Gionb.inf
- INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
- INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
- INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
- #
- # AHCI Support
- #
- INF MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AtaAtapiPassThru.inf
- INF MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
- INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
- INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/SataControllerDxe/SataControllerDxe.inf
- #
- # USB Support
- #
- INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf
- INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
- INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf
- INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
- INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
+!if $(DO_XGBE)
- #
- # SNP support
- #
- INF AmdModulePkg/SnpDxe/SnpDxePort0.inf
- INF AmdModulePkg/SnpDxe/SnpDxePort1.inf
+!endif
- #
- # Marvell Ethernet Driver (Overdrive 1000)
- #
- INF OpenPlatformPkg/Drivers/Net/MarvellYukonDxe/MarvellYukonDxe.inf
- #
- # Networking stack
- #
- INF MdeModulePkg/Universal/Network/SnpDxe/SnpDxe.inf
- INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf
- INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf
- INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf
+# INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf
- INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf
- INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf
- INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf
- INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf
- INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf
- INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf
- INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf
+## Bug https://bugs.linaro.org/show_bug.cgi?id=2239 +# INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf
- #
- # Core Info
- #
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitDxe/PlatInitDxe.inf
- #
- # ACPI Support
- #
- INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
- INF RuleOverride=ACPITABLE OpenPlatformPkg/Platforms/AMD/Styx/AcpiTables/AcpiAml.inf
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/AcpiPlatformDxe/AcpiPlatformDxe.inf
- #
- # MP-Boot: ACPI[Parking Protocol] + FDT[Spin-Table]
- #
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/MpBootDxe/MpBootDxe.inf
- #
- # SMBIOS Support
- #
- INF MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.inf
- #
- # UEFI application (Shell Embedded Boot Loader)
- #
- INF ShellPkg/Application/Shell/Shell.inf
- #
- # Bds
- #
- INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
- INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
- INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
- INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
- INF MdeModulePkg/Application/UiApp/UiApp.inf
- #
- # Crypto Accelerator support (RNG only)
- #
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/StyxRngDxe/StyxRngDxe.inf
+[FV.STYX_EFI] +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
- INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
- INF MdeModulePkg/Core/Pei/PeiMain.inf
- INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
- INF AmdModulePkg/Iscp/IscpPei.inf
- INF OpenPlatformPkg/Platforms/AMD/Styx/Drivers/PlatInitPei/PlatInitPei.inf
- INF ArmPlatformPkg/MemoryInitPei/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
- }
- }
+################################################################################ +# +# Rules are use with the [FV] section's module INF type to define +# how an FFS file is created for a given INF file. The following Rule are the default +# rules for the different module type. User can add the customized rules to define the +# content of the FFS file. +# +################################################################################
+############################################################################ +# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section # +############################################################################ +# +#[Rule.Common.DXE_DRIVER] +# FILE DRIVER = $(NAMED_GUID) { +# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex +# COMPRESS PI_STD { +# GUIDED { +# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi +# UI STRING="$(MODULE_NAME)" Optional +# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) +# } +# } +# } +# +############################################################################
+[Rule.Common.SEC]
- FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
- TE TE Align = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi
- }
+[Rule.Common.PEI_CORE]
- FILE PEI_CORE = $(NAMED_GUID) {
- TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
- UI STRING ="$(MODULE_NAME)" Optional
- }
+[Rule.Common.PEIM]
- FILE PEIM = $(NAMED_GUID) {
PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.PEIM.Binary]
- FILE PEIM = $(NAMED_GUID) {
PEI_DEPEX PEI_DEPEX Optional |.depex
TE TE Align = Auto |.efi
UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.PEIM.TIANOCOMPRESSED]
- FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 {
- PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
- GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE {
PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
UI STRING="$(MODULE_NAME)" Optional
- }
- }
+[Rule.Common.DXE_CORE]
- FILE DXE_CORE = $(NAMED_GUID) {
- PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.UEFI_DRIVER]
- FILE DRIVER = $(NAMED_GUID) {
- DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
- PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.UEFI_DRIVER.Binary]
- FILE DRIVER = $(NAMED_GUID) {
- PE32 PE32 |.efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.DXE_DRIVER]
- FILE DRIVER = $(NAMED_GUID) {
- DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
- PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.DXE_RUNTIME_DRIVER]
- FILE DRIVER = $(NAMED_GUID) {
- DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex
- PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.DXE_RUNTIME_DRIVER.Binary]
- FILE DRIVER = $(NAMED_GUID) {
- DXE_DEPEX DXE_DEPEX Optional |.depex
- PE32 PE32 |.efi
- UI STRING="$(MODULE_NAME)" Optional
- }
+[Rule.Common.UEFI_APPLICATION]
- FILE APPLICATION = $(NAMED_GUID) {
- UI STRING ="$(MODULE_NAME)" Optional
- PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi
- }
+[Rule.Common.UEFI_DRIVER.BINARY]
- FILE DRIVER = $(NAMED_GUID) {
- DXE_DEPEX DXE_DEPEX Optional |.depex
- PE32 PE32 |.efi
- UI STRING="$(MODULE_NAME)" Optional
- VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
- }
+[Rule.Common.UEFI_APPLICATION.BINARY]
- FILE APPLICATION = $(NAMED_GUID) {
- PE32 PE32 |.efi
- UI STRING="$(MODULE_NAME)" Optional
- VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
- }
+[Rule.Common.USER_DEFINED.ACPITABLE]
- FILE FREEFORM = $(NAMED_GUID) {
- RAW ASL |.aml
- }
-- 2.5.0
Thanks Ard for your fast review. I appreciate it.
Alan.