summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-03-08toradex: tdx-cfg-block: add 0087 i.mx8m mini product varianttoradex_imx_v2020.04_5.4.70_2.3.0Joao Paulo Goncalves
Add new product id 0087 Verdin iMX8M Mini Quad 2GB IT. Upstream-Status: Submitted [https://lore.kernel.org/u-boot/20240308141801.49081-1-jpaulo.silvagoncalves@gmail.com/] Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
2024-01-31toradex: tdx-cfg-block: add 0086 i.mx8m mini skuJoao Paulo Goncalves
Add new product id 0086 Verdin iMX8M Mini DualLite 2GB IT. Upstream-Status: Submitted [https://lore.kernel.org/u-boot/20240131173204.100407-1-jpaulo.silvagoncalves@gmail.com/] Signed-off-by: Joao Paulo Goncalves <joao.goncalves@toradex.com>
2023-11-09board: verdin-imx8mp: update LPDDR4 configuration and trainingEmanuele Ghidoli
Update lpddr4 configuration and training using updated spreadsheet and tools from NXP using data from previous spreadsheet and verified toward datasheet: - MX8M_Plus_LPDDR4_RPA_v9.xlsx - mscale_ddr_tool_v3.30.exe From: https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/i-MX-8M-Family-DDR-Tool-Release/ta-p/1104467 Some register values differ due to these fixes/modifications: - corrected calculation of T_CKPDX parameter (equal to tCKCKEH for LPDDR4) - corrected ECC related items, none of which affect normal operation when ECC is not enabled - corrected formula for calculation of tRTP in cell D122 Upstream-Status: Backport[2aa630e52b97] Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
2023-11-09board: verdin-imx8mp: fix LPDDR4 refresh timingEmanuele Ghidoli
Change tRFCmin (tRFCab) from 280 ns to 380 ns to be compliant with current and futures memories. Upstream-Status: Backport[9146f951fb42] Fixes: 2bc2f817cea7 ("board: toradex: add verdin imx8m plus support") Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
2023-11-09board: verdin-imx8mp: update DDRC config to support different LPDDR4 memoriesEmanuele Ghidoli
Add support to Verdin IMX8MP V1.1B SKU which uses MT53E1G32D2FW-046 WT:B memory. Compared to the 8 GB memory (MT53E2G32D4NQ-046 WT:A) used on Verdin IMX8MP V1.0A it has 16 row addresses instead of 17. In fact, the new memory, is a 2 GB/rank memory. The 8 GB memory is a 4 GB/rank memory. Manually tweaking Host Interface addresses vs LPDDR4 signals mapping it is possible to have a single configuration working with both memories: - Old configuration: HIF bit 30 -> rank, HIF bit 29 -> Row 16 - New configuration: HIF bit 29 -> rank, HIF bit 30 -> Row 16 With this change the memory space from the host processor is contiguous for both the configurations and the correct memory size is computed using get_ram_size() at runtime. Support for single rank memories still works thanks to the fact dual ranks training fails (ddr_init->ddr_cfg_phy) toward single rank memories. Upstream-Status: Backport[72b912502aef] Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
2023-10-20apalis-imx8: initialize usb gadget in host modeAndrejs Cainikovs
This will prevent error on usb start: starting USB... Bus usb@5b0d0000: Port not available. Upstream-Status: Inappropriate [other] No iMX8 USB support present in mainline. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-10-20apalis-imx8: add USBH_EN gpio hogAndrejs Cainikovs
USB host interface is not working on some Apalis Toradex carrier boards with Apalis iMX8 SoM. This is due to USBH_EN pin, which powers USB peripherals, having a strong pull-down on some boards, and a weak pull-down on the others. This USBH_EN pin is left unconfigured, which means it is in its default state at cold boot: input with a strong pull-up. As a result, carrier boards with a weak pull-down have this signal high enough to trigger power delivery to USB peripherals, and opposite - boards with strong pull-down on USBH_EN have this signal below the threshold needed to trigger USB power delivery. This change configures the USBH_EN pin as gpio hog, fixing this issue for all Apalis carrier boards regardless of pull-down resistor value. Also, update apalis-imx8_defconfig via savedefconfig. Upstream-Status: Submitted [https://lore.kernel.org/all/20231020152516.57338-1-andrejs.cainikovs@gmail.com/] Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-09-12board: toradex: verdin-imx8mm: set fixed LPDDR4 refresh rate as per errata ↵Andrejs Cainikovs
ERR050805 Update lpddr4 configuration and training using updated spreadsheet and tools from NXP using data from previous spreadsheet and verified toward datasheet: - MX8M_Mini_LPDDR4_RPA_v22.xlsx - mscale_ddr_tool_v3.31_setup.exe The most relevant update is related to errata ERR050805: "DRAM: Controller automatic derating logic may not work when the LPDDR4 memory temperature is above 85 °C at initialization" Other relevant fixes: - DRAMTMG7 register: corrected calculation of T_CKPDX parameter (equal to tCKCKEH for LPDDR4) - RANKCTL register: corrected calculations for ODTLon and ODTLoff to follow the JEDEC specification - ADDRMAP7 register: added support for 17-row devices As per errata ERR050805: An issue exists with the automatic derating logic of the DDR controller that only samples the LPDDR4 MR4 register when the Temperature Update Flag (TUF) field (MR4[7] ) is 1’b1. If the LPDDR4 memory is initialized and starts operation above 85 °C (MR4[2:0] > 3’b011), the MR4 Temperature Update Flag (TUF) will not be set. The DDR Controller will therefore not automatically adjust the memory refresh rate or de-rate memory timings based on the LPDDR4 memory temperature. This may cause the controller incorrectly setting the refresh period, potentially cause the LPDDR4 memory losing data contents and lead to possible data integrity issues above 85 °C. Errata provides three possible workaround options, while option 2 is the most reasonable: Disable the automatic derating logic of the DDR controller and apply fixed x2 refresh rate (0.5x refresh). This option is suitable for designs that are expected to boot at or above 85 °C and memory’s MR4[2:0] (Refresh Rate) DOES NOT report the following conditions: 3b101: 0.25x refresh, no de-rating 3b110: 0.25x refresh, with de-rating 3b111: SDRAM High temperature operating limit exceeded [1]: https://www.nxp.com/docs/en/errata/IMX8MM_0N87W.pdf Upstream-Status: Pending Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2023-05-15toradex: tdx-cfg-block: add 0070 verdin i.mx 8m plus quad skuEmanuele Ghidoli
Add new i.MX 8M Plus Quad SKU to ConfigBlock handling. 0070: Verdin iMX8M Plus Quad 8GB WB IT This SKU is identical to 0066 but with Industrial Temperature Grade SoC. Upstream-Status: Submitted [https://lore.kernel.org/all/20230515130641.26028-1-francesco@dolcini.it/] Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
2022-07-06toradex: tdx-cfg-block: add 0068 i.mx 8m mini skuPhilippe Schenker
[ backported from https://lore.kernel.org/u-boot/20220706121505.448579-1-dev@pschenker.ch/T/#u ] Add new i.MX 8M Mini SKU to ConfigBlock handling. 0068: Verdin iMX8M Mini Quad 2GB WB IT No CAN This SKU is identical to 0055 but without CAN. Mention this in the name so those modules can be distinguished. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2022-06-23colibri-imx8x: Fix default mtest parametersFrancesco Dolcini
Set mtest default end address to 0xB0000000, testing 512MB memory that is fine with any of our SKU. Without this change mtest without parameters just crash on module with 1GB of memory. Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2022-06-22arm: dts: imx8m{m,p}-verdin: use IT temperaturesPhilippe Schenker
[ Backported from https://lists.denx.de/pipermail/u-boot/2022-June/487111.html ] Use IT temperature threshold for critical/passive trip point on Verdin iMX8M Plus and Mini. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2022-06-20toradex: tdx-cfg-block: add new toradex oui rangePhilippe Schenker
[ backported from https://lists.denx.de/pipermail/u-boot/2022-June/486993.html ] Add new Toradex MAC OUI (8c:06:cb), to the config block. With this change we extend the possible serial-numbers as follows: For serial-numbers 00000000-16777215 OUI 00:14:2d is taken For serial-numbers 16777216-33554431 OUI 8c:06:cb is taken Lower 24-bit of the serial number are used in the NIC part of the MAC address, the complete serial number can be calculated using the OUI. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> [ps: use kdiff3 to autoresolve conflicts]
2022-06-14toradex: tdx-cfg-block: extend assembly versionPhilippe Schenker
[ backport https://lists.denx.de/pipermail/u-boot/2022-June/486350.html ] There are two decimal digits reserved to encode the module version and revision. This code so far implemented A-Z which used 0-25 of this range. This commit extends the range to make use of all 99 numbers. After capital letters the form with a hashtag and number (e.g. #26) is used. Examples: If the assembly version is between zero and 25 the numbering is as follows, as it also has been before this commit: 0: V0.0A 1: V0.0B ... 25: V0.0Z New numbering of assembly version: If the number is between 26 and 99 the new assembly version name is: 26: V0.0#26 27: V0.0#27 ... 99: V0.0#99 Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> [ps: backport: replace dectoul() with simple_strtoul()]
2022-06-14toradex: tdx-cfg-block: use defines for string lengthPhilippe Schenker
[ backport from https://lists.denx.de/pipermail/u-boot/2022-June/486349.html ] to make it easily extendable and code is implicitly documented Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-06-14toradex: tdx-cfg-block: use only snprintfPhilippe Schenker
[ backport https://lists.denx.de/pipermail/u-boot/2022-June/486348.html ] Prevent memory issues that could appear with sprintf. Replace all sprintf occurences with snprintf. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-06-07fdt: Add U-Boot version to chosen nodeFrancesco Dolcini
commit 622ecee93a604c017aca23906c5cc903b4002b78 upstream. Add a new device tree property "u-boot,version" in the chosen node to pass the U-Boot version to the operating system. This can be useful to implement a firmware upgrade procedure from the operating system. Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com> Reviewed-by: Tom Rini <trini@konsulko.com>
2022-05-20Merge tag 'rel_imx_5.4.70_2.3.6' into toradex_imx_v2020.04_5.4.70_2.3.0Philippe Schenker
"rel_imx_5.4.70_2.3.6"
2022-05-10imx8m: fixup thermal tripsAndrejs Cainikovs
Fixup thermal trips in Linux device tree according to SoC thermal grade. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2022-05-09board: apalis-imx8: add new 8gb product variantPhilippe Schenker
Add the new Apalis iMX8 product variant 0067: Apalis iMX8 QuadMax 8GB Wi-Fi / BT IT the only difference to the product 0037 Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT is the 8gb of RAM. Toradex strategy to choose the correct RAM timing in SCFW is by fuses in the user area telling which RAM timing to load. This commit makes use of this information to set the correct size of the RAM and therefore distinguish between the new 0067 and 0037 product Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-05-09toradex: tdx-cfg-block: add new 8gb apalis-imx8Philippe Schenker
0067: Apalis iMX8 QuadMax 8GB Wi-Fi / BT IT This module is identical to its 4GB counterpart 0037: Apalis iMX8 QuadMax 4GB Wi-Fi / BT IT except for the RAM size. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
2022-04-29verdin-imx8mm, verdin-imx8mp: Fix default systemd console outputPhilippe Schenker
[ backport https://lore.kernel.org/all/20220421092358.132912-1-dev@pschenker.ch/ from mailing-list ] systemd prints its messages on the last console= statement that it finds in the kernel arguments. The current ordering sends the systemd messages to tty1, by default this is the display. Ensure that systemd sends its messages to the default UART, reorder the console= statements accordingly. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Reviewed-by: Stefano Babic <sbabic@denx.de> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2022-02-16ARM: dts: verdin-imx8mm: update IOMUX configurationAndrejs Cainikovs
Update IOMUX configuration as required by the hardware design team. Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
2022-01-27LF-5372: Reserve DDR ECC region for DXLNitin Garg
When the 1st 16MB of DDR is ECC protected, the end of DDR region is reserved for ECC data - 1MB out of 512M and 2MB out of 1024M config. Signed-off-by: Nitin Garg <nitin.garg@nxp.com> (cherry picked from commit 0d9a65af80bfd6d2b10657e84a3e509f787dfb1f)
2022-01-18configs: verdin-imx8mm: allocate 64M for the linux kernelDenys Drozdov
Reduce memory test area to 500Mb to support memory test on 1GB SKU to avoid u-boot being overwritten. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2022-01-18configs: apalis-imx8: allocate 64M for the linux kernelDenys Drozdov
Reserve 64M for Linux kernel image and relocate kernel_addr_r to 0x96000000 to avoid overlaps with other load addresses and either getting overwritten. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2022-01-18configs: colibri-imx8: allocate 64M for the linux kernelDenys Drozdov
Reserve 64M for Linux kernel image and relocate kernel_addr_r to 0x96000000 to avoid overlaps with other load addresses and either getting overwritten. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2022-01-18configs: verdin-imx8mm/mp: allocate 64M for the linux kernelDenys Drozdov
Change the memory map for the latest Linux kernel image to run 64M kernel image to avoid overlapping conflicts with recent defconfig. New Memory Map: kernel: 0x4000_0000 - 0x43FF_FFFF (64M) fdt: 0x4400_0000 - 0x444F_FFFF (5M) load address: 0x4450_0000 - 0x46FF_FFFF (1M) distro boot: 0x4700_0000 - 0x473F_FFFF (4M) ram disk: 0x4740_0000 - 0x4B3F_FFFF (64M) Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2022-01-11LF-5298: imx8dxl: Add support for DXL B0 SOCNitin Garg
Add support for DXL B0, fix the chip version for B0. Signed-off-by: Nitin Garg <nitin.garg@nxp.com> (cherry picked from commit 65d5015ffc0eab3d1342c62d2f538a5fbc0fe93d)
2021-11-30configs: verdin-imx8mp_tezi: Disable cmd env eraseFrancesco Dolcini
Erasing environment on emmc using the `env erase` command will erase surrounding data in case the env location is not aligned to the erase group size. This is the intended behavior, to be able to use the functionality the environment should be aligned/multiple of the erase size. This is not the case on verdin-imx8mp, when the environment is erased also the Toradex config block is lost, to avoid issues just disable the command in the defconfig. Link: https://lore.kernel.org/u-boot/20211129152530.GI24579@bill-the-cat/ Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2021-11-29configs: verdin-imx8mp: Disable cmd env eraseFrancesco Dolcini
Erasing environment on emmc using the `env erase` command will erase surrounding data in case the env location is not aligned to the erase group size. This is the intended behavior, to be able to use the functionality the environment should be aligned/multiple of the erase size. This is not the case on verdin-imx8mp, when the environment is erased also the Toradex config block is lost, to avoid issues just disable the command in the defconfig. Link: https://lore.kernel.org/u-boot/20211129152530.GI24579@bill-the-cat/ Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2021-11-10apalis-imx8x: Drop support for Apalis iMX8XDenys Drozdov
Drop Apalis iMX8X platform as no longer supported. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-11-04.gitlab-ci.yml: Fix CI pipeline buildDenys Drozdov
On the Git protocol side, unencrypted git:// offers no integrity or authentication, making it subject to tampering. GitHub has disabled support for this protocol. The following error can be obseverved during pipeline build git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks Cloning into '/tmp/uboot-test-hooks'... fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported. Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information. Again, only users connecting via SSH or git:// are affected. Change Git remotes to start with https:// Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-11-04verdin-imx8mp: avoid storing environment every bootDenys Drozdov
Verdin should never save the environment to flash if not asked. Avoid storing environment in this case. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-11-04verdin-imx8mm: avoid storing environment every bootDenys Drozdov
Verdin should never save the environment to flash if not asked. Avoid storing environment in this case. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-11-04apalis-imx8: avoid storing environment every bootDenys Drozdov
Since CONFIG_ENV_IS_NOWHERE is not defined for Apalis iMX8, avoid storing environment every boot. Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-10-26colibri-imx8x: make select_dt_from_module_version a commandMax Krummenacher
When booting the Toradex Easy Installer from USB recovery select_dt_from_module_version is not automatically executed and thus ${soc} is not set correctly. Make the function available as a cli command so it can be executed as part of the bootcmd_mfg. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2021-10-26colibri-imx8x: set the soc env variable according to fusesMax Krummenacher
Move from using cfgblock information for setting the soc environment variable to use fuse information. This allows using the correct device tree even if the config block is not available. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2021-10-26colibri-imx8x: extraxt is_imx8dx() from ram detectionMax Krummenacher
Refactor the detection of QXP vs. DX SoC into its own helper function. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
2021-10-25verdin-imx8mx: add askenv commandDenys Drozdov
Provide askenv required for update_uboot command Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-10-20ARM: dts: verdin-imx8mp: fix mac address passingMarcel Ziswiler
Verdin iMX8M Plus on-module Ethernet device is eqos, while the optional secondary Ethernet is fec, update the Ethernet aliases in the .dts file so that ethaddr is set to eqos and eth1addr to fec. Without this change, the Ethernet interfaces may have different MAC addresses between Linux and U-Boot. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2021-10-06board: toradex: verdin-imx8mp: add update_boot commandDenys Drozdov
update_boot command is more convenient to update u-boot. User could download u-boot by tftp and type update_boot Related-to: ELB-4149 Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-10-06board: toradex: verdin-imx8mm: add update_boot commandDenys Drozdov
update_boot command is more convenient to update u-boot. User could download u-boot by tftp and type update_boot Related-to: ELB-4149 Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-09-21fastboot: fsl: remove serial# env overwriteFrancesco Dolcini
Remove serial# env_set() from FSL fastboot code, serial# is supposed to be set in board code, doing it again here is redundant and will just overwrite the previously set value, potentially with a different value. Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
2021-09-17apalis-imx8: set default soc and variant for new modulesDenys Drozdov
For the unfused modules ${soc} is defined to imx8. The ${variant} is undefined as well. This leads to that Easy Installer failed to load absent DT. Specify default ${soc} as imx8qm and ${variant} as "-v1.1" explicitly. Related-to: TEI-949 Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
2021-09-10disk: part: add the device search failed log msgOleksii Bidnichenko
Add missing error message to blk_get_device_part_str. Related-to: ELB-4082 Signed-off-by: Oleksii Bidnichenko <oleksii.bidnichenko@toradex.com>
2021-09-10mmc: merge upstream __mmc_switch fixesOleksii Bidnichenko
commit 8e2b0af7216d78b60fccb46a107a4a047938aea9 upstream. commit ef5ab0d13a7a44469f6c765c8acc8d54c23213de upstream. Update a __mmc_switch MMC_STATUS_SWITCH_ERROR notification level from debug to error. Related-to: ELB-4082 Signed-off-by: Oleksii Bidnichenko <oleksii.bidnichenko@toradex.com>
2021-09-10apalis-imx8: fix booting from emmcMarcel Ziswiler
As the ${variant} variable includes the leading dash adding another one leads to the following: Apalis iMX8 TEZI # echo $fdtfile imx8qm-apalis--v1.1-eval.dtb Fix this by removing that extra dash. Note that this does not change anything for the recovery mode use case. There another fix to the distro boot script in meta-toradex-tezi is required. Fixes: commit f499632b31f8 ("apalis-imx8: construct fdtfile dynamically") Related-to: TEI-934 Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2021-08-20colibri-imx8x: construct fdtfile dynamicallyStefano Viola
The following expression is used to construct the device tree name: fdtfile=${soc}-colibri-${fdt_board}.dtb - soc is set dynamically (either imx8qxp imx8dx) - fdt_board can be modified by the user (eval-V3, aster, iris/iris-V2) Related-to: ELB-2800 Signed-of-by: Stefano Viola <stefano.viola@toradex.com>
2021-07-29MLK-25349 imx8mq_evk: Enable PCIE VREG for 3.3v PHY supplyYe Li
The bit12 of IOMUXC_GPR_GPR14/16 are used to bypass internal regulator for two PCIE PHYs: When PCIE_VPH = 3.3V, enable internal 3.3V to 1.8V regulator to generate the 1.8V, the register of IOMUXC_GPR_GPR14/16 bit 12 = 1'b0; When PCIE_VPH = 1.8V, disable the internal 3.3V to 1.8V regulator, using the external 1.8V for the PHY, the register of IOMUXC_GPR_GPR14/16 bit 12 = 1'b1;" This bit is reset to 1 which means bypass the internal regulator. However the EVK board connects 3.3v supply to PCIE_VPH. So we must enable the regulator, otherwise it could potentially impact the product lifetime of the device. Signed-off-by: Ye Li <ye.li@nxp.com> Acked-by: Richard Zhu <hongxing.zhu@nxp.com> (cherry picked from commit 3fd0991551c8236319b8bf29ca47813c9242c18f)