diff --git a/config/boards/nanopi-r5c.csc b/config/boards/nanopi-r5c.csc index 7a461f3746f1..61c859b1e0ca 100644 --- a/config/boards/nanopi-r5c.csc +++ b/config/boards/nanopi-r5c.csc @@ -12,7 +12,7 @@ FULL_DESKTOP="no" BOOT_LOGO="desktop" BOOTBRANCH_BOARD="tag:v2024.07" -BOOTPATCHDIR="v2024.07/board_${BOARD}" +BOOTPATCHDIR="v2024.07" BOOTCONFIG="nanopi-r5c-rk3568_defconfig" OVERLAY_PREFIX="rockchip-rk3568" diff --git a/config/boards/orangepi5-plus.conf b/config/boards/orangepi5-plus.conf index 2b149ac36a5f..30a887a393be 100644 --- a/config/boards/orangepi5-plus.conf +++ b/config/boards/orangepi5-plus.conf @@ -36,7 +36,7 @@ function post_family_config_branch_edge__orangepi5plus_use_mainline_uboot() { declare -g BOOTDELAY=1 # Wait for UART interrupt to enter UMS/RockUSB mode etc declare -g BOOTSOURCE="https://github.com/u-boot/u-boot.git" # We ❤️ mainline U-Boot declare -g BOOTBRANCH="tag:v2024.07" - declare -g BOOTPATCHDIR="v2024.07/board_${BOARD}" + declare -g BOOTPATCHDIR="v2024.07" declare -g BOOTDIR="u-boot-${BOARD}" # do not share u-boot directory declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot-rockchip.bin u-boot-rockchip-spi.bin" unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd # disable stuff from rockchip64_common; we're using binman here which does all the work already diff --git a/lib/functions/compilation/kernel-make.sh b/lib/functions/compilation/kernel-make.sh index 1ee4d9cdd238..aec6e865790d 100644 --- a/lib/functions/compilation/kernel-make.sh +++ b/lib/functions/compilation/kernel-make.sh @@ -58,10 +58,13 @@ function run_kernel_make_internal() { "SOURCE_DATE_EPOCH=${kernel_base_revision_ts}" # https://reproducible-builds.org/docs/source-date-epoch/ and https://www.kernel.org/doc/html/latest/kbuild/reproducible-builds.html "KBUILD_BUILD_TIMESTAMP=${kernel_base_revision_date}" # https://www.kernel.org/doc/html/latest/kbuild/kbuild.html#kbuild-build-timestamp - "KBUILD_BUILD_USER=armbian" # https://www.kernel.org/doc/html/latest/kbuild/kbuild.html#kbuild-build-user-kbuild-build-host - "KBUILD_BUILD_HOST=next" # https://www.kernel.org/doc/html/latest/kbuild/kbuild.html#kbuild-build-user-kbuild-build-host + "KBUILD_BUILD_USER=build" # https://www.kernel.org/doc/html/latest/kbuild/kbuild.html#kbuild-build-user-kbuild-build-host + "KBUILD_BUILD_HOST=armbian" # https://www.kernel.org/doc/html/latest/kbuild/kbuild.html#kbuild-build-user-kbuild-build-host - "KGZIP=pigz" "KBZIP2=pbzip2" # Parallel compression, use explicit parallel compressors https://lore.kernel.org/lkml/20200901151002.988547791@linuxfoundation.org/ # @TODO: what about XZ? + # Parallel compression, use explicit parallel compressors https://lore.kernel.org/lkml/20200901151002.988547791@linuxfoundation.org/ + "KGZIP=pigz" + "KBZIP2=pbzip2" + # Parallel compression for `xz` if needed can be added with "XZ_OPT=\"--threads=0\"" ) if [[ -n "${llvm_flag}" ]]; then common_make_params_quoted+=("${llvm_flag}") diff --git a/patch/u-boot/v2024.07/0050-automatically-add-chosen-kaslr-seed-and-deduplicate-code.patch b/patch/u-boot/v2024.07/0050-automatically-add-chosen-kaslr-seed-and-deduplicate-code.patch new file mode 100644 index 000000000000..f413e9285573 --- /dev/null +++ b/patch/u-boot/v2024.07/0050-automatically-add-chosen-kaslr-seed-and-deduplicate-code.patch @@ -0,0 +1,543 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tim Harvey +Date: Tue, 18 Jun 2024 14:06:06 -0700 +Subject: Add fdt_kaslrseed function to add kaslr-seed to chosen node + +If RANDOMIZE_BASE is enabled in the Linux kernel instructing it to +randomize the virtual address at which the kernel image is loaded, it +expects entropy to be provided by the bootloader by populating +/chosen/kaslr-seed with a 64-bit value from source of entropy at boot. + +Add a fdt_kaslrseed function to accommodate this allowing an existing +node to be overwritten if present. For now use the first rng device +but it would be good to enhance this in the future to allow some sort +of selection or policy in choosing the rng device used. + +Signed-off-by: Tim Harvey +Reviewed-by: Simon Glass +Cc: Michal Simek +Cc: Andy Yan +Cc: Akash Gajjar +Cc: Ilias Apalodimas +Cc: Simon Glass +Cc: Patrick Delaunay +Cc: Patrice Chotard +Cc: Devarsh Thakkar +Cc: Heinrich Schuchardt +Cc: Hugo Villeneuve +Cc: Marek Vasut +Cc: Tom Rini +Cc: Chris Morgan +Reviewed-by: Caleb Connolly +--- +v6: + - collected tags +v5: + - move function to boot/fdt_support.c + - remove ability to select rng index and note in the commit log + something like this as a future enhancement. + - fixed typo in commit message s/it's/its/ + - use cmd_process_error per Michal's suggestion +v4: + - add missing /n to notice in kaslrseed cmd + - combine ints in declaration + - remove unused vars from board/xilinx/common/board.c ft_board_setup +v3: + - skip if CONFIG_MEASURED_BOOT + - fix skip for CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT + - pass in rng index and bool to specify overwrite + - remove duplicate error strings printed outside of fdt_kaslrseed + - added note to commit log about how EFI STUB weeds out kalsr-seed +v2: + - fix typo in commit msg + - use stack for seed to avoid unecessary malloc/free + - move to a library function and deduplicate code by using it + elsewhere +--- + boot/fdt_support.c | 44 ++++++++++ + include/fdt_support.h | 10 +++ + 2 files changed, 54 insertions(+) + +diff --git a/boot/fdt_support.c b/boot/fdt_support.c +index 111111111111..222222222222 100644 +--- a/boot/fdt_support.c ++++ b/boot/fdt_support.c +@@ -7,12 +7,15 @@ + */ + + #include ++#include + #include + #include + #include + #include + #include ++#include + #include ++#include + #include + #include + #include +@@ -274,6 +277,47 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end) + return 0; + } + ++int fdt_kaslrseed(void *fdt, bool overwrite) ++{ ++ int len, err, nodeoffset; ++ struct udevice *dev; ++ const u64 *orig; ++ u64 data = 0; ++ ++ err = fdt_check_header(fdt); ++ if (err < 0) ++ return err; ++ ++ /* find or create "/chosen" node. */ ++ nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); ++ if (nodeoffset < 0) ++ return nodeoffset; ++ ++ /* return without error if we are not overwriting and existing non-zero node */ ++ orig = fdt_getprop(fdt, nodeoffset, "kaslr-seed", &len); ++ if (orig && len == sizeof(*orig)) ++ data = fdt64_to_cpu(*orig); ++ if (data && !overwrite) { ++ debug("not overwriting existing kaslr-seed\n"); ++ return 0; ++ } ++ err = uclass_get_device(UCLASS_RNG, 0, &dev); ++ if (err) { ++ printf("No RNG device\n"); ++ return err; ++ } ++ err = dm_rng_read(dev, &data, sizeof(data)); ++ if (err) { ++ dev_err(dev, "dm_rng_read failed: %d\n", err); ++ return err; ++ } ++ err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", &data, sizeof(data)); ++ if (err < 0) ++ printf("WARNING: could not set kaslr-seed %s.\n", fdt_strerror(err)); ++ ++ return err; ++} ++ + /** + * board_fdt_chosen_bootargs - boards may override this function to use + * alternative kernel command line arguments +diff --git a/include/fdt_support.h b/include/fdt_support.h +index 111111111111..222222222222 100644 +--- a/include/fdt_support.h ++++ b/include/fdt_support.h +@@ -463,4 +463,14 @@ void fdt_fixup_board_enet(void *blob); + #ifdef CONFIG_CMD_PSTORE + void fdt_fixup_pstore(void *blob); + #endif ++ ++/** ++ * fdt_kaslrseed() - create a 'kaslr-seed' node in chosen ++ * ++ * @blob: fdt blob ++ * @overwrite: do not overwrite existing non-zero node unless true ++ * Return: 0 if OK, -ve on error ++ */ ++int fdt_kaslrseed(void *blob, bool overwrite); ++ + #endif /* ifndef __FDT_SUPPORT_H */ +-- +Armbian + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tim Harvey +Date: Tue, 18 Jun 2024 14:06:07 -0700 +Subject: fdt: automatically add /chosen/kaslr-seed if DM_RNG is enabled + +If RANDOMIZE_BASE is enabled in the Linux kernel instructing it to +randomize the virtual address at which the kernel image is loaded, it +expects entropy to be provided by the bootloader by populating +/chosen/kaslr-seed with a 64-bit value from source of entropy at boot. + +If we have DM_RNG enabled populate this value automatically when +fdt_chosen is called. We skip this if ARMV8_SEC_FIRMWARE_SUPPORT +is enabled as its implementation uses a different source of entropy +that is not yet implemented as DM_RNG. We also skip this if +MEASURED_BOOT is enabled as in that case any modifications to the +dt will cause measured boot to fail (although there are many other +places the dt is altered). + +Note that the Kernel's EFI STUB only relies on EFI_RNG_PROTOCOL for +randomization and completely ignores the kaslr-seed for its own +randomness needs (i.e the randomization of the physical placement of +the kernel). It gets weeded out from the DTB that gets handed over via +efi_install_fdt() as it would also mess up the measured boot DTB TPM +measurements as well. + +Signed-off-by: Tim Harvey +Reviewed-by: Simon Glass +Cc: Michal Simek +Cc: Andy Yan +Cc: Akash Gajjar +Cc: Ilias Apalodimas +Cc: Simon Glass +Cc: Patrick Delaunay +Cc: Patrice Chotard +Cc: Devarsh Thakkar +Cc: Heinrich Schuchardt +Cc: Hugo Villeneuve +Cc: Marek Vasut +Cc: Tom Rini +Cc: Chris Morgan +--- +v6: + - collected tags +v5: + - fixed typo in commit message s/it's/its/ + - split patch into 3 parts +v4: + - add missing /n to notice in kaslrseed cmd + - combine ints in declaration + - remove unused vars from board/xilinx/common/board.c ft_board_setup +v3: + - skip if CONFIG_MEASURED_BOOT + - fix skip for CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT + - pass in rng index and bool to specify overwrite + - remove duplicate error strings printed outside of fdt_kaslrseed + - added note to commit log about how EFI STUB weeds out kalsr-seed +v2: + - fix typo in commit msg + - use stack for seed to avoid unecessary malloc/free + - move to a library function and deduplicate code by using it + elsewhere +--- + boot/fdt_support.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/boot/fdt_support.c b/boot/fdt_support.c +index 111111111111..222222222222 100644 +--- a/boot/fdt_support.c ++++ b/boot/fdt_support.c +@@ -345,6 +345,15 @@ int fdt_chosen(void *fdt) + if (nodeoffset < 0) + return nodeoffset; + ++ /* if DM_RNG enabled automatically inject kaslr-seed node unless: ++ * CONFIG_MEASURED_BOOT enabled: as dt modifications break measured boot ++ * CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT enabled: as that implementation does not use dm yet ++ */ ++ if (IS_ENABLED(CONFIG_DM_RNG) && ++ !IS_ENABLED(CONFIG_MEASURED_BOOT) && ++ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) ++ fdt_kaslrseed(fdt, false); ++ + if (IS_ENABLED(CONFIG_BOARD_RNG_SEED) && !board_rng_seed(&buf)) { + err = fdt_setprop(fdt, nodeoffset, "rng-seed", + abuf_data(&buf), abuf_size(&buf)); +-- +Armbian + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tim Harvey +Date: Tue, 18 Jun 2024 14:06:08 -0700 +Subject: use fdt_kaslrseed function to de-duplicate code + +Use the fdt_kaslrseed function to deduplicate code doing the same thing. + +Note that the kalsrseed command (CMD_KASLRSEED) is likely pointless now +but left in place in case boot scripts exist that rely on this command +existing and returning success. An informational message is printed to +alert users of this command that it is likely no longer needed. + +Note that the Kernel's EFI STUB only relies on EFI_RNG_PROTOCOL for +randomization and completely ignores the kaslr-seed for its own +randomness needs (i.e the randomization of the physical placement of +the kernel). It gets weeded out from the DTB that gets handed over via +efi_install_fdt() as it would also mess up the measured boot DTB TPM +measurements as well. + +Signed-off-by: Tim Harvey +Reviewed-by: Simon Glass +Cc: Michal Simek +Cc: Andy Yan +Cc: Akash Gajjar +Cc: Ilias Apalodimas +Cc: Simon Glass +Cc: Patrick Delaunay +Cc: Patrice Chotard +Cc: Devarsh Thakkar +Cc: Heinrich Schuchardt +Cc: Hugo Villeneuve +Cc: Marek Vasut +Cc: Tom Rini +Cc: Chris Morgan +Acked-by: Michal Simek +--- +v6: + - collected tags +v5: + - fixed typo in commit message s/it's/its/ + - use cmd_process_error per Michal's suggestion +v4: + - add missing /n to notice in kaslrseed cmd + - combine ints in declaration + - remove unused vars from board/xilinx/common/board.c ft_board_setup +v3: + - skip if CONFIG_MEASURED_BOOT + - fix skip for CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT + - pass in rng index and bool to specify overwrite + - remove duplicate error strings printed outside of fdt_kaslrseed + - added note to commit log about how EFI STUB weeds out kalsr-seed +v2: + - fix typo in commit msg + - use stack for seed to avoid unecessary malloc/free + - move to a library function and deduplicate code by using it + elsewhere +--- + board/xilinx/common/board.c | 40 -------- + boot/pxe_utils.c | 34 +------ + cmd/kaslrseed.c | 49 ++-------- + 3 files changed, 8 insertions(+), 115 deletions(-) + +diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c +index 111111111111..222222222222 100644 +--- a/board/xilinx/common/board.c ++++ b/board/xilinx/common/board.c +@@ -702,11 +702,6 @@ phys_addr_t board_get_usable_ram_top(phys_size_t total_size) + #define MAX_RAND_SIZE 8 + int ft_board_setup(void *blob, struct bd_info *bd) + { +- size_t n = MAX_RAND_SIZE; +- struct udevice *dev; +- u8 buf[MAX_RAND_SIZE]; +- int nodeoffset, ret; +- + static const struct node_info nodes[] = { + { "arm,pl353-nand-r2p1", MTD_DEV_TYPE_NAND, }, + }; +@@ -714,41 +709,6 @@ int ft_board_setup(void *blob, struct bd_info *bd) + if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS) && IS_ENABLED(CONFIG_NAND_ZYNQ)) + fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); + +- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { +- debug("No RNG device\n"); +- return 0; +- } +- +- if (dm_rng_read(dev, buf, n)) { +- debug("Reading RNG failed\n"); +- return 0; +- } +- +- if (!blob) { +- debug("No FDT memory address configured. Please configure\n" +- "the FDT address via \"fdt addr
\" command.\n" +- "Aborting!\n"); +- return 0; +- } +- +- ret = fdt_check_header(blob); +- if (ret < 0) { +- debug("fdt_chosen: %s\n", fdt_strerror(ret)); +- return ret; +- } +- +- nodeoffset = fdt_find_or_add_subnode(blob, 0, "chosen"); +- if (nodeoffset < 0) { +- debug("Reading chosen node failed\n"); +- return nodeoffset; +- } +- +- ret = fdt_setprop(blob, nodeoffset, "kaslr-seed", buf, sizeof(buf)); +- if (ret < 0) { +- debug("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); +- return ret; +- } +- + return 0; + } + #endif +diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c +index 111111111111..222222222222 100644 +--- a/boot/pxe_utils.c ++++ b/boot/pxe_utils.c +@@ -324,10 +324,6 @@ static void label_boot_kaslrseed(void) + #if CONFIG_IS_ENABLED(DM_RNG) + ulong fdt_addr; + struct fdt_header *working_fdt; +- size_t n = 0x8; +- struct udevice *dev; +- u64 *buf; +- int nodeoffset; + int err; + + /* Get the main fdt and map it */ +@@ -343,35 +339,7 @@ static void label_boot_kaslrseed(void) + if (err <= 0) + return; + +- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { +- printf("No RNG device\n"); +- return; +- } +- +- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); +- if (nodeoffset < 0) { +- printf("Reading chosen node failed\n"); +- return; +- } +- +- buf = malloc(n); +- if (!buf) { +- printf("Out of memory\n"); +- return; +- } +- +- if (dm_rng_read(dev, buf, n)) { +- printf("Reading RNG failed\n"); +- goto err; +- } +- +- err = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); +- if (err < 0) { +- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(err)); +- goto err; +- } +-err: +- free(buf); ++ fdt_kaslrseed(working_fdt, true); + #endif + return; + } +diff --git a/cmd/kaslrseed.c b/cmd/kaslrseed.c +index 111111111111..222222222222 100644 +--- a/cmd/kaslrseed.c ++++ b/cmd/kaslrseed.c +@@ -16,56 +16,21 @@ + + static int do_kaslr_seed(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) + { +- size_t n = 0x8; +- struct udevice *dev; +- u64 *buf; +- int nodeoffset; +- int ret = CMD_RET_SUCCESS; ++ int err = CMD_RET_SUCCESS; + +- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { +- printf("No RNG device\n"); +- return CMD_RET_FAILURE; +- } +- +- buf = malloc(n); +- if (!buf) { +- printf("Out of memory\n"); +- return CMD_RET_FAILURE; +- } +- +- if (dm_rng_read(dev, buf, n)) { +- printf("Reading RNG failed\n"); +- return CMD_RET_FAILURE; +- } ++ printf("Notice: a /chosen/kaslr-seed is automatically added to the device-tree when booted via booti/bootm/bootz therefore using this command is likely no longer needed\n"); + + if (!working_fdt) { + printf("No FDT memory address configured. Please configure\n" + "the FDT address via \"fdt addr
\" command.\n" + "Aborting!\n"); +- return CMD_RET_FAILURE; +- } +- +- ret = fdt_check_header(working_fdt); +- if (ret < 0) { +- printf("fdt_chosen: %s\n", fdt_strerror(ret)); +- return CMD_RET_FAILURE; +- } +- +- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); +- if (nodeoffset < 0) { +- printf("Reading chosen node failed\n"); +- return CMD_RET_FAILURE; ++ err = CMD_RET_FAILURE; ++ } else { ++ if (fdt_kaslrseed(working_fdt, true) < 0) ++ err = CMD_RET_FAILURE; + } + +- ret = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); +- if (ret < 0) { +- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); +- return CMD_RET_FAILURE; +- } +- +- free(buf); +- +- return ret; ++ return cmd_process_error(cmdtp, err); + } + + U_BOOT_LONGHELP(kaslrseed, +-- +Armbian + +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tim Harvey +Date: Tue, 18 Jun 2024 14:06:09 -0700 +Subject: test: cmd: fdt: fix chosen test for DM_RNG + +Now that kaslr-seed is automatically added to the chosen node if DM_RNG +is enabled, adjust the test to expect this. + +Take care not to expect kaslr-seed for CONFIG_MEASURED_BOOT and +CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT as we do not add it for those. + +Signed-off-by: Tim Harvey +Cc: Michal Simek +Cc: Andy Yan +Cc: Akash Gajjar +Cc: Ilias Apalodimas +Cc: Simon Glass +Cc: Patrick Delaunay +Cc: Patrice Chotard +Cc: Devarsh Thakkar +Cc: Heinrich Schuchardt +Cc: Hugo Villeneuve +Cc: Marek Vasut +Cc: Tom Rini +Cc: Chris Morgan +--- +v7: fix fdt_test_chosen to not expect kaslr-seed for + CONFIG_MEASURED_BOOT and CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT +v6: new patch +--- + test/cmd/fdt.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c +index 111111111111..222222222222 100644 +--- a/test/cmd/fdt.c ++++ b/test/cmd/fdt.c +@@ -1347,6 +1347,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) + ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ + if (env_bootargs) + ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); ++ if (IS_ENABLED(CONFIG_DM_RNG) && ++ !IS_ENABLED(CONFIG_MEASURED_BOOT) && ++ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) ++ ut_assert_nextlinen("\tkaslr-seed = "); + ut_assert_nextline("};"); + ut_assertok(ut_check_console_end(uts)); + +@@ -1363,6 +1367,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) + ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ + if (env_bootargs) + ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); ++ if (IS_ENABLED(CONFIG_DM_RNG) && ++ !IS_ENABLED(CONFIG_MEASURED_BOOT) && ++ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) ++ ut_assert_nextlinen("\tkaslr-seed = "); + ut_assert_nextline("};"); + ut_assertok(ut_check_console_end(uts)); + +-- +Armbian + diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch deleted file mode 100644 index b3b5f0f67f68..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff --git a/boot/fdt_support.c b/boot/fdt_support.c -index 2bd80a9dfb18..b1b2679dea0c 100644 ---- a/boot/fdt_support.c -+++ b/boot/fdt_support.c -@@ -7,12 +7,15 @@ - */ - - #include -+#include - #include - #include - #include - #include - #include -+#include - #include -+#include - #include - #include - #include -@@ -274,6 +277,47 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end) - return 0; - } - -+int fdt_kaslrseed(void *fdt, bool overwrite) -+{ -+ int len, err, nodeoffset; -+ struct udevice *dev; -+ const u64 *orig; -+ u64 data = 0; -+ -+ err = fdt_check_header(fdt); -+ if (err < 0) -+ return err; -+ -+ /* find or create "/chosen" node. */ -+ nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); -+ if (nodeoffset < 0) -+ return nodeoffset; -+ -+ /* return without error if we are not overwriting and existing non-zero node */ -+ orig = fdt_getprop(fdt, nodeoffset, "kaslr-seed", &len); -+ if (orig && len == sizeof(*orig)) -+ data = fdt64_to_cpu(*orig); -+ if (data && !overwrite) { -+ debug("not overwriting existing kaslr-seed\n"); -+ return 0; -+ } -+ err = uclass_get_device(UCLASS_RNG, 0, &dev); -+ if (err) { -+ printf("No RNG device\n"); -+ return err; -+ } -+ err = dm_rng_read(dev, &data, sizeof(data)); -+ if (err) { -+ dev_err(dev, "dm_rng_read failed: %d\n", err); -+ return err; -+ } -+ err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", &data, sizeof(data)); -+ if (err < 0) -+ printf("WARNING: could not set kaslr-seed %s.\n", fdt_strerror(err)); -+ -+ return err; -+} -+ - /** - * board_fdt_chosen_bootargs - boards may override this function to use - * alternative kernel command line arguments -diff --git a/include/fdt_support.h b/include/fdt_support.h -index 4b71b8948d99..741e2360c224 100644 ---- a/include/fdt_support.h -+++ b/include/fdt_support.h -@@ -463,4 +463,14 @@ void fdt_fixup_board_enet(void *blob); - #ifdef CONFIG_CMD_PSTORE - void fdt_fixup_pstore(void *blob); - #endif -+ -+/** -+ * fdt_kaslrseed() - create a 'kaslr-seed' node in chosen -+ * -+ * @blob: fdt blob -+ * @overwrite: do not overwrite existing non-zero node unless true -+ * Return: 0 if OK, -ve on error -+ */ -+int fdt_kaslrseed(void *blob, bool overwrite); -+ - #endif /* ifndef __FDT_SUPPORT_H */ diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch deleted file mode 100644 index f6301f239d18..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/boot/fdt_support.c b/boot/fdt_support.c -index b1b2679dea0c..4559adcd5e2e 100644 ---- a/boot/fdt_support.c -+++ b/boot/fdt_support.c -@@ -345,6 +345,15 @@ int fdt_chosen(void *fdt) - if (nodeoffset < 0) - return nodeoffset; - -+ /* if DM_RNG enabled automatically inject kaslr-seed node unless: -+ * CONFIG_MEASURED_BOOT enabled: as dt modifications break measured boot -+ * CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT enabled: as that implementation does not use dm yet -+ */ -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ fdt_kaslrseed(fdt, false); -+ - if (IS_ENABLED(CONFIG_BOARD_RNG_SEED) && !board_rng_seed(&buf)) { - err = fdt_setprop(fdt, nodeoffset, "rng-seed", - abuf_data(&buf), abuf_size(&buf)); diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch deleted file mode 100644 index ef8c9652f601..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch +++ /dev/null @@ -1,178 +0,0 @@ -diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c -index b47d2d23f913..098738017bab 100644 ---- a/board/xilinx/common/board.c -+++ b/board/xilinx/common/board.c -@@ -702,11 +702,6 @@ phys_addr_t board_get_usable_ram_top(phys_size_t total_size) - #define MAX_RAND_SIZE 8 - int ft_board_setup(void *blob, struct bd_info *bd) - { -- size_t n = MAX_RAND_SIZE; -- struct udevice *dev; -- u8 buf[MAX_RAND_SIZE]; -- int nodeoffset, ret; -- - static const struct node_info nodes[] = { - { "arm,pl353-nand-r2p1", MTD_DEV_TYPE_NAND, }, - }; -@@ -714,41 +709,6 @@ int ft_board_setup(void *blob, struct bd_info *bd) - if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS) && IS_ENABLED(CONFIG_NAND_ZYNQ)) - fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- debug("No RNG device\n"); -- return 0; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- debug("Reading RNG failed\n"); -- return 0; -- } -- -- if (!blob) { -- debug("No FDT memory address configured. Please configure\n" -- "the FDT address via \"fdt addr
\" command.\n" -- "Aborting!\n"); -- return 0; -- } -- -- ret = fdt_check_header(blob); -- if (ret < 0) { -- debug("fdt_chosen: %s\n", fdt_strerror(ret)); -- return ret; -- } -- -- nodeoffset = fdt_find_or_add_subnode(blob, 0, "chosen"); -- if (nodeoffset < 0) { -- debug("Reading chosen node failed\n"); -- return nodeoffset; -- } -- -- ret = fdt_setprop(blob, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (ret < 0) { -- debug("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); -- return ret; -- } -- - return 0; - } - #endif -diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c -index 5c1c962ff4c1..38ca9b81a42d 100644 ---- a/boot/pxe_utils.c -+++ b/boot/pxe_utils.c -@@ -324,10 +324,6 @@ static void label_boot_kaslrseed(void) - #if CONFIG_IS_ENABLED(DM_RNG) - ulong fdt_addr; - struct fdt_header *working_fdt; -- size_t n = 0x8; -- struct udevice *dev; -- u64 *buf; -- int nodeoffset; - int err; - - /* Get the main fdt and map it */ -@@ -343,35 +339,7 @@ static void label_boot_kaslrseed(void) - if (err <= 0) - return; - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- printf("No RNG device\n"); -- return; -- } -- -- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); -- if (nodeoffset < 0) { -- printf("Reading chosen node failed\n"); -- return; -- } -- -- buf = malloc(n); -- if (!buf) { -- printf("Out of memory\n"); -- return; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- printf("Reading RNG failed\n"); -- goto err; -- } -- -- err = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (err < 0) { -- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(err)); -- goto err; -- } --err: -- free(buf); -+ fdt_kaslrseed(working_fdt, true); - #endif - return; - } -diff --git a/cmd/kaslrseed.c b/cmd/kaslrseed.c -index 9acb8e163863..645cab2e74fd 100644 ---- a/cmd/kaslrseed.c -+++ b/cmd/kaslrseed.c -@@ -16,56 +16,21 @@ - - static int do_kaslr_seed(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) - { -- size_t n = 0x8; -- struct udevice *dev; -- u64 *buf; -- int nodeoffset; -- int ret = CMD_RET_SUCCESS; -+ int err = CMD_RET_SUCCESS; - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- printf("No RNG device\n"); -- return CMD_RET_FAILURE; -- } -- -- buf = malloc(n); -- if (!buf) { -- printf("Out of memory\n"); -- return CMD_RET_FAILURE; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- printf("Reading RNG failed\n"); -- return CMD_RET_FAILURE; -- } -+ printf("Notice: a /chosen/kaslr-seed is automatically added to the device-tree when booted via booti/bootm/bootz therefore using this command is likely no longer needed\n"); - - if (!working_fdt) { - printf("No FDT memory address configured. Please configure\n" - "the FDT address via \"fdt addr
\" command.\n" - "Aborting!\n"); -- return CMD_RET_FAILURE; -- } -- -- ret = fdt_check_header(working_fdt); -- if (ret < 0) { -- printf("fdt_chosen: %s\n", fdt_strerror(ret)); -- return CMD_RET_FAILURE; -- } -- -- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); -- if (nodeoffset < 0) { -- printf("Reading chosen node failed\n"); -- return CMD_RET_FAILURE; -+ err = CMD_RET_FAILURE; -+ } else { -+ if (fdt_kaslrseed(working_fdt, true) < 0) -+ err = CMD_RET_FAILURE; - } - -- ret = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (ret < 0) { -- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); -- return CMD_RET_FAILURE; -- } -- -- free(buf); -- -- return ret; -+ return cmd_process_error(cmdtp, err); - } - - U_BOOT_LONGHELP(kaslrseed, diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch deleted file mode 100644 index f10a6fd51ff5..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c -index 547085521758..5cda1ef382a1 100644 ---- a/test/cmd/fdt.c -+++ b/test/cmd/fdt.c -@@ -1347,6 +1347,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) - ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ - if (env_bootargs) - ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ ut_assert_nextlinen("\tkaslr-seed = "); - ut_assert_nextline("};"); - ut_assertok(ut_check_console_end(uts)); - -@@ -1363,6 +1367,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) - ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ - if (env_bootargs) - ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ ut_assert_nextlinen("\tkaslr-seed = "); - ut_assert_nextline("};"); - ut_assertok(ut_check_console_end(uts)); - diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/general-btrfs-fix-out-of-bounds-write.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/general-btrfs-fix-out-of-bounds-write.patch deleted file mode 100644 index 626a53c5602d..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/general-btrfs-fix-out-of-bounds-write.patch +++ /dev/null @@ -1,43 +0,0 @@ -From ee1941e4fec601a8444f49c7dad04ad700d501a6 Mon Sep 17 00:00:00 2001 -From: Alex Shumsky -Date: Wed, 19 Jun 2024 00:41:38 +0300 -Subject: [PATCH] fs: btrfs: fix out of bounds write - -Fix btrfs_read/read_and_truncate_page write out of bounds of destination -buffer. Old behavior break bootstd malloc'd buffers of exact file size. -Previously this OOB write have not been noticed because distroboot usually -read files into huge static memory areas. - -Signed-off-by: Alex Shumsky -Fixes: e342718 ("fs: btrfs: Implement btrfs_file_read()") -Reviewed-by: Qu Wenruo ---- - fs/btrfs/inode.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c -index 4691612eda33..3998ffc2c819 100644 ---- a/fs/btrfs/inode.c -+++ b/fs/btrfs/inode.c -@@ -640,7 +640,11 @@ static int read_and_truncate_page(struct btrfs_path *path, - extent_type = btrfs_file_extent_type(leaf, fi); - if (extent_type == BTRFS_FILE_EXTENT_INLINE) { - ret = btrfs_read_extent_inline(path, fi, buf); -- memcpy(dest, buf + page_off, min(page_len, ret)); -+ if (ret < 0) { -+ free(buf); -+ return ret; -+ } -+ memcpy(dest, buf + page_off, min3(page_len, ret, len)); - free(buf); - return len; - } -@@ -652,7 +656,7 @@ static int read_and_truncate_page(struct btrfs_path *path, - free(buf); - return ret; - } -- memcpy(dest, buf + page_off, page_len); -+ memcpy(dest, buf + page_off, min(page_len, len)); - free(buf); - return len; - } diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/general-dw-hdmi-disable.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/general-dw-hdmi-disable.patch deleted file mode 100644 index acf5cadc9465..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/general-dw-hdmi-disable.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Sun, 30 Jun 2024 17:36:02 +0200 -Subject: add dw_hdmi_disable() function to DW-HDMI driver - ---- - drivers/video/dw_hdmi.c | 17 ++++++++++ - include/dw_hdmi.h | 1 + - 2 files changed, 18 insertions(+) - -diff --git a/drivers/video/dw_hdmi.c b/drivers/video/dw_hdmi.c -index 111111111111..222222222222 100644 ---- a/drivers/video/dw_hdmi.c -+++ b/drivers/video/dw_hdmi.c -@@ -1025,6 +1025,23 @@ int dw_hdmi_enable(struct dw_hdmi *hdmi, const struct display_timing *edid) - return 0; - } - -+int dw_hdmi_disable(struct dw_hdmi *hdmi) -+{ -+ uint clkdis; -+ -+ /* disable pixel clock and tmds data path */ -+ clkdis = 0x7f; -+ hdmi_write(hdmi, clkdis, HDMI_MC_CLKDIS); -+ -+ /* disable phy */ -+ hdmi_phy_sel_interface_control(hdmi, 0); -+ hdmi_phy_enable_tmds(hdmi, 0); -+ hdmi_phy_enable_power(hdmi, 0); -+ -+ return 0; -+ -+} -+ - static const struct dw_hdmi_phy_ops dw_hdmi_synopsys_phy_ops = { - .phy_set = dw_hdmi_phy_cfg, - }; -diff --git a/include/dw_hdmi.h b/include/dw_hdmi.h -index 111111111111..222222222222 100644 ---- a/include/dw_hdmi.h -+++ b/include/dw_hdmi.h -@@ -562,6 +562,7 @@ int dw_hdmi_phy_wait_for_hpd(struct dw_hdmi *hdmi); - void dw_hdmi_phy_init(struct dw_hdmi *hdmi); - - int dw_hdmi_enable(struct dw_hdmi *hdmi, const struct display_timing *edid); -+int dw_hdmi_disable(struct dw_hdmi *hdmi); - int dw_hdmi_read_edid(struct dw_hdmi *hdmi, u8 *buf, int buf_size); - void dw_hdmi_init(struct dw_hdmi *hdmi); - int dw_hdmi_detect_hpd(struct dw_hdmi *hdmi); --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/general-dwc-otg-usb-fix.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/general-dwc-otg-usb-fix.patch deleted file mode 100644 index 46b59a2ce60d..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/general-dwc-otg-usb-fix.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Fri, 12 Mar 2021 20:20:12 +0000 -Subject: [ARCHEOLOGY] Changes and fixes to rk322x uboot and kernel config - -> X-Git-Archeology: > recovered message: > - Enabled nfc on rk322x-dev and disable on rk322x-current (need further development) -> X-Git-Archeology: > recovered message: > - Tidied up rk322x-current device tree -> X-Git-Archeology: > recovered message: > - enabled nfc rockchip driver enabled in rk322x-dev kernel config -> X-Git-Archeology: > recovered message: > - Enabled EHCI controller in u-boot (added patch for inno-phy, device tree and config bits), better device detection for dwc2 usb otg port -> X-Git-Archeology: > recovered message: > - Removed SPL_FIT_GENERATOR from u-boot configuration, fixed .its file to use binman -> X-Git-Archeology: > recovered message: > - fixed rk322x its file (now includes dtb), reverted u-boot to v2020.10 and changed dev_* into log_debug() calls -> X-Git-Archeology: - Revision 95425c27b9d3bbb96e7936cc531638c9150538f9: https://github.com/armbian/build/commit/95425c27b9d3bbb96e7936cc531638c9150538f9 -> X-Git-Archeology: Date: Fri, 12 Mar 2021 20:20:12 +0000 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: Changes and fixes to rk322x uboot and kernel config -> X-Git-Archeology: -> X-Git-Archeology: - Revision 5130cc32fd9b18ecf71d5d26b688859ede0ffe03: https://github.com/armbian/build/commit/5130cc32fd9b18ecf71d5d26b688859ede0ffe03 -> X-Git-Archeology: Date: Mon, 20 Jun 2022 08:35:13 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: fix u-boot USB OTG patch name -> X-Git-Archeology: -> X-Git-Archeology: - Revision d4daf41404853fc13813dc4eb9f6cad76f95945c: https://github.com/armbian/build/commit/d4daf41404853fc13813dc4eb9f6cad76f95945c -> X-Git-Archeology: Date: Mon, 20 Jun 2022 08:35:13 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: add sdmmc_ext node, mmc reset properties and otg usb fix to u-boot -> X-Git-Archeology: -> X-Git-Archeology: - Revision efee17f217e58a93e795c165e303bfd0a2a0a32a: https://github.com/armbian/build/commit/efee17f217e58a93e795c165e303bfd0a2a0a32a -> X-Git-Archeology: Date: Mon, 22 Apr 2024 12:39:09 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: bump rk3318-box uboot to v2024.01 -> X-Git-Archeology: -> X-Git-Archeology: - Revision 7876017d0b77bbfefbb3d112045b32d9b50db928: https://github.com/armbian/build/commit/7876017d0b77bbfefbb3d112045b32d9b50db928 -> X-Git-Archeology: Date: Tue, 02 Jul 2024 23:31:50 +0000 -> X-Git-Archeology: From: Paolo -> X-Git-Archeology: Subject: Bump rk322x-box and rk3318-box to u-boot v2024.07-rc5 (#6855) -> X-Git-Archeology: ---- - drivers/usb/host/dwc2.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c -index 111111111111..222222222222 100644 ---- a/drivers/usb/host/dwc2.c -+++ b/drivers/usb/host/dwc2.c -@@ -441,6 +441,8 @@ static void dwc_otg_core_init(struct udevice *dev) - - writel(usbcfg, ®s->gusbcfg); - -+ mdelay(10); -+ - /* Program the GAHBCFG Register. */ - switch (readl(®s->ghwcfg2) & DWC2_HWCFG2_ARCHITECTURE_MASK) { - case DWC2_HWCFG2_ARCHITECTURE_SLAVE_ONLY: --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/general-fix-inno-phy-macro.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/general-fix-inno-phy-macro.patch deleted file mode 100644 index ce360c97d256..000000000000 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/general-fix-inno-phy-macro.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Sun, 16 Jun 2024 18:07:03 +0200 -Subject: fix inno_poll macro - ---- - drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -index 111111111111..222222222222 100644 ---- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -@@ -432,8 +432,8 @@ static inline void inno_update_bits(struct inno_hdmi_phy *inno, u8 reg, - inno_write(inno, reg, tmp); - } - --#define inno_poll(reg, val, cond, sleep_us, timeout_us) \ -- readl_poll_sleep_timeout((reg) * 4, val, cond, sleep_us, timeout_us) -+#define inno_poll(inno, reg, val, cond, sleep_us, timeout_us) \ -+ readl_poll_sleep_timeout(inno->regs + (reg * 4), val, cond, sleep_us, timeout_us) - - static unsigned long inno_hdmi_phy_get_tmdsclk(struct inno_hdmi_phy *inno, - unsigned long rate) -@@ -575,7 +575,7 @@ inno_hdmi_phy_rk3328_clk_set_rate(struct phy *phy, - inno_update_bits(inno, 0xa0, RK3328_PRE_PLL_POWER_DOWN, 0); - - /* Wait for Pre-PLL lock */ -- ret = inno_poll(0xa9, val, val & RK3328_PRE_PLL_LOCK_STATUS, -+ ret = inno_poll(inno, 0xa9, val, val & RK3328_PRE_PLL_LOCK_STATUS, - 1000, 10000); - if (ret) { - dev_err(phy->dev, "Pre-PLL locking failed\n"); -@@ -674,7 +674,7 @@ inno_hdmi_phy_rk3328_power_on(struct phy *phy, - RK3328_TMDS_DRIVER_ENABLE); - - /* Wait for post PLL lock */ -- ret = inno_poll(0xaf, v, v & RK3328_POST_PLL_LOCK_STATUS, -+ ret = inno_poll(inno, 0xaf, v, v & RK3328_POST_PLL_LOCK_STATUS, - 1000, 10000); - if (ret) { - dev_err(phy->dev, "Post-PLL locking failed\n"); --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_nanopi-r5c/nanopi-r5c_kaslrseed.patch b/patch/u-boot/v2024.07/board_nanopi-r5c/nanopi-r5c_kaslrseed.patch index ef9250d09561..963101b04b75 100644 --- a/patch/u-boot/v2024.07/board_nanopi-r5c/nanopi-r5c_kaslrseed.patch +++ b/patch/u-boot/v2024.07/board_nanopi-r5c/nanopi-r5c_kaslrseed.patch @@ -1,13 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alessandro Lannocca +Date: Thu, 8 Aug 2024 07:38:23 +0200 +Subject: nanopi-r5c: Enable KASLR + +enable kaslrseed in nanopi-r5c-rk3568-defconfig +--- + configs/nanopi-r5c-rk3568_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + diff --git a/configs/nanopi-r5c-rk3568_defconfig b/configs/nanopi-r5c-rk3568_defconfig -index 138a633f32..3dc42d0dfc 100644 +index 111111111111..222222222222 100644 --- a/configs/nanopi-r5c-rk3568_defconfig +++ b/configs/nanopi-r5c-rk3568_defconfig -@@ -40,6 +40,8 @@ CONFIG_CMD_PCI=y +@@ -31,6 +31,8 @@ CONFIG_CMD_PCI=y CONFIG_CMD_USB=y - # CONFIG_CMD_SETEXPR is not set + CONFIG_CMD_PMIC=y CONFIG_CMD_REGULATOR=y +CONFIG_CMD_KASLRSEED=y +CONFIG_DM_RNG=y # CONFIG_SPL_DOS_PARTITION is not set CONFIG_SPL_OF_CONTROL=y CONFIG_OF_LIVE=y +-- +Armbian + diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch deleted file mode 100644 index b3b5f0f67f68..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/1-4-Add-fdt_kaslrseed-function-to-add-kaslr-seed-to-chosen-node.patch +++ /dev/null @@ -1,87 +0,0 @@ -diff --git a/boot/fdt_support.c b/boot/fdt_support.c -index 2bd80a9dfb18..b1b2679dea0c 100644 ---- a/boot/fdt_support.c -+++ b/boot/fdt_support.c -@@ -7,12 +7,15 @@ - */ - - #include -+#include - #include - #include - #include - #include - #include -+#include - #include -+#include - #include - #include - #include -@@ -274,6 +277,47 @@ int fdt_initrd(void *fdt, ulong initrd_start, ulong initrd_end) - return 0; - } - -+int fdt_kaslrseed(void *fdt, bool overwrite) -+{ -+ int len, err, nodeoffset; -+ struct udevice *dev; -+ const u64 *orig; -+ u64 data = 0; -+ -+ err = fdt_check_header(fdt); -+ if (err < 0) -+ return err; -+ -+ /* find or create "/chosen" node. */ -+ nodeoffset = fdt_find_or_add_subnode(fdt, 0, "chosen"); -+ if (nodeoffset < 0) -+ return nodeoffset; -+ -+ /* return without error if we are not overwriting and existing non-zero node */ -+ orig = fdt_getprop(fdt, nodeoffset, "kaslr-seed", &len); -+ if (orig && len == sizeof(*orig)) -+ data = fdt64_to_cpu(*orig); -+ if (data && !overwrite) { -+ debug("not overwriting existing kaslr-seed\n"); -+ return 0; -+ } -+ err = uclass_get_device(UCLASS_RNG, 0, &dev); -+ if (err) { -+ printf("No RNG device\n"); -+ return err; -+ } -+ err = dm_rng_read(dev, &data, sizeof(data)); -+ if (err) { -+ dev_err(dev, "dm_rng_read failed: %d\n", err); -+ return err; -+ } -+ err = fdt_setprop(fdt, nodeoffset, "kaslr-seed", &data, sizeof(data)); -+ if (err < 0) -+ printf("WARNING: could not set kaslr-seed %s.\n", fdt_strerror(err)); -+ -+ return err; -+} -+ - /** - * board_fdt_chosen_bootargs - boards may override this function to use - * alternative kernel command line arguments -diff --git a/include/fdt_support.h b/include/fdt_support.h -index 4b71b8948d99..741e2360c224 100644 ---- a/include/fdt_support.h -+++ b/include/fdt_support.h -@@ -463,4 +463,14 @@ void fdt_fixup_board_enet(void *blob); - #ifdef CONFIG_CMD_PSTORE - void fdt_fixup_pstore(void *blob); - #endif -+ -+/** -+ * fdt_kaslrseed() - create a 'kaslr-seed' node in chosen -+ * -+ * @blob: fdt blob -+ * @overwrite: do not overwrite existing non-zero node unless true -+ * Return: 0 if OK, -ve on error -+ */ -+int fdt_kaslrseed(void *blob, bool overwrite); -+ - #endif /* ifndef __FDT_SUPPORT_H */ diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch deleted file mode 100644 index f6301f239d18..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/2-4-fdt-automatically-add-chosen-kaslr-seed-if-DM_RNG-is-enabled.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/boot/fdt_support.c b/boot/fdt_support.c -index b1b2679dea0c..4559adcd5e2e 100644 ---- a/boot/fdt_support.c -+++ b/boot/fdt_support.c -@@ -345,6 +345,15 @@ int fdt_chosen(void *fdt) - if (nodeoffset < 0) - return nodeoffset; - -+ /* if DM_RNG enabled automatically inject kaslr-seed node unless: -+ * CONFIG_MEASURED_BOOT enabled: as dt modifications break measured boot -+ * CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT enabled: as that implementation does not use dm yet -+ */ -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ fdt_kaslrseed(fdt, false); -+ - if (IS_ENABLED(CONFIG_BOARD_RNG_SEED) && !board_rng_seed(&buf)) { - err = fdt_setprop(fdt, nodeoffset, "rng-seed", - abuf_data(&buf), abuf_size(&buf)); diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch deleted file mode 100644 index ef8c9652f601..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/3-4-use-fdt_kaslrseed-function-to-de-duplicate-code.patch +++ /dev/null @@ -1,178 +0,0 @@ -diff --git a/board/xilinx/common/board.c b/board/xilinx/common/board.c -index b47d2d23f913..098738017bab 100644 ---- a/board/xilinx/common/board.c -+++ b/board/xilinx/common/board.c -@@ -702,11 +702,6 @@ phys_addr_t board_get_usable_ram_top(phys_size_t total_size) - #define MAX_RAND_SIZE 8 - int ft_board_setup(void *blob, struct bd_info *bd) - { -- size_t n = MAX_RAND_SIZE; -- struct udevice *dev; -- u8 buf[MAX_RAND_SIZE]; -- int nodeoffset, ret; -- - static const struct node_info nodes[] = { - { "arm,pl353-nand-r2p1", MTD_DEV_TYPE_NAND, }, - }; -@@ -714,41 +709,6 @@ int ft_board_setup(void *blob, struct bd_info *bd) - if (IS_ENABLED(CONFIG_FDT_FIXUP_PARTITIONS) && IS_ENABLED(CONFIG_NAND_ZYNQ)) - fdt_fixup_mtdparts(blob, nodes, ARRAY_SIZE(nodes)); - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- debug("No RNG device\n"); -- return 0; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- debug("Reading RNG failed\n"); -- return 0; -- } -- -- if (!blob) { -- debug("No FDT memory address configured. Please configure\n" -- "the FDT address via \"fdt addr
\" command.\n" -- "Aborting!\n"); -- return 0; -- } -- -- ret = fdt_check_header(blob); -- if (ret < 0) { -- debug("fdt_chosen: %s\n", fdt_strerror(ret)); -- return ret; -- } -- -- nodeoffset = fdt_find_or_add_subnode(blob, 0, "chosen"); -- if (nodeoffset < 0) { -- debug("Reading chosen node failed\n"); -- return nodeoffset; -- } -- -- ret = fdt_setprop(blob, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (ret < 0) { -- debug("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); -- return ret; -- } -- - return 0; - } - #endif -diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c -index 5c1c962ff4c1..38ca9b81a42d 100644 ---- a/boot/pxe_utils.c -+++ b/boot/pxe_utils.c -@@ -324,10 +324,6 @@ static void label_boot_kaslrseed(void) - #if CONFIG_IS_ENABLED(DM_RNG) - ulong fdt_addr; - struct fdt_header *working_fdt; -- size_t n = 0x8; -- struct udevice *dev; -- u64 *buf; -- int nodeoffset; - int err; - - /* Get the main fdt and map it */ -@@ -343,35 +339,7 @@ static void label_boot_kaslrseed(void) - if (err <= 0) - return; - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- printf("No RNG device\n"); -- return; -- } -- -- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); -- if (nodeoffset < 0) { -- printf("Reading chosen node failed\n"); -- return; -- } -- -- buf = malloc(n); -- if (!buf) { -- printf("Out of memory\n"); -- return; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- printf("Reading RNG failed\n"); -- goto err; -- } -- -- err = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (err < 0) { -- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(err)); -- goto err; -- } --err: -- free(buf); -+ fdt_kaslrseed(working_fdt, true); - #endif - return; - } -diff --git a/cmd/kaslrseed.c b/cmd/kaslrseed.c -index 9acb8e163863..645cab2e74fd 100644 ---- a/cmd/kaslrseed.c -+++ b/cmd/kaslrseed.c -@@ -16,56 +16,21 @@ - - static int do_kaslr_seed(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) - { -- size_t n = 0x8; -- struct udevice *dev; -- u64 *buf; -- int nodeoffset; -- int ret = CMD_RET_SUCCESS; -+ int err = CMD_RET_SUCCESS; - -- if (uclass_get_device(UCLASS_RNG, 0, &dev) || !dev) { -- printf("No RNG device\n"); -- return CMD_RET_FAILURE; -- } -- -- buf = malloc(n); -- if (!buf) { -- printf("Out of memory\n"); -- return CMD_RET_FAILURE; -- } -- -- if (dm_rng_read(dev, buf, n)) { -- printf("Reading RNG failed\n"); -- return CMD_RET_FAILURE; -- } -+ printf("Notice: a /chosen/kaslr-seed is automatically added to the device-tree when booted via booti/bootm/bootz therefore using this command is likely no longer needed\n"); - - if (!working_fdt) { - printf("No FDT memory address configured. Please configure\n" - "the FDT address via \"fdt addr
\" command.\n" - "Aborting!\n"); -- return CMD_RET_FAILURE; -- } -- -- ret = fdt_check_header(working_fdt); -- if (ret < 0) { -- printf("fdt_chosen: %s\n", fdt_strerror(ret)); -- return CMD_RET_FAILURE; -- } -- -- nodeoffset = fdt_find_or_add_subnode(working_fdt, 0, "chosen"); -- if (nodeoffset < 0) { -- printf("Reading chosen node failed\n"); -- return CMD_RET_FAILURE; -+ err = CMD_RET_FAILURE; -+ } else { -+ if (fdt_kaslrseed(working_fdt, true) < 0) -+ err = CMD_RET_FAILURE; - } - -- ret = fdt_setprop(working_fdt, nodeoffset, "kaslr-seed", buf, sizeof(buf)); -- if (ret < 0) { -- printf("Unable to set kaslr-seed on chosen node: %s\n", fdt_strerror(ret)); -- return CMD_RET_FAILURE; -- } -- -- free(buf); -- -- return ret; -+ return cmd_process_error(cmdtp, err); - } - - U_BOOT_LONGHELP(kaslrseed, diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch deleted file mode 100644 index f10a6fd51ff5..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/4-4-test-cmd-fdt-fix-chosen-test-for-DM_RNG.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c -index 547085521758..5cda1ef382a1 100644 ---- a/test/cmd/fdt.c -+++ b/test/cmd/fdt.c -@@ -1347,6 +1347,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) - ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ - if (env_bootargs) - ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ ut_assert_nextlinen("\tkaslr-seed = "); - ut_assert_nextline("};"); - ut_assertok(ut_check_console_end(uts)); - -@@ -1363,6 +1367,10 @@ static int fdt_test_chosen(struct unit_test_state *uts) - ut_assert_nextlinen("\tu-boot,version = "); /* Ignore the version string */ - if (env_bootargs) - ut_assert_nextline("\tbootargs = \"%s\";", env_bootargs); -+ if (IS_ENABLED(CONFIG_DM_RNG) && -+ !IS_ENABLED(CONFIG_MEASURED_BOOT) && -+ !IS_ENABLED(CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT)) -+ ut_assert_nextlinen("\tkaslr-seed = "); - ut_assert_nextline("};"); - ut_assertok(ut_check_console_end(uts)); - diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/general-btrfs-fix-out-of-bounds-write.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/general-btrfs-fix-out-of-bounds-write.patch deleted file mode 100644 index 626a53c5602d..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/general-btrfs-fix-out-of-bounds-write.patch +++ /dev/null @@ -1,43 +0,0 @@ -From ee1941e4fec601a8444f49c7dad04ad700d501a6 Mon Sep 17 00:00:00 2001 -From: Alex Shumsky -Date: Wed, 19 Jun 2024 00:41:38 +0300 -Subject: [PATCH] fs: btrfs: fix out of bounds write - -Fix btrfs_read/read_and_truncate_page write out of bounds of destination -buffer. Old behavior break bootstd malloc'd buffers of exact file size. -Previously this OOB write have not been noticed because distroboot usually -read files into huge static memory areas. - -Signed-off-by: Alex Shumsky -Fixes: e342718 ("fs: btrfs: Implement btrfs_file_read()") -Reviewed-by: Qu Wenruo ---- - fs/btrfs/inode.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c -index 4691612eda33..3998ffc2c819 100644 ---- a/fs/btrfs/inode.c -+++ b/fs/btrfs/inode.c -@@ -640,7 +640,11 @@ static int read_and_truncate_page(struct btrfs_path *path, - extent_type = btrfs_file_extent_type(leaf, fi); - if (extent_type == BTRFS_FILE_EXTENT_INLINE) { - ret = btrfs_read_extent_inline(path, fi, buf); -- memcpy(dest, buf + page_off, min(page_len, ret)); -+ if (ret < 0) { -+ free(buf); -+ return ret; -+ } -+ memcpy(dest, buf + page_off, min3(page_len, ret, len)); - free(buf); - return len; - } -@@ -652,7 +656,7 @@ static int read_and_truncate_page(struct btrfs_path *path, - free(buf); - return ret; - } -- memcpy(dest, buf + page_off, page_len); -+ memcpy(dest, buf + page_off, min(page_len, len)); - free(buf); - return len; - } diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/general-dw-hdmi-disable.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/general-dw-hdmi-disable.patch deleted file mode 100644 index acf5cadc9465..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/general-dw-hdmi-disable.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Sun, 30 Jun 2024 17:36:02 +0200 -Subject: add dw_hdmi_disable() function to DW-HDMI driver - ---- - drivers/video/dw_hdmi.c | 17 ++++++++++ - include/dw_hdmi.h | 1 + - 2 files changed, 18 insertions(+) - -diff --git a/drivers/video/dw_hdmi.c b/drivers/video/dw_hdmi.c -index 111111111111..222222222222 100644 ---- a/drivers/video/dw_hdmi.c -+++ b/drivers/video/dw_hdmi.c -@@ -1025,6 +1025,23 @@ int dw_hdmi_enable(struct dw_hdmi *hdmi, const struct display_timing *edid) - return 0; - } - -+int dw_hdmi_disable(struct dw_hdmi *hdmi) -+{ -+ uint clkdis; -+ -+ /* disable pixel clock and tmds data path */ -+ clkdis = 0x7f; -+ hdmi_write(hdmi, clkdis, HDMI_MC_CLKDIS); -+ -+ /* disable phy */ -+ hdmi_phy_sel_interface_control(hdmi, 0); -+ hdmi_phy_enable_tmds(hdmi, 0); -+ hdmi_phy_enable_power(hdmi, 0); -+ -+ return 0; -+ -+} -+ - static const struct dw_hdmi_phy_ops dw_hdmi_synopsys_phy_ops = { - .phy_set = dw_hdmi_phy_cfg, - }; -diff --git a/include/dw_hdmi.h b/include/dw_hdmi.h -index 111111111111..222222222222 100644 ---- a/include/dw_hdmi.h -+++ b/include/dw_hdmi.h -@@ -562,6 +562,7 @@ int dw_hdmi_phy_wait_for_hpd(struct dw_hdmi *hdmi); - void dw_hdmi_phy_init(struct dw_hdmi *hdmi); - - int dw_hdmi_enable(struct dw_hdmi *hdmi, const struct display_timing *edid); -+int dw_hdmi_disable(struct dw_hdmi *hdmi); - int dw_hdmi_read_edid(struct dw_hdmi *hdmi, u8 *buf, int buf_size); - void dw_hdmi_init(struct dw_hdmi *hdmi); - int dw_hdmi_detect_hpd(struct dw_hdmi *hdmi); --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/general-dwc-otg-usb-fix.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/general-dwc-otg-usb-fix.patch deleted file mode 100644 index 46b59a2ce60d..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/general-dwc-otg-usb-fix.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Fri, 12 Mar 2021 20:20:12 +0000 -Subject: [ARCHEOLOGY] Changes and fixes to rk322x uboot and kernel config - -> X-Git-Archeology: > recovered message: > - Enabled nfc on rk322x-dev and disable on rk322x-current (need further development) -> X-Git-Archeology: > recovered message: > - Tidied up rk322x-current device tree -> X-Git-Archeology: > recovered message: > - enabled nfc rockchip driver enabled in rk322x-dev kernel config -> X-Git-Archeology: > recovered message: > - Enabled EHCI controller in u-boot (added patch for inno-phy, device tree and config bits), better device detection for dwc2 usb otg port -> X-Git-Archeology: > recovered message: > - Removed SPL_FIT_GENERATOR from u-boot configuration, fixed .its file to use binman -> X-Git-Archeology: > recovered message: > - fixed rk322x its file (now includes dtb), reverted u-boot to v2020.10 and changed dev_* into log_debug() calls -> X-Git-Archeology: - Revision 95425c27b9d3bbb96e7936cc531638c9150538f9: https://github.com/armbian/build/commit/95425c27b9d3bbb96e7936cc531638c9150538f9 -> X-Git-Archeology: Date: Fri, 12 Mar 2021 20:20:12 +0000 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: Changes and fixes to rk322x uboot and kernel config -> X-Git-Archeology: -> X-Git-Archeology: - Revision 5130cc32fd9b18ecf71d5d26b688859ede0ffe03: https://github.com/armbian/build/commit/5130cc32fd9b18ecf71d5d26b688859ede0ffe03 -> X-Git-Archeology: Date: Mon, 20 Jun 2022 08:35:13 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: fix u-boot USB OTG patch name -> X-Git-Archeology: -> X-Git-Archeology: - Revision d4daf41404853fc13813dc4eb9f6cad76f95945c: https://github.com/armbian/build/commit/d4daf41404853fc13813dc4eb9f6cad76f95945c -> X-Git-Archeology: Date: Mon, 20 Jun 2022 08:35:13 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: add sdmmc_ext node, mmc reset properties and otg usb fix to u-boot -> X-Git-Archeology: -> X-Git-Archeology: - Revision efee17f217e58a93e795c165e303bfd0a2a0a32a: https://github.com/armbian/build/commit/efee17f217e58a93e795c165e303bfd0a2a0a32a -> X-Git-Archeology: Date: Mon, 22 Apr 2024 12:39:09 +0200 -> X-Git-Archeology: From: Paolo Sabatino -> X-Git-Archeology: Subject: rockchip64: bump rk3318-box uboot to v2024.01 -> X-Git-Archeology: -> X-Git-Archeology: - Revision 7876017d0b77bbfefbb3d112045b32d9b50db928: https://github.com/armbian/build/commit/7876017d0b77bbfefbb3d112045b32d9b50db928 -> X-Git-Archeology: Date: Tue, 02 Jul 2024 23:31:50 +0000 -> X-Git-Archeology: From: Paolo -> X-Git-Archeology: Subject: Bump rk322x-box and rk3318-box to u-boot v2024.07-rc5 (#6855) -> X-Git-Archeology: ---- - drivers/usb/host/dwc2.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c -index 111111111111..222222222222 100644 ---- a/drivers/usb/host/dwc2.c -+++ b/drivers/usb/host/dwc2.c -@@ -441,6 +441,8 @@ static void dwc_otg_core_init(struct udevice *dev) - - writel(usbcfg, ®s->gusbcfg); - -+ mdelay(10); -+ - /* Program the GAHBCFG Register. */ - switch (readl(®s->ghwcfg2) & DWC2_HWCFG2_ARCHITECTURE_MASK) { - case DWC2_HWCFG2_ARCHITECTURE_SLAVE_ONLY: --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/general-fix-inno-phy-macro.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/general-fix-inno-phy-macro.patch deleted file mode 100644 index ce360c97d256..000000000000 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/general-fix-inno-phy-macro.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Paolo Sabatino -Date: Sun, 16 Jun 2024 18:07:03 +0200 -Subject: fix inno_poll macro - ---- - drivers/phy/rockchip/phy-rockchip-inno-hdmi.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -index 111111111111..222222222222 100644 ---- a/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -+++ b/drivers/phy/rockchip/phy-rockchip-inno-hdmi.c -@@ -432,8 +432,8 @@ static inline void inno_update_bits(struct inno_hdmi_phy *inno, u8 reg, - inno_write(inno, reg, tmp); - } - --#define inno_poll(reg, val, cond, sleep_us, timeout_us) \ -- readl_poll_sleep_timeout((reg) * 4, val, cond, sleep_us, timeout_us) -+#define inno_poll(inno, reg, val, cond, sleep_us, timeout_us) \ -+ readl_poll_sleep_timeout(inno->regs + (reg * 4), val, cond, sleep_us, timeout_us) - - static unsigned long inno_hdmi_phy_get_tmdsclk(struct inno_hdmi_phy *inno, - unsigned long rate) -@@ -575,7 +575,7 @@ inno_hdmi_phy_rk3328_clk_set_rate(struct phy *phy, - inno_update_bits(inno, 0xa0, RK3328_PRE_PLL_POWER_DOWN, 0); - - /* Wait for Pre-PLL lock */ -- ret = inno_poll(0xa9, val, val & RK3328_PRE_PLL_LOCK_STATUS, -+ ret = inno_poll(inno, 0xa9, val, val & RK3328_PRE_PLL_LOCK_STATUS, - 1000, 10000); - if (ret) { - dev_err(phy->dev, "Pre-PLL locking failed\n"); -@@ -674,7 +674,7 @@ inno_hdmi_phy_rk3328_power_on(struct phy *phy, - RK3328_TMDS_DRIVER_ENABLE); - - /* Wait for post PLL lock */ -- ret = inno_poll(0xaf, v, v & RK3328_POST_PLL_LOCK_STATUS, -+ ret = inno_poll(inno, 0xaf, v, v & RK3328_POST_PLL_LOCK_STATUS, - 1000, 10000); - if (ret) { - dev_err(phy->dev, "Post-PLL locking failed\n"); --- -Armbian - diff --git a/patch/u-boot/v2024.07/board_orangepi5-plus/orangepi5-plus_kaslrseed.patch b/patch/u-boot/v2024.07/board_orangepi5-plus/orangepi5-plus_kaslrseed.patch index 2007584d102c..e91192b5c43d 100644 --- a/patch/u-boot/v2024.07/board_orangepi5-plus/orangepi5-plus_kaslrseed.patch +++ b/patch/u-boot/v2024.07/board_orangepi5-plus/orangepi5-plus_kaslrseed.patch @@ -1,5 +1,15 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alessandro Lannocca +Date: Thu, 8 Aug 2024 07:38:23 +0200 +Subject: orangepi5-plus: enable KASLR + +enable kaslrseed in orangepi-5-plus--rk3568-defconfig +--- + configs/orangepi-5-plus-rk3588_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + diff --git a/configs/orangepi-5-plus-rk3588_defconfig b/configs/orangepi-5-plus-rk3588_defconfig -index 138a633f32..3dc42d0dfc 100644 +index 111111111111..222222222222 100644 --- a/configs/orangepi-5-plus-rk3588_defconfig +++ b/configs/orangepi-5-plus-rk3588_defconfig @@ -40,6 +40,8 @@ CONFIG_CMD_PCI=y @@ -11,3 +21,6 @@ index 138a633f32..3dc42d0dfc 100644 # CONFIG_SPL_DOS_PARTITION is not set CONFIG_SPL_OF_CONTROL=y CONFIG_OF_LIVE=y +-- +Armbian + diff --git a/patch/u-boot/v2024.07/general-btrfs-fix-out-of-bounds-write.patch b/patch/u-boot/v2024.07/general-btrfs-fix-out-of-bounds-write.patch index 626a53c5602d..f21502c52c43 100644 --- a/patch/u-boot/v2024.07/general-btrfs-fix-out-of-bounds-write.patch +++ b/patch/u-boot/v2024.07/general-btrfs-fix-out-of-bounds-write.patch @@ -1,7 +1,7 @@ -From ee1941e4fec601a8444f49c7dad04ad700d501a6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Alex Shumsky Date: Wed, 19 Jun 2024 00:41:38 +0300 -Subject: [PATCH] fs: btrfs: fix out of bounds write +Subject: fs: btrfs: fix out of bounds write Fix btrfs_read/read_and_truncate_page write out of bounds of destination buffer. Old behavior break bootstd malloc'd buffers of exact file size. @@ -16,7 +16,7 @@ Reviewed-by: Qu Wenruo 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c -index 4691612eda33..3998ffc2c819 100644 +index 111111111111..222222222222 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -640,7 +640,11 @@ static int read_and_truncate_page(struct btrfs_path *path, @@ -41,3 +41,6 @@ index 4691612eda33..3998ffc2c819 100644 free(buf); return len; } +-- +Armbian +