diff options
-rw-r--r-- | package/boot/uboot-layerscape/patches/0003-avoid-calling-sec-firmware-get-random-when-no-kaslr-seed.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/package/boot/uboot-layerscape/patches/0003-avoid-calling-sec-firmware-get-random-when-no-kaslr-seed.patch b/package/boot/uboot-layerscape/patches/0003-avoid-calling-sec-firmware-get-random-when-no-kaslr-seed.patch new file mode 100644 index 0000000000..681ec90f1c --- /dev/null +++ b/package/boot/uboot-layerscape/patches/0003-avoid-calling-sec-firmware-get-random-when-no-kaslr-seed.patch @@ -0,0 +1,33 @@ +Index: uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c +=================================================================== +--- uboot-layerscape-lf-6.1.1-1.0.0.orig/arch/arm/cpu/armv8/sec_firmware.c ++++ uboot-layerscape-lf-6.1.1-1.0.0/arch/arm/cpu/armv8/sec_firmware.c +@@ -473,12 +473,6 @@ int fdt_fixup_kaslr(void *fdt) + return 0; + } + +- ret = sec_firmware_get_random(rand, 8); +- if (ret < 0) { +- printf("WARNING: No random number to set kaslr-seed\n"); +- return 0; +- } +- + err = fdt_check_header(fdt); + if (err < 0) { + printf("fdt_chosen: %s\n", fdt_strerror(err)); +@@ -490,6 +484,15 @@ int fdt_fixup_kaslr(void *fdt) + if (nodeoffset < 0) + return 0; + ++ if (fdt_find_or_add_subnode(fdt, nodeoffset, "kaslr-seed")) ++ return 0; ++ ++ ret = sec_firmware_get_random(rand, 8); ++ if (ret < 0) { ++ printf("WARNING: No random number to set kaslr-seed\n"); ++ return 0; ++ } ++ + err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", rand, + sizeof(rand)); + if (err < 0) { |