mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-03 16:57:14 +08:00
This refactoring reduces code duplication across i.MX93, i.MX8MP, and i.MX8MQ platforms by extracting common build logic into parameterized shared builders. This makes it easier to maintain and add new i.MX platforms while ensuring consistency across all platforms.
NXP i.MX8 SOC family support
1. Supported devices
- i.MX8QuadMax Multisensory Enablement Kit (imx8qm-mek) - device-specific U-boot and Linux kernel, nixos configuration example.
- i.MX8QuadXPlus Multisensory Enablement Kit (imx8qxp-mek) - device-specific U-Boot and Linux kernel.
2. How to use
2.1 For imx8qm-mek
Currently this NXP overlay is used for generating EFI-bootable NixOS images. I recommend to use Tow-Boot as a bootloader, but U-Boot from this overlay can also be used. U-Boot was tested separately from NixOS.
Code snippet example that enables imx8qm configuration:
{ nixos-hardware, }: {
system = "aarch64-linux";
modules = [
nixos-hardware.nixosModules.imx8qm-mek
];
}
2.2 For imx8mq-evk/imx8mp-evk/imx93-evk
This NXP overlay is used for generating sdimage.
Current configuration uses uboot as a bootloader. It provides an options to use optee-os which is currently disabled. It can be enabled using enable-tee boolean argument avalable in imx8m<q/p>-boot.nix, which is false by default in imx8m platform.
Code snippet example that enables 'imx8mp-evk/imx8mq-evk/imx93-evk' configuration:
{ nixos-hardware, }: {
system = "aarch64-linux";
modules = [
nixos-hardware.nixosModules.imx8mp-evk #For imx8mp-evk
#nixos-hardware.nixosModules.imx93-evk #For imx93-evk
#nixos-hardware.nixosModules.imx8mq-evk #For imx8mq-evk
];
}