]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
rockchip: puma: fix GPT table corruption when saving U-Boot environment
authorQuentin Schulz <quentin.schulz@theobroma-systems.com>
Tue, 25 Oct 2022 10:58:02 +0000 (12:58 +0200)
committerKever Yang <kever.yang@rock-chips.com>
Mon, 19 Dec 2022 02:56:12 +0000 (10:56 +0800)
The GPT table is taking the first 34 sectors, which amounts to 0x4400
bytes. Saving the environment below this address in storage will corrupt
the GPT table.

While technically the table ends at 0x4400, some tools (e.g. bmaptool)
are rounding everything to the logical block size (0x1000), so it is
safer to make it point to 0x5000 so that the environment could still
persist when flashing a sparse image with bmaptool or similar tools.

Obviously, the default 0x4000 environment size does not work anymore, so
let's set it to 0x3000 so it does fill the gap between the GPT table
(rounded to 0x1000) and the start of the idbloader.img.

Fixes: 56f580d3eb8d ("rockchip: dts: rk3399-puma: put environment (in MMC/SD configurations) before SPL")
Cc: Quentin Schulz <foss+uboot@0leil.net>
Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
arch/arm/dts/rk3399-puma-haikou-u-boot.dtsi
configs/puma-rk3399_defconfig

index f8335c74a747e4d396d688b89b3eb89dccc5328a..d2349ae90e293db93e060e3b21b781a3b19e0db4 100644 (file)
@@ -15,7 +15,7 @@
 / {
        config {
                u-boot,spl-payload-offset = <0x80000>; /* @ 512KB */
-               u-boot,mmc-env-offset = <0x4000>;      /* @  16KB */
+               u-boot,mmc-env-offset = <0x5000>;      /* @  20KB */
                u-boot,efi-partition-entries-offset = <0x200000>; /* 2MB */
                u-boot,boot-led = "module_led";
                sysreset-gpio = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
index c2b0b39c7b2c4ffd4813ca1aecf5895604565017..0e77db66db32f5db11f071a4652be3a48968a263 100644 (file)
@@ -5,6 +5,7 @@ CONFIG_ARCH_ROCKCHIP=y
 CONFIG_TEXT_BASE=0x00200000
 CONFIG_SPL_GPIO=y
 CONFIG_NR_DRAM_BANKS=1
+CONFIG_ENV_SIZE=0x3000
 CONFIG_ENV_OFFSET=0x3F8000
 CONFIG_DEFAULT_DEVICE_TREE="rk3399-puma-haikou"
 CONFIG_ROCKCHIP_RK3399=y