summaryrefslogtreecommitdiff
path: root/board/toradex
AgeCommit message (Collapse)Author
2019-04-13colibri_imx6: revert fuse value set in mfgr_fuseMax Krummenacher
We have two commands to change the bootmode fuses: mfgr_fuse which set fuse 0/5 and 0/6 and updt_fuse which burns bit 4 of 0/5. Before Image 2.6 we fused in mfgr_fuse 0x5062, which boots from the user partition of the eMMC. To workaround certain hangs we moved to fastboot mode and using the first bootpartition of the eMMC requiring a fuse value of 0x5072 which could be achived by the then added updt_fuse command. At the same time the mfgr_fuse command was changed to also fuse 0x5072, revert that second change so that one can fuse both values, one with just mfgr_fuse and the later with mfgr_fuse;updt_fuse. Note that the mfgr_fuse command is only needed at module production time, a customer might need to use updt_fuse when upgrading an older module to be compatible with a newer image. The command is integrated into the image update scripts. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: change pmic fusing according to hw 1.1 requirementsMax Krummenacher
Colibri iMX6 V1.1 HW can use the PMIC GEN3 to power the NVCC_SD1. Change the settings fused into the PMIC's OTP to powerup with GEN3 set to output 3.3V. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri imx6: disable ri and dcd irq in uartsMax Krummenacher
If the UART is used in DTE mode the RI and DCD bits in UCR3 become irq enable bits. Both are set to enabled after reset and both likely are pending. Disable the bits also on UARTs not used in the boot loader to prevent an interrupt storm when Linux enables the UART interrupts. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri imx6: pf0100: reorder and cleanup message printingMax Krummenacher
Keep debug code at the end of the function. Use a one line informational message for the PMIC only. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: unify sd/mmc drive strenght with linux kernel settingsMax Krummenacher
In the linux device tree we use 40Ohm drive strenght. So use the same value in U-Boot. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: print also 64-bit ITMax Krummenacher
Print also for Colibri iMX6 512MB IT with 64-bit RAM bus. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: drop CONFIG_OF_SYSTEM_SETUPMax Krummenacher
This doesn't do anything anymore, probably never did. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: migrate usb to using driver modelMarcel Ziswiler
Migrate USB to using driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: migrate mmc to using driver modelMarcel Ziswiler
Migrate MMC to using driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: migrate i2c to using driver modelMarcel Ziswiler
Migrate I2C to using driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: clean-up and migrate gpios to using driver modelMarcel Ziswiler
Migrate GPIOs to using driver model, properly request backlight, MMC/SD card detect and USB power enable GPIOs and also enable SION bit in pin muxing for auxiliary, backlight and USB power enable GPIOs. While at it also update copyright year, clean-up/re-order includes, add some comments clarifying ifdef scope and do some white-space clean-up. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: migrate to using device treeMarcel Ziswiler
Migrate to using device tree required for further driver model integration. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13colibri_imx6: get rid of obsolete nospl configurationsMarcel Ziswiler
Now with SPL long since being in place even for recovery using SDP finally get rid of those nospl configurations. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13board: apalis_imx6: check for and report ecc errors in fusesGerard Salvatella
The PMIC on Apalis iMX6 may have ECC errors in fuses that will prevent correct settings. Up to one bit error per fuse bank may be reported and corrected by the ECC logic. Two bit errors can only be reported. Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: use SDP if USB serial downloader has been usedStefan Agner
In case USB serial downloader has been used to load U-Boot start the serial download protocol (SDP) emulation. This allows to download complete images such as Toradex Easy Installer over USB SDP as well. This code uses the boot ROM provided boot information to reliably detect USB serial downloader. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: revert fuse value set in mfgr_fuseMax Krummenacher
We have two commands to change the bootmode fuses: mfgr_fuse which set fuse 0/5 and 0/6 and updt_fuse which burns bit 4 of 0/5. Before BSP 2.6 we fused in mfgr_fuse 0x5062, which boots from the user partition of the eMMC. To workaround certain hangs we moved to fastboot mode and using the first bootpartition of the eMMC requiring a fuse value of 0x5072 which could be achieved by the then added updt_fuse command. At the same time the mfgr_fuse command was changed to also fuse 0x5072, revert that second change so that one can fuse both values, one with just mfgr_fuse and the later with mfgr_fuse;updt_fuse. Note that the mfgr_fuse command is only needed at module production time, a customer might need to use updt_fuse when upgrading an older module to be compatible with a newer image. The command is integrated into the image update scripts. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: disable ri and dcd irq in uartsMax Krummenacher
If the UART is used in DTE mode the RI and DCD bits in UCR3 become irq enable bits. Both are set to enabled after reset and both likely are pending. Disable the bits also on UARTs not used in the boot loader to prevent an interrupt storm when Linux enables the UART interrupts. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: pf0100: reorder and cleanup message printingMarcel Ziswiler
Keep debug code at the end of the function. Use a one line informational message for the PMIC only. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: unify sd/mmc drive strength with linux kernel settingsMax Krummenacher
In the Linux device tree we use 40Ohm drive strength. So use the same value in U-Boot. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: drop CONFIG_OF_SYSTEM_SETUPMarcel Ziswiler
This doesn't do anything anymore, probably never did. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: migrate usb to using driver modelMarcel Ziswiler
Migrate USB to using driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: migrate mmc and sata to using driver modelMarcel Ziswiler
Migrate MMC and SATA to using driver model. While at it also enable SCSI driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: migrate i2c to using driver modelMarcel Ziswiler
Migrate I2C to using driver model. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: clean-up and migrate gpios to using driver modelMarcel Ziswiler
Migrate GPIOs to using driver model, properly request backlight, Ethernet PHY reset, MMC/SD card detect and USB power GPIOs and also enable SION bit in pin muxing for Apalis, backlight, eMMC reset, Ethernet PHY reset and USB power enable GPIOs. While at it also update copyright year, clean-up/re-order includes, add some comments clarifying ifdef scope and do some White-space clean-up. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: migrate to using device treeMarcel Ziswiler
Migrate to using device tree required for further driver model integration. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-04-13apalis_imx6: get rid of obsolete nospl configurationsMarcel Ziswiler
Now with SPL long since being in place even for recovery using SDP finally get rid of those nospl configurations. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-02-20board: toradex: turn off lcd backlight before OS handoverGerard Salvatella
U-Boot typically tears down the display controller before handing control over to Linux. On LCD displays disabling pixel clock leads to a fading out effect with vertical/horizontal lines. Make sure to disable back light before booting Linux. Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
2019-01-28colibri_imx7: drop legacy usdhc supportStefan Agner
Drop legacy pinmux/usdhc board configuration. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-01-28arm: dts: imx7: colibri: split dt for raw NAND and eMMC devicesStefan Agner
In preparation of adding CONFIG_DM_MMC support use separate device trees for raw NAND and eMMC devices. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2019-01-09toradex: colibri_vf: fix memory initializationStefan Agner
Commit 3f353ceccbbb ("vf610: refactor DDRMC code") changed on-die termination (ODT) values from 120 Ohm to 60 Ohm and enabled a static read/write leveling which has not been tested with this board. This commit reverts both changes and makes sure that memory gets initialized as it has been done before the mentioned commit. Fixes: 3f353ceccbbb ("vf610: refactor DDRMC code") Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2018-10-09colibri_imx7: prime get_ram_size() using imx_ddr_size()Fabio Estevam
Rather than passing a hardcoded maxsize to the generic get_ram_size() function use the i.MX 7 specific imx_ddr_size() function, which extracts the memory size at runtime by reading the DDR controller registers. This is a purely cosmetic change as the generic get_ram_size() function already took care of properly automatically detecting 256MB, 512MB or 1GB modules. Signed-off-by: Fabio Estevam <festevam@gmail.com> Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-09-04colibri_imx7_emmc: add Colibri iMX7D 1GB (eMMC) module supportStefan Agner
This commit adds support for the Toradex Colibri iMX7D 1GB Computer on Module. The module is very similar to the Colibri iMX7D 512MB but uses eMMC instead of raw NAND. This patch introduces a new board specific Kconfig symbol to select between the two flash options. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2018-09-04board: toradex: common: fail gracefully on missing NAND chipStefan Agner
If the NAND chip is missing get_nand_dev_by_index() returns NULL. Fail gracefully in this case. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-25board: constify struct node_info arrayMasahiro Yamada
Add 'const' (also 'static' in some places) to struct node_info arrays to save memory footprint. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-07-23colibri_imx7: improve DDR3 timingStefan Agner
This makes sure that all Colibri iMX7 modules work with the same timing. The changes are: - Disable ODT on read (JEDEC standard JESD79-3F says in chapter 5.2.3 ODT during Reads: "As the DDR3 SDRAM can not terminate and drive at the same time, RTT must be disabled at least half a clock cycle..." and also MX7D SABRESD is disabling it) This alone fixed memory issues for two Colibri iMX7 1GB modules which showed issues before - Make sure tRFC(min) is at least 260ns - Make sure tRC is >50.625ns - tRP needs to be >13.125ns, we can lower from 18.75ns to 15ns - tFAW is not relevant, leave at reset Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-23colibri_imx7: add compatible string used in vanilla LinuxStefan Agner
Device trees from vanilla Linux do not specify a i.MX 7 specific compatible string. Make sure to set partitions also when booting upstream Linux. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-23mx7: Remove BMODE supportFabio Estevam
i.MX7 does not support BMODE due to the erratum e10574 ("Watchdog: A watchdog timeout or software trigger will not reset the SOC"), so remove its support. Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
2018-07-23board: toradex: add Colibri iMX6ULL supportStefan Agner
Add support for the Colibri iMX6ULL module which comes with on-board raw NAND. Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-23board: toradex: add new and upcoming SKUsStefan Agner
Signed-off-by: Stefan Agner <stefan.agner@toradex.com>
2018-05-10apalis_t30: fix optional pcie port reset for reliable pcie operationMarcel Ziswiler
Allow optionally bringing up the Apalis type specific 4 lane PCIe port as well as the PCIe switch as found on the Apalis Evaluation board. In order to avoid violating the PCIe reset timing do this by overriding the tegra_pcie_board_port_reset() function. Note however that both the Apalis type specific 4 lane PCIe port as well as the regular Apalis PCIe port are also left disabled in the device tree by default. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
2018-05-10apalis_t30: fix pcie port 0 and 1 pin muxingMarcel Ziswiler
Fix optional Apalis type specific 4 lane PCIe port 0 and Apalis PCIe port 1 pin muxing. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
2018-05-10apalis-tk1: fix pcie reset for reliable gigabit ethernet operationMarcel Ziswiler
It turns out that the current PCIe reset implementation in the PCIe board init function is not quite working reliably due to PCIe reset timing violations. Fix this by overriding the tegra_pcie_board_port_reset() function. Also allow optionally bringing up the PCIe switch as found on the Apalis Evaluation board. Note however that the Apalis PCIe port is also left disabled in the device tree by default. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Signed-off-by: Tom Warren <twarren@nvidia.com>
2018-05-07SPDX: Convert all of our single license tags to Linux Kernel styleTom Rini
When U-Boot started using SPDX tags we were among the early adopters and there weren't a lot of other examples to borrow from. So we picked the area of the file that usually had a full license text and replaced it with an appropriate SPDX-License-Identifier: entry. Since then, the Linux Kernel has adopted SPDX tags and they place it as the very first line in a file (except where shebangs are used, then it's second line) and with slightly different comment styles than us. In part due to community overlap, in part due to better tag visibility and in part for other minor reasons, switch over to that style. This commit changes all instances where we have a single declared license in the tag as both the before and after are identical in tag contents. There's also a few places where I found we did not have a tag and have introduced one. Signed-off-by: Tom Rini <trini@konsulko.com>
2018-04-27Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTRTom Rini
We have a large number of places where while we historically referenced gd in the code we no longer do, as well as cases where the code added that line "just in case" during development and never dropped it. Signed-off-by: Tom Rini <trini@konsulko.com>
2018-04-08net: Move enetaddr env access code to env config instead of net configAlex Kiernan
In order that we can use eth_env_* even when CONFIG_NET isn't set, move these functions to environment code from net code. This fixes failures such as: board/ti/am335x/built-in.o: In function `board_late_init': board/ti/am335x/board.c:752: undefined reference to `eth_env_set_enetaddr' u-boot/board/ti/am335x/board.c:766: undefined reference to `eth_env_set_enetaddr' which caters for use cases such as: commit f411b5cca48f ("board: am335x: Always set eth/eth1addr environment variable") when Ethernet is required in Linux, but not U-Boot. Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
2018-03-05libfdt: move headers to <linux/libfdt.h> and <linux/libfdt_env.h>Masahiro Yamada
Thomas reported U-Boot failed to build host tools if libfdt-devel package is installed because tools include libfdt headers from /usr/include/ instead of using internal ones. This commit moves the header code: include/libfdt.h -> include/linux/libfdt.h include/libfdt_env.h -> include/linux/libfdt_env.h and replaces include directives: #include <libfdt.h> -> #include <linux/libfdt.h> #include <libfdt_env.h> -> #include <linux/libfdt_env.h> Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
2018-01-12toradex: imx6: Rework PF0100 fuse programming commands to not be in SPLTom Rini
The code for programming the OTP fuses on the PMIC PF0100 can only be used in full U-Boot, so do not build / link it into SPL. Cc: Max Krummenacher <max.krummenacher@toradex.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Signed-off-by: Tom Rini <trini@konsulko.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com> Tested-by: Max Krummenacher <max.krummenacher@toradex.com>
2017-10-12imx: Include <input.h> header fileDiego Dorta
When building with W=1 errors like the one below is seen: board/freescale/mx6sabresd/mx6sabresd.c:546:5: warning: no previous prototype for ‘overwrite_console’ [-Wmissing-prototypes] int overwrite_console(void) Fix the build warnings by including <input.h>. Signed-off-by: Diego Dorta <diego.dorta@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
2017-10-12colibri_imx6: Avoid calling setup_display() from SPL codeFabio Estevam
There is no need call setup_display() from SPL code, so move it to board_init(), which executes only in U-Boot proper. Reported-by: Stefano Babic <sbabic@denx.de> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
2017-10-12apalis_imx6: Avoid calling setup_display() from SPL codeFabio Estevam
There is no need call setup_display() from SPL code, so move it to board_init(), which executes only in U-Boot proper. Reported-by: Stefano Babic <sbabic@denx.de> Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>