From 23fa18eaa71266feff7ba8d83022d9e1cc83c65a Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Fri, 10 May 2024 07:42:03 +0000 Subject: [PATCH] disable pwm7 --- u-boot/common/image-fdt.c | 80 +++++++++++++++++++++++++--------------- 1 files changed, 50 insertions(+), 30 deletions(-) diff --git a/u-boot/common/image-fdt.c b/u-boot/common/image-fdt.c index 2c79b96..2884880 100644 --- a/u-boot/common/image-fdt.c +++ b/u-boot/common/image-fdt.c @@ -78,39 +78,16 @@ } #endif -/** - * boot_fdt_add_mem_rsv_regions - Mark the memreserve sections as unusable - * @lmb: pointer to lmb handle, will be used for memory mgmt - * @fdt_blob: pointer to fdt blob base address - * - * Adds the memreserve regions in the dtb to the lmb block. Adding the - * memreserve regions prevents u-boot from using them to store the initrd - * or the fdt blob. - */ -void boot_fdt_add_mem_rsv_regions(struct lmb *lmb, void *fdt_blob) +void boot_mem_rsv_regions(struct lmb *lmb, void *fdt_blob) { - uint64_t addr, size; - int i, total; int rsv_offset, offset; fdt_size_t rsv_size; fdt_addr_t rsv_addr; - /* we needn't repeat do reserve, do_bootm_linux would call this again */ - static int rsv_done; const void *prop; + int i = 0; - if (fdt_check_header(fdt_blob) != 0 || rsv_done) + if (fdt_check_header(fdt_blob) != 0) return; - - rsv_done = 1; - - total = fdt_num_mem_rsv(fdt_blob); - for (i = 0; i < total; i++) { - if (fdt_get_mem_rsv(fdt_blob, i, &addr, &size) != 0) - continue; - printf(" reserving fdt memory region: addr=%llx size=%llx\n", - (unsigned long long)addr, (unsigned long long)size); - lmb_reserve(lmb, addr, size); - } rsv_offset = fdt_subnode_offset(fdt_blob, 0, "reserved-memory"); if (rsv_offset == -FDT_ERR_NOTFOUND) @@ -128,13 +105,56 @@ &rsv_size, false); if (rsv_addr == FDT_ADDR_T_NONE || !rsv_size) continue; - printf(" 'reserved-memory' %s: addr=%llx size=%llx\n", - fdt_get_name(fdt_blob, offset, NULL), - (unsigned long long)rsv_addr, (unsigned long long)rsv_size); - lmb_reserve(lmb, rsv_addr, rsv_size); + + i++; + /* be quiet while reserve */ + if (lmb) { + lmb_reserve(lmb, rsv_addr, rsv_size); + } else { + if (i == 1) + printf("## reserved-memory:\n"); + + printf(" %s: addr=%llx size=%llx\n", + fdt_get_name(fdt_blob, offset, NULL), + (unsigned long long)rsv_addr, (unsigned long long)rsv_size); + } } } +/** + * boot_fdt_add_mem_rsv_regions - Mark the memreserve sections as unusable + * @lmb: pointer to lmb handle, will be used for memory mgmt + * @fdt_blob: pointer to fdt blob base address + * + * Adds the memreserve regions in the dtb to the lmb block. Adding the + * memreserve regions prevents u-boot from using them to store the initrd + * or the fdt blob. + */ +void boot_fdt_add_mem_rsv_regions(struct lmb *lmb, void *fdt_blob) +{ + uint64_t addr, size; + int i, total; + /* we needn't repeat do reserve, do_bootm_linux would call this again */ + static int rsv_done; + + if (fdt_check_header(fdt_blob) != 0 || rsv_done) + return; + + rsv_done = 1; + + total = fdt_num_mem_rsv(fdt_blob); + for (i = 0; i < total; i++) { + if (fdt_get_mem_rsv(fdt_blob, i, &addr, &size) != 0) + continue; + printf(" reserving fdt memory region: addr=%llx size=%llx\n", + (unsigned long long)addr, (unsigned long long)size); + lmb_reserve(lmb, addr, size); + } + + /* lmb_reserve() for "reserved-memory" */ + boot_mem_rsv_regions(lmb, fdt_blob); +} + #ifdef CONFIG_SYSMEM /** * boot_fdt_add_mem_rsv_regions - Mark the memreserve sections as unusable -- Gitblit v1.6.2