mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-14 23:33:26 +08:00
c0fce92956
The FVP base model is relying on a DT for Linux operation, so there is no reason we would need to rely on hardcoded information for U-Boot. Letting U-Boot use a DT will open up the usage of actual peripherals, beyond the support for semihosting only. Enable OF_CONTROL in the Kconfig, and use the latest dts files from Linux. Depending on whether we use the boot-wrapper or TF-A, there is already a DTB provided or not, respectively. To cover the boot-wrapper, we add an arm64 Linux kernel header, which allows the boot-wrapper to treat U-Boot like a Linux kernel. U-Boot will find the pointer to the DTB in x0, and will use it. Even though TF-A carries a DT, at the moment this is not made available to non-secure world, so to not break users, we use the U-Boot provided DTB copy in that case. For some reason TF-A puts some DT like structure at the address x0 is pointing at, but that is very small and doesn't carry any hardware information. Make the code to ignore those small DTBs. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
50 lines
1.9 KiB
Plaintext
50 lines
1.9 KiB
Plaintext
CONFIG_ARM=y
|
|
# CONFIG_ARM64_CRC32 is not set
|
|
CONFIG_ARCH_VEXPRESS64=y
|
|
CONFIG_SYS_TEXT_BASE=0x88000000
|
|
CONFIG_SYS_MALLOC_LEN=0x840000
|
|
CONFIG_SYS_MALLOC_F_LEN=0x2000
|
|
CONFIG_NR_DRAM_BANKS=2
|
|
CONFIG_ENV_SIZE=0x40000
|
|
CONFIG_ENV_SECT_SIZE=0x40000
|
|
CONFIG_DEFAULT_DEVICE_TREE="fvp-base-revc"
|
|
CONFIG_IDENT_STRING=" vexpress_aemv8a"
|
|
CONFIG_SYS_MEMTEST_START=0x80000000
|
|
CONFIG_SYS_MEMTEST_END=0xff000000
|
|
CONFIG_DISTRO_DEFAULTS=y
|
|
CONFIG_REMAKE_ELF=y
|
|
CONFIG_SYS_LOAD_ADDR=0x90000000
|
|
CONFIG_ANDROID_BOOT_IMAGE=y
|
|
CONFIG_BOOTDELAY=1
|
|
CONFIG_USE_BOOTARGS=y
|
|
CONFIG_BOOTARGS="console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 loglevel=9"
|
|
CONFIG_BOOTCOMMAND="if smhload ${boot_name} ${boot_addr_r}; then setenv bootargs; abootimg addr ${boot_addr_r}; abootimg get dtb --index=0 fdt_addr_r; bootm ${boot_addr_r} ${boot_addr_r} ${fdt_addr_r}; else; setenv fdt_high 0xffffffffffffffff; setenv initrd_high 0xffffffffffffffff; smhload ${kernel_name} ${kernel_addr_r}; smhload ${fdtfile} ${fdt_addr_r}; smhload ${ramdisk_name} ${ramdisk_addr_r} ramdisk_end; fdt addr ${fdt_addr_r}; fdt resize; fdt chosen ${ramdisk_addr_r} ${ramdisk_end}; booti $kernel_addr_r - $fdt_addr_r; fi"
|
|
# CONFIG_DISPLAY_CPUINFO is not set
|
|
# CONFIG_DISPLAY_BOARDINFO is not set
|
|
CONFIG_SYS_PROMPT="VExpress64# "
|
|
# CONFIG_CMD_CONSOLE is not set
|
|
CONFIG_CMD_ABOOTIMG=y
|
|
# CONFIG_CMD_XIMG is not set
|
|
# CONFIG_CMD_EDITENV is not set
|
|
CONFIG_CMD_MEMTEST=y
|
|
CONFIG_CMD_ARMFLASH=y
|
|
# CONFIG_CMD_LOADS is not set
|
|
# CONFIG_CMD_ITEST is not set
|
|
# CONFIG_CMD_SETEXPR is not set
|
|
CONFIG_BOOTP_BOOTFILESIZE=y
|
|
# CONFIG_CMD_NFS is not set
|
|
CONFIG_CMD_CACHE=y
|
|
# CONFIG_CMD_SLEEP is not set
|
|
CONFIG_CMD_UBI=y
|
|
# CONFIG_ISO_PARTITION is not set
|
|
# CONFIG_EFI_PARTITION is not set
|
|
CONFIG_ENV_IS_IN_FLASH=y
|
|
CONFIG_ENV_ADDR=0xFFC0000
|
|
# CONFIG_MMC is not set
|
|
CONFIG_MTD=y
|
|
CONFIG_MTD_NOR_FLASH=y
|
|
CONFIG_FLASH_CFI_DRIVER=y
|
|
CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
|
|
CONFIG_SYS_FLASH_PROTECTION=y
|
|
CONFIG_SYS_FLASH_CFI=y
|