aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/imx
Commit message (Collapse)AuthorAgeFilesLines
* imx: keep common kernel symbols in target's configPiotr Dymacz2022-07-113-15/+7
| | | | | | Move common kernel symbols from subtargets to target config. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: cortexa7: add support for TechNexion PICO-PI-IMX7DLech Perczak2022-07-115-5/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TechNexion PICO-PI-IMX7D is a NXP i.MX 7Dual based development board in the well-known "Raspberry Pi" form factor, comprising of PICO-IMX7 SoM and the PICO-PI-IMX7D carrier board. Usually bundled with a 5" 800x480 LVDS display with I2C touchscreen and an Omnivision OV5645 camera on a MIPI CSI bus, on a daughterboard. The board was previously used primarily with "Android Things" ecosystem, but the project was killed by Google. This would not be possible, if not for the great tutorial of setting up Debian on this board, by Robert C. Nelson [1]. Hardware highlights: CPU: NXP i.MX 7Dual SoC, dual-core Cortex-A7 at 1000 MHz RAM: 512 MiB DDR3 SDRAM Storage: 4 GB eMMC Networking: - built-in Gigabit Ethernet with Atheros AR8035 PHY, - Broadcom BCM4339 1x1 802.11ac Wi-Fi (over SDIO) + Bluetooth 4.1 (over SDIO + UART + IS2) combo, with Hirose u.FL connector on the board, - dual CAN interfaces on the 40-pin connector, Interfaces: - USB-C power input plus USB 2.0 OTG host/device port, - single USB-A host port, - serial console over built-in FT232BL USB-UART converter with micro-USB connector (configuration: 115200-8-N-1), - analog audio interface with TRRS connector in CTIA standard, - SPI, I2C and UART interfaces available on the 40-pin, - mikroBUS connector, - I2C connector for the optional touch panel, - parallel LCD output for the optional display, - MIPI CSI connector for the optional camera Installation: 1. Connect the serial console to debug USB connector and the terminal of choice in another window, at 115200-8-N-1. Ensure you can switch to it quickly after next step. 2. Power-on the board from your PC. Ensure your PC can supply required current, the board can take more than 1 A in the peak load during booting and brownout will result in power-on reset loop. Preferably, use charging-capable USB port or connect through self-powered USB hub. If U-Boot is present already on the eMMC, interrupt the booting sequence by pressing any key and skip to point 7. 3. Ensure the boot mode jumpers J1 and J2 are in correct position for USB recovery: 2 6 2 6 -------------- |o o-o||o-o o| |o o-o||o-o o| J1 -------------- J2 1 5 1 5 The jumpers are located just underneath the 40-pin expansion header and are of the smaller 2 mm pitch. 4. Download and build 'imx_usb_loader' from: https://github.com/boundarydevices/imx_usb_loader. 5. Power-on the board again from your PC through USB OTG connector. 6. Use 'imx_usb_loader' to load 'SPL' and 'u-boot-dtb.img' to the board: $ sudo imx_usb u-boot-pico-pi-imx7d/SPL $ sudo imx_usb u-boot-pico-pi-imx7d/u-boot-dtb.img 7. Switch to the terminal from step 2 and interrupt boot sequence by pressing any key within 2 seconds. 8. Configure mmc 0 to boot from the data partition and disable access to boot partitions: => mmc partconf 0 0 7 0 This only needs to be set once. If you were running Debian previously, this is probably already set. 9. Enable USB mass storage passthrough for eMMC from U-boot => ums 0 mmc 0 10. Optionally, backup previous eMMC contents by reading out its image. 11. Copy over the factory image to the USB device, for example: $ sudo dd if=openwrt-imx-cortexa7-pico-pi-imx7d-squashfs.combined.bin \ of=/dev/disk/by-id/usb-Linux_UMS_disk_0-0:0 \ bs=8M status=progress oflag=direct 12. Detach USB MSC interface from your PC and U-Boot by pressing Ctrl+C. 13. Ensure that boot mode jumpers are at the default settings for eMMC boot: 2 6 2 6 -------------- |o-o o||o o-o| |o-o o||o-o o| J1 -------------- J2 1 5 1 5 If they are not, power-off the board, restore them and power-on the board again. Otherwise, if jumpers are set, just reset the board from U-Boot CLI: => reset 14. The installation is now complete and board should boot successfully. Upgrading: just use sysupgrade image, as usual in OpenWrt. Known issues/current limitations: - OV5645 camera - not described in upstream device tree as of kernel 5.15. There are staging drivers present in upstream Linux tree for i.MX 7 CSI, MIPI-CSI and video mux, and the configuration is there in imx7s.dtsi - so this is expected to get supported eventually, - on-chip ADCs are disabled in upstream device tree, so the kernel driver remains disabled as well. [1] https://forum.digikey.com/t/debian-getting-started-with-the-pico-pi-imx7/12429 Signed-off-by: Lech Perczak <lech.perczak@gmail.com> [pepe2k@gmail.com: commit description reworded] Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: add DT aliases for imx7d-pico-piLech Perczak2022-07-112-0/+47
| | | | | | | Add OpenWrt specific aliases for system LED and label MAC device, also set default serial console. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: make sdcard/eMMC sysupgrade more resilientLech Perczak2022-07-111-3/+6
| | | | | | | | Ensure, that kernel update is performed atomically on filesystem, to reduce likelihood of failure if power-cut occurs during sysupgrade. If kernel update fails for whatever reason, skip updating rootfs as well. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: decouple sdcard sysupgrade from Apalis boardsLech Perczak2022-07-114-56/+67
| | | | | | | | | Sysupgrade procedure for i.MX 6 Apalis boards is suitable for most other i.MX boards booting from eMMC or SD card. Extract the common parts and decouple the procedure from "apalis" board name in sysupgrade TAR contents, so the procedure is reusable for i.MX 7 boards. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: create sdcard image recipe with raw U-BootLech Perczak2022-07-111-0/+10
| | | | | | | | Most i.MX boards booting off eMMC or SD cards use raw U-Boot located at 69 kB offset from beginning of the device - create a recipe for such image. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: extract common combined image operations between subtargetsLech Perczak2022-07-113-56/+59
| | | | | | | The same combined image format can be used to boot both i.MX 6 and i.MX 7 platforms - extract the common part. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: cortexa7: enable framebuffer console + DRMLech Perczak2022-07-111-0/+47
| | | | | | | | | | The PICO-PI-IMX7D board is equipped with external LCD display with touchscreen. To allow displaying console on it, enable framebuffer, fbcon and DRM support at early boot. Signed-off-by: Lech Perczak <lech.perczak@gmail.com> [pepe2k@gmail.com: refreshed subtarget kernel config] Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: bundle correct SDMA firmware for i.MX 7 boardsLech Perczak2022-07-114-2/+4
| | | | | | | | | | Import sdma-imx7d.bin from linux-firmware repository at commit: 55edf5202154: ("imx: sdma: update firmware to v3.5/v4.5") Cortex-A7 boards (i.MX 7 based) use different SDMA firmware than i.MX 6 boards - bundle the correct files in per-subtarget kernel options. Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
* imx: cortexa7: adjust kernel config defaults for i.MX 7Lech Perczak2022-07-111-0/+19
| | | | | | | | | Add initial symbols required for i.MX 7 boards, based on devices available on TechNexion PICO-PI-IMX7D board. Signed-off-by: Lech Perczak <lech.perczak@gmail.com> [pepe2k@gmail.com: refreshed subtarget kernel config] Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: refresh (sub)target kernel configsPiotr Dymacz2022-07-112-7/+3
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* generic: enable CRYPTO_LIB_BLAKE2S[_X86|_ARM]Tomasz Maciej Nowak2022-06-241-0/+2
| | | | | | | | | | | | This is now built-in, enable so it won't propagate on target configs. Link: https://lkml.org/lkml/2022/1/3/168 Fixes: 79e7a2552e89 ("kernel: bump 5.15 to 5.15.44") Fixes: 0ca93670693b ("kernel: bump 5.10 to 5.10.119") Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com> (Link to Kernel's commit taht made it built-in, CRYPTO_LIB_BLAKE2S[_ARM|_X86] as it's selectable, 5.10 backport) Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* kernel: bump 5.15 to 5.15.32Rui Salvaterra2022-04-092-10/+10
| | | | | | Patches automatically rebased. Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
* kernel: move some symbols to generic configAleksander Jan Bajkowski2022-04-091-4/+0
| | | | | | | | | | | | | | | | | | | This commit add some enabled symbols to generic config. LTO is only supported by clang compiler and therefore should be disabled in the generic config instead of duplicating this symbol in each target. CONFIG_LTO_NONE do this job. The second group of symbols is enabled by the options available in the generic config and is therefore added here: * CONFIG_AF_UNIX_OOB is selected by CONFIG_NET && CONFIG_UNIX, * CONFIG_BINARY_PRINTF is selected by CONFIG_BPF_SYSCALL, * CONFIG_NET_SOCK_MSG is selected by CONFIG_BPF_SYSCALL && CONFIG_NET. The other symbols are disabled and should be in the generic config. This commit also removes these symbols from subtargets. Signed-off-by: Aleksander Jan Bajkowski <olek2@wp.pl>
* imx: image: use 'u-boot-dtb.img' filename for SPL payloadPiotr Dymacz2022-04-071-1/+10
| | | | | | | | | | | | For targets in U-Boot which were migrated to DM, the correct binary image filename will be 'u-boot-dtb.img'. For backward compatibility, keep support for both files and use the one which was generated with our 'uboot-imx' package. See also 'CONFIG_SPL_FS_LOAD_PAYLOAD_NAME' and 'CONFIG_OF_CONTROL' in mainline U-Boot sources. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: bootscript-apalis: make it working with U-Boot 2022.01Petr Štetiar2022-04-071-2/+4
| | | | | | | | | | | Upstream in commit 8b9c0cb46471 ("apalis_imx6: boot env configuration updates") removed emmc legacy wrappers, but so far didn't included any replacements. Fix it by simply defining the missing variables and UUID gathering directly into the boot script. Signed-off-by: Petr Štetiar <ynezz@true.cz> [pepe2k@gmail.com: updated commit title for 2022.01] Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: base-files: drop redundant space after case keywordsPiotr Dymacz2022-04-013-94/+94
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: re-enable ARM arch timerPetr Štetiar2022-03-311-0/+2
| | | | | | | | | | | | | | Config option `ARM_ARCH_TIMER` has been removed during rebasing onto 5.15 kernel in commit 2b395c298247 ("imx: update config for 5.15"). Anyway, as stated in commit 8cdc356f8c30 ("mediatek: mt7623: Re-enable ARM arch timer") config option `ARM_ARCH_TIMER` cannot be enabled in the config directly; it is only selected by `HAVE_ARM_ARCH_TIMER`. We need to enable the latter in our config. Fixes: 2b395c298247 ("imx: update config for 5.15") Reported-by: Piotr Dymacz <pepe2k@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imx: make 5.15 default kernel and remove 5.10 supportPetr Štetiar2022-03-315-623/+1
| | | | | | | | | | | | | | | | | | | | | | | | In imx target we're sharing single, version agnostic kernel `config-default` file, which doesn't work very well with current 5.10 and upcoming 5.15 kernel symbols as recent rebase onto 5.15 kernel introduced in commit 2b395c298247 ("imx: update config for 5.15) has introduced following regression with 5.10 kernel: Marvell 88E6xxx Ethernet switch fabric support (NET_DSA_MV88E6XXX) [Y/n/m/?] y Switch Global 2 Registers support (NET_DSA_MV88E6XXX_GLOBAL2) [Y/n/?] (NEW) That NET_DSA_MV88E6XXX_GLOBAL2 kernel config symbol has been removed in upstream commit 63368a7416df ("net: dsa: mv88e6xxx: Make global2 support mandatory") in kernel version 5.12. This issue could be probably fixed by introduction of separate kernel config files for each currently used kernel versions and subtarget, but it is not worth the hassle and resources as imx target is running mostly upstream kernel, so lets fix it by switching to 5.15 version instead. Fixes: 2b395c298247 ("imx: update config for 5.15") Acked-by: Piotr Dymacz <pepe2k@gmail.com> Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imx: update config for 5.15Petr Štetiar2022-03-303-9/+21
| | | | | | Refresh kernel config with `make kernel_oldconfig` make target. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imx: enable 5.15 as testing kernelPetr Štetiar2022-03-301-0/+1
| | | | | | | So anyone interested can help with new kernel version integration and testing. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imx: copy config and patches from 5.10 to 5.15Petr Štetiar2022-03-304-0/+623
| | | | | | So the upcoming changes needed for 5.15 can be reviewed easily. Signed-off-by: Petr Štetiar <ynezz@true.cz>
* imx: fix USB supportPiotr Dymacz2022-03-111-0/+1
| | | | | | | | | | | The ChipIdea USB kernel driver gained support for disabling glue drivers in 5.8, see upstream commmit: 95caa2ae70fd ("usb: chipidea: allow disabling glue drivers if EMBEDDED"). This enables 'CONFIG_USB_CHIPIDEA_IMX' in the 'imx' target kernel config which brings back USB support. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: bump SDMA firmware to v3.6Koen Vandeputte2022-01-131-0/+0
| | | | | | No changelog available Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
* kernel: 5.10: consolidate mac80211 crypto optionsSergey Ryazanov2021-12-171-2/+0
| | | | | | | | | | | | | | | | | | | | | | Each of - CRYPTO_AEAD2 - CRYPTO_AEAD - CRYPTO_GF128MUL - CRYPTO_GHASH - CRYPTO_HASH2 - CRYPTO_HASH - CRYPTO_MANAGER2 - CRYPTO_MANAGER - CRYPTO_NULL2 either directly required for mac80211 crypto support, or directly selected by such options. Support for the mac80211 crypto was enabled in the generic config since c7182123b9 ("kernel: make cryptoapi support needed by mac80211 built-in"). So move the above options from the target configs to the generic config to make it clear why do we need them. CC: Felix Fietkau <nbd@nbd.name> Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* kernel: filter out both Clang and LLD versionsSergey Ryazanov2021-12-171-1/+0
| | | | | | | | Both CLANG_VERSION and LLD_VERISON are autogenerated runtime configuration options, so add them to the kernel configuration filter and remove from generic and per-target configs to keep configs clean. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
* imx: remove obsolete Kernel 5.4Piotr Dymacz2021-11-0316-3122/+0
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: update subtargets default kernel configs for 5.10Piotr Dymacz2021-11-032-2/+10
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: make kernel 5.10 default versionPiotr Dymacz2021-11-031-2/+1
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: introduce 'cortexa7' subtargetPiotr Dymacz2021-11-036-1/+73
| | | | | | | | | | | This adds some essential files required by new 'cortexa7' subtarget, dedicated for Cortex-A7 based NXP i.MX series. For now, the kernel config-default focuses only on the i.MX 6UL family, as the following changeset will introduce support for i.MX 6ULL based device. Support for more platforms (e.g. i.MX 7) might be enabled later, while adding more devices. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx: split into arch-specific subtargetsPiotr Dymacz2021-11-0311-333/+286
| | | | | | | | | | Modern NXP i.MX series includes several different families, based on single- or multi-core Arm Cortex-A CPUs. To be able to support more families within a single target, we split the 'imx' in arch-specific subtargets, starting with 'cortexa9' for the Cortex-A9 based i.MX 6, already supported by the original 'imx6' target. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* imx6: rename target to 'imx'Piotr Dymacz2021-11-0333-0/+4505
This is first step in migrating to a generic i.MX target which in the next steps will also get divided into arch-specific subtargets. In the result, this will make it possible to support, within a single target, also other modern NXP i.MX families, like the i.MX 7, i.MX 8 or recently introduced i.MX 9. Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>