Age | Commit message (Collapse) | Author |
|
Add new PID4 0090 Verdin iMX8M Mini Quad 4GB WB ET to support
the new hardware variant.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240528095941.872693-1-ghidoliemanuele@gmail.com/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Add new PID4 0089 Verdin iMX95 Hexa 16GB WB IT to config block handling.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240528095941.872693-1-ghidoliemanuele@gmail.com/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Add new PID4 0088 Aquila AM69 Octa 32GB WB IT to config block handling.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240528095941.872693-1-ghidoliemanuele@gmail.com/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
Add support for SKUs with higher memory sizes.
Actual memory size is auto-detected.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240528095941.872693-1-ghidoliemanuele@gmail.com/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
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.
Upstream-Status: Submitted [https://lore.kernel.org/all/20240528095941.872693-1-ghidoliemanuele@gmail.com/]
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
[ 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>
|
|
[ 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]
|
|
[ 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()]
|
|
[ 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>
|
|
[ 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>
|
|
"rel_imx_5.4.70_2.3.6"
|
|
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>
|
|
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>
|
|
Drop Apalis iMX8X platform as no longer supported.
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Refactor the detection of QXP vs. DX SoC into its own helper function.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
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>
|
|
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>
|
|
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)
|
|
The following expression is used to construct the device tree name:
fdtfile=${soc}-apalis${variant}-${fdt_board}.dtb
- soc is set dynamically (either imx8qp or imx8qm),
- variant is set dynamically (either empty or -v1.1),
- fdt_board can be modified by the user (eval or ixora)
Related-to: ELB-3338
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
We don't like to print module revision all the time.
Drop the module revision output from the code
Related-to: ELB-3338
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
Toradex Linux kernel supports different device trees
for Apalis iMX8QM and Apalis iMX8QP SKUs and
board revisions. Update apalis-imx8 to support both
QM and QP revisions
Related-to: ELB-3338
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
First, try configuring for quad die, dual rank aka 8 GB RAM
configuration. Falling back to dual die, single rank aka 1 GB
(untested), 2 GB or 4 GB RAM configuration if it fails.
Related-to: ELB-3938
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Re-add previous dual die, single rank aka 1 GB (untested), 2 GB or 4GB
RAM configuration as a separate parameter set.
A later commit uses this as a fall-back configuration allowing for
dynamic unified memory configuration of all our (current) SKUs.
Related-to: ELB-3938
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
As a first step, integrate the quad die, dual rank aka 8 GB
configuration.
In a later step, the previous dual die, single rank aka 1 GB (untested),
2 GB or 4 GB configuration will be re-added as a fall-back configuration
allowing for dynamic unified memory configuration of all our (current)
SKUs.
Related-to: ELB-3938
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
Fixes commit 283ec8678 ('board: verdin-imx8mp: add missing modules to
the wifi-device tree list')
Related-to: ELB-4003
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable usb boot device support for imx8mm ab2 target boards
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 14639c28a70005016d343bfd883948f37e509234)
|
|
Enable usb and fastboot for serial download support
on Audio board 2 targets
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
(cherry picked from commit 60239e91a6a5658af3f36428fa55b160c90a6858)
|
|
Add Toradex Easy Installer specific option. Currently this is needed
to choose the correct ubiboot options and use correct name of distro
boot script for Easy Installer.
Related-to: TEI-791
Signed-off-by: Oleksandr Suvorov <oleksandr.suvorov@toradex.com>
|
|
Reported-by: Dominik Sliwa <dominik.sliwa@toradex.com>
Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com>
|
|
Add new i.MX 6ULL and 8M Plus SKUs to ConfigBlock handling:
0062: Colibri iMX6ULL 1GB IT (eMMC)
0063: Verdin iMX8M Plus Quad 4GB IT
0064: Verdin iMX8M Plus Quad 2GB Wi-Fi / BT IT
0065: Verdin iMX8M Plus QuadLite 1GB IT
0066: Verdin iMX8M Plus Quad 8GB Wi-Fi / BT
Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
|
|
toradex_imx_v2020.04_5.4.70_2.3.0
Update to NXP BSP tag rel_imx_5.4.70_2.3.2
https://source.codeaurora.org/external/imx/uboot-imx/tag/?h=rel_imx_5.4.70_2.3.2
Related-to: ELB-3957
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
U-boot might display wrong module revision information
for modules with an assembly version 'K'. "cfgblock create"
does not takes into account all revision digits from PID8.
This fix takes into account 6th,7th digits of PID8
to store module revision.
Related-to: ELB-3893
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
The on module USB hub connects upstream to SoC USB_OTG2 and provides
two downstream ports, one to the on module Wi-Fi, one to the SODIMM
connector.
In bypass mode the upstream port is directly connected to the SODIMM
connector pins.
Related-to: ELB-3853
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
The macros are no longer used as the pins concerned are now configured
in the device tree.
This gpio setup code is from the initial bringup and was never needed
in the first place. Just delete it.
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Enable the ADC supply (LDO4) @ 3.3V before enabling the I2C level
shifter so that both sides of the level shifter are properly powered.
Otherwise, depending on ADC connections the on module PMIC I2C bus
might not be functional.
Relates-to: ELB-3873
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
We drop support for Verdin iMX8M Mini V1.0B.
Releated-to: ELB-3551
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
|
Restore "Is the module an IT version? [y/N]" for "cfgblock create"
interactive mode command, which was leading to invalid detection
of 0051 Colibri iMX8DX 1GB WB module;
Fixes: c0c3978cba34 ("toradex: tdx-cfg-block: add Verdin iMX8M Mini/Nano support")
Fixes: 7780d4ec8ee3 ("toradex: tdx-cfg-clock: add new i.mx 8m mini/plus skus")
Related-to: ELB-3482
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
This prevents messages like:
gpio@5d0d0000: get_value: error: gpio GPIO5_9 not reserved
when CONFIG_DM_GPIO is enabled.
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
|