summaryrefslogtreecommitdiff
path: root/board/armltd
AgeCommit message (Collapse)Author
2025-12-06MAINTAINERS: update my email addressLinus Walleij
I am moving over to using my email address at kernel.org. Change this in all the affected MAINTAINERS files. Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Linus Walleij <linusw@kernel.org> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
2025-09-26arm: vexpress64: Enable SYSRESET and SYSRESET_PSCIDebbie Horsfall
Select SYSRESET on Vexpress64 to enable system reset to support other features, such as capsule-on-disk. Select SYSRESET_PSCI if PSCI is inferred from the firmware (via ARM_PSCI_FW). Select ARM_SMCCC for Vexpress64 boards which in turn selects ARM_PSCI_FW. The sysreset uclass unconditionally implements a reset_cpu() function. Remove the empty reset_cpu() in vexpress64 board code. Signed-off-by: Debbie Horsfall <debbie.horsfall@arm.com>
2025-09-26vexpress64: Set the DM_RNG propertyDebbie Horsfall
Enable the DM_RNG virtio random number generator driver in order to consume entropy within U-Boot. This allows U-Boot to inject entropy to the kernel via UEFI, so the kernel can use that early, for instance for address layout randomisation, or when the kernel does not provide an entropy driver itself. Signed-off-by: Debbie Horsfall <debbie.horsfall@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2025-07-24treewide: Remove empty board_init() function from all boardsSam Protsenko
Commit 86acdce2ba88 ("common: add config for board_init() call") introduced CONFIG_BOARD_INIT option. This option can be disabled for the boards where board_init() function is not needed. Remove empty board_init() calls for all boards where it's possible, and disable CONFIG_BOARD_INIT in all related defconfigs. This cleanup was made semi-automatically using these scripts: [1]. No functional change, but the binary size for the modified boards is reduced a bit. [1] https://github.com/joe-skb7/uboot-convert-scripts/tree/master/remove-board-init Signed-off-by: Sam Protsenko <semen.protsenko@linaro.org> Tested-by: Adam Ford <aford173@gmail.com> #imx8mm_beacon Tested-by: Bryan Brattlof <bb@ti.com> Acked-by: Peng Fan <peng.fan@nxp.com> #NXP boards
2025-07-16board: vexpress_ca9x4: Enable D-cache and MMUMark Kettenis
Enable the D-cache, which will also enable the MMU. The latter make sure we don't do unaligned access on Strongly-ordered memory, which has UNPREDICTABLE behaviour according the architecture definition. This fixes using U-Boot with recent versions of QEMU's vexpress-ca9 emulation. Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
2025-05-23board: total_Compute: enable bloblist for SPL handoffJayanth Dodderi Chidanand
Add bloblist support to total_comput platform for passing data from TF-A using the firmware handoff framework. Signed-off-by: Jayanth Dodderi Chidanand <jayanthdodderi.chidanand@arm.com>
2025-02-11board: vexpress64: enable bloblist for SPL handoffHarrison Mutai
Enable bloblist on vexpress64 platforms to facilitate information passing from TF-A using the firmware handoff framework. Signed-off-by: Harrison Mutai <harrison.mutai@arm.com>
2024-12-18fdt: Swap the signature for board_fdt_blob_setup()Simon Glass
This returns a devicetree and updates a parameter with an error code. Swap it, since this fits better with the way U-Boot normally works. It also (more easily) allows leaving the existing pointer unchanged. No yaks were harmed in this change, but there is a very small code-size reduction. For sifive, the OF_BOARD option must be set for the function to be called, so there is no point in checking it again. Also OF_SEPARATE is defined always. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Matthias Brugger <mbrugger@suse.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> [trini: Update total_compute] Signed-off-by: Tom Rini <trini@konsulko.com>
2024-12-06rtc: CONFIGS_RTC_PL031 must depend on CONFIGS_DM_RTCHeinrich Schuchardt
Building qemu_arm64_defconfig with CONFIGS_DM_RTC=n and CONFIGS_RTC_PL031=y leads to a build failure. Adjust the vexpress64 configuration to avoid circular dependency. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
2024-11-22board: armltd: Make myself maintainer for total computeBen Horgan
The previous maintainer is no longer involved in total compute. Signed-off-by: Ben Horgan <ben.horgan@arm.com> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Reviewed-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Update memory mapping infoLeo Yan
This commit introduces build_mem_map() function for updating the mem_map structure with copying info from gd->bd->bi_dram, so that it can keep the consistence for DRAM info passed via DT. The page table size is calculated prior to mem_map is ready, introduce the get_page_table_size() function for a predefined table size. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Support Debian bootLeo Yan
Add booting option for Debian system. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Dynamically detect block deviceLeo Yan
Dynamically detect block device in the boot command, this allows to support both MMC and virtio block devices. Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Minor improvement for boot argumentsBoyan Karatotev
Tell the AVB command that is loading from MMC. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: move the boot command to an env fileBoyan Karatotev
The boot command for Total Compute has many aspects and changes from time to time. So move it to an .env file where it can be a proper script. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: Initialize environment variablesBoyan Karatotev
Initialize the environment variables 'fdt_addr_r' and 'kernel_addr_r' during the misc init phase. The static configurations are not needed, remove them. Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-11-04arm: total_compute: depend on TF-A for hardware descriptionBoyan Karatotev
On Total Compute, TF-A passes the info via DT binding for the hardware description - includes the serial, memory, and arm_ffa nodes. This commit initializes the fdt base address based on the passed the register x1. The similar implementation has already been done for the raspberry pi, so borrow a lot of it. Co-developed-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com> Signed-off-by: Jackson Cooper-Driver <jackson.cooper-driver@arm.com> Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com> Signed-off-by: Leo Yan <leo.yan@arm.com>
2024-08-15maintainers: Update list of maintainers for Corstone-1000Hugues Kamba Mpiana
- Add new maintainer: Hugues KAMBA MPIANA - Remove maintainer: Xueliang ZHONG - Update contact information for current maintainer. Signed-off-by: Hugues KAMBA MPIANA <hugues.kambampiana@arm.com>
2024-07-22board: armltd: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
2024-06-04Merge tag 'v2024.07-rc4' into nextTom Rini
Prepare v2024.070-rc4
2024-05-29Update maintainer for Versatile Express.Kristian Amlie
Signed-off-by: Kristian Amlie <kristian.amlie@northern.tech>
2024-05-20Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"Tom Rini
As part of bringing the master branch back in to next, we need to allow for all of these changes to exist here. Reported-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Tom Rini <trini@konsulko.com>
2024-05-19Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""Tom Rini
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"' I failed to notice that b4 noticed it was based on next and so took that as the base commit and merged that part of next to master. This reverts commit c8ffd1356d42223cbb8c86280a083cc3c93e6426, reversing changes made to 2ee6f3a5f7550de3599faef9704e166e5dcace35. Reported-by: Jonas Karlman <jonas@kwiboo.se> Signed-off-by: Tom Rini <trini@konsulko.com>
2024-05-06board: armltd: Remove <common.h> and add needed includesTom Rini
Remove <common.h> from this board vendor directory and when needed add missing include files directly. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-08-17corstone1000: update maintainersAbdellatif El Khlifi
Update MAINTAINERS of corstone1000 board. Signed-off-by: Xueliang Zhong <xueliang.zhong@arm.com> Signed-off-by: Abdellatif El Khlifi <abdellatif.elkhlifi@arm.com>
2023-08-03vexpress64: Rework MAINTAINERS file slightlyTom Rini
Given that we no longer have a configs/vexpress_aemv8a_defconfig file, drop that and then include at least the aarch64-specific config.h file here. Also move Linus and Peter up to the main entry as well so that they'll get tagged for the board code too and not literally only the defconfig. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-06-19corstone1000: add nvmxip, fwu-mdata and gpt optionsRui Miguel Silva
Enable the newest features: nvmxip, fwu-metadata and gpt. Commands to print the partition info, gpt info and fwu metadata will be available. Adjust also env boot script the address of the bootbank with the new gpt layout, and also remove the not needed kernel address bank0 and bank1 and retrieve function that would test the bank flag before and now we are getting the info from the fwu metadata. Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
2023-06-19corstone1000: set kernel_addr based on boot_idxRui Miguel Silva
We need to distinguish between boot banks and from which partition to load the kernel+initramfs to memory. For that, fetch the boot index, fetch the correspondent partition, calculate the correct kernel address and then set the env variable kernel_addr with that value. Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
2023-06-19corstone1000: add boot indexRui Miguel Silva
it is expected that the firmware that runs before u-boot somehow provide the information of the bank for now we will fetch the info from the metadata since the Secure enclave is the one responsible for this information. Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
2023-04-25vexpress64: Enable VIRTIO_MMIO and RTC_PL031 in the base modelPeter Hoyes
The Arm EBBR (Embedded Base Boot Requirements) require that the time and basic networking EFI interfaces are available and working, so long as the hardware has an RTC and network interface. Arm FVPs typically have a memory-mapped PL031 RTC and a VIRTIO_NET device defined in the device tree, so "imply" these in the Kconfig for the FVP base model to simplify creating EBBR-compliant firmware. Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
2023-04-25vexpress64: Use OF_HAS_PRIOR_STAGE for BASE_FVP variantPeter Hoyes
BASE_FVP now typically uses a devicetree provided by a prior boot stage (typically Arm TF-A), so imply this option by default when TARGET_VEXPRESS64_BASE_FVP is selected. OF_HAS_PRIOR_STAGE selects OF_BOARD so this change is minor, but aligns TARGET_VEXPRESS64_BASE_FVP with TARGET_VEXPRESS64_BASER_FVP. Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> Reviewed-by: Andre Przywara <andre.przywara@arm.com>
2023-03-22arm: Correct cpu_reset function prototype on some platformsTom Rini
Some platforms were not including <cpu_func.h> which sets the prototype for reset_cpu, and in turn had it set wrong. Correct these cases. Signed-off-by: Tom Rini <trini@konsulko.com>
2023-01-20global: Finish CONFIG -> CFG migrationTom Rini
At this point, the remaining places where we have a symbol that is defined as CONFIG_... are in fairly odd locations. While as much dead code has been removed as possible, some of these locations are simply less obvious at first. In other cases, this code is used, but was defined in such a way as to have been missed by earlier checks. Perform a rename of all such remaining symbols to be CFG_... rather than CONFIG_... Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-12-23global: Migrate CONFIG_PL011_CLOCK to CFGTom Rini
Perform a simple rename of CONFIG_PL011_CLOCK to CFG_PL011_CLOCK Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-07global: Remove extraneous DM_ETH imply/selectTom Rini
We only need to enable DM_ETH if we have a networking driver. All networking drivers depend on DM_ETH being enabled, and their selection ensures DM_ETH will be enabled. Signed-off-by: Tom Rini <trini@konsulko.com>
2022-12-05global: Move remaining CONFIG_SYS_* to CFG_SYS_*Tom Rini
The rest of the unmigrated CONFIG symbols in the CONFIG_SYS namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-12-05global: Move remaining CONFIG_SYS_SDRAM_* to CFG_SYS_SDRAM_*Tom Rini
The rest of the unmigrated CONFIG symbols in the CONFIG_SYS_SDRAM namespace do not easily transition to Kconfig. In many cases they likely should come from the device tree instead. Move these out of CONFIG namespace and in to CFG namespace. Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2022-10-31Rename CONFIG_SYS_TEXT_BASE to CONFIG_TEXT_BASESimon Glass
The current name is inconsistent with SPL which uses CONFIG_SPL_TEXT_BASE and this makes it imposible to use CONFIG_VAL(). Rename it to resolve this problem. Signed-off-by: Simon Glass <sjg@chromium.org>
2022-09-29vexpress64: also consider DTB pointer in x1Andre Przywara
Commit c0fce929564f("vexpress64: fvp: enable OF_CONTROL") added code to consider a potential DTB address being passed in the x0 register, or revert to the built-in DTB otherwise. The former case was used when using the boot-wrapper, to which we sell U-Boot as a Linux kernel. The latter was meant for TF-A, for which we couldn't find an easy way to use the DTB it uses itself. We have some quirk to filter for a valid DTB, as TF-A happens to pass a pointer to some special devicetree blob in x0 as well. Now the TF-A case is broken, when enabling proper emulation of secure memory (-C bp.secure_memory=1). TF-A carves out some memory at the top of the first DRAM bank for its own purposes, and configures the TrustZone DRAM controller to make this region secure-only. U-Boot will then hang when it tries to relocate itself exactly to the end of DRAM. TF-A announces this by carving out that region of the /memory node, in the DT it passes on to BL33 in x1, but we miss that so far. Instead of repeating this carveout in our DT copy, let's try to look for a DTB at the address x1 points to as well. This will let U-Boot pick up the DTB provided by TF-A, which has the correct carveout in place, avoiding the hang. While we are at it, make the detection more robust: the length test (is the DT larger than 256 bytes?) is too fragile, in fact the TF-A port for a new FVP model already exceeds this. So we test x1 first, consider 0 an invalid address, and also require a /memory node to detect a valid DTB. And for the records: Some asking around revealed what is really going on with TF-A and that ominous DTB pointer in x0: TF-A expects EDK-2 as its non-secure payload (BL33), and there apparently was some long-standing ad-hoc boot protocol defined just between the two: x0 would carry the MPIDR register value of the boot CPU, and the hardware DTB address would be stored in x1. Now the MPIDR of CPU 0 is typically 0, plus bit 31 set, which is defined as RES1 in the ARMv7 and ARMv8 architectures. This gives 0x80000000, which is the same value as the address of the beginning of DRAM (2GB). And coincidentally TF-A put some DTB structure exactly there, for its own purposes (passing it between stages). So U-Boot was trying to use this DTB, which requires the quirk to check for its validity. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Tested-by: Peter Hoyes <peter.hoyes@arm.com>
2022-08-12net: Remove smc91111 ethernet driverTom Rini
This driver has not been converted to DM_ETH. The migration deadline passed 2 years ago. Cc: Linus Walleij <linus.walleij@linaro.org> Cc: David Feng <fenghua@phytium.com.cn> Cc: Liviu Dudau <liviu.dudau@foss.arm.com> Cc: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Tom Rini <trini@konsulko.com> Acked-by: Ramon Fried <rfried.dev@gmail.com>
2022-06-22corstone1000: Convert to text file environmentTom Rini
Convert this platform to using the text file environment rather than defining CONFIG_EXTRA_ENV_SETTINGS. Signed-off-by: Tom Rini <trini@konsulko.com>
2022-06-22arm: add support to corstone1000 platformRui Miguel Silva
Corstone1000 is a platform from arm, which includes pre verified Corstone SSE710 sub-system that combines Cortex-A and Cortex-M processors [0]. This code adds the support for the Cortex-A35 implementation at host side, it contains also the necessary bits to support the Corstone 1000 FVP (Fixed Virtual Platform) [1] and also the FPGA MPS3 board implementation of this platform. [2] 0: https://developer.arm.com/documentation/102360/0000 1: https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps 2: https://developer.arm.com/documentation/dai0550/c/ Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org> Reviewed-by: Tom Rini <trini@konsulko.com>
2022-04-08arm: integrator: Migrate platform-specific options and cleanup armcoremodule.hTom Rini
This converts the following to Kconfig: CONFIG_CM_INIT CONFIG_CM_REMAP CONFIG_CM_SPD_DETECT CONFIG_CM_MULTIPLE_SSRAM CONFIG_CM_TCRAM We make the first three of these options be always enabled, as that matches usage. We select the last two based on how they were defined in armcoremodule.h. This also allows us to remove some unused code in board/armltd/integrator/lowlevel_init.S Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Andre Przywara <andre.przywara@arm.com> Signed-off-by: Tom Rini <trini@konsulko.com>
2022-04-01vexpress64: Add ARMv8R-64 board variantPeter Hoyes
The ARMv8-R64 architecture introduces optional VMSA (paging based MMU) support in the EL1/0 translation regime, which makes that part mostly compatible to ARMv8-A. Add a new board variant to describe the "BASE-R64" FVP model, which inherits a lot from the existing v8-A FVP support. One major difference is that the memory map in "inverted": DRAM starts at 0x0, MMIO is at 2GB [1]. * Create new TARGET_VEXPRESS64_BASER_FVP target, sharing most of the exising configuration. * Implement inverted memory map in vexpress_aemv8.h * Create vexpress_aemv8r defconfig * Provide an MMU memory map for the BASER_FVP * Update vexpress64 documentation At the moment the boot-wrapper is the only supported secure firmware. As there is no official DT for the board yet, we rely on it being supplied by the boot-wrapper into U-Boot, so use OF_HAS_PRIOR_STAGE, and go with a dummy DT for now. [1] https://developer.arm.com/documentation/100964/1114/Base-Platform/Base---memory/BaseR-Platform-memory-map Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com> [Andre: rebase and add Linux kernel header] Signed-off-by: Andre Przywara <andre.przywara@arm.com> [trini: Add MAINTAINERS entry for Peter]
2022-04-01vexpress64: pick DRAM size from DTAndre Przywara
So far the DRAM size for both the Juno and the FVP model were hardcoded in our config header file. For the Juno this is fine, as all models have 8 GiB of DRAM, but the DRAM size can be configured on the model command line. Drop the fixed DRAM size setup, instead look up the size in the device tree, that we now have for every board. This allows a user to inject a DT with the proper size, and be able to use the full amount of DRAM. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-04-01vexpress64: generalise page table generationAndre Przywara
In preparation for the ARMv8-R64 FVP support, which has DRAM mapped at 0x0, generalise the page table generation, by using symbolic names for the address ranges instead of fixed numbers. We already define the base of the DRAM and MMIO regions, so just use those symbols in the page table description. Rename V2M_BASE to the more speaking V2M_DRAM_BASE on the way. On the VExpress memory map, the address space right after 4GB is of no particular interest to software, as the whole of DRAM is mapped at 32GB instead. The first 2 GB alias to the lower 2GB of DRAM mapped below 4GB, so we skip this part and map some more of the high DRAM, should anyone need it. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-04-01vexpress64: move hardware setting from defconfig to KconfigAndre Przywara
The defconfigs for the Arm Juno board and the FVP model are quite large, setting a lot of platform-fixed variables like SYS_TEXT_BASE. As those values are not really a user choice, let's provide default values for them in our Kconfig file, so a lot of cruft can be removed from the defconfig files. This also moves the driver selection out of there, since this is again not something a user should really decide on. Instead we allow users to enable or disable subsystems, and select the appropriate drivers based on that in the Kconfig file. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-04-01vexpress64: fvp: enable OF_CONTROLAndre Przywara
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-04-01vexpress64: Kconfig: move board definitions out of arch/armAndre Przywara
At the moment we define three "VExpress64" boards in arch/arm/Kconfig, plus have a second Kconfig file in board/armltd/Kconfig. One of those three boards is actually bogus (TARGET_VEXPRESS64_AEMV8A), that stanza looks like being forgotten in a previous cleanup. To remove the clutter from the generic Kconfig file, just define some ARCH_VEXPRESS64 symbol there, enable some common options, and do the board/model specific configuration in the board/armltd Kconfig file. That allows to streamline and fine tune the configuration later, and to also pull a lot of "non user choices" out of the defconfigs. Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-03-25pci: Add defines for normal and subtractive PCI bridgesPali Rohár
Add following two new PCI class codes defines into pci_ids.h include file: PCI_CLASS_BRIDGE_PCI_NORMAL PCI_CLASS_BRIDGE_PCI_SUBTRACTIVE And use these defines in all U-Boot code for describing PCI class codes for normal and subtractive PCI bridges. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>