about summary refs log tree commit diff
path: root/pkgs/misc
diff options
context:
space:
mode:
authorPol Dellaiera <pol.dellaiera@protonmail.com>2023-08-02 17:38:25 +0200
committerGitHub <noreply@github.com>2023-08-02 17:38:25 +0200
commit4bd4ba13f8c4c4f7e7f7d6cfcdad5535e3df1a0e (patch)
tree499d2acca34f6e5df99237d4f4a11162ad3916f5 /pkgs/misc
parentea69c47da1bb7a76a3da86d0e0a92e891cd13e84 (diff)
parent68e6a47ce76c4eaa7a9ae13f55a51d49ec6145ad (diff)
Merge pull request #227947 from NickCao/uboot
uboot: 2023.01 -> 2023.07
Diffstat (limited to 'pkgs/misc')
-rw-r--r--pkgs/misc/uboot/0001-rpi-Copy-properties-from-firmware-dtb-to-the-loaded-.patch92
-rw-r--r--pkgs/misc/uboot/default.nix14
2 files changed, 4 insertions, 102 deletions
diff --git a/pkgs/misc/uboot/0001-rpi-Copy-properties-from-firmware-dtb-to-the-loaded-.patch b/pkgs/misc/uboot/0001-rpi-Copy-properties-from-firmware-dtb-to-the-loaded-.patch
deleted file mode 100644
index 8c4c3eff54928..0000000000000
--- a/pkgs/misc/uboot/0001-rpi-Copy-properties-from-firmware-dtb-to-the-loaded-.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 65d90cd17ad7cd3f9aeeb805a08be780fc5bae1a Mon Sep 17 00:00:00 2001
-From: Sjoerd Simons <sjoerd@collabora.com>
-Date: Sun, 22 Aug 2021 16:36:55 +0200
-Subject: [PATCH] rpi: Copy properties from firmware dtb to the loaded dtb
-
-The RPI firmware adjusts several property values in the dtb it passes
-to u-boot depending on the board/SoC revision. Inherit some of these
-when u-boot loads a dtb itself. Specificaly copy:
-
-* /model: The firmware provides a more specific string
-* /memreserve: The firmware defines a reserved range, better keep it
-* emmc2bus and pcie0 dma-ranges: The C0T revision of the bcm2711 Soc (as
-  present on rpi 400 and some rpi 4B boards) has different values for
-  these then the B0T revision. So these need to be adjusted to boot on
-  these boards
-* blconfig: The firmware defines the memory area where the blconfig
-  stored. Copy those over so it can be enabled.
-* /chosen/kaslr-seed: The firmware generates a kaslr seed, take advantage
-  of that.
-
-Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
-Origin: https://patchwork.ozlabs.org/project/uboot/patch/20210822143656.289891-1-sjoerd@collabora.com/
----
- board/raspberrypi/rpi/rpi.c | 48 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 48 insertions(+)
-
-diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
-index 372b26b6f2..64b8684b68 100644
---- a/board/raspberrypi/rpi/rpi.c
-+++ b/board/raspberrypi/rpi/rpi.c
-@@ -495,10 +495,58 @@ void *board_fdt_blob_setup(void)
- 	return (void *)fw_dtb_pointer;
- }
- 
-+int copy_property(void *dst, void *src, char *path, char *property)
-+{
-+	int dst_offset, src_offset;
-+	const fdt32_t *prop;
-+	int len;
-+
-+	src_offset = fdt_path_offset(src, path);
-+	dst_offset = fdt_path_offset(dst, path);
-+
-+	if (src_offset < 0 || dst_offset < 0)
-+		return -1;
-+
-+	prop = fdt_getprop(src, src_offset, property, &len);
-+	if (!prop)
-+		return -1;
-+
-+	return fdt_setprop(dst, dst_offset, property, prop, len);
-+}
-+
-+/* Copy tweaks from the firmware dtb to the loaded dtb */
-+void  update_fdt_from_fw(void *fdt, void *fw_fdt)
-+{
-+	/* Using dtb from firmware directly; leave it alone */
-+	if (fdt == fw_fdt)
-+		return;
-+
-+	/* The firmware provides a more precie model; so copy that */
-+	copy_property(fdt, fw_fdt, "/", "model");
-+
-+	/* memory reserve as suggested by the firmware */
-+	copy_property(fdt, fw_fdt, "/", "memreserve");
-+
-+	/* Adjust dma-ranges for the SD card and PCI bus as they can depend on
-+	 * the SoC revision
-+	 */
-+	copy_property(fdt, fw_fdt, "emmc2bus", "dma-ranges");
-+	copy_property(fdt, fw_fdt, "pcie0", "dma-ranges");
-+
-+	/* Bootloader configuration template exposes as nvmem */
-+	if (copy_property(fdt, fw_fdt, "blconfig", "reg") == 0)
-+		copy_property(fdt, fw_fdt, "blconfig", "status");
-+
-+	/* kernel address randomisation seed as provided by the firmware */
-+	copy_property(fdt, fw_fdt, "/chosen", "kaslr-seed");
-+}
-+
- int ft_board_setup(void *blob, struct bd_info *bd)
- {
- 	int node;
- 
-+	update_fdt_from_fw(blob, (void *)fw_dtb_pointer);
-+
- 	node = fdt_node_offset_by_compatible(blob, -1, "simple-framebuffer");
- 	if (node < 0)
- 		lcd_dt_simplefb_add_node(blob);
--- 
-2.32.0
-
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 517f9e784a616..ce4e18b656ad4 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -24,10 +24,10 @@
 }:
 
 let
-  defaultVersion = "2023.01";
+  defaultVersion = "2023.07.02";
   defaultSrc = fetchurl {
-    url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    hash = "sha256-aUI7rTgPiaCRZjbonm3L0uRRLVhDCNki0QOdHkMxlQ8=";
+    url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
+    hash = "sha256-a2pIWBwUq7D5W9h8GvTXQJIkBte4AQAqn5Ryf93gIdU=";
   };
   buildUBoot = lib.makeOverridable ({
     version ? null
@@ -48,11 +48,6 @@ let
 
     patches = [
       ./0001-configs-rpi-allow-for-bigger-kernels.patch
-
-      # Make U-Boot forward some important settings from the firmware-provided FDT. Fixes booting on BCM2711C0 boards.
-      # See also: https://github.com/NixOS/nixpkgs/issues/135828
-      # Source: https://patchwork.ozlabs.org/project/uboot/patch/20210822143656.289891-1-sjoerd@collabora.com/
-      ./0001-rpi-Copy-properties-from-firmware-dtb-to-the-loaded-.patch
     ] ++ extraPatches;
 
     postPatch = ''
@@ -70,6 +65,7 @@ let
       (buildPackages.python3.withPackages (p: [
         p.libfdt
         p.setuptools # for pkg_resources
+        p.pyelftools
       ]))
       swig
       which # for scripts/dtc-version.sh
@@ -487,7 +483,6 @@ in {
       sha256 = "0h7xm4ck3p3380c6bqm5ixrkxwcx6z5vysqdwvfa7gcqx5d6x5zz";
     };
   in buildUBoot {
-    extraMakeFlags = [ "all" "u-boot.itb" ];
     defconfig = "rock64-rk3328_defconfig";
     extraMeta = {
       platforms = [ "aarch64-linux" ];
@@ -509,7 +504,6 @@ in {
   };
 
   ubootRockPro64 = buildUBoot {
-    extraMakeFlags = [ "all" "u-boot.itb" ];
     extraPatches = [
       # https://patchwork.ozlabs.org/project/uboot/list/?series=237654&archive=both&state=*
       (fetchpatch {