mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 09:58:52 +09:00
![Michal Simek](/assets/img/avatar_default.png)
In past SPL_ZYNQMP_TWO_SDHCI symbol was introduced to handle boards with
two sdhci controllers. The problem was that U-Boot is registering
controllers based on aliases in DT but bootmode targets specific controller
ID. That's why on boards with one "second" sdhci controller bootmode was
pointing to second controller(MMC2) but alias was setup to mmc0 (the first
controller). And SPL requires to point to mmc0 in this case.
Long time ago commit f101e4bd37
("spl: add support for alternative boot device") added support for handling
multiple bootmodes in SPL. Use this functionality and setup second sdhci
controller as backup boot device.
Below is table with behavior:
HW/bootmode bootorder
sd0/sd0 mmc0/mmc1 (mmc1 never called)
sd1/sd1 mmc1/mmc0 (mmc0 fails and mmc1 is called)
sd0+sd1/sd0 mmc0/mmc1 (mmc1 never called)
sd0+sd1/sd1 mmc1/mmc0 (mmc0 never called)
All other bootmodes are not affected but order can be extended to cover
advance boot flows.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
175 lines
3.8 KiB
Plaintext
175 lines
3.8 KiB
Plaintext
if ARCH_ZYNQMP
|
|
|
|
config SPL_FS_FAT
|
|
default y
|
|
|
|
config SPL_LIBCOMMON_SUPPORT
|
|
default y
|
|
|
|
config SPL_LIBDISK_SUPPORT
|
|
default y
|
|
|
|
config SPL_LIBGENERIC_SUPPORT
|
|
default y
|
|
|
|
config SPL_MMC_SUPPORT
|
|
default y if MMC_SDHCI_ZYNQ
|
|
|
|
config SPL_SERIAL_SUPPORT
|
|
default y
|
|
|
|
config SPL_SPI_FLASH_SUPPORT
|
|
default y if ZYNQ_QSPI
|
|
|
|
config SPL_SPI_SUPPORT
|
|
default y if ZYNQ_QSPI
|
|
|
|
config SYS_BOARD
|
|
default "zynqmp"
|
|
|
|
config SYS_VENDOR
|
|
string "Vendor name"
|
|
default "xilinx"
|
|
|
|
config SYS_SOC
|
|
default "zynqmp"
|
|
|
|
config SYS_CONFIG_NAME
|
|
string "Board configuration name"
|
|
default "xilinx_zynqmp"
|
|
help
|
|
This option contains information about board configuration name.
|
|
Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
|
|
will be used for board configuration.
|
|
|
|
config SYS_MEM_RSVD_FOR_MMU
|
|
bool "Reserve memory for MMU Table"
|
|
help
|
|
If defined this option is used to setup different space for
|
|
MMU table than the one which will be allocated during
|
|
relocation.
|
|
|
|
config BOOT_INIT_FILE
|
|
string "boot.bin init register filename"
|
|
depends on SPL
|
|
default ""
|
|
help
|
|
Add register writes to boot.bin format (max 256 pairs).
|
|
Expect a table of register-value pairs, e.g. "0x12345678 0x4321"
|
|
|
|
config PMUFW_INIT_FILE
|
|
string "PMU firmware"
|
|
depends on SPL
|
|
default ""
|
|
help
|
|
Include external PMUFW (Platform Management Unit FirmWare) to
|
|
a Xilinx bootable image (boot.bin).
|
|
|
|
config ZYNQMP_SPL_PM_CFG_OBJ_FILE
|
|
string "PMU firmware configuration object to load at runtime by SPL"
|
|
depends on SPL
|
|
help
|
|
Path to a binary PMU firmware configuration object to be linked
|
|
into U-Boot SPL and loaded at runtime into the PMU firmware.
|
|
|
|
The ZynqMP Power Management Unit (PMU) needs a configuration
|
|
object for most SoC peripherals to work. To have it loaded by
|
|
U-Boot SPL set here the file name (absolute path or relative to
|
|
the top source tree) of your configuration, which must be a
|
|
binary blob. It will be linked in the SPL binary and loaded
|
|
into the PMU firmware by U-Boot SPL during board
|
|
initialization.
|
|
|
|
Leave this option empty if your PMU firmware has a hard-coded
|
|
configuration object or you are loading it by any other means.
|
|
|
|
config ZYNQMP_USB
|
|
bool "Configure ZynqMP USB"
|
|
|
|
config ZYNQMP_NO_DDR
|
|
bool "Disable DDR MMU mapping"
|
|
help
|
|
This option configures MMU with no DDR to avoid speculative
|
|
access to DDR memory where DDR is not present.
|
|
|
|
config SYS_MALLOC_F_LEN
|
|
default 0x600
|
|
|
|
config DEFINE_TCM_OCM_MMAP
|
|
bool "Define TCM and OCM memory in MMU Table"
|
|
default y if MP
|
|
help
|
|
This option if enabled defines the TCM and OCM memory and its
|
|
memory attributes in MMU table entry.
|
|
|
|
config ZYNQMP_PSU_INIT_ENABLED
|
|
bool "Include psu_init"
|
|
help
|
|
Include psu_init to full u-boot. SPL include psu_init by default.
|
|
|
|
config SPL_ZYNQMP_ALT_BOOTMODE_ENABLED
|
|
bool "Overwrite SPL bootmode"
|
|
depends on SPL
|
|
help
|
|
Overwrite bootmode selected via boot mode pins to tell SPL what should
|
|
be the next boot device.
|
|
|
|
config ZYNQ_SDHCI_MAX_FREQ
|
|
default 200000000
|
|
|
|
config SPL_ZYNQMP_ALT_BOOTMODE
|
|
hex
|
|
default 0x0 if JTAG_MODE
|
|
default 0x1 if QSPI_MODE_24BIT
|
|
default 0x2 if QSPI_MODE_32BIT
|
|
default 0x3 if SD_MODE
|
|
default 0x4 if NAND_MODE
|
|
default 0x5 if SD_MODE1
|
|
default 0x6 if EMMC_MODE
|
|
default 0x7 if USB_MODE
|
|
default 0xa if SW_USBHOST_MODE
|
|
default 0xb if SW_SATA_MODE
|
|
default 0xe if SD1_LSHFT_MODE
|
|
|
|
choice
|
|
prompt "Boot mode"
|
|
depends on SPL_ZYNQMP_ALT_BOOTMODE_ENABLED
|
|
default JTAG_MODE
|
|
|
|
config JTAG_MODE
|
|
bool "JTAG_MODE"
|
|
|
|
config QSPI_MODE_24BIT
|
|
bool "QSPI_MODE_24BIT"
|
|
|
|
config QSPI_MODE_32BIT
|
|
bool "QSPI_MODE_32BIT"
|
|
|
|
config SD_MODE
|
|
bool "SD_MODE"
|
|
|
|
config SD_MODE1
|
|
bool "SD_MODE1"
|
|
|
|
config NAND_MODE
|
|
bool "NAND_MODE"
|
|
|
|
config EMMC_MODE
|
|
bool "EMMC_MODE"
|
|
|
|
config USB_MODE
|
|
bool "USB"
|
|
|
|
config SW_USBHOST_MODE
|
|
bool "SW USBHOST_MODE"
|
|
|
|
config SW_SATA_MODE
|
|
bool "SW SATA_MODE"
|
|
|
|
config SD1_LSHFT_MODE
|
|
bool "SD1_LSHFT_MODE"
|
|
|
|
endchoice
|
|
|
|
endif
|