nixos/sdcard: make firmware partition offset configurable
Different boards using u-boot SPL require to write to different locations. Sometimes, the 8MiB gap isn't sufficient - rk3399 boards write to 0x16384 for example, which is at 8MiB, thus overriding the fat32 partition with the SPL.
This commit is contained in:
parent
3affea2a73
commit
1db54a5522
@ -55,6 +55,22 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
firmwarePartitionOffset = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 8;
|
||||||
|
description = ''
|
||||||
|
Gap in front of the /boot/firmware partition, in mebibytes (1024×1024
|
||||||
|
bytes).
|
||||||
|
Can be increased to make more space for boards requiring to dd u-boot
|
||||||
|
SPL before actual partitions.
|
||||||
|
|
||||||
|
Unless you are building your own images pre-configured with an
|
||||||
|
installed U-Boot, you can instead opt to delete the existing `FIRMWARE`
|
||||||
|
partition, which is used **only** for the Raspberry Pi family of
|
||||||
|
hardware.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
firmwarePartitionID = mkOption {
|
firmwarePartitionID = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "0x2178694e";
|
default = "0x2178694e";
|
||||||
@ -177,7 +193,7 @@ in
|
|||||||
zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img
|
zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img
|
||||||
|
|
||||||
# Gap in front of the first partition, in MiB
|
# Gap in front of the first partition, in MiB
|
||||||
gap=8
|
gap=${toString config.sdImage.firmwarePartitionOffset}
|
||||||
|
|
||||||
# Create the image file sized to fit /boot/firmware and /, plus slack for the gap.
|
# Create the image file sized to fit /boot/firmware and /, plus slack for the gap.
|
||||||
rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }')
|
rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }')
|
||||||
|
Loading…
Reference in New Issue
Block a user