summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-02-21arm: apple: Add M1 Pro/Max supportMark Kettenis
Choose the memory map based on the compatible property from the device tree passed to us by m1n1. Since DRAM on the M1 Pro/Max starts at a different address avoid hardcoding the top of usable memory. Also make sure that the addresses entered into the memory map are page aligned such that we don't crash in dcache_enable(). Signed-off-by: Mark Kettenis <kettenis@openbsd.org> Tested on: Macbook M1 Max Tested-by: Janne Grunau <j@jannau.net>
2022-02-20Merge tag 'u-boot-imx-20220220' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-imx u-boot-imx-20220220 ------------------- CI : https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/11037 - ESDHC fixes - imx8mq : MNT Reform 2 board - imx8m: add support for Advantech RSB-3720 - fixes for imx8mn-ddr4-evk - fixes gateworks boards - doc : fix build for imx8mn_beacon - fuses: compare and read functions - imx8mn-ddr4-evk: boot from SD and Ethernet support
2022-02-19ARM: imx: imx8mn-ddr4-evk: Add ethernet supportMarek Vasut
Add support for ethernet on the imx8mn-ddr4-evk. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Stefano Babic <sbabic@denx.de>
2022-02-19kontron-pitx-imx8m: fix board_mmc_getcd()Heiko Thiery
The function wrongly will return the card detection status of the SD card (USDHC2) for the eMMC (USDHC1). Thus booting from eMMC without an inserted SD card will fail. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-02-19kontron-sl-mx8mm: change environment address variablesHeiko Thiery
Currently the space between kernel_addr_r and the fdt_addr_r is only 32MB. To have enought space to load kernel images bigger than 32MB change the variables to a feasible value. The new environment variables layout is based on the scheme from "include/configs/ti_armv7_common.h". The CONFIG_SYS_LOAD_ADDR value is set to 0x42000000. With that we have the same value as for the kernel_addr_r. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> Reviewed-by: Michael Walle <michael@walle.cc>
2022-02-19colibri-imx6ull: improve env badblock managementFrancesco Dolcini
Use the complete 512kb (4 blocks) nand partition reserved for u-boot environment instead of just the first block, this allows the module to have a working environment even if 3 blocks are bad. Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2022-02-19imx8m: Drop unused function env_get_offsetMichael Trimarchi
This function is used in nxp u-boot tree. Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-19xea: defconfig: Update defconfig to support mtd partitions r/w by nameLukasz Majewski
After this change it would be possible to use 'mtd' command to get access to XEA's SPI-NOR partitions by name (e.g. SPL), not by offsets. To enable this feature the CONFIG_SPI_FLASH_MTD needs to be defined in the Kconfig, not in xea.h. => mtd list => mtd read spl-boot-data1 ${loadaddr} 0x0 4 => md.l ${loadaddr} 1 Signed-off-by: Lukasz Majewski <lukma@denx.de>
2022-02-19ARM: imx: imx8mn-ddr4-evk: Fix boot from SD cardMarek Vasut
Enable missing config options to make the board boot from SD card. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Fabio Estevam <festevam@gmail.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Stefano Babic <sbabic@denx.de>
2022-02-19board: gateworks: venice: config file cleanupsTim Harvey
Clean up config file: - remove unnecessary IMX_FEC_BASE - remove unnecessary comment - remove ipaddr/serverip from env Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-19board: gateworks: venice: add imx8mn-gw7902 supportTim Harvey
The GW7902 is based on the i.MX 8M Mini / Nano SoC featuring: - LPDDR4 DRAM - eMMC FLASH - Gateworks System Controller - LTE CAT M1 modem - USB 2.0 HUB - M.2 Socket with USB2.0, PCIe, and dual-SIM - IMX8M FEC - PCIe based GbE - RS232/RS485/RS422 serial transceiver - GPS - CAN bus - WiFi / Bluetooth - MIPI header (DSI/CSI/GPIO/PWM/I2S) - PMIC To add support for the i.MX8M Nano GW7902: - Add imx8mn-venice dts/defconfig/include - Add imx8mn-gw7902 dts - Add imx8mn-2gb lpddr4 dram configs - Add misc support for IMX8M Nano SoC - rename imx8mm-venice.c to venice.c as it is no longer imx8mm specific - update README with differences for IMX8MN vs IMX8MM Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-19mmc: fsl_esdhc_imx: correct the actual card clockHaibo Chen
The original code logic can not show the correct card clock, and also has one risk when the div is 0. Because there is div -=1 before. So move the operation before div -=1, and also involve ddr_pre_div to get the correct value. Signed-off-by: Haibo Chen <haibo.chen@nxp.com> Reviewed-by: Marek Vasut <marex@denx.de>
2022-02-19mmc: fsl_esdhc_imx: remove redundant ARCH_MXCHaibo Chen
Now original fsl_esdhc.c are split as fsl_esdhc.c and fsl_esdhc_imx.c. fsl_esdhc_imx.c only cover i.MX SoC. So ARCH_MXC is redundant. Signed-off-by: Haibo Chen <haibo.chen@nxp.com> Reviewed-by: Marek Vasut <marex@denx.de>
2022-02-19arm: imx8m: add support for Advantech RSB-3720Ying-Chun Liu (PaulLiu)
Add initial support for Advantech RSB-3720 board. The initial support includes: - MMC - eMMC - I2C - FEC - Serial console Signed-off-by: Darren Huang <darren.huang@advantech.com.tw> Signed-off-by: Kevin12.Chen <Kevin12.Chen@advantech.com.tw> Signed-off-by: Phill.Liu <Phill.Liu@advantech.com.tw> Signed-off-by: Tim Liang <tim.liang@advantech.com.tw> Signed-off-by: wei.zeng <wei.zeng@advantech.com.cn> Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> Cc: uboot-imx <uboot-imx@nxp.com> Cc: Peng Fan (OSS) <peng.fan@oss.nxp.com>
2022-02-19configs/*imx8mn*: remove [SPL_]CLK_COMPOSITE_CCFHeiko Thiery
This option is selected implicitly when [SPL_]CLK_IMX8MN is selected. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-02-19clk: imx: select [SPL_]CLK_COMPOSITE_CCF for imx8mnHeiko Thiery
The clock composite is required when using the clock framework. So select it automatically. Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
2022-02-19imx8mm_beacon/imx8mn_beacon: Update build instructionsAdam Ford
With binman generating flash.bin, it's not longer necessary to specify either the location of ATF nor is it necessary to specify building flash.bin, so let's update the build instructions to remove those. While in here, update the revision of ATF and DDR firmware so both Mini and Nano reference the same revision. Signed-off-by: Adam Ford <aford173@gmail.com> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-19mmc: fsl_esdhc_imx: Use esdhc_soc_data flags to set host capsAdam Ford
The Linux driver automatically can detect and enable UHS, HS200, HS400 and HS400_ES automatically without extra flags being placed into the device tree. Right now, for U-Boot to use UHS, HS200 or HS400, the extra flags are needed in the device tree. Instead, go through the esdhc_soc_data flags and enable the host caps where applicable to automatically enable higher speeds. Suggested-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Adam Ford <aford173@gmail.com>
2022-02-18arm: dts: imx8mq: add MNT Reform 2Patrick Wildt
Device tree taken from Linux v5.16-rc5. Signed-off-by: Patrick Wildt <patrick@blueri.se> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-18freescale: imx8mm_evk: Use IS_ENABLED instead of #ifdefTommaso Merciai
Use IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) to make the code more readable and fix checkpatch.pl warning Signed-off-by: Tommaso Merciai <tomm.merciai@gmail.com>
2022-02-18Enable Fastboot(UUU) for O4-iMX6ULL-NANO boardsOleh Kravchenko
Make O4-iMX6ULL-NANO-based board compatible with Yocto layer meta-out4 and fix device flashing by UUU (aka MFG Tools). Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
2022-02-18imx: spl: Fix typo BMODE_EMI -> BMODE_EIMHarald Seiler
The interface for NOR/OneNAND is called "EIM" not "EMI". Fix this. Signed-off-by: Harald Seiler <hws@denx.de> Reviewed-by: Fabio Estevam <festevam@gmail.com>
2022-02-18cmd: fuse: Add a command to read fuses to memoryAngus Ainslie
With the fuse values in memory we can use some of the other u-boot shell conditonal operators to do tests. Signed-off-by: Angus Ainslie <angus@akkea.ca>
2022-02-18cmd: fuse: add a fuse comparison functionAngus Ainslie
Compare a hexval to the fuse value and return pass or fail. Signed-off-by: Angus Ainslie <angus@akkea.ca>
2022-02-17Merge https://source.denx.de/u-boot/custodians/u-boot-marvellTom Rini
- a37xx: pci: Cleanup and minor fix for root port check (Pali) - pci: mvebu: Ensure that root port is always on root zero bus (Pali) - kwbimage: Fix dumping DATA registers for v0 images (Pali) - kwbimage: Support for parsing extended v0 format (Pali) - a37xx: Fix code and update DTS files to upstream version (Pali) - a37xx: Fix and extend building memory map (Pali) - ddr: marvell: a38x: fix BYTE_HOMOGENEOUS_SPLIT_OUT decision (Marek) - mvebu: Optionally reset board on DDR training failure (Marek)
2022-02-17arm: mvebu: turris_omnia: Reset the board immediately on DDR training failureMarek Behún
The state of the current DDR training code for Armada 38x is such that we cannot be sure it will always train successfully - although after the last change we were yet unable to find a board that failed DDR training, from experience in the last 2 years we know that it is possible. The experience also tells us that in many cases the board fails training only sometimes, and after a reset the training is successful. Enable the new option that makes the board reset itself on DDR training failure immediately. Until now we called hang() in such a case, which meant that the board was reset by the MCU after 120 seconds. Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Pali Rohár <pali@kernel.org>
2022-02-17arm: mvebu: spl: Add option to reset the board on DDR training failureMarek Behún
Some boards may occacionally fail DDR training. Currently we hang() in this case. Add an option that makes the board do an immediate reset in such a case, so that a new training is tried as soon as possible, instead of hanging and possibly waiting for watchdog to reset the board. (If the DDR training fails while booting the image via UART, we will still hang - it doesn't make sense to reset in such a case, because after reset the board will try booting from another medium, and the UART booting utility does not expect that.) Signed-off-by: Marek Behún <marek.behun@nic.cz> Reviewed-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Add me as an author of kwbimagePali Rohár
Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Fix help how to extract DDR3 training codePali Rohár
First binary executable header is extracted by '-p 1' argument. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Add support for NAND_BLKSZ and NAND_BADBLK_LOCATION for v0 ↵Pali Rohár
images These two commands are currently not processed when generating v0 images. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Do not show mkimage error message in dumpimagePali Rohár
When pflag is set then kwbimage was invoked by dumpimage and not mkimage. So do not show mkimage error message in this case. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Add support for dumping extended and binary v0 headersPali Rohár
dumpimage is now able to successfully parse and dump content of the Dove bootloader image. Note that support for generating these extended parts of v0 images is not included yet. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Fix calculating size of kwbimage v0 headerPali Rohár
Extended and binary headers are optional and are part of the image header. Fixes kwboot to determinate correct length of Dove images. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17tools: kwbimage: Define structures for extended kwbimage v0 headersPali Rohár
They are used by Marvell Dove 88AP510 BootROM. After the main header is a list of optional extended headers and after that is a list of optional binary executable headers. Between each two extended headers is additional 0x20 byte long padding. Original Kirkwood SoCs support only one extended header and no binary executable header. Extension of struct ext_hdr_v0 is backward compatible with the old definition. Only reserved[] fields are changed. Signed-off-by: Pali Rohár <pali@kernel.org> Tested-by: Tony Dinh <mibodhi@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17ddr: marvell: a38x: fix BYTE_HOMOGENEOUS_SPLIT_OUT decisionMarek Behún
In commit 3fc92a215b69 ("ddr: marvell: a38x: fix SPLIT_OUT_MIX state decision") I ported a cleaned up and changed version of patch mv_ddr: a380: fix SPLIT_OUT_MIX state decision In the port we removed checking for BYTE_HOMOGENEOUS_SPLIT_OUT bit, because: - the fix seemed to work without it - the bit was checked for only at one place out of two, while the second bit, BYTE_SPLIT_OUT_MIX, was checked for in both cases - without the removal it didn't work on Allied Telesis' x530 board We recently had a chance to test on more boards, and it seems that the change needs to be opposite: instead of removing the check for BYTE_HOMOGENEOUS_SPLIT_OUT from the first if() statement, the check needs to be added also to the second one - it needs to be at both places. With this change all the Turris Omnia boards I have had available to test seem to work, I didn't encounter not even one failed DDR training. As last time, I am noting that I do not understand what this code is actually doing, I haven't studied the DDR training algorithm and I suspect that no one will be able to explain it to U-Boot contributors, so we are left with this blind poking in the code with testing whether it works on several boards and hoping it doesn't break anything for anyone :-(. Signed-off-by: Marek Behún <marek.behun@nic.cz> Tested-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: mvebu: a37xx: Fix comment with name of the functionPali Rohár
Function is named build_mem_map, not a3700_build_mem_map. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Marek Behún <marek.behun@nic.cz>
2022-02-17arm: mvebu: a37xx: Map CCI-400 and AP BootROM address spacePali Rohár
In function build_mem_map() prepare also mapping for CCI-400 and BootROM windows. BootROM window is 1 MB long and by default starts at address 0xfff00000. A53 AP BootROM is 16 kB long and repeats in this BootROM window 64 times. RVBAR_EL3 register is set to value 0xffff0000, so by default A53 AP BootROM is accessed via range 0xffff0000-0xffff3fff. CCI-400 window when new TF-A version is used, starts at address 0xfe000000 and when old TF-A version is used, starts at address 0xd8000000. Physical addresses are read directly from mvebu registers, so if TF-A remaps it in future (again) then it would not cause any issue for U-Boot. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: mvebu: a37xx: Fix calling build_mem_map()Pali Rohár
Function build_mem_map() modifies global variable mem_map. This variable is used by the get_page_table_size() function which is called by function arm_reserve_mmu() (as aliased macro PGTABLE_SIZE). Function arm_reserve_mmu() is called earlier than enable_caches() which calls build_mem_map(). So arm_reserve_mmu() does not calculate reserved memory correctly. Fix this issue by calling build_mem_map() from a3700_dram_init() which is called before arm_reserve_mmu(). Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de> Reviewed-by: Marek Behún <marek.behun@nic.cz>
2022-02-17pci: mvebu: Ensure that root port is always on root zero busPali Rohár
Writing to the PCI_PRIMARY_BUS register of the root port should not change bus number on which is root port present. Same change and exactly same fix as was done in commit for pci-aardvark.c. Fixes: a7b61ab58d5d ("pci: pci_mvebu: Properly configure and use PCI Bridge (PCIe Root Port)") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: pci: Update comment about Command/Direct modePali Rohár
Code is changing PCIe controller from Command mode to Direct mode. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: pci: Register controller also when no PCIe card is connectedPali Rohár
Allow access to config space of PCIe Root Port (which is always present on the root bus) even when PCIe link is down or no card is connected. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: pci: Do not try to access other buses when link is downPali Rohár
If a PIO request is executed while link-down, the whole controller gets stuck in a non-functional state, and even after link comes up again, PIO requests won't work anymore, and a reset of the whole PCIe controller is needed. Therefore we need to prevent sending PIO requests while the link is down. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: Update DTS files to version from upstream Linux kernelPali Rohár
This change updates all Armada 37xx DTS files to version which is used by Linux kernel v5.18. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: espressobin: Explicitly enable eMMC node in -u-boot.dtsiPali Rohár
Official DT bindings for Espressobin have disabled eMMC node. As U-Boot requires to have this node enabled by default, do it in armada-3720-espressobin-u-boot.dtsi DTS file. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: espressobin: Move U-Boot specific partitions node to -u-boot.dtsiPali Rohár
U-Boot specific changes should be in armada-3720-espressobin-u-boot.dtsi DTS file. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: a37xx: Update sdhci pointers to official DT bindingsPali Rohár
In Linux kernel version of armada-37xx.dtsi file sdhci1 pointer refers to sdhci@d0000 node and sdhci0 pointer to sdhci@d8000 node. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17arm: mvebu: turris_mox: Remove hardcoded ethernet node namesPali Rohár
Armada 3720 DTS files in upstream kernel use ethernet nodes named 'ethernet@30000' and 'ethernet@40000'. U-Boot have them named 'neta@30000' and 'neta@40000'. To have Turris Mox U-Boot board code independent of ethernet node names, find ethernet node via alias. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17watchdog: armada_37xx: Convert to official DT bindingsPali Rohár
Official DT bindings have only one reg property: watchdog address space. Convert armada-37xx-wdt.c driver to offical DT bindings and access sel_reg register via MVEBU_REGISTER() macro, as its value (required by U-Boot driver) is not in DT yet. In later stage can be driver cleaned to not use it. This change would allow U-Boot to use A3720 watchdog DTS structure from Linux kernel. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17usb: ehci: ehci-marvell: Update compatible string to official DT bindingsPali Rohár
Official DT bindings use compatible string marvell,armada-3700-ehci. Update drivers and DTS files. Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>
2022-02-17phy: marvell: a3700: Update compatible string to official DT bindingsPali Rohár
In commit d368e1070514 ("phy: marvell: a3700: Convert to official DT bindings in COMPHY driver") was done update to official DT bindings but compatible string of official DT bindings was not updated. Fix it now. Fixes: d368e1070514 ("phy: marvell: a3700: Convert to official DT bindings in COMPHY driver") Signed-off-by: Pali Rohár <pali@kernel.org> Reviewed-by: Stefan Roese <sr@denx.de>