diff options
author | Tom Rini <trini@konsulko.com> | 2022-02-14 14:18:45 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2022-02-14 14:18:45 -0500 |
commit | 139e049732e2df1bc69eec9e8fdad274bb118bfb (patch) | |
tree | fd158530bd396a17e187152e7326e49877ea01f7 | |
parent | 162c22bfbc4141f22937c6bc37aa02fd4621e76c (diff) | |
parent | 9f0deae6d5fa656d604b3efa2371ea52def22173 (diff) | |
download | u-boot-139e049732e2df1bc69eec9e8fdad274bb118bfb.zip u-boot-139e049732e2df1bc69eec9e8fdad274bb118bfb.tar.gz u-boot-139e049732e2df1bc69eec9e8fdad274bb118bfb.tar.bz2 |
Merge branch '2022-02-14-assorted-fixes'
- Fix for pstore already being in the DT, "setlocalversion" script
bugfix and pdu001 platform bugfix
-rw-r--r-- | arch/arm/dts/am335x-pdu001-u-boot.dtsi | 20 | ||||
-rw-r--r-- | cmd/pstore.c | 39 | ||||
-rw-r--r-- | configs/am335x_pdu001_defconfig | 4 | ||||
-rwxr-xr-x | scripts/setlocalversion | 5 |
4 files changed, 55 insertions, 13 deletions
diff --git a/arch/arm/dts/am335x-pdu001-u-boot.dtsi b/arch/arm/dts/am335x-pdu001-u-boot.dtsi index 686a152..f1860ee 100644 --- a/arch/arm/dts/am335x-pdu001-u-boot.dtsi +++ b/arch/arm/dts/am335x-pdu001-u-boot.dtsi @@ -5,17 +5,25 @@ #include "am33xx-u-boot.dtsi" -/ { - ocp { - u-boot,dm-pre-reloc; - }; -}; - &l4_wkup { u-boot,dm-pre-reloc; + segment@200000 { + + target-module@10000 { + u-boot,dm-pre-reloc; + }; + }; }; &l4_per { + u-boot,dm-pre-reloc; + segment@100000 { + u-boot,dm-pre-reloc; + + target-module@a6000 { + u-boot,dm-pre-reloc; + }; + }; segment@300000 { diff --git a/cmd/pstore.c b/cmd/pstore.c index 9fac8c7..cd6f6fe 100644 --- a/cmd/pstore.c +++ b/cmd/pstore.c @@ -11,6 +11,7 @@ #include <mapmem.h> #include <memalign.h> #include <part.h> +#include <fdt_support.h> struct persistent_ram_buffer { u32 sig; @@ -485,6 +486,8 @@ void fdt_fixup_pstore(void *blob) { char node[32]; int nodeoffset; /* node offset from libfdt */ + u32 addr_cells; + u32 size_cells; nodeoffset = fdt_path_offset(blob, "/"); if (nodeoffset < 0) { @@ -493,14 +496,18 @@ void fdt_fixup_pstore(void *blob) return; } - nodeoffset = fdt_add_subnode(blob, nodeoffset, "reserved-memory"); + nodeoffset = fdt_find_or_add_subnode(blob, nodeoffset, "reserved-memory"); if (nodeoffset < 0) { log_err("Add 'reserved-memory' node failed: %s\n", fdt_strerror(nodeoffset)); return; } - fdt_setprop_u32(blob, nodeoffset, "#address-cells", 2); - fdt_setprop_u32(blob, nodeoffset, "#size-cells", 2); + + addr_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#address-cells", 2); + size_cells = fdt_getprop_u32_default_node(blob, nodeoffset, 0, "#size-cells", 2); + fdt_setprop_u32(blob, nodeoffset, "#address-cells", addr_cells); + fdt_setprop_u32(blob, nodeoffset, "#size-cells", size_cells); + fdt_setprop_empty(blob, nodeoffset, "ranges"); sprintf(node, "ramoops@%llx", (unsigned long long)pstore_addr); @@ -509,14 +516,36 @@ void fdt_fixup_pstore(void *blob) log_err("Add '%s' node failed: %s\n", node, fdt_strerror(nodeoffset)); return; } + fdt_setprop_string(blob, nodeoffset, "compatible", "ramoops"); - fdt_setprop_u64(blob, nodeoffset, "reg", pstore_addr); - fdt_appendprop_u64(blob, nodeoffset, "reg", pstore_length); + + if (addr_cells == 1) { + fdt_setprop_u32(blob, nodeoffset, "reg", pstore_addr); + } else if (addr_cells == 2) { + fdt_setprop_u64(blob, nodeoffset, "reg", pstore_addr); + } else { + log_err("Unsupported #address-cells: %u\n", addr_cells); + goto clean_ramoops; + } + + if (size_cells == 1) { + // Let's consider that the pstore_length fits in a 32 bits value + fdt_appendprop_u32(blob, nodeoffset, "reg", pstore_length); + } else if (size_cells == 2) { + fdt_appendprop_u64(blob, nodeoffset, "reg", pstore_length); + } else { + log_err("Unsupported #size-cells: %u\n", addr_cells); + goto clean_ramoops; + } + fdt_setprop_u32(blob, nodeoffset, "record-size", pstore_record_size); fdt_setprop_u32(blob, nodeoffset, "console-size", pstore_console_size); fdt_setprop_u32(blob, nodeoffset, "ftrace-size", pstore_ftrace_size); fdt_setprop_u32(blob, nodeoffset, "pmsg-size", pstore_pmsg_size); fdt_setprop_u32(blob, nodeoffset, "ecc-size", pstore_ecc_size); + +clean_ramoops: + fdt_del_node_and_alias(blob, node); } U_BOOT_CMD(pstore, 10, 0, do_pstore, diff --git a/configs/am335x_pdu001_defconfig b/configs/am335x_pdu001_defconfig index 1c4c711..1381cc7 100644 --- a/configs/am335x_pdu001_defconfig +++ b/configs/am335x_pdu001_defconfig @@ -35,8 +35,10 @@ CONFIG_CMD_PMIC=y CONFIG_CMD_REGULATOR=y CONFIG_OF_CONTROL=y CONFIG_SPL_OF_CONTROL=y +CONFIG_SPL_OF_TRANSLATE=y CONFIG_ENV_OVERWRITE=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MALLOC_F_LEN=0x1200 # CONFIG_NET is not set CONFIG_SPL_DM=y CONFIG_SPL_DM_SEQ_ALIAS=y @@ -45,6 +47,8 @@ CONFIG_MMC_OMAP_HS=y CONFIG_MMC_SDHCI=y CONFIG_PINCTRL=y CONFIG_PINCTRL_SINGLE=y +CONFIG_CLK=y +CONFIG_CLK_TI_CTRL=y CONFIG_DM_PMIC=y CONFIG_DM_PMIC_TPS65910=y CONFIG_DM_REGULATOR=y diff --git a/scripts/setlocalversion b/scripts/setlocalversion index c1c0435..4a63143 100755 --- a/scripts/setlocalversion +++ b/scripts/setlocalversion @@ -153,8 +153,9 @@ if test -e include/config/auto.conf; then # We are interested only in CONFIG_LOCALVERSION and # CONFIG_LOCALVERSION_AUTO, so extract these in a safe # way (i.e. w/o sourcing auto.conf) - CONFIG_LOCALVERSION=`cat include/config/auto.conf | awk -F '=' '/^CONFIG_LOCALVERSION=/ {print $2}'` - CONFIG_LOCALVERSION_AUTO=`cat include/config/auto.conf | awk -F '=' '/^CONFIG_LOCALVERSION_AUTO=/ {print $2}'` + # xargs echo removes quotes + CONFIG_LOCALVERSION=`cat include/config/auto.conf | awk -F '=' '/^CONFIG_LOCALVERSION=/ {print $2}' | xargs echo` + CONFIG_LOCALVERSION_AUTO=`cat include/config/auto.conf | awk -F '=' '/^CONFIG_LOCALVERSION_AUTO=/ {print $2}' | xargs echo` else echo "Error: kernelrelease not valid - run 'make prepare' to update it" >&2 exit 1 |