mirror of
https://github.com/NixOS/nixos-hardware.git
synced 2025-11-06 09:58:47 +08:00
nxp: document flash procedure and expose images in flake
This commit is contained in:
@@ -23,6 +23,33 @@ Boot ROM initializes the SoC and loads OEI, which runs in TCM to perform early s
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Building Boot Images
|
||||||
|
|
||||||
|
The boot image for flashing to SD cards can be built directly from the flake:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build boot image for UCM-iMX95
|
||||||
|
nix build github:NixOS/nixos-hardware#packages.aarch64-linux.ucm-imx95-boot
|
||||||
|
|
||||||
|
# Or from a local checkout
|
||||||
|
nix build .#packages.aarch64-linux.ucm-imx95-boot
|
||||||
|
```
|
||||||
|
|
||||||
|
The boot image will be available at `./result/image/flash.bin`.
|
||||||
|
|
||||||
|
**Note:** These packages target `aarch64-linux`. If you're on a different architecture (e.g., x86_64-linux), you'll need remote builders configured for aarch64-linux.
|
||||||
|
|
||||||
|
### Flashing to SD Card
|
||||||
|
|
||||||
|
Once built, you can flash the boot image to an SD card:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Write boot image to SD card at 32KB offset (adjust /dev/sdX to your SD card device)
|
||||||
|
sudo dd if=./result/image/flash.bin of=/dev/sdX bs=1k seek=32 conv=fsync
|
||||||
|
```
|
||||||
|
|
||||||
|
**Warning:** Double-check the device path to avoid overwriting the wrong disk!
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
- The configuration, including device-tree, kernel, and bootloader components, is optimized for the UCM-iMX95 SoM and EVK.
|
- The configuration, including device-tree, kernel, and bootloader components, is optimized for the UCM-iMX95 SoM and EVK.
|
||||||
- The generated NixOS image supports booting from SD card or eMMC, depending on the hardware configuration.
|
- The generated NixOS image supports booting from SD card or eMMC, depending on the hardware configuration.
|
||||||
|
|||||||
10
flake.nix
10
flake.nix
@@ -462,11 +462,19 @@
|
|||||||
|
|
||||||
# Add packages
|
# Add packages
|
||||||
packages = eachSystem (
|
packages = eachSystem (
|
||||||
pkgs: _system: {
|
pkgs: system:
|
||||||
|
{
|
||||||
run-tests = pkgs.callPackage ./tests/run-tests.nix {
|
run-tests = pkgs.callPackage ./tests/run-tests.nix {
|
||||||
inherit self;
|
inherit self;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
// pkgs.lib.optionalAttrs (system == "aarch64-linux") {
|
||||||
|
# Boot images for NXP i.MX boards (aarch64-linux only)
|
||||||
|
ucm-imx95-boot = (pkgs.callPackage ./compulab/ucm-imx95/bsp/ucm-imx95-boot.nix { }).imx95-boot;
|
||||||
|
imx93-boot = (pkgs.callPackage ./nxp/imx93-evk/bsp/imx93-boot.nix { }).imx93-boot;
|
||||||
|
imx8mp-boot = (pkgs.callPackage ./nxp/imx8mp-evk/bsp/imx8mp-boot.nix { }).imx8m-boot;
|
||||||
|
imx8mq-boot = (pkgs.callPackage ./nxp/imx8mq-evk/bsp/imx8mq-boot.nix { }).imx8m-boot;
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
# Add checks for `nix run .#run-tests`
|
# Add checks for `nix run .#run-tests`
|
||||||
|
|||||||
@@ -38,3 +38,41 @@ Code snippet example that enables 'imx8mp-evk/imx8mq-evk/imx93-evk' configuratio
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 2.3 Building Boot Images
|
||||||
|
|
||||||
|
Boot images for flashing to SD cards can be built directly from the flake:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Build boot image for i.MX8MP EVK
|
||||||
|
nix build github:NixOS/nixos-hardware#packages.aarch64-linux.imx8mp-boot
|
||||||
|
|
||||||
|
# Build boot image for i.MX8MQ EVK
|
||||||
|
nix build github:NixOS/nixos-hardware#packages.aarch64-linux.imx8mq-boot
|
||||||
|
|
||||||
|
# Build boot image for i.MX93 EVK
|
||||||
|
nix build github:NixOS/nixos-hardware#packages.aarch64-linux.imx93-boot
|
||||||
|
|
||||||
|
# Or from a local checkout
|
||||||
|
nix build .#packages.aarch64-linux.imx8mp-boot
|
||||||
|
```
|
||||||
|
|
||||||
|
The boot image will be available at `./result/image/flash.bin`.
|
||||||
|
|
||||||
|
**Note:** These packages target `aarch64-linux`. If you're on a different architecture (e.g., x86_64-linux), you'll need remote builders configured for aarch64-linux.
|
||||||
|
|
||||||
|
### 2.4 Flashing to SD Card
|
||||||
|
|
||||||
|
Once built, you can flash the boot image to an SD card:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# For i.MX8MP and i.MX93 (32KB offset):
|
||||||
|
sudo dd if=./result/image/flash.bin of=/dev/sdX bs=1k seek=32 conv=fsync
|
||||||
|
|
||||||
|
# For i.MX8MQ (33KB offset):
|
||||||
|
sudo dd if=./result/image/flash.bin of=/dev/sdX bs=1k seek=33 conv=fsync
|
||||||
|
```
|
||||||
|
|
||||||
|
**Note:** Different i.MX processors require different offsets. i.MX8MP and i.MX93 use 32KB (seek=32), while i.MX8MQ uses 33KB (seek=33).
|
||||||
|
|
||||||
|
**Warning:** Double-check the device path to avoid overwriting the wrong disk!
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user