Age | Commit message (Collapse) | Author |
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
[ 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>
|
|
[ 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>
|
|
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>
|
|
"rel_imx_5.4.70_2.3.6"
|
|
Fixup thermal trips in Linux device tree according to SoC thermal
grade.
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
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>
|
|
[ 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>
|
|
Update IOMUX configuration as required by the hardware design team.
Signed-off-by: Andrejs Cainikovs <andrejs.cainikovs@toradex.com>
|
|
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)
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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)
|
|
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>
|
|
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>
|
|
Drop Apalis iMX8X platform as no longer supported.
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
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>
|
|
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>
|
|
Provide askenv required for update_uboot command
Signed-off-by: Denys Drozdov <denys.drozdov@toradex.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Add missing error message to blk_get_device_part_str.
Related-to: ELB-4082
Signed-off-by: Oleksii Bidnichenko <oleksii.bidnichenko@toradex.com>
|
|
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>
|
|
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>
|
|
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)
|