mb/ocp/deltalake: Add OCP Delta Lake mainboard
OCP Delta Lake server is a one socket server platform powered by Intel Cooper Lake Scalable Processor. The Delta Lake server is a blade of OCP Yosemite V3 multi-host sled. TESTED=Successfully booted on both YV3 config A Delta Lake server and config C Delta Lake server. The coreboot payload is Linux kernel plus u-root as initramfs. Below are the logs of ssh'ing into a config C deltalake server: jonzhang@devvm2573:~$ ssh yv3-cth root@ip's password: Last login: Mon Apr 20 21:56:51 2020 from [root@dhcp-100-96-192-156 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 52 On-line CPU(s) list: 0-51 ... [root@dhcp-100-96-192-156 ~]# cbmem 34 entries total: 0:1st timestamp 28,621,996 40:device configuration 178,835,602 (150,213,605) ... Total Time: 135,276,123,874,479,544 [root@dhcp-100-96-192-156 ~]# cat /proc/cmdline root=UUID=f0fc52f2-e8b8-40f8-ac42-84c9f838394c ro crashkernel=auto selinux=0 console=ttyS1,57600n1 LANG=en_US.UTF-8 earlyprintk=serial,ttyS0,57600 earlyprintk=uart8250,io,0x2f8,57600n1 console=ttyS0,57600n1 loglevel=7 systemd.log_level=debug Signed-off-by: Jonathan Zhang <jonzhang@fb.com> Signed-off-by: Reddy Chagam <anjaneya.chagam@intel.com> Change-Id: I0a5234d483e4ddea1cd37643b41f6aba65729c8e Reviewed-on: https://review.coreboot.org/c/coreboot/+/40387 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
parent
08ef4f10c7
commit
826523b679
|
@ -0,0 +1,17 @@
|
|||
# type this to get working .config:
|
||||
# make defconfig KBUILD_DEFCONFIG=configs/builder/config.ocp.deltalake
|
||||
|
||||
CONFIG_VENDOR_OCP=y
|
||||
CONFIG_BOARD_OCP_DELTALAKE=y
|
||||
CONFIG_HAVE_IFD_BIN=y
|
||||
CONFIG_HAVE_ME_BIN=y
|
||||
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
|
||||
CONFIG_USE_CPU_MICROCODE_CBFS_BINS=y
|
||||
CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS=y
|
||||
CONFIG_CPU_UCODE_BINARIES="site-local/deltalake/mbf5065a.mcb"
|
||||
CONFIG_ADD_FSP_BINARIES=y
|
||||
CONFIG_FSP_T_FILE="site-local/deltalake/Server_T.fd"
|
||||
CONFIG_FSP_M_FILE="site-local/deltalake/Server_M.fd"
|
||||
CONFIG_FSP_S_FILE="site-local/deltalake/Server_S.fd"
|
||||
CONFIG_ME_BIN_PATH="site-local/deltalake/flashregion_2_intel_me.bin"
|
||||
CONFIG_IFD_BIN_PATH="site-local/deltalake/flashregion_0_flashdescriptor.bin"
|
|
@ -0,0 +1,32 @@
|
|||
if BOARD_OCP_DELTALAKE
|
||||
|
||||
config BOARD_SPECIFIC_OPTIONS
|
||||
def_bool y
|
||||
select BOARD_ROMSIZE_KB_65536
|
||||
select FSP_CAR
|
||||
select HAVE_ACPI_TABLES
|
||||
select MAINBOARD_USES_FSP2_0
|
||||
select SOC_INTEL_COOPERLAKE_SP
|
||||
select SUPERIO_ASPEED_AST2400
|
||||
|
||||
config MAINBOARD_DIR
|
||||
string
|
||||
default "ocp/deltalake"
|
||||
|
||||
config MAINBOARD_PART_NUMBER
|
||||
string
|
||||
default "DeltaLake"
|
||||
|
||||
config MAINBOARD_FAMILY
|
||||
string
|
||||
default "DeltaLake"
|
||||
|
||||
config MAX_SOCKET
|
||||
int
|
||||
default 1
|
||||
|
||||
config FMDFILE
|
||||
string
|
||||
default "src/mainboard/$(CONFIG_MAINBOARD_DIR)/board.fmd"
|
||||
|
||||
endif # BOARD_OCP_DELTALAKE
|
|
@ -0,0 +1,2 @@
|
|||
config BOARD_OCP_DELTALAKE
|
||||
bool "DeltaLake"
|
|
@ -0,0 +1,11 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
bootblock-y += bootblock.c
|
||||
|
||||
romstage-y += romstage.c
|
||||
|
||||
ramstage-y += ramstage.c
|
||||
ramstage-$(CONFIG_HAVE_ACPI_TABLES) += fadt.c
|
||||
|
||||
CPPFLAGS_common += -Isrc/mainboard/$(MAINBOARDDIR)/
|
||||
CPPFLAGS_common += -I$(CONFIG_FSP_HEADER_PATH)
|
|
@ -0,0 +1,365 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
/* Enable ACPI _SWS methods */
|
||||
#include <soc/intel/common/acpi/acpi_wake_source.asl>
|
||||
|
||||
Name (_S0, Package () // mandatory system state
|
||||
{
|
||||
0x00, 0x00, 0x00, 0x00
|
||||
})
|
||||
|
||||
Name (_S5, Package () // mandatory system state
|
||||
{
|
||||
0x07, 0x00, 0x00, 0x00
|
||||
})
|
||||
|
||||
/* The APM port can be used for generating software SMIs */
|
||||
OperationRegion (APMP, SystemIO, 0xb2, 2)
|
||||
Field (APMP, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
APMC, 8, // APM command
|
||||
APMS, 8 // APM status
|
||||
}
|
||||
|
||||
/* Port 80 POST */
|
||||
OperationRegion (DBG0, SystemIO, 0x80, 0x02)
|
||||
Field (DBG0, ByteAcc, Lock, Preserve)
|
||||
{
|
||||
IO80, 8,
|
||||
IO81, 8
|
||||
}
|
||||
|
||||
/* IO-Trap at 0x800.
|
||||
* This is the ACPI->SMI communication interface.
|
||||
*/
|
||||
OperationRegion (IO_T, SystemIO, 0x800, 0x10)
|
||||
Field (IO_T, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
Offset (0x8),
|
||||
TRP0, 8 /* IO-Trap at 0x808 */
|
||||
}
|
||||
|
||||
OperationRegion (PSYS, SystemMemory, 0x6D081000, 0x0400)
|
||||
Field (PSYS, ByteAcc, NoLock, Preserve)
|
||||
{
|
||||
PLAT, 32, // Platform ID
|
||||
|
||||
// IOAPIC
|
||||
APC0, 1, // PCH IOAPIC Enable
|
||||
AP00, 1, // PC00 IOAPIC Enable
|
||||
AP01, 1, // PC01 IOAPIC Enable
|
||||
AP02, 1, // PC02 IOAPIC Enable
|
||||
AP03, 1, // PC03 IOAPIC Enable
|
||||
AP04, 1, // PC04 IOAPIC Enable
|
||||
AP05, 1, // PC05 IOAPIC Enable
|
||||
AP06, 1, // PC06 IOAPIC Enable
|
||||
AP07, 1, // PC07 IOAPIC Enable
|
||||
AP08, 1, // PC08 IOAPIC Enable
|
||||
AP09, 1, // PC09 IOAPIC Enable
|
||||
AP10, 1, // PC10 IOAPIC Enable
|
||||
AP11, 1, // PC11 IOAPIC Enable
|
||||
AP12, 1, // PC12 IOAPIC Enable
|
||||
AP13, 1, // PC13 IOAPIC Enable
|
||||
AP14, 1, // PC14 IOAPIC Enable
|
||||
AP15, 1, // PC15 IOAPIC Enable
|
||||
AP16, 1, // PC16 IOAPIC Enable
|
||||
AP17, 1, // PC17 IOAPIC Enable
|
||||
AP18, 1, // PC18 IOAPIC Enable
|
||||
AP19, 1, // PC19 IOAPIC Enable
|
||||
AP20, 1, // PC20 IOAPIC Enable
|
||||
AP21, 1, // PC21 IOAPIC Enable
|
||||
AP22, 1, // PC22 IOAPIC Enable
|
||||
AP23, 1, // PC23 IOAPIC Enable
|
||||
RESA, 7,
|
||||
SKOV, 1, // Override Socket APIC Id
|
||||
RES0, 7,
|
||||
|
||||
// Power Management
|
||||
TPME, 1,
|
||||
CSEN, 1,
|
||||
C3EN, 1,
|
||||
C6EN, 1,
|
||||
C7EN, 1,
|
||||
MWOS, 1,
|
||||
PSEN, 1,
|
||||
EMCA, 1,
|
||||
HWAL, 2,
|
||||
KPRS, 1,
|
||||
MPRS, 1,
|
||||
TSEN, 1,
|
||||
FGTS, 1,
|
||||
OSCX, 1,
|
||||
RESX, 1,
|
||||
|
||||
// RAS
|
||||
CPHP, 8,
|
||||
IIOP, 8,
|
||||
IIOH, 64,
|
||||
PRBM, 32,
|
||||
P0ID, 32,
|
||||
P1ID, 32,
|
||||
P2ID, 32,
|
||||
P3ID, 32,
|
||||
P4ID, 32,
|
||||
P5ID, 32,
|
||||
P6ID, 32,
|
||||
P7ID, 32,
|
||||
P0BM, 64,
|
||||
P1BM, 64,
|
||||
P2BM, 64,
|
||||
P3BM, 64,
|
||||
P4BM, 64,
|
||||
P5BM, 64,
|
||||
P6BM, 64,
|
||||
P7BM, 64,
|
||||
MEBM, 16,
|
||||
MEBC, 16,
|
||||
CFMM, 32,
|
||||
TSSY, 32, // TODO: This is TSSZ in system booted from production FW
|
||||
M0BS, 64,
|
||||
M1BS, 64,
|
||||
M2BS, 64,
|
||||
M3BS, 64,
|
||||
M4BS, 64,
|
||||
M5BS, 64,
|
||||
M6BS, 64,
|
||||
M7BS, 64,
|
||||
M0RN, 64,
|
||||
M1RN, 64,
|
||||
M2RN, 64,
|
||||
M3RN, 64,
|
||||
M4RN, 64,
|
||||
M5RN, 64,
|
||||
M6RN, 64,
|
||||
M7RN, 64,
|
||||
SMI0, 32,
|
||||
SMI1, 32,
|
||||
SMI2, 32,
|
||||
SMI3, 32,
|
||||
SCI0, 32,
|
||||
SCI1, 32,
|
||||
SCI2, 32,
|
||||
SCI3, 32,
|
||||
MADD, 64,
|
||||
CUU0, 128,
|
||||
CUU1, 128,
|
||||
CUU2, 128,
|
||||
CUU3, 128,
|
||||
CUU4, 128,
|
||||
CUU5, 128,
|
||||
CUU6, 128,
|
||||
CUU7, 128,
|
||||
CPSP, 8,
|
||||
ME00, 128,
|
||||
ME01, 128,
|
||||
ME10, 128,
|
||||
ME11, 128,
|
||||
ME20, 128,
|
||||
ME21, 128,
|
||||
ME30, 128,
|
||||
ME31, 128,
|
||||
ME40, 128,
|
||||
ME41, 128,
|
||||
ME50, 128,
|
||||
ME51, 128,
|
||||
ME60, 128,
|
||||
ME61, 128,
|
||||
ME70, 128,
|
||||
ME71, 128,
|
||||
MESP, 16,
|
||||
LDIR, 64,
|
||||
PRID, 32,
|
||||
AHPE, 8,
|
||||
|
||||
// VTD
|
||||
DHRD, 192,
|
||||
ATSR, 192,
|
||||
RHSA, 192,
|
||||
|
||||
// SR-IOV
|
||||
WSIC, 8,
|
||||
WSIS, 16,
|
||||
WSIB, 8,
|
||||
WSID, 8,
|
||||
WSIF, 8,
|
||||
WSTS, 8,
|
||||
WHEA, 8,
|
||||
|
||||
// BIOS Guard
|
||||
BGMA, 64,
|
||||
BGMS, 8,
|
||||
BGIO, 16,
|
||||
BGIL, 8,
|
||||
CNBS, 8,
|
||||
|
||||
// USB3
|
||||
XHMD, 8,
|
||||
SBV1, 8,
|
||||
SBV2, 8,
|
||||
|
||||
// HWPM
|
||||
HWEN, 2,
|
||||
ACEN, 1,
|
||||
HWPI, 1,
|
||||
RES1, 4,
|
||||
|
||||
// IIO
|
||||
BB00, 8,
|
||||
BB01, 8,
|
||||
BB02, 8,
|
||||
BB03, 8,
|
||||
BB04, 8,
|
||||
BB05, 8,
|
||||
BB06, 8,
|
||||
BB07, 8,
|
||||
BB08, 8,
|
||||
BB09, 8,
|
||||
BB10, 8,
|
||||
BB11, 8,
|
||||
BB12, 8,
|
||||
BB13, 8,
|
||||
BB14, 8,
|
||||
BB15, 8,
|
||||
BB16, 8,
|
||||
BB17, 8,
|
||||
BB18, 8,
|
||||
BB19, 8,
|
||||
BB20, 8,
|
||||
BB21, 8,
|
||||
BB22, 8,
|
||||
BB23, 8,
|
||||
BB24, 8,
|
||||
BB25, 8,
|
||||
BB26, 8,
|
||||
BB27, 8,
|
||||
BB28, 8,
|
||||
BB29, 8,
|
||||
BB30, 8,
|
||||
BB31, 8,
|
||||
BB32, 8,
|
||||
BB33, 8,
|
||||
BB34, 8,
|
||||
BB35, 8,
|
||||
BB36, 8,
|
||||
BB37, 8,
|
||||
BB38, 8,
|
||||
BB39, 8,
|
||||
BB40, 8,
|
||||
BB41, 8,
|
||||
BB42, 8,
|
||||
BB43, 8,
|
||||
BB44, 8,
|
||||
BB45, 8,
|
||||
BB46, 8,
|
||||
BB47, 8,
|
||||
SGEN, 8,
|
||||
SG00, 8,
|
||||
SG01, 8,
|
||||
SG02, 8,
|
||||
SG03, 8,
|
||||
SG04, 8,
|
||||
SG05, 8,
|
||||
SG06, 8,
|
||||
SG07, 8,
|
||||
|
||||
// Performance
|
||||
CLOD, 8,
|
||||
|
||||
// XTU
|
||||
XTUB, 32,
|
||||
XTUS, 32,
|
||||
XMBA, 32,
|
||||
DDRF, 8,
|
||||
RT3S, 8,
|
||||
RTP0, 8,
|
||||
RTP3, 8,
|
||||
|
||||
// FPGA
|
||||
FBB0, 8,
|
||||
FBB1, 8,
|
||||
FBB2, 8,
|
||||
FBB3, 8,
|
||||
FBB4, 8,
|
||||
FBB5, 8,
|
||||
FBB6, 8,
|
||||
FBB7, 8,
|
||||
FBL0, 8,
|
||||
FBL1, 8,
|
||||
FBL2, 8,
|
||||
FBL3, 8,
|
||||
FBL4, 8,
|
||||
FBL5, 8,
|
||||
FBL6, 8,
|
||||
FBL7, 8,
|
||||
P0FB, 8,
|
||||
P1FB, 8,
|
||||
P2FB, 8,
|
||||
P3FB, 8,
|
||||
P4FB, 8,
|
||||
P5FB, 8,
|
||||
P6FB, 8,
|
||||
P7FB, 8,
|
||||
FMB0, 32,
|
||||
FMB1, 32,
|
||||
FMB2, 32,
|
||||
FMB3, 32,
|
||||
FMB4, 32,
|
||||
FMB5, 32,
|
||||
FMB6, 32,
|
||||
FMB7, 32,
|
||||
FML0, 32,
|
||||
FML1, 32,
|
||||
FML2, 32,
|
||||
FML3, 32,
|
||||
FML4, 32,
|
||||
FML5, 32,
|
||||
FML6, 32,
|
||||
FML7, 32,
|
||||
FKPB, 32,
|
||||
FKB0, 8,
|
||||
FKB1, 8,
|
||||
FKB2, 8,
|
||||
FKB3, 8,
|
||||
FKB4, 8,
|
||||
FKB5, 8,
|
||||
FKB6, 8,
|
||||
FKB7, 8
|
||||
}
|
||||
|
||||
/* SMI I/O Trap */
|
||||
Method (TRAP, 1, Serialized)
|
||||
{
|
||||
Store (Arg0, SMIF) // SMI Function
|
||||
Store (0, TRP0) // Generate trap
|
||||
Return (SMIF) // Return value of SMI handler
|
||||
}
|
||||
|
||||
/*
|
||||
* The _PIC method is called by the OS to choose between interrupt
|
||||
* routing via the i8259 interrupt controller or the APIC.
|
||||
*
|
||||
* _PIC is called with a parameter of 0 for i8259 configuration and
|
||||
* with a parameter of 1 for Local Apic/IOAPIC configuration.
|
||||
*/
|
||||
|
||||
Method (_PIC, 1)
|
||||
{
|
||||
/* Remember the OS' IRQ routing choice. */
|
||||
Store (Arg0, PICM)
|
||||
}
|
||||
|
||||
/*
|
||||
* The _PTS method (Prepare To Sleep) is called before the OS is
|
||||
* entering a sleep state. The sleep state number is passed in Arg0
|
||||
*/
|
||||
|
||||
Method (_PTS, 1)
|
||||
{
|
||||
}
|
||||
|
||||
/* The _WAK method is called on system wakeup */
|
||||
|
||||
Method (_WAK, 1)
|
||||
{
|
||||
Return (Package (){ 0, 0 })
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
FLASH 64M {
|
||||
SI_ALL@0x0 0x3000000 {
|
||||
SI_DESC@0x0 0x1000
|
||||
SI_ME@0x1000 0x2FE7000
|
||||
PLATFORM_DATA@0x2FE8000 0x10000
|
||||
}
|
||||
SI_BIOS@0x3000000 0x1000000 {
|
||||
FMAP@0x0 0x800
|
||||
COREBOOT(CBFS)@0x800 0xfff800
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
Board name: DeltaLake
|
||||
Category: server
|
||||
ROM protocol: SPI
|
||||
ROM socketed: yes
|
||||
Release year: 2020
|
|
@ -0,0 +1,62 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <bootblock_common.h>
|
||||
#include <device/pci_def.h>
|
||||
#include <device/pci_ops.h>
|
||||
#include <device/pnp_ops.h>
|
||||
#include <intelblocks/lpc_lib.h>
|
||||
#include <intelblocks/pcr.h>
|
||||
#include <soc/intel/common/block/lpc/lpc_def.h>
|
||||
#include <soc/pci_devs.h>
|
||||
#include <soc/pcr_ids.h>
|
||||
#include <superio/aspeed/ast2400/ast2400.h>
|
||||
#include <superio/aspeed/common/aspeed.h>
|
||||
|
||||
#define ASPEED_SIO_PORT 0x2E
|
||||
|
||||
static void enable_espi_lpc_io_windows(void)
|
||||
{
|
||||
/*
|
||||
* Set up decoding windows on PCH over PCR. The CPUs use two of AST2500 SIO ports,
|
||||
* one is connected to debug header (SUART1) and another is used as SOL (SUART2).
|
||||
* For that end it is wired into BMC virtual port.
|
||||
*/
|
||||
uint16_t lpciod = (LPC_IOD_COMB_RANGE | LPC_IOD_COMA_RANGE);
|
||||
uint16_t lpcioe = (LPC_IOE_SUPERIO_2E_2F | LPC_IOE_COMB_EN | LPC_IOE_COMA_EN);
|
||||
|
||||
/* Open IO windows: 0x3f8 for com1 and 02e8 for com2 */
|
||||
pcr_or32(PID_DMI, PCR_DMI_LPCIOD, lpciod);
|
||||
/* LPC I/O enable: com1 and com2 */
|
||||
pcr_or32(PID_DMI, PCR_DMI_LPCIOE, lpcioe);
|
||||
|
||||
/* Enable com1 (0x3f8), com2 (02f8) and superio (0x2e) */
|
||||
pci_write_config16(PCH_DEV_LPC, LPC_IO_DECODE, lpciod);
|
||||
pci_write_config16(PCH_DEV_LPC, LPC_IO_ENABLES, lpcioe);
|
||||
}
|
||||
|
||||
static uint8_t com_to_ast_sio(uint8_t com)
|
||||
{
|
||||
switch (com) {
|
||||
case 0:
|
||||
return AST2400_SUART1;
|
||||
case 1:
|
||||
return AST2400_SUART2;
|
||||
case 2:
|
||||
return AST2400_SUART3;
|
||||
case 4:
|
||||
return AST2400_SUART4;
|
||||
default:
|
||||
return AST2400_SUART1;
|
||||
}
|
||||
}
|
||||
|
||||
void bootblock_mainboard_early_init(void)
|
||||
{
|
||||
/* Open IO windows */
|
||||
enable_espi_lpc_io_windows();
|
||||
|
||||
/* Configure appropriate physical port of SuperIO chip off BMC */
|
||||
const pnp_devfn_t serial_dev = PNP_DEV(ASPEED_SIO_PORT,
|
||||
com_to_ast_sio(CONFIG_UART_FOR_CONSOLE));
|
||||
aspeed_enable_serial(serial_dev, CONFIG_TTYS0_BASE);
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
## SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
chip soc/intel/xeon_sp/cpx
|
||||
|
||||
register "pirqa_routing" = "PCH_IRQ11"
|
||||
register "pirqb_routing" = "PCH_IRQ10"
|
||||
register "pirqc_routing" = "PCH_IRQ11"
|
||||
register "pirqd_routing" = "PCH_IRQ11"
|
||||
register "pirqe_routing" = "PCH_IRQ11"
|
||||
register "pirqf_routing" = "PCH_IRQ11"
|
||||
register "pirqg_routing" = "PCH_IRQ11"
|
||||
register "pirqh_routing" = "PCH_IRQ11"
|
||||
|
||||
# configure device interrupt routing
|
||||
register "ir00_routing" = "0x3210" # IR00, Dev31
|
||||
register "ir01_routing" = "0x3210" # IR01, Dev30
|
||||
register "ir02_routing" = "0x3210" # IR02, Dev29
|
||||
register "ir03_routing" = "0x3210" # IR03, Dev28
|
||||
register "ir04_routing" = "0x3210" # IR04, Dev27
|
||||
|
||||
# configure interrupt polarity control
|
||||
register "ipc0" = "0x00ff4000" # IPC0, PIRQA-H (IRQ16-23) should always be ActiveLow
|
||||
register "ipc1" = "0x00000000" # IPC1
|
||||
register "ipc2" = "0x00000000" # IPC2
|
||||
register "ipc3" = "0x00000000" # IPC3
|
||||
|
||||
# configure MSR_TURBO_RATIO_LIMIT, MSR_TURBO_RATIO_LIMIT_CORES msrs
|
||||
# FB production turbo_ratio_limit is 0x1f1f1f2022222325
|
||||
register "turbo_ratio_limit" = "0x1b1b1b1d20222325"
|
||||
# FB production turbo_ratio_limit_cores is 0x1c1812100c080402
|
||||
register "turbo_ratio_limit_cores" = "0x1c1814100c080402"
|
||||
|
||||
# configure PSTATE_REQ_RATIO for MSR_IA32_PERF_CTRL
|
||||
register "pstate_req_ratio" = "0xa"
|
||||
|
||||
register "coherency_support" = "0"
|
||||
register "ats_support" = "0"
|
||||
|
||||
device cpu_cluster 0 on
|
||||
device lapic 0 on end
|
||||
end
|
||||
|
||||
device domain 0 on
|
||||
device pci 00.0 on end # Host bridge
|
||||
device pci 04.0 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.1 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.2 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.3 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.4 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.5 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.6 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 04.7 on end # Intel SkyLake-E CBDMA Registers
|
||||
device pci 05.0 on end # Intel SkyLake-E MM/Vt-d Configuration Registers
|
||||
device pci 05.2 on end # Intel SkyLake-E RAS
|
||||
device pci 05.4 on end # Intel SkyLake-E IOAPIC
|
||||
device pci 08.0 on end # System peripheral: Intel SkyLake-E Ubox Registers
|
||||
device pci 08.1 on end # Performance counters: Intel SkyLake-E Ubox Registers
|
||||
device pci 08.2 on end # System peripheral: Intel SkyLake-E Ubox Registers
|
||||
device pci 11.0 on end # Intel Device a26c: PCU
|
||||
|
||||
# PCH devices
|
||||
device pci 11.5 on end # Intel C620 Series Chipset Family SSATA Controller [AHCI mode]
|
||||
device pci 14.0 on end # Intel C620 Series Chipset Family USB 3.0 xHCI Controller
|
||||
|
||||
device pci 14.2 on end # Signal processing controller: Intel Device a231
|
||||
device pci 16.0 on end # Communication controller: Intel Device a23a
|
||||
device pci 16.1 on end # Communication controller: Intel Device a23b
|
||||
device pci 16.4 on end # Communication controller: Intel Device a23e
|
||||
device pci 1c.0 on end # PCI bridge: Intel Device a210
|
||||
device pci 1c.4 on end # PCI bridge: Intel Device a214
|
||||
device pci 1c.5 on end # PCI bridge: Intel Device a215
|
||||
device pci 1d.0 on end # PCI bridge: Intel Device a218
|
||||
device pci 1f.0 on end # ISA bridge: Intel Device a245
|
||||
device pci 1f.1 on end # p2sb
|
||||
device pci 1f.2 on end # Memory controller: Intel Device a221
|
||||
device pci 1f.3 on end # Audio device: Intel Device a270
|
||||
device pci 1f.4 on end # Intel C620 Series Chipset Family SMBus
|
||||
device pci 1f.5 on end # Intel C620 Series Chipset Family SPI Controller
|
||||
end
|
||||
end
|
|
@ -0,0 +1,23 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
DefinitionBlock(
|
||||
"dsdt.aml",
|
||||
"DSDT",
|
||||
0x02, // DSDT revision: ACPI v2.0 and up
|
||||
OEM_ID,
|
||||
ACPI_TABLE_CREATOR,
|
||||
0x20110725 // OEM revision
|
||||
)
|
||||
{
|
||||
// platform ACPI tables
|
||||
#include "acpi/platform.asl"
|
||||
|
||||
// global NVS and variables
|
||||
#include <soc/intel/xeon_sp/cpx/acpi/globalnvs.asl>
|
||||
|
||||
#include <cpu/intel/common/acpi/cpu.asl>
|
||||
|
||||
// CPX-SP ACPI tables
|
||||
#include <soc/intel/xeon_sp/cpx/acpi/uncore.asl>
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <acpi/acpi.h>
|
||||
#include <soc/acpi.h>
|
||||
|
||||
void motherboard_fill_fadt(acpi_fadt_t *fadt)
|
||||
{
|
||||
fadt->preferred_pm_profile = PM_ENTERPRISE_SERVER;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <soc/ramstage.h>
|
||||
|
||||
void mainboard_silicon_init_params(FSPS_UPD *params)
|
||||
{
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <fsp/api.h>
|
||||
#include <FspmUpd.h>
|
||||
#include <soc/romstage.h>
|
||||
|
||||
/*
|
||||
* Configure GPIO depend on platform
|
||||
*/
|
||||
static void mainboard_config_gpios(FSPM_UPD *mupd)
|
||||
{
|
||||
/* To be implemented */
|
||||
}
|
||||
|
||||
static void mainboard_config_iio(FSPM_UPD *mupd)
|
||||
{
|
||||
/* To be implemented */
|
||||
}
|
||||
|
||||
void mainboard_memory_init_params(FSPM_UPD *mupd)
|
||||
{
|
||||
mainboard_config_gpios(mupd);
|
||||
mainboard_config_iio(mupd);
|
||||
}
|
Loading…
Reference in New Issue