2022-03-04 16:30:09 +00:00
|
|
|
if ARCH_VEXPRESS64
|
2015-01-23 13:41:10 +00:00
|
|
|
|
|
|
|
config SYS_BOARD
|
|
|
|
default "vexpress64"
|
|
|
|
|
|
|
|
config SYS_VENDOR
|
|
|
|
default "armltd"
|
|
|
|
|
|
|
|
config SYS_CONFIG_NAME
|
2021-11-11 09:26:00 +00:00
|
|
|
default "vexpress_aemv8"
|
2015-01-23 13:41:10 +00:00
|
|
|
|
2022-03-04 16:30:18 +00:00
|
|
|
config VEXPRESS64_BASE_MODEL
|
|
|
|
bool
|
2022-03-04 16:30:09 +00:00
|
|
|
select SEMIHOSTING
|
2022-03-04 16:30:13 +00:00
|
|
|
select VIRTIO_BLK if VIRTIO_MMIO
|
|
|
|
select VIRTIO_NET if VIRTIO_MMIO
|
|
|
|
select DM_ETH if VIRTIO_NET
|
vexpress64: fvp: enable OF_CONTROL
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>
2022-03-04 16:30:11 +00:00
|
|
|
select LINUX_KERNEL_IMAGE_HEADER
|
|
|
|
select POSITION_INDEPENDENT
|
2022-03-04 16:30:18 +00:00
|
|
|
|
|
|
|
choice
|
|
|
|
prompt "VExpress64 board variant"
|
|
|
|
|
|
|
|
config TARGET_VEXPRESS64_BASE_FVP
|
|
|
|
bool "Support Versatile Express ARMv8a FVP BASE model"
|
|
|
|
select VEXPRESS64_BASE_MODEL
|
vexpress64: fvp: enable OF_CONTROL
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>
2022-03-04 16:30:11 +00:00
|
|
|
select OF_BOARD
|
2022-03-04 16:30:09 +00:00
|
|
|
|
2022-03-04 16:30:18 +00:00
|
|
|
config TARGET_VEXPRESS64_BASER_FVP
|
|
|
|
bool "Support Versatile Express ARMv8r64 FVP BASE model"
|
|
|
|
select VEXPRESS64_BASE_MODEL
|
|
|
|
imply OF_HAS_PRIOR_STAGE
|
|
|
|
|
2022-03-04 16:30:09 +00:00
|
|
|
config TARGET_VEXPRESS64_JUNO
|
|
|
|
bool "Support Versatile Express Juno Development Platform"
|
2022-03-04 16:30:13 +00:00
|
|
|
select PCIE_ECAM_GENERIC if PCI
|
|
|
|
select SATA_SIL
|
|
|
|
select SMC911X if DM_ETH
|
|
|
|
select SMC911X_32_BIT if SMC911X
|
|
|
|
select CMD_USB if USB
|
|
|
|
select USB_EHCI_HCD if USB
|
|
|
|
select USB_EHCI_GENERIC if USB
|
|
|
|
select USB_OHCI_HCD if USB
|
|
|
|
select USB_OHCI_GENERIC if USB
|
2022-03-04 16:30:09 +00:00
|
|
|
imply OF_HAS_PRIOR_STAGE
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
arm: juno: Enable OF_CONTROL
The Arm Juno board was still somewhat stuck in "hardcoded land", even
though there are stable DTs around, and one happens to actually be on
the memory mapped NOR flash.
Enable the configuration options to let the board use OF_CONTROL, and
add a routine to find the address of the DTB partition in NOR
flash, to use that for U-Boot's own purposes.
This can also passed on via $fdtcontroladdr to any kernel or EFI
application, removing the need to actually load a device tree.
Since the existing "afs" command and its flash routines require
flash_init() to be called before being usable, and this is done much
later in the boot process, we introduce a stripped-down partition finder
routine in vexpress64.c, to scan the NOR flash partitions for the
DT partition. This location is then used for U-Boot to find and probe
devices.
The name of the partition can be configured, if needed, but defaults
to "board.dtb", which is used by Linaro's firmware image provided.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2020-04-27 18:18:01 +00:00
|
|
|
config JUNO_DTB_PART
|
|
|
|
string "NOR flash partition holding DTB"
|
|
|
|
default "board.dtb"
|
|
|
|
help
|
|
|
|
The ARM partition name in the NOR flash memory holding the
|
|
|
|
device tree blob to configure U-Boot.
|
|
|
|
|
vexpress64: fvp: enable OF_CONTROL
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>
2022-03-04 16:30:11 +00:00
|
|
|
config LNX_KRNL_IMG_TEXT_OFFSET_BASE
|
|
|
|
default SYS_TEXT_BASE
|
|
|
|
|
2022-03-04 16:30:13 +00:00
|
|
|
config SYS_TEXT_BASE
|
|
|
|
default 0x88000000 if TARGET_VEXPRESS64_BASE_FVP
|
|
|
|
default 0xe0000000 if TARGET_VEXPRESS64_JUNO
|
2022-03-04 16:30:18 +00:00
|
|
|
default 0x00001000 if TARGET_VEXPRESS64_BASER_FVP
|
2022-03-04 16:30:13 +00:00
|
|
|
|
|
|
|
config SYS_MALLOC_LEN
|
|
|
|
default 0x810000 if TARGET_VEXPRESS64_JUNO
|
|
|
|
default 0x840000 if TARGET_VEXPRESS64_BASE_FVP
|
|
|
|
|
|
|
|
config SYS_MALLOC_F_LEN
|
|
|
|
default 0x2000
|
|
|
|
|
|
|
|
config SYS_LOAD_ADDR
|
2022-03-04 16:30:18 +00:00
|
|
|
default 0x10000000 if TARGET_VEXPRESS64_BASER_FVP
|
2022-03-04 16:30:13 +00:00
|
|
|
default 0x90000000
|
|
|
|
|
|
|
|
config ENV_ADDR
|
|
|
|
default 0x0BFC0000 if TARGET_VEXPRESS64_JUNO
|
|
|
|
default 0x0FFC0000 if TARGET_VEXPRESS64_BASE_FVP
|
2022-03-04 16:30:18 +00:00
|
|
|
default 0x8FFC0000 if TARGET_VEXPRESS64_BASER_FVP
|
2022-03-04 16:30:13 +00:00
|
|
|
|
|
|
|
config ENV_SIZE
|
|
|
|
default 0x10000 if TARGET_VEXPRESS64_JUNO
|
|
|
|
default 0x40000
|
|
|
|
|
|
|
|
config ENV_SECT_SIZE
|
|
|
|
default 0x10000 if TARGET_VEXPRESS64_JUNO
|
|
|
|
default 0x40000
|
|
|
|
|
2015-01-23 13:41:10 +00:00
|
|
|
endif
|