fix up the rpi-specialized u-boot to actually work when deployed
notably: ship the *correct* rpi-4-b.dtb file alongside u-boot.
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{ stdenv, pkgs }:
|
{ stdenv, pkgs }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "bootpart-tow-boot-rpi-aarch64";
|
pname = "bootpart-u-boot-rpi-aarch64";
|
||||||
version = "1";
|
version = "1";
|
||||||
|
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
@@ -18,7 +18,9 @@ stdenv.mkDerivation rec {
|
|||||||
installPhase = with pkgs; ''
|
installPhase = with pkgs; ''
|
||||||
mkdir "$out"
|
mkdir "$out"
|
||||||
cp ${ubootRaspberryPi4_64bit}/u-boot.bin "$out"/
|
cp ${ubootRaspberryPi4_64bit}/u-boot.bin "$out"/
|
||||||
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.dtb "$out"/
|
cp ${ubootRaspberryPi4_64bit}/*.dtb "$out"/
|
||||||
|
# NB: raspberrypifw dtb's are meant for the kernel, not for u-boot
|
||||||
|
# cp -R ${raspberrypifw}/share/raspberrypi/boot/*.dtb "$out"/
|
||||||
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.bin "$out"/
|
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.bin "$out"/
|
||||||
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.dat "$out"/
|
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.dat "$out"/
|
||||||
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.img "$out"/
|
cp -R ${raspberrypifw}/share/raspberrypi/boot/*.img "$out"/
|
||||||
|
@@ -8,6 +8,10 @@
|
|||||||
# not sure why i can't just do pkgs = next here
|
# not sure why i can't just do pkgs = next here
|
||||||
pkgs = prev // { inherit tow-boot-rpi4; };
|
pkgs = prev // { inherit tow-boot-rpi4; };
|
||||||
};
|
};
|
||||||
|
bootpart-u-boot-rpi-aarch64 = prev.callPackage ./bootpart-u-boot-rpi-aarch64 {
|
||||||
|
# not sure why i can't just do pkgs = next here
|
||||||
|
pkgs = prev // { inherit ubootRaspberryPi4_64bit; };
|
||||||
|
};
|
||||||
|
|
||||||
#### customized packages
|
#### customized packages
|
||||||
# nixos-unstable pleroma is too far out-of-date for our db
|
# nixos-unstable pleroma is too far out-of-date for our db
|
||||||
|
@@ -1,16 +0,0 @@
|
|||||||
diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
|
|
||||||
index eae03bf023..2ded4123ce 100644
|
|
||||||
--- a/configs/rpi_4_defconfig
|
|
||||||
+++ b/configs/rpi_4_defconfig
|
|
||||||
@@ -63,3 +63,11 @@ CONFIG_VIDEO_BCM2835=y
|
|
||||||
CONFIG_CONSOLE_SCROLL_LINES=10
|
|
||||||
CONFIG_PHYS_TO_BUS=y
|
|
||||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
|
||||||
+CONFIG_CMD_CONFIG=y
|
|
||||||
+CONFIG_CMD_EFIDEBUG=y
|
|
||||||
+CONFIG_CMD_GPT=y
|
|
||||||
+CONFIG_CMD_LOG=y
|
|
||||||
+CONFIG_CMD_READ=y
|
|
||||||
+CONFIG_CMD_USB_MASS_STORAGE=y
|
|
||||||
+CONFIG_LOG_MAX_LEVEL=7
|
|
||||||
+CONFIG_CMD_LSBLK=y
|
|
@@ -1,12 +1,39 @@
|
|||||||
{ pkgs }:
|
{ pkgs, fetchurl }:
|
||||||
|
|
||||||
(pkgs.ubootRaspberryPi4_64bit.overrideAttrs (upstream: {
|
(pkgs.buildUBoot {
|
||||||
patches = (upstream.patches or []) ++ [
|
# nixos-22.05 is on 2022.01 at time of writing, which lacks rpi-4 dtb.
|
||||||
|
# TODO: remove this version/src override once upstream bumps u-boot version.
|
||||||
|
version = "2022.04";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "ftp://ftp.denx.de/pub/u-boot/u-boot-2022.04.tar.bz2";
|
||||||
|
hash = "sha256-aOBlQTkmd44nbsOr0ouzL6gquqSmiY1XDB9I+9sIvNA=";
|
||||||
|
};
|
||||||
|
defconfig = "rpi_4_defconfig";
|
||||||
|
extraMeta.platforms = [ "aarch64-linux" ];
|
||||||
|
extraConfig = ''
|
||||||
|
# TODO: this can be removed in 2022.04
|
||||||
|
CONFIG_DEFAULT_DEVICE_TREE="bcm2711-rpi-4-b"
|
||||||
|
# enable some builtin commands to aid in debugging, while we're here
|
||||||
|
CONFIG_CMD_CONFIG=y
|
||||||
|
CONFIG_CMD_EFIDEBUG=y
|
||||||
|
CONFIG_CMD_GPT=y
|
||||||
|
CONFIG_CMD_LOG=y
|
||||||
|
CONFIG_CMD_READ=y
|
||||||
|
CONFIG_CMD_USB_MASS_STORAGE=y
|
||||||
|
CONFIG_LOG_MAX_LEVEL=7
|
||||||
|
CONFIG_CMD_LSBLK=y
|
||||||
|
'';
|
||||||
|
extraMakeFlags = [
|
||||||
|
"u-boot.dtb"
|
||||||
|
"u-boot.bin"
|
||||||
|
];
|
||||||
|
filesToInstall = [ "u-boot.bin" "u-boot.dtb" ];
|
||||||
|
postInstall = ''
|
||||||
|
mv $out/u-boot.dtb $out/bcm2711-rpi-4-b.dtb
|
||||||
|
'';
|
||||||
|
extraPatches = [
|
||||||
# enable booting from > 2 TiB drives
|
# enable booting from > 2 TiB drives
|
||||||
./01-skip-lba-check.patch
|
./01-skip-lba-check.patch
|
||||||
# enable some builtin commands to aid in debugging, while we're here
|
|
||||||
./02-extra-cmds.patch
|
|
||||||
# ./03-verbose-log.patch
|
# ./03-verbose-log.patch
|
||||||
];
|
];
|
||||||
}))
|
})
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user