summaryrefslogtreecommitdiff
path: root/board/toradex
AgeCommit message (Collapse)Author
2025-03-24Merge tag 'v2025.04-rc5' into nextTom Rini
Prepare v2025.04-rc5
2025-03-20board: verdin-am62: remove spl_perform_fixupsStefan Eichenberger
spl_perform_fixups is redundant in the current implementation. SPLs call dram_init during spl_enable_cache in arch/arm/mach-k3/common.c. In U-Boot, dram_init and dram_init_banksize are automatically called in init_sequence_f. Therefore, SPLs and U-Boot always determine the correct RAM size. During Linux boot, fdt_fixup_memory_banks adjusts the RAM size in the Linux device tree, ensuring correct RAM usage. dram_init() calls get_ram_size() for the Verdin AM62, which determines the correct RAM size through read/write operations. However, due to the K3 bootflow placing ATF in RAM and requiring cache coherence, calling get_ram_size() with caches enabled prevents ATF boot. Removing this call restores ATF boot functionality. This fixes a regression introduced in commit 4164289db882 ("board: verdin-am62: fix missing memory fixup call") which prevents some of our Verdin AM62 modules from booting. Fixes: 4164289db882 ("board: verdin-am62: fix missing memory fixup call") Signed-off-by: Stefan Eichenberger <[email protected]>
2025-03-13board: toradex: apalis/colibri imx6: Detect new v1.2 SoM variantErnest Van Hoecke
Apalis/Colibri iMX6 V1.2 will replace the STMPE811 ADC/Touch controller which is EOL by the TLA2024 ADC and AD7879 touch controller. To support this new version, we detect the presence of the TLA2024 during boot and set a new environment variable named "variant". This will allow us and users to select the correct DT easily. By probing via I2C we have a robust detection method instead of relying on the existing "board_rev" environment variable which is set by the config block. Users can use "variant" in their DT selection and do not have to map the board revision to a device tree. "variant" environment variable behaviour: * Empty or absent for all versions below v1.2 (STMPE811) * "-v1.2" for all versions starting from v1.2 (TLA2024 + AD7879) Usage example: setenv fdtfile imx6q-apalis${variant}-${fdt_board}.dtb Signed-off-by: Ernest Van Hoecke <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2025-03-04board: verdin-am62: fix missing memory fixup callStefan Eichenberger
The commit bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") broke DRAM support for the Verdin AM62. This was partially fixed with commit 3f866c47b582 ("board: verdin-am62: add dram_init_banksize"). However, because fixup_memory_node was not called, the Linux kernel was started with the wrong memory size on modules with less memory available. This resulted in boot failures. Fix this issue by calling fixup_memory_node in the board file. spl_perform_fixups will be called in the SPL and now sets the correct memory size in the device tree of U-Boot by calling fixup_memory_node. U-Boot will then adjust the memory sizes of Linux during bootm/booti in fdt_fixup_memory_banks. This chain ensures that U-Boot and Linux only use RAM that is actually available. Fixes: 3f866c47b582 ("board: verdin-am62: add dram_init_banksize") Fixes: bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") Signed-off-by: Stefan Eichenberger <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2025-02-19board: verdin-am62: add dram_init_banksizeStefan Eichenberger
Add the dram_init_banksize function to the board file to properly set DRAM memory sizes during boot. The commit bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") relocated the dram_init_banksize function from architecture specific initialization to the TI board initialization code. As a result, boards relying on the previous setup now require this function to be defined within their board file to handle DRAM sizing correctly. Without this function defined the following error appears during boot: ERROR: Failed to allocate 0x1000 bytes below 0x0. Fixes: bc07851897bd ("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") Signed-off-by: Stefan Eichenberger <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2025-01-31toradex: tdx-cfg-block: fix switch to user partitionStefan Eichenberger
The Toradex configuration block is stored in the first boot partition of the eMMC. After reading the configuration block, U-Boot switches back to the user partition. Currently, this operation always targets mmc device 0, even when the configuration block is stored on mmc device 2. This patch addresses the issue by switching the mmc device set in CONFIG_TDX_CFG_BLOCK_DEV to the user partition, rather than using the hardcoded device 0. Fixes: a2777ecb9d11 ("toradex: config block handling") Signed-off-by: Stefan Eichenberger <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2024-12-15toradex: apalis-imx8: simplify module version handlingStefan Eichenberger
Simplify module version handling by removing the special case for the Apalis iMX8QM. The Apalis iMX8QM has been treated as a special case in module version handling, but was always the default. By removing this special handling, the code is simplified and easier to maintain. We will not print the message "Unknown Apalis iMX8 module" anymore. However, we still handle this because if the config block is missing we show "MISSING TORADEX CONFIG BLOCK" and if the serial number is unknown we show "Model: Toradex 0000 UNKNOWN MODULE V1.1A". Therefore, it is still possible to detect such issues. Signed-off-by: Stefan Eichenberger <[email protected]>
2024-12-15toradex: tdx-cfg-block: add new apalis imx8 pidsStefan Eichenberger
Add new PIDs for the Apalis iMX8 modules featuring the industrial variant of the SoC, which supports a maximum CPU frequency of 1300 MHz. Signed-off-by: Stefan Eichenberger <[email protected]>
2024-12-15toradex: tdx-cfg-block: increase indentation for longer definesStefan Eichenberger
This preparation step ensures that the first column has sufficient space to handle longer defines. This is necessary for the new Apalis iMX8 defines. Signed-off-by: Stefan Eichenberger <[email protected]>
2024-12-15toradex: tdx-cfg-block: set apalis imx8dxp to always disabledStefan Eichenberger
Apalis iMX8DXP 1GB is currently set to enable when compiling for Apalis iMX8. This is a mistake the Apalis iMX8DXP 1GB was never released and is not compatible to the Apalis iMX8 series. Signed-off-by: Stefan Eichenberger <[email protected]>
2024-12-13toradex: tdx-cfg-block: rework modules pid4 handlingVitor Soares
The module pid4 currently corresponds to the index of the toradex_module array. If a new pid4 is introduced that does not follow the sequence of the previous entries, it will create a gap in the array. To address this, embed pid4 within the toradex_som structure and implement a function to retrieve the index corresponding to pid4. Signed-off-by: Vitor Soares <[email protected]> Acked-by: Francesco Dolcini <[email protected]>
2024-11-17dm: sysinfo: Shorten the SYSINFO_ID prefixSimon Glass
We are about to add a large number of new entries. Update the prefix to be a little shorter. For SMBIOS items, use SYSID_SM_ (for System Management) which is enough to distinguish it. For now at least, it seems that most items will be for SMBIOS. Signed-off-by: Simon Glass <[email protected]> Acked-by: Raymond Mao <[email protected]>
2024-10-13Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegraTom Rini
Assorted Tegra enhancements. Merged with the recent XPL_BUILD changes, resolve some whitespace issues and fix the name of the new apalis-tk1 env file by Tom. Signed-off-by: Tom Rini <[email protected]>
2024-10-13board: tegra: convert boards to text envSvyatoslav Ryhel
Convert boards to use text based env. This is the first stage of conversion, common inclusions should be converted next. Acked-by: Francesco Dolcini <[email protected]> # Toradex Apalis TK1 Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-10-11board: Use CONFIG_XPL_BUILD instead of CONFIG_SPL_BUILDSimon Glass
Use the new symbol to refer to any 'SPL' build, including TPL and VPL Signed-off-by: Simon Glass <[email protected]>
2024-08-23board: apalis-imx8: add reset codeAndrejs Cainikovs
With commit 922d4504bcab ("imx: scu_api: update to version 1.16 and add more APIs") added the reboot API. Add the board code to use that. Signed-off-by: Andrejs Cainikovs <[email protected]> Signed-off-by: Max Krummenacher <[email protected]>
2024-07-22board: toradex: Remove duplicate newlinesMarek Vasut
Drop all duplicate newlines. No functional change. Signed-off-by: Marek Vasut <[email protected]>
2024-07-06ARM: imx: verdin-imx8mm: Set CAN oscillator frequency based on modelMarek Vasut
The older i.MX8M Mini Verdin SoMs may came with 20 MHz SPI CAN controller oscillator, the newer SoMs always use 40 MHz oscillator. Handle both by overriding the oscillator frequency just before booting the kernel. These are the known variants with 20 MHz oscillator: - 0055, V1.1A, V1.1B, V1.1C and V1.1D, use a 20MHz oscillator - 0059, V1.1A and V1.1B, use a 20MHz oscillator Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Francesco Dolcini <[email protected]>
2024-06-04Merge tag 'v2024.07-rc4' into nextTom Rini
Prepare v2024.070-rc4
2024-06-03toradex: tdx-cfg-block: add verdin i.mx8m mini 0090 pid4Emanuele Ghidoli
Add new PID4 0090 Verdin iMX8M Mini Quad 4GB WB ET to support the new hardware variant. Signed-off-by: Emanuele Ghidoli <[email protected]>
2024-06-03toradex: tdx-cfg-block: add verdin imx95 sku 0089 pid4Emanuele Ghidoli
Add new PID4 0089 Verdin iMX95 Hexa 16GB WB IT to config block handling. Signed-off-by: Emanuele Ghidoli <[email protected]>
2024-06-03toradex: tdx-cfg-block: add aquila am69 sku 0088 pid4Emanuele Ghidoli
Add new PID4 0088 Aquila AM69 Octa 32GB WB IT to config block handling. Signed-off-by: Emanuele Ghidoli <[email protected]>
2024-06-03board: toradex: verdin-imx8mm: increase maximum addressable ram to 4GBEmanuele Ghidoli
Add support for SKUs with higher memory sizes. Actual memory size is auto-detected. Signed-off-by: Emanuele Ghidoli <[email protected]>
2024-06-03board: toradex: verdin-imx8mm: add 4 GB lpddr4 memory supportEmanuele Ghidoli
Add support for MT53E512M32D1ZW-046 IT:C memory. This 4 GB memory has 17 row bits instead of 16 and requires 380 ns of tRFC (tRFCab) instead of 280 ns due to increased channel density to 16 Gb. Both modifications are retro-compatible with previous memories. Signed-off-by: Emanuele Ghidoli <[email protected]>
2024-05-29board: toradex: change maintainer to FrancescoFrancesco Dolcini
Marcel is leaving Toradex and the email will start bouncing in a few weeks, move maintainership to myself. Cc: Marcel Ziswiler <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
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 <[email protected]> Signed-off-by: Tom Rini <[email protected]>
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 <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-05-07board: toradex: 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 <[email protected]>
2024-04-11verdin-am62: move verdin am62 to OF_UPSTREAMMarcel Ziswiler
Move verdin-am62 to OF_UPSTREAM: - handle the fact that dtbs now have a 'ti/' prefix - imply OF_UPSTREAM - remove redundant files from arch/arm/dts leaving only the *-u-boot.dtsi files - update MAINTAINERS file Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Dhruva Gole <[email protected]> Reviewed-by: Neha Malcom Francis <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-04-05verdin-imx8mm/verdin-imx8mp: move imx verdins to OF_UPSTREAMMarcel Ziswiler
Move verdin-imx8mm and verdin-imx8mp to OF_UPSTREAM: - handle the fact that dtbs now have a 'freescale/' prefix - imply OF_UPSTREAM - remove redundant files from arch/arm/dts leaving only the *-u-boot.dtsi files - update MAINTAINERS files Signed-off-by: Marcel Ziswiler <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-03-30board: toradex: colibri-imx8x: Remove board_gpio_initHiago De Franco
On Colibri iMX8X, the gpio initialization and usage should be handled by the device tree, not by the colibri-imx8x.c code. Therefore, remove it. Signed-off-by: Hiago De Franco <[email protected]>
2024-03-30imx8: Add a default reset_cpu() implementationFabio Estevam
Add a weak default reset_cpu() implementation just like it is done on arch/arm/mach-imx/cpu.c. This allows the removal of the empty reset_cpu() in several board files. Signed-off-by: Fabio Estevam <[email protected]> Tested-by: Hiago De Franco <[email protected]> # Toradex Colibri iMX8X
2024-03-17apalis-imx8: Fix sc_misc_otp_fuse_read() error checkFabio Estevam
Commit bfb3409d676f ("imx: toradex/apalis-imx8: correct SCU API usage") made an incorrect logic change in the error code check of sc_misc_otp_fuse_read(): - if (scierr == SC_ERR_NONE) { + if (scierr) { /* QP has one A72 core disabled */ is_quadplus = ((val >> 4) & 0x3) != 0x0; } The other changes in this commit are correct. sc_misc_otp_fuse_read() returns 0 on a successful fuse read. This inversion causes board_mem_get_layout() to report incorrect RAM size. Go back the original error check logic to fix the problem. Fixes: bfb3409d676f ("imx: toradex/apalis-imx8: correct SCU API usage") Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Peng Fan <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2024-03-17colibri-imx8x: Fix sc_misc_otp_fuse_read() error checkFabio Estevam
Commit aa6e698a7acd ("imx: toradex/colibri-imx8x: correct SCU API usage") made an incorrect logic change in the error code check of sc_misc_otp_fuse_read(): - if (sc_err == SC_ERR_NONE) { + if (sc_err) { /* DX has two A35 cores disabled */ return (val & 0xf) != 0x0; } The other changes in this commit are correct. sc_misc_otp_fuse_read() returns 0 on a successful fuse read. This inversion causes board_mem_get_layout() to report incorrect RAM size. Go back the original error check logic to fix the problem. Fixes: aa6e698a7acd ("imx: toradex/colibri-imx8x: correct SCU API usage") Reported-by: Hiago De Franco <[email protected]> Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Peng Fan <[email protected]> Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Hiago De Franco <[email protected]> # Toradex Colibri iMX8X 1GB
2024-03-11toradex: tdx-cfg-block: add 0087 i.mx8m mini product variantJoao Paulo Goncalves
Add new product id 0087 Verdin iMX8M Mini Quad 2GB IT. Signed-off-by: Joao Paulo Goncalves <[email protected]>
2024-03-01toradex: common: Use random mac address if toradex config block is missingEmanuele Ghidoli
Set CONFIG_NET_RANDOM_ETHADDR=y, which sets random eth address in case there is no toradex config block programmed. In case of missing toradex config block the generated mac address was always the same, linked to serial number 0. Use random generated mac address instead. Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> # Verdin iMX8M Plus Signed-off-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2024-03-01toradex: common: Add sysinfo driverEmanuele Ghidoli
This commit introduces support for the Toradex sysinfo driver in U-Boot, which uses information from Toradex config block to print correct board model. In case the Toradex config block is not present sysinfo prints the model of the board provided by device tree removing per board specific prints. Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> # Verdin iMX8M Plus Signed-off-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2024-03-01toradex: common: Use SETTINGS_R event to read toradex config blockEmanuele Ghidoli
Use SETTINGS_R event to read toradex config block and checkboard() to print board info. Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> # Verdin iMX8M Plus Signed-off-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2024-03-01toradex: Remove not necessary model prints from checkboard()Emanuele Ghidoli
Sysinfo prints the model obtained from device tree, checkboard() take info from hardware and tdx_checkboard() use the model retrieved by toradex config block. Remove the print from checkboard() function because the model obtained from toradex config block is the most complete. If toradex config block is missing the model info from device tree is enough. Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> # Verdin iMX8M Plus Signed-off-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2024-03-01toradex: Fix recursive call to checkboardEmanuele Ghidoli
Since checkboard() is used instead of show_board_info(), in case toradex config block is missing or malformed, checkboard is recursively called. It prints a long list of "MISSING TORADEX CONFIG BLOCK" till the stack is full. Fixes: edb0ecd18708 ("toradex: Use checkboard() instead of show_board_info()") Acked-by: Marcel Ziswiler <[email protected]> Tested-by: Marcel Ziswiler <[email protected]> # Verdin iMX8M Plus Signed-off-by: Emanuele Ghidoli <[email protected]> Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>
2024-02-13Revert "board: verdin-am62: set cpu core voltage depending on speed grade"Francesco Dolcini
This reverts commit d2099587d661c6ca2309256c0e04c06e26c8d34c. According to TI changing the VDD_CORE while the SoC is running is not allowed, the voltage must be set before the AM62 device reset is released, revert this change therefore. The correct solution would be to program the PMIC during manufactoring according to the speed grade of the SoC. Link: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1318338/am623-booting-from-mmc-failed-after-lowering-vdd_core-to-0-75v/5036508#5036508 Fixes: d2099587d661 ("board: verdin-am62: set cpu core voltage depending on speed grade") Signed-off-by: Francesco Dolcini <[email protected]>
2024-02-08toradex: tdx-cfg-block: add 0086 i.mx8m mini skuJoao Paulo Goncalves
Add new product id 0086 Verdin iMX8M Mini DualLite 2GB IT. Signed-off-by: Joao Paulo Goncalves <[email protected]> Reviewed-by: Igor Opaniuk <[email protected]>
2024-02-08toradex: tdx-cfg-block: Add new apalis and colibri pidJoao Paulo Goncalves
Add new apalis imx6 and colibri imx6/imx7 products IDs. Signed-off-by: Joao Paulo Goncalves <[email protected]> Acked-by: Marcel Ziswiler <[email protected]>
2024-01-24board: verdin-am62: set cpu core voltage depending on speed gradeMax Krummenacher
Speed grade T requires the VDD_CORE voltage to be 0.85V if using the maximum core frequency. Speed grades G, K, S allow the VDD_CORE voltage to be 0.75V up to the maximum core frequency but allow to run at 0.85V. For efficiency in manufacturing and code maintenance we use 0.85V for the PMIC defaults and device tree settings and dynamically adjust the voltage in the PMIC and device tree to 0.75V for lower speed SKU to gain more than 100mW power consumption reduction. Signed-off-by: Max Krummenacher <[email protected]>
2024-01-24board: verdin-am62: improve comment on usb phy core voltageMax Krummenacher
TI recommends to clear the bit independent of the used voltage. So the comment which claims to do it due to the core voltage at 0.85V is bogus. See https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1252724/am625-usb-phy-core-voltage-selection-and-vdda_core_usb-mismatch Signed-off-by: Max Krummenacher <[email protected]>
2024-01-18board: ti: *-cfg.yaml: Adhere to yamllint rulesNeha Malcom Francis
Clean up all configuration files to adhere to yamllint rules. Signed-off-by: Neha Malcom Francis <[email protected]> [trini: Update more yaml files added since this was posted] Signed-off-by: Tom Rini <[email protected]> Suggested-by: Nishanth Menon <[email protected]>
2023-12-21global: Remove duplicate common.h inclusionsTom Rini
These files include <common.h> twice. Start by removing the second inclusion of the file. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-12-21arm: Partial cleanup and audit usage of <config.h>Tom Rini
We need to include <config.h> directly when a file needs to have something such as CFG_SYS_SDRAM_SIZE referenced as this file is not automatically globally included and is most commonly indirectly included via common.h. Remove most cases of arm including config.h directly, but add it where needed. This includes a few board-specific fixes. Reviewed-by: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2023-12-18Merge tag 'v2024.01-rc5' into nextTom Rini
Prepare v2024.01-rc5
2023-12-13board: apalis/colibri imx6/imx6ull/imx7: Add fastboot bootcmd supportHiago De Franco
This commit adds support for Fastboot boot commands by checking both CONFIG_CMD_USB_SDP and CONFIG_USB_FUNCTION_FASTBOOT. If either of these configurations is set, it indicates that the board is in recovery mode and can use either SDP or Fastboot. The default option remains the SDP command, but if CONFIG_CMD_FASTBOOT is set, it changes to 'fastboot usb 0' as the boot command. Signed-off-by: Hiago De Franco <[email protected]> Reviewed-by: Fabio Estevam <[email protected]>