summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2022-04-01vexpress64: fvp: add distro_boot supportAndre Przywara
So far the FVP model just supports booting through semihosting, so by loading files from the host the model is running on. This allows for quick booting of new kernels (or replacing DTBs), but prevents more featureful boots like using UEFI. Enable the distro_boot feature, and provide a list of possible boot sources that U-Boot should check: - For backwards compatibility we start with semihosting, which gets its commands migrated from CONFIG_BOOTCOMMAND into the distro_boot infrastructure. This is also slightly tweaked to fail graceful in case the required files could not be found. - Next we try to use a user provided script, that could be easily placed into memory using the model command line. - Since we gained virtio support with the enablement of OF_CONTROL, let's check virtio block devices next. This is where UEFI boot can be easily used, for instance by providing a distro installer .iso file through virtio-blk. - Networking is now provided by virtio as well, so enable the default PXE and DHCP boot flows, mostly because we can. Signed-off-by: Andre Przywara <[email protected]>
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 <[email protected]>
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 <[email protected]>
2022-04-01arm: dts: Add Arm FVP Fastmodel RevC .dts files from LinuxAndre Przywara
The Arm Fixed Virtual Platform (FVP) is a software model for an artificial ARM platform, it is available for free on the Arm website[1]. Add the devicetree files for the latest RevC version, as we will need them to enable OF_CONTROL for the vexpress_aemv8a_semi board. This is a verbatim copy of the respective files from Linux v5.17-rc6, which is unchanged from the v5.16 release. [1] https://developer.arm.com/tools-and-software/simulation-models/fast-models Signed-off-by: Andre Przywara <[email protected]>
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 <[email protected]>
2022-04-01Convert CONFIG_SYS_MONITOR_BASE to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_MONITOR_BASE Note that for how this is re-used on some PowePC platforms, we introduce CONFIG_SPL_SYS_MONITOR_BASE and CONFIG_TPL_SYS_MONITOR_BASE and use the CONFIG_VAL macro to get the correct value at build time, in the code. Signed-off-by: Tom Rini <[email protected]>
2022-04-01Convert CONFIG_E300 et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_E300 CONFIG_E5500 Signed-off-by: Tom Rini <[email protected]>
2022-04-01db-mv784mp-gp: Rename CONFIG_DB_784MP_GP to CONFIG_TARGET_DB_MV784MP_GPTom Rini
The value CONFIG_DB_784MP_GP is only used in the DDR code to refer to CONFIG_TARGET_DB_MV784MP_GP so just use that second value directly. Cc: Stefan Roese <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-04-01Convert CONFIG_CLOCK_SYNTHESIZER to KconfigTom Rini
This converts the following to Kconfig: CONFIG_CLOCK_SYNTHESIZER Signed-off-by: Tom Rini <[email protected]>
2022-04-01exynos: Drop CONFIG_CLK_*Tom Rini
We only set one of these values ever at this point, so remove dead code. Cc: Minkyu Kang <[email protected]> Cc: Jaehoon Chung <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Minkyu Kang <[email protected]> Reviewed-by: Jaehoon Chung <[email protected]>
2022-04-01keymile: Move sourcing of common KconfigTom Rini
The way board/keymile/Kconfig is written protects the options there from being parsed on non-keymile platforms. We cannot however safely source this file from multiple locations. This does not manifest as a problem currently as there are no choice statements inside of this file (nor the sub-Kconfig files it sources). However, moving some target selection to one of these files exposes the underlying problem. Rework things so that we have this file sourced in arch/Kconfig. Cc: Holger Brunck <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Holger Brunck <[email protected]>
2022-04-01Convert CONFIG_MCFRTC et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_MCFRTC CONFIG_SYS_MCFRTC_BASE While at it, remove '#undef RTC_DEBUG' from these config files. Signed-off-by: Tom Rini <[email protected]>
2022-04-01Convert CONFIG_MCFTMR to KconfigTom Rini
This converts the following to Kconfig: CONFIG_MCFTMR Signed-off-by: Tom Rini <[email protected]>
2022-04-01Convert CONFIG_CF_DSPI to KconfigTom Rini
This converts the following to Kconfig: CONFIG_CF_DSPI Signed-off-by: Tom Rini <[email protected]>
2022-04-01am33xx: musb: Remove unused configuration logicTom Rini
At this point DM and OF_CONTROL are used to configure how the USB ports are enabled, with the exception of in SPL and no SPL_OF_CONTROL. Remove a bunch of now unused logic to simplify the code. Signed-off-by: Tom Rini <[email protected]>
2022-04-01ARM: dts: colibri-imx6ull: fix mac address passingFrancesco Dolcini
colibri-imx6ull ethernet device is fec2, while the optional secondary ethernet is fec1, update the ethernet aliases in the .dts file so that ethaddr is set to fec2 and eth1addr to fec1. Without this change the ethernet interfaces have a different mac address between Linux and U-Boot. Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2022-04-01ARM: dts: at91: sama5d2: add u-boot, dm-pre-reloc property for TCBClément Léger
In order to use the TCB early in boot and in the SPL, add u-boot,dm-pre-reloc property for the TCB and the clock that is used by the driver (tcb0_clk). Signed-off-by: Clément Léger <[email protected]>
2022-04-01ARM: dts: at91: sama5d2: add TCB nodeClément Léger
Add the device-tree node to describe the TCB timer. Signed-off-by: Clément Léger <[email protected]>
2022-04-01ARM: dts: at91: sama5d2: add AIC nodeClément Léger
When using interrupts property, a global interrupt controller needs to be added to avoid warnings when compiling device-tree: arch/arm/dts/at91-sama5d2_xplained.dtb: Warning (interrupts_property): /ahb/apb/timer@f800c000: Missing interrupt-parent Add AIC node as the sama5d2 global interrupt controller. Signed-off-by: Clément Léger <[email protected]>
2022-04-01timer: atmel_tcb_timer: add atmel_tcb driverClément Léger
Add a driver for the timer counter block that can be found on sama5d2. This driver will be used when booting under OP-TEE since the pit timer which is part of the SYSC is secured. Channel 1 & 2 are configured to be chained together which allows to have a 64bits counter. Reviewed-by: Claudiu Beznea <[email protected]> Signed-off-by: Clément Léger <[email protected]>
2022-04-01ARM: dts: at91: sama7g5/sama7g5ek: align with Linux DTEugen Hristev
Align the DT for sama7g5 SoC and sama7g5 EK board with Linux devicetree in version 5.18. Some things remain still different, due to some things yet unimplemented in certain drivers. These include in PMC, pinctrl, and others. Signed-off-by: Eugen Hristev <[email protected]> Reviewed-by: Tudor Ambarus <[email protected]>
2022-04-01ARM: dts: at91: rename sama7g5ek.dts to at91-sama7g5ek.dtsEugen Hristev
In Linux this DT file is named at91-sama7g5ek.dts. Rename it accordingly. Signed-off-by: Eugen Hristev <[email protected]> Reviewed-by: Tudor Ambarus <[email protected]>
2022-04-01ARM: at91: sama7g5: Reset external devices at software resetTudor Ambarus
sama7g5 and other SoCs (sama5d3, sam9x60) define in the Reset Controller a RSTC_CR.EXTRST bit that asserts the nrst_out pin which resets external devices. This is particular useful for external devices that are configured in stateful modes which can not be undone without reconfiguring the device or without resetting the device. An example is an SPI NOR flash that is configured in octal mode. The do_reset u-boot cmd does not call any driver's remove method, but merely resets the CPU. As the code was, this left the flash in octal mode, being impossible for the first stage boot loaders to recover/identify the flash after a "software reset". RSTC_CR.EXTRST comes in handy here, as it can be set at "software reset" to assert low the nrst_out pin during a time defined by the RSTC_MR.ERSTL field and reset the external devices (including the SPI NOR flash in the example). nrst_out is always asserted at "user reset" and it resets the external devices correctly. Asserting nrst_out at "software reset" should behave in a similar way. The only difference that I could find between the two types of resets in regards to the nrst_out signal, is that at "user reset" timing diagram the "Processor and Peripherals Reset Line" rises after six MD_SLCK cycles after the nrst_out line rose, while at the "software reset" timing diagram the "Processor and Peripherals Reset Line" is active for 3 MD_SLCK cycles + 2 MCK cycles. In other words, in the "software reset" case the nrst_out signal can be active for a longer period of time than the "Processor and Peripherals Reset Line" active time, depending on the RSTC_MR.ERSTL value. Using the default value (zero) for RSTC_MR.ERSTL, worked just fine for the sama7g5 case. Tested QSPI0 and GMAC0/GMAC1 on sama7g5ek rev 4 after a software reset with RSTC_CR.EXTRST=1 and RSTC_MR.ERSTL=0. Signed-off-by: Tudor Ambarus <[email protected]>
2022-04-01configs: Convert AT91RESET_EXTRST to KconfigTudor Ambarus
Convert AT91RESET_EXTRST to Kconfig for easier integration. The symbol is not configurable from menuconfig, it will be automatically selected by SoCs that select it explicitly via the "select" directive. AT91RESET_EXTRST sets the Reset Controller's RSTC_CR.EXTRST bit which asserts the nrst_out pin that resets external devices. Signed-off-by: Tudor Ambarus <[email protected]>
2022-04-01ARM: at91: sama5d2: Enable the use of Galois Tables from ROMTudor Ambarus
sama5d2 contains in its ROM memory BCH code tables for NAND Flash ECC correction. Enable the use of the GF tables defined in ROM. This should speed up the boot process, as the tables are no longer constructed at runtime. Tested with sama5d2-ptc-ek. Reported-by: David Mosberger-Tang <[email protected]> Signed-off-by: Tudor Ambarus <[email protected]>
2022-03-31arch: Kconfig: imply BINMAN for SANDBOXPhilippe Reynes
To be able to use the tool binman on sandbox, the config SANDBOX should imply BINMAN. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Philippe Reynes <[email protected]>
2022-03-31Revert "x86: Move FACP table into separate functions"Andy Shevchenko
Before the culprit patch (see BugLink for the details): => acpi list Name Base Size Detail ---- -------- ----- ------ RSDP 000e4500 24 v02 U-BOOT RSDT 000e4530 38 v01 U-BOOT U-BOOTBL 20220401 INTL 0 XSDT 000e45e0 4c v01 U-BOOT U-BOOTBL 20220401 INTL 0 CSRT 000e5490 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0 FACP 000e54f0 114 v06 U-BOOT U-BOOTBL 20220401 INTL 0 DSDT 000e4780 c06 v02 U-BOOT U-BOOTBL 10000 INTL 20200925 FACS 000e4740 40 MCFG 000e5610 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0 SPCR 000e5650 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0 APIC 000e56a0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0 After the culprit patch: => acpi list Name Base Size Detail ---- -------- ----- ------ RSDP 000e4500 24 v02 U-BOOT RSDT 000e4530 34 v01 U-BOOT U-BOOTBL 20220401 INTL 0 XSDT 000e45e0 44 v01 U-BOOT U-BOOTBL 20220401 INTL 0 CSRT 000e53a0 58 v00 U-BOOT U-BOOTBL 20220401 INTL 0 MCFG 000e5520 3c v01 U-BOOT U-BOOTBL 20220401 INTL 0 SPCR 000e5560 50 v02 U-BOOT U-BOOTBL 20220401 INTL 0 APIC 000e55b0 48 v02 U-BOOT U-BOOTBL 20220401 INTL 0 As a result Linux kernel can't find mandatory tables and fails to boot. Hence, revert it for good. This reverts commit 379d3c1fd6aa490b1ad5697525cfc89b615cf25a. BugLink: https://lore.kernel.org/all/20220131225930.GJ7515@bill-the-cat/ Signed-off-by: Andy Shevchenko <[email protected]>
2022-03-31powerpc: Fix incorrect SYS_IMMR migration valuesTom Rini
When migrating SYS_IMMR, I didn't allow for boards to provide non-default values here. This lead to an incorrect migration on the platforms where CONFIG_SYS_IMMR is set to CONFIG_SYS_CCSRBAR and CONFIG_SYS_CSSRBAR is NOT the same as CONFIG_SYS_CCSRBAR_DEFAULT. Add text to the prompt so that non-default values can be used and re-migrate the platforms that have CONFIG_SYS_IMMR=CONFIG_SYS_CSSRBAR where CONFIG_SYS_CSSRBAR != CONFIG_SYS_CCSRBAR_DEFAULT. Fixes: be7dbb60c5bf ("Convert CONFIG_SYS_IMMR to Kconfig") Reported-by: Pali Rohár <[email protected]> Signed-off-by: Tom Rini <[email protected]> Tested-by: Pali Rohár <[email protected]>
2022-03-29arm64: zynqmp: Add resets property to sdhci nodesSai Krishna Potthuri
Add "resets" property to sdhci nodes. resets property is used to reset the SD host controller when dynamic configuration support is enabled. Signed-off-by: Sai Krishna Potthuri <[email protected]> Signed-off-by: Michal Simek <[email protected]> Link: https://lore.kernel.org/r/f1fe39259c45a37aae56c2835ee8ba187c889d25.1646060367.git.michal.simek@xilinx.com
2022-03-28video: fsl: colibri_vf: Drop FSL DCU driverSimon Glass
This does not use driver model and is more than two years past the migration date. Drop it. It can be added back later if needed. Signed-off-by: Simon Glass <[email protected]>
2022-03-28video: Drop references to CONFIG_VIDEO et alSimon Glass
Drop the Kconfigs which are not used and all references to them. In particular, this drops CONFIG_VIDEO to avoid confusion and allow us to eventually rename CONFIG_DM_VIDEO to CONFIG_VIDEO. Also drop the prototype for video_get_info_str() which is no-longer used. Signed-off-by: Simon Glass <[email protected]> Acked-by: Jason Liu <[email protected]>
2022-03-28video: Drop video_fb headerSimon Glass
This is not used now. Drop it. Signed-off-by: Simon Glass <[email protected]>
2022-03-28video: nexell: Drop unused and invalid codeSimon Glass
Unfortunately this driver uses the old video structure to store things. This is not supported with driver model. Drop the old code and comment out the other pieces, so the maintainer can take a look. Signed-off-by: Simon Glass <[email protected]>
2022-03-28Merge tag 'v2022.04-rc5' into nextTom Rini
Prepare v2022.04-rc5
2022-03-28arm: apple: Fix mem layoutMark Kettenis
The current approach for setting the environment variables that describe the memory layout runs the risk of overlapping with reserved memory regions. Use the lmb code to derive the addresses for these variables instead. Signed-off-by: Mark Kettenis <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-03-28arm: apple: Increase RTKit timeoutHector Martin
The firmware on larger NVMe drives needs more than 100ms to come up. Change the timeout to 1s. Signed-off-by: Hector Martin <[email protected]> Signed-off-by: Mark Kettenis <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-03-26sunxi: dts: Update RGMII phy-mode propertiesAndre Przywara
Commit f11513d99787 ("net: phy: realtek: Add tx/rx delay config for 8211e") made the Realtek PHY driver honour the phy-mode DT property, to set up the proper delay scheme for the RX and TX lines. A similar change in the kernel revealed that those properties were mostly wrong. The kernel DTs got updated over the last few months, but we were missing out on the U-Boot version. Just sync in the phy-mode properties from the mainline kernel, v5.17-rc7, to avoid the breaking DT sync that late in the cycle. This fixes Ethernet operation on the affected boards. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Samuel Holland <[email protected]>
2022-03-26sunxi: Fix old GMAC pinmux setupAndre Przywara
Commit 5bc4cd05d7d4 ("sunxi: move non-essential code out of s_init()") moved the call to eth_init_board() from s_init() into board_init_f(). This means it's now only called from the SPL, which makes sense for most of the other moved low-level functions. However the GMAC pinmux and clock setup in eth_init_board() was not happy about that, so it broke the sun7i GMAC. Since Ethernet is of no use in the SPL anyway, just move the call into board_init(), which is only run in U-Boot proper. This fixes Ethernet operation for the A20 SoCs, which broke in v2022.04-rc1, with the above mentioned commit. Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Tested-by: Petr Štetiar <[email protected]> [a20-olinuxino-lime2]
2022-03-25ARM: dts: ast2600: Add PWM to device treeBilly Tsai
Add the PWM node and enable it for AST2600 EVB Signed-off-by: Billy Tsai <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Chia-Wei Wang <[email protected]>
2022-03-25pinctrl: Add the pinctrl setting for PWM.Billy Tsai
This patchs add the signal description array for PWM pinctrl settings. Signed-off-by: Billy Tsai <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Chia-Wei Wang <[email protected]>
2022-03-25sandbox: video: Replace PCI_CLASS_* macros by one from pci_ids.hPali Rohár
Replace old macros PCI_CLASS_CODE_COMM and PCI_CLASS_SUB_CODE_COMM_SERIAL by new macros defined in pci_ids.h. Old macros would be deleted in followup commit. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-03-25Split CONFIG_CC_OPTIMIZE_FOR_SIZE into two configsSean Anderson
This adds a separate CONFIG_CC_OPTIMIZE_FOR_SPEED option in a choice, in preparation for adding another optimization option. Also convert SH's makefile to use this new option. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-03-25Convert CONFIG_BACKSIDE_L2_CACHE to KconfigTom Rini
This converts the following to Kconfig: CONFIG_BACKSIDE_L2_CACHE Signed-off-by: Tom Rini <[email protected]>
2022-03-25Convert CONFIG_PHY_RESET_DELAY to KconfigTom Rini
This converts the following to Kconfig: CONFIG_PHY_RESET_DELAY Cc: Ramon Fried <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-03-25Convert CONFIG_SYS_FAULT_ECHO_LINK_DOWN to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_FAULT_ECHO_LINK_DOWN Cc: Ramon Fried <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-03-25Convert CONFIG_RESET_PHY_R to KconfigTom Rini
This converts the following to Kconfig: CONFIG_RESET_PHY_R Cc: Ramon Fried <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-03-25Convert CONFIG_AT91_WANTS_COMMON_PHY to KconfigTom Rini
This converts the following to Kconfig: CONFIG_AT91_WANTS_COMMON_PHY Cc: Eugen Hristev <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2022-03-24arm: a37xx: espressobin: Fix non-working SPIPali Rohár
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke SPI support on some Espressobin boards and results in following U-Boot error: Loading Environment from SPIFlash... jedec_spi_nor flash@0: unrecognized JEDEC id bytes: f7, 30, 0b *** Warning - spi_flash_probe_bus_cs() failed, using default environment Before that commit DT node for SPI was called 'spi-flash@0' and after that commit it is called 'flash@0'. Before that commit 'spi-max-frequency' was set to 50000000 and after it is 104000000. Rename DT node 'spi-flash@0 in armada-3720-espressobin-u-boot.dtsi to 'flash@0' and set custom U-Boot 'spi-max-frequency' back to 50000000. With this change SPI is working on Espressobin again and it is detected with JEDEC ids ef, 60, 16 on our tested unit. Loading Environment from SPIFlash... SF: Detected w25q32dw with page size 256 Bytes, erase size 4 KiB, total 4 MiB OK Note that it is unknown why spi-max-frequency with value 104000000 does not work in U-Boot as it works fine with Linux kernel. Also note that in defconfig file configs/mvebu_espressobin-88f3720_defconfig is set option CONFIG_SF_DEFAULT_SPEED=40000000 which is different value than in DT. Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-03-23arm: mvebu: dts: turris_mox: fix non-working USB portMarek Behún
Commit 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") ported Linux's device-tree files for Armada 3720 SOCs. This broke USB port on Turris MOX, because in Linux' DTS the bus voltage supply is described as a `phy-supply` property of connector node, a mechanism that is not supported in U-Boot yet. For now, fix this by adding `vbus-supply` to usb3 node. Fixes: 0934dddc6436 ("arm: a37xx: Update DTS files to version from upstream Linux kernel") Signed-off-by: Marek Behún <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-03-19Merge tag 'dm-pull-18mar22' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dm into next binman FIT improvements various minor sandbox improvements