It is possible to create a generic EFI payload for all x86 boards. The payload is configured to include as many generic drivers as possible. All stuff that touches low-level initialization are not allowed as such is the EFI BIOS's responsibility. Platform specific drivers (like gpio, spi, etc) are not included. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>lime2-spi
parent
3773c6a20a
commit
32151d4017
@ -0,0 +1,36 @@ |
||||
// SPDX-License-Identifier: GPL-2.0+ |
||||
/* |
||||
* Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> |
||||
* |
||||
* Generic EFI payload device tree for x86 targets |
||||
*/ |
||||
|
||||
/dts-v1/; |
||||
|
||||
/include/ "skeleton.dtsi" |
||||
/include/ "serial.dtsi" |
||||
/include/ "keyboard.dtsi" |
||||
/include/ "rtc.dtsi" |
||||
/include/ "tsc_timer.dtsi" |
||||
|
||||
/ { |
||||
model = "EFI x86 Payload"; |
||||
compatible = "efi,x86-payload"; |
||||
|
||||
aliases { |
||||
serial0 = &serial; |
||||
}; |
||||
|
||||
config { |
||||
silent_console = <0>; |
||||
}; |
||||
|
||||
chosen { |
||||
stdout-path = "/serial"; |
||||
}; |
||||
|
||||
pci { |
||||
compatible = "pci-x86"; |
||||
u-boot,dm-pre-reloc; |
||||
}; |
||||
}; |
@ -0,0 +1,38 @@ |
||||
if TARGET_EFI_PAYLOAD |
||||
|
||||
config SYS_BOARD |
||||
default "efi-x86_payload" |
||||
|
||||
config SYS_VENDOR |
||||
default "efi" |
||||
|
||||
config SYS_SOC |
||||
default "efi" |
||||
|
||||
config SYS_CONFIG_NAME |
||||
default "efi-x86_payload" |
||||
|
||||
config SYS_TEXT_BASE |
||||
default 0x00200000 |
||||
|
||||
config BOARD_SPECIFIC_OPTIONS # dummy |
||||
def_bool y |
||||
imply SYS_NS16550 |
||||
imply SCSI |
||||
imply SCSI_AHCI |
||||
imply AHCI_PCI |
||||
imply MMC |
||||
imply MMC_PCI |
||||
imply MMC_SDHCI |
||||
imply MMC_SDHCI_SDMA |
||||
imply USB |
||||
imply USB_EHCI_HCD |
||||
imply USB_XHCI_HCD |
||||
imply USB_STORAGE |
||||
imply USB_KEYBOARD |
||||
imply E1000 |
||||
imply ETH_DESIGNWARE |
||||
imply PCH_GBE |
||||
imply RTL8169 |
||||
|
||||
endif |
@ -0,0 +1,7 @@ |
||||
EFI-X86_PAYLOAD BOARD |
||||
M: Bin Meng <bmeng.cn@gmail.com> |
||||
S: Maintained |
||||
F: board/efi/efi-x86_payload/ |
||||
F: include/configs/efi-x86_payload.h |
||||
F: configs/efi-x86_payload32_defconfig |
||||
F: configs/efi-x86_payload64_defconfig |
@ -0,0 +1,5 @@ |
||||
# SPDX-License-Identifier: GPL-2.0+
|
||||
#
|
||||
# Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
|
||||
|
||||
obj-y += start.o
|
@ -0,0 +1,8 @@ |
||||
/* SPDX-License-Identifier: GPL-2.0+ */ |
||||
/* |
||||
* Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com>
|
||||
*/ |
||||
|
||||
.globl early_board_init
|
||||
early_board_init: |
||||
jmp early_board_init_ret |
@ -0,0 +1,35 @@ |
||||
CONFIG_X86=y |
||||
CONFIG_VENDOR_EFI=y |
||||
CONFIG_DEFAULT_DEVICE_TREE="efi-x86_payload" |
||||
CONFIG_TARGET_EFI_PAYLOAD=y |
||||
CONFIG_FIT=y |
||||
CONFIG_FIT_SIGNATURE=y |
||||
CONFIG_USE_BOOTARGS=y |
||||
CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro" |
||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y |
||||
CONFIG_DISPLAY_BOARDINFO_LATE=y |
||||
CONFIG_LAST_STAGE_INIT=y |
||||
CONFIG_HUSH_PARSER=y |
||||
# CONFIG_CMD_FLASH is not set |
||||
CONFIG_CMD_IDE=y |
||||
CONFIG_CMD_MMC=y |
||||
CONFIG_CMD_PART=y |
||||
CONFIG_CMD_USB=y |
||||
# CONFIG_CMD_SETEXPR is not set |
||||
CONFIG_CMD_DHCP=y |
||||
# CONFIG_CMD_NFS is not set |
||||
CONFIG_CMD_PING=y |
||||
CONFIG_CMD_TIME=y |
||||
CONFIG_CMD_EXT2=y |
||||
CONFIG_CMD_EXT4=y |
||||
CONFIG_CMD_EXT4_WRITE=y |
||||
CONFIG_CMD_FAT=y |
||||
CONFIG_CMD_FS_GENERIC=y |
||||
CONFIG_MAC_PARTITION=y |
||||
CONFIG_ISO_PARTITION=y |
||||
CONFIG_EFI_PARTITION=y |
||||
CONFIG_REGMAP=y |
||||
CONFIG_SYSCON=y |
||||
# CONFIG_PCI_PNP is not set |
||||
CONFIG_EFI=y |
||||
CONFIG_EFI_STUB=y |
@ -0,0 +1,36 @@ |
||||
CONFIG_X86=y |
||||
CONFIG_VENDOR_EFI=y |
||||
CONFIG_DEFAULT_DEVICE_TREE="efi-x86_payload" |
||||
CONFIG_TARGET_EFI_PAYLOAD=y |
||||
CONFIG_FIT=y |
||||
CONFIG_FIT_SIGNATURE=y |
||||
CONFIG_USE_BOOTARGS=y |
||||
CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro" |
||||
CONFIG_SYS_CONSOLE_INFO_QUIET=y |
||||
CONFIG_DISPLAY_BOARDINFO_LATE=y |
||||
CONFIG_LAST_STAGE_INIT=y |
||||
CONFIG_HUSH_PARSER=y |
||||
# CONFIG_CMD_FLASH is not set |
||||
CONFIG_CMD_IDE=y |
||||
CONFIG_CMD_MMC=y |
||||
CONFIG_CMD_PART=y |
||||
CONFIG_CMD_USB=y |
||||
# CONFIG_CMD_SETEXPR is not set |
||||
CONFIG_CMD_DHCP=y |
||||
# CONFIG_CMD_NFS is not set |
||||
CONFIG_CMD_PING=y |
||||
CONFIG_CMD_TIME=y |
||||
CONFIG_CMD_EXT2=y |
||||
CONFIG_CMD_EXT4=y |
||||
CONFIG_CMD_EXT4_WRITE=y |
||||
CONFIG_CMD_FAT=y |
||||
CONFIG_CMD_FS_GENERIC=y |
||||
CONFIG_MAC_PARTITION=y |
||||
CONFIG_ISO_PARTITION=y |
||||
CONFIG_EFI_PARTITION=y |
||||
CONFIG_REGMAP=y |
||||
CONFIG_SYSCON=y |
||||
# CONFIG_PCI_PNP is not set |
||||
CONFIG_EFI=y |
||||
CONFIG_EFI_STUB=y |
||||
CONFIG_EFI_STUB_64BIT=y |
@ -0,0 +1,32 @@ |
||||
/* SPDX-License-Identifier: GPL-2.0+ */ |
||||
/*
|
||||
* Copyright (C) 2018, Bin Meng <bmeng.cn@gmail.com> |
||||
*/ |
||||
|
||||
/*
|
||||
* board/config.h - configuration options, board specific |
||||
*/ |
||||
|
||||
#ifndef __CONFIG_H |
||||
#define __CONFIG_H |
||||
|
||||
#include <configs/x86-common.h> |
||||
|
||||
#define CONFIG_SYS_MONITOR_LEN (1 << 20) |
||||
|
||||
#define CONFIG_STD_DEVICES_SETTINGS "stdin=serial,i8042-kbd\0" \ |
||||
"stdout=serial,vidconsole\0" \
|
||||
"stderr=serial,vidconsole\0" |
||||
|
||||
/* ATA/IDE support */ |
||||
#define CONFIG_SYS_IDE_MAXBUS 2 |
||||
#define CONFIG_SYS_IDE_MAXDEVICE 4 |
||||
#define CONFIG_SYS_ATA_BASE_ADDR 0 |
||||
#define CONFIG_SYS_ATA_DATA_OFFSET 0 |
||||
#define CONFIG_SYS_ATA_REG_OFFSET 0 |
||||
#define CONFIG_SYS_ATA_ALT_OFFSET 0 |
||||
#define CONFIG_SYS_ATA_IDE0_OFFSET 0x1f0 |
||||
#define CONFIG_SYS_ATA_IDE1_OFFSET 0x170 |
||||
#define CONFIG_ATAPI |
||||
|
||||
#endif /* __CONFIG_H */ |
Loading…
Reference in new issue