summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-09-28toradex boards: sdboot cosmetic clean-upColibri-iMX7_LXDE-Image_2.8b4.129-20181005Colibri-iMX6_LXDE-Image_2.8b4.129-20181005Colibri-iMX6ULL_LXDE-Image_2.8b4.129-20181005Colibri-VF_LXDE-Image_2.8b4.129-20181005Colibri-T30_LXDE-Image_2.8b4.129-20181005Colibri-T20_LXDE-Image_2.8b4.129-20181005Apalis-iMX6_LXDE-Image_2.8b4.129-20181005Apalis-TK1_LXDE-Image_2.8b4.129-20181005Apalis-TK1-Mainline_LXDE-Image_2.8b4.129-20181005Apalis-T30_LXDE-Image_2.8b4.129-20181005Marcel Ziswiler
The whole thing meanwhile diverged heavily. Fix this. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Philippe Schenker <philippe.schenker@toradex.com>
2018-09-28colibri_t20: fix sdbootMarcel Ziswiler
Currently, the Colibri T20 sdboot variable tries to load the kernel from the second MMC/SD device instance. However, given the Colibri T20 having on-module NAND flash the MMC/SD card is actually the primary instance. Fix this to load the kernel and device tree from the first (typically FAT) partition of the MMC/SD card as customary on all Toradex modules. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Philippe Schenker <philippe.schenker@toradex.com>
2018-09-28Revert "apalis-tk1: change usb_port_owner_info to 3 in defargs"Dominik Sliwa
This reverts commit cb4e847cbfe791a4093b0dec7b7467df4406f845. We had some issues with USB2.0 devices when using OTG, reverting for now. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-28colibri-imx6ull: fix ethernet phy power onMarcel Ziswiler
Just give the new Ethernet PHY power save mode circuitry time to settle. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2018-09-28colibri imx6: use dynamic ddr calibrationMax Krummenacher
Some Colibri iMX6 IT were found which were freezing at higher temperature. Using the SPL to do a dynamic calibration at each boot fixes the issue. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-27mx6: ddr: use consistent debug outputMax Krummenacher
Print all ddr calibration output in the same style. Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-20ARM: mx6: ddr: use Kconfig for inclusion of DDR calibration routinesEric Nelson
The DDR calibration routines are gated by conditionals for the i.MX6DQ SOCs, but with the use of the sysinfo parameter, these are usable on at least i.MX6SDL and i.MX6SL variants with DDR3. Also, since only the Novena board currently uses the dynamic DDR calibration routines, these routines waste space on other boards using SPL. Add a KConfig entry to allow boards to selectively include the DDR calibration routines. Signed-off-by: Eric Nelson <eric@nelint.com> (cherry picked from commit a425bf72816abbc3996540e42c33a386e8b8a221)
2018-09-20mx6: ddr: add routine to return DDR calibration dataEric Nelson
Add routine mmdc_read_calibration() to return the output of DDR calibration. This can be used for debugging or to aid in construction of static memory configuration. This routine will be used in a subsequent patch set adding a virtual "mx6memcal" board, but could also be useful when gathering statistics during an initial production run. Signed-off-by: Eric Nelson <eric@nelint.com> (cherry picked from commit 48c7d4379bcf70ce331e441b135cfbf3546dd574)
2018-09-20mx6: ddr: pass mx6_ddr_sysinfo to calibration routinesEric Nelson
The DDR calibration routines have scattered support for bus widths other than 64-bits: -- The mmdc_do_write_level_calibration() routine assumes the presence of PHY1, and -- The mmdc_do_dqs_calibration() routine tries to determine whether one or two DDR PHYs are active by reading MDCTL. Since a caller of these routines must have a valid struct mx6_ddr_sysinfo for use in calling mx6_dram_cfg(), and the bus width is available in the "dsize" field, use this structure to inform the calibration routines which PHYs are active. This allows the use of the DDR calibration routines on CPU variants like i.MX6SL that only have a single MMDC port. Signed-off-by: Eric Nelson <eric@nelint.com> Reviewed-by: Marek Vasut <marex@denx.de> (cherry picked from commit 7f17fb7400ff091dd48f86977655c6a57d06b17c)
2018-09-20mx6: ddr: allow 32 cycles for DQS gating calibrationEric Nelson
The DDR calibration code is only setting flag DG_CMP_CYC (DQS gating sample cycle) for the first PHY. Set the 32-cycle flag for both PHYs and clear when done so the MPDGCTRL0 output value isn't polluted with calibration artifacts. Signed-off-by: Eric Nelson <eric@nelint.com> Reviewed-by: Marek Vasut <marex@denx.de> (cherry picked from commit b33f74ead4dfd1ec0b500dc3d1cfef0e308b45c3)
2018-09-20colibri_imx6: apply nreset_out only if no power-onStefan Bigler
Fix the nreset_out() and only pull-down nRESET_OUT reset case was not a power-on reset. Cannot use get_imx_reset_cause() because static variable reset_cause is not initialized, normal done by get_reset_cause() much later. Signed-off-by: Stefan Bigler <stefan.bigler@securiton.ch> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-20mtd: nand: colibri_t20: more comments/debug outputMarcel Ziswiler
Add more comments resp. debug output concerning block size and ECC requirements of NAND flashes. This in aiding further investigation/ integration of support for future NAND flash parts. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>
2018-09-13imx: imx-common: do not zero out outside of regionsStefan Agner
There are two issues with the zeroing out code currently: The cache flush does not take the zeroed out section into account! The M4 firmware is started right after copying the firmware, and might use the memory area. Since the M4 and the A7 (where U-Boot is running) are not cache coherent, flushing cache could overwrite the M4's variable at any point in time, leading to crashes of the M4 firmware... Secondly, the program header of a Cortex-M4 firmware might look like this: LOAD off 0x00007240 vaddr 0x20000240 paddr 0x1fffdcdc align 2**12 filesz 0x000001d0 memsz 0x000055c4 flags rw- The code uses paddr as base, and zeros out everything which is beyond file size. This might overlap into the next section! It seems that memsz is in vaddr space and not paddr... Since zeroing out is not strictly necessary (the firmwares C initialization code should do that anyway) better play safe and don't initialize the empty bytes... Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-13colibri_vf: Fix sdboot in vf modulesGerard Salvatella
Currently Vybrids sdboot variable tries to load the kernel from /boot of the root partition (typically second partition when using the sdcard image). However, since we moved to flash the kernel in a separate UBI volume, we no longer deploy the kernel/device tree to /boot, hence sdboot does not work in its current state. Load the kernel and device tree from the first (typically FAT) partition as customary on all Toradex modules. Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-09-13board: 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> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-13common: add board specific hook for os pre-boot configGerard Salvatella
Some boards require specific configuration prior to booting the kernel. For instance, our boards require shutting down the display to avoid fading transitions before the drivers are reloaded by the kernel. This can be facilitated by adding an extra hook during the os booting process. Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-09-13board: apalis/colibri_imx6: check for and report ecc errors in fusesGerard Salvatella
The PMIC on apalis/colibri_imx6 may have ECC errors in fuses that will prevent correct settings. Up to one bit error per fuse bank can 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>
2018-07-27apalis-tk1: remove non-esential power rails on bootDominik Sliwa
When mainline kernels reboot TK1 they use SW_RESET, that reset mode does not reset PMIC. Some rails need to be off for RAM Re-repair to work correctly. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27apalis/colibri_imx6/imx6ull: make sure loadaddr does not collideStefan Agner
Currently $loadaddr and $fdt_addr_r point to the same address. This might be not ideal for some distro boot scripts which make use of $loadaddr after loading the device tree. Make sure the two variables point to two different addresses. Moving $loadaddr is not entirly trivial since it is defined in mx6_common.h. Move $fdt_addr_r and $ramdisk_addr_r by 1MiB, which should be enough for scripts. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27apalis_t30: integrate tezi recoveryMarcel Ziswiler
In case of Tezi recovery do not stop regular auto booting but rather load the tezi.itb which got put at a fixed offset of 1M from the regular loadaddr. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27apalis_t30: add configuration for teziMarcel Ziswiler
Modify configuration for Tezi: - Use distroboot by default - Boot from external SD cards by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27apalis-tk1: integrate tezi recoveryMarcel Ziswiler
In case of Tezi recovery do not stop regular auto booting but rather load the tezi.itb which got put at a fixed offset of 1M from the regular loadaddr. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27apalis-tk1: add configuration for teziMarcel Ziswiler
Modify configuration for Tezi: - Use distroboot by default - Boot from external SD cards by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27colibri-imx6ull: add configuration for teziStefan Agner
Modify configuration for Tezi: - Enable SDP in U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Use distroboot by default - Boot from external SD cards by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27colibri_imx7: add configuration for tezi recoveryStefan Agner
Modify configuration for Tezi unified recovery mode: - Enable SDP in U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Remove video output - Currently only for recovery (no flash/eMMC support) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27colibri_imx7_emmc: add configuration for teziStefan Agner
Modify configuration for Tezi: - Enable SDP in U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Remove video output - Boot from external SD cards using distroboot first by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27colibri_imx7: add configuration for teziStefan Agner
Modify configuration for Tezi: - Enable SDP in U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Remove video output - Boot from external SD cards using distroboot first by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27mtest: disable physical memory cell test for teziStefan Agner
For faster test time shorten the alternative memory test to only do the stuck address/data line tests instead of full memory write pattern tests. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27colibri_imx6: add configuration for teziStefan Agner
Modify configuration for Tezi: - Enable SDP in SPL and U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Remove video output - Use distroboot by default - Boot from external SD cards by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27apalis_imx6: add configuration for teziStefan Agner
Modify configuration for Tezi: - Enable SDP in SPL and U-Boot - Enable FDT relocation (in-place is causing issues with FIT images) - Remove video output - Use distroboot by default - Boot from external SD cards by default - Disable USB PID from config block (otherwise recovery mode download in U-Boot stage fails) Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-07-27toradex: add easy installer configurabilityMarcel Ziswiler
Allow setting Toradex Easy Installer aka Tezi specific configuration options like not enabling SATA, directly continuing with the SDP command upon recovery, distrobooting otherwise or not storing the environment. Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> Acked-by: Stefan Agner <stefan.agner@toradex.com>
2018-07-27colibri_imx7_emmc: legacy update from external sd cardStefan Eichenberger
Use the external SD interface for legacy SD update instead of eMMC. Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-19apalis-tk1: apalis_t30: colibri_t30: display reset reasonColibri-iMX7_LXDE-Image_2.8b3.111-20180627Colibri-iMX6_LXDE-Image_2.8b3.111-20180627Colibri-iMX6ULL_LXDE-Image_2.8b3.111-20180627Colibri-VF_LXDE-Image_2.8b3.111-20180626Colibri-T30_LXDE-Image_2.8b3.111-20180627Colibri-T20_LXDE-Image_2.8b3.111-20180626Apalis-iMX6_LXDE-Image_2.8b3.111-20180626Apalis-TK1_LXDE-Image_2.8b3.111-20180626Apalis-TK1-Mainline_LXDE-Image_2.8b3.111-20180627Apalis-T30_LXDE-Image_2.8b3.111-20180626Dominik Sliwa
Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-19apalis-tk1: invoking ram_repair before powerup_cpus()Dominik Sliwa
Invoking tegra124_ram_repair() before powerup_cpus() is being invoked to avoid race-conditions if arises further. (based on downstream: fe1c9e4d523d6727afb62f03ef9fa5c0f04e7859) Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-19colibri-imx6ull: set module variant depending on config blockStefan Agner
Using CPU temperature grading as a discriminator if the Wi-Fi / Bluetooth chip is populated is no longer possible due to upcoming SKUs. Set variant to -wifi only if a valid config block is present and the product id mentions a SKU with Wi-Fi / Bluetooth. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-19tdx-cfg-block: simplify i.MX 6 module detectionStefan Agner
Use CONFIG_TARGET_... at compile time to differentiate between Apalis iMX6, Colibri iMX6 and Colibri iMX6ULL. Avoid code duplication by moving question about Wi-Fi / Bluetooth before IT/non-IT decision. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18tdx-cfg-block: add support for new Colibri iMX6ULL SKUsGerard Salvatella
Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18colibri_imx7_emmc: add fatwrite supportGerard Salvatella
Tested on Colibri iMX7 1GB aka eMMC V1.1A Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18colibri-vf: use leveling evaluated by DDR validation toolsStefan Agner
The DDR validation tool (which is part of Processor Expert) allows to evaluate leveling parameters for CR105/CR106/CR110. Several runs have been made with Colibri VF50 and VF61 and it seems to evaluate very similar values. Use this values by default. Note: The newly evaluated parameters seem to require CTLUPD_AREF to be enabled! Note 2: The tool also evaluated 6 as a new value for PHY02/18 GATE_CFG (Coarse adjust of gate open time). However, this seems not to work in practise. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-18colibri-vf: adjust timing according to data sheetStefan Agner
Using the DDR Validation tool in Processor Expert uncovered two timing inconsistencies. Since those timings are related to the suspend mode they do not affect or change regular memory behavior. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06ARM: vf610: ddrmc: do not write CR79 by defaultStefan Agner
The current value CTLUPD_AREF(0) is the reset value of the register, so there is no need to write a value. If needed, the register can be written using board specific CR settings. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06ARM: vf610: ddrmc: fix CR138 preprocessor defineStefan Agner
According to the data sheet bits 10-8 are PHYDRAM_CK_EN. Fix mask to allow setting PHYDRAM_CK_EN correctly. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06ARM: vf610: fix initialization completion detectionStefan Agner
The CR80 register has multiple interrupt bits, the code is supposed to check bit 8 but instead uses a logical and. In most cases this probably did not affect real operations since at that stage typically none of the other bits are set. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06arm: vf610: add UART2 pinmux/clock supportStefan Agner
Add support for Vybrid's UART2 (Colibri UART_B). Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06colibri-imx6: added nreset gpio on rebootGerard Salvatella
RGMII_RD1 pin (active high, GPIO6_IO27) is triggered on reboot during the SPL phase. This asserts (active low) nReset_Out from the PMIC. Only V1.1 and later Colibri iMX6 modules implement this in hw. Previous versions do not use this pin, so it is safe to leave it enabled at all times. Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06cmd: ubi: print load size after establishing volume sizeStefan Agner
When using static volumes, the file size stored in the volume is determined at runtime. Currently the ubi command prints the file size specified on the console, which leads to a rather confusing series of messages: # ubi read ${fdt_addr_r} testvol Read 0 bytes from volume testvol to 82000000 No size specified -> Using max size (179924992) Make sure to print the actual size read in any case: # ubi read ${fdt_addr_r} testvol No size specified -> Using max size (179924992) Read 179924992 bytes from volume testvol to 82000000 Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06cmd: set filesize variable in ubi readHolger Dengler
After a successful read of a UBI volume, the variable filesize is set to the number of read bytes. To boot linux with a raw initramfs/initrd, you must specify the exact size of the initramfs/initrd image in boot command. If the initramfs/inird is read from UBI volume, $filesize is required to access the number of read bytes. Example: ubi read ${loadaddr} kernelvol ubi read ${fdtaddr} dtbvol ubi read ${initrd_addr} initrdvol bootz ${loadaddr} ${initrd_addr}:${filesize} ${fdt_addr} Signed-off-by: Holger Dengler <dengler@linutronix.de> Reviewed-by: Heiko Schocher <hs@denx.de> (cherry picked from commit 985fa93e61706a78fad130b006aefa1c098145de) [backported to 2016.11] Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06colibri-imx6ull: fix card detect GPIO of SD cardStefan Agner
Use GPIO 0 of instance GPIO5 which is used as card detect on Colibri iMX6ULL. This fixes SD card detection. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06apalis-tk1: change usb_port_owner_info to 3 in defargsDominik Sliwa
Change usb_port_owner_info to 3 in defargs to allow for USB 3.0 SuperSpeed functionality on USBO1 in host mode. Signed-off-by: Dominik Sliwa <dominik.sliwa@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
2018-06-06colibri-imx6ull: Set the DDR RAM ASR bitSven Guggisberg
Set the ASR bit to enable auto self refresh for RAM in mode register 2. In ASR the refresh rate is dynamically adjusted to temperature which is more power efficient in suspend to RAM. Signed-off-by: Sven Guggisberg <sven.guggisberg@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com>