diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/dts/qemu-sbsa.dts | 5 | ||||
-rw-r--r-- | arch/arm/dts/rk3399-nanopi4-u-boot.dtsi | 12 | ||||
-rw-r--r-- | arch/arm/mach-k3/am62ax/am62a7_init.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-rockchip/Kconfig | 5 | ||||
-rw-r--r-- | arch/arm/mach-snapdragon/board.c | 63 | ||||
-rw-r--r-- | arch/arm/mach-uniphier/debug-uart/debug-uart.c | 2 | ||||
-rw-r--r-- | arch/riscv/dts/binman.dtsi | 14 | ||||
-rw-r--r-- | arch/riscv/include/asm/u-boot.h | 4 | ||||
-rw-r--r-- | arch/riscv/lib/bootm.c | 4 |
9 files changed, 60 insertions, 50 deletions
diff --git a/arch/arm/dts/qemu-sbsa.dts b/arch/arm/dts/qemu-sbsa.dts index 099b51b927f..a7718d6c29e 100644 --- a/arch/arm/dts/qemu-sbsa.dts +++ b/arch/arm/dts/qemu-sbsa.dts @@ -91,7 +91,10 @@ #interrupt-cells = <3>; status = "okay"; interrupt-controller; - interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; + + /* vcpumntirq: virtual CPU interface maintenance interrupt */ + interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; + reg = /bits/ 64 <SBSA_GIC_DIST_BASE_ADDR SBSA_GIC_DIST_LENGTH>, /bits/ 64 <SBSA_GIC_REDIST_BASE_ADDR SBSA_GIC_REDIST_LENGTH>, /bits/ 64 <0 0>, diff --git a/arch/arm/dts/rk3399-nanopi4-u-boot.dtsi b/arch/arm/dts/rk3399-nanopi4-u-boot.dtsi index 75736124996..62fd21f2ca5 100644 --- a/arch/arm/dts/rk3399-nanopi4-u-boot.dtsi +++ b/arch/arm/dts/rk3399-nanopi4-u-boot.dtsi @@ -9,6 +9,14 @@ bootph-pre-ram; }; +&i2c0_xfer { + bootph-pre-ram; +}; + +&io_domains { + bootph-pre-ram; +}; + &sdmmc { pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_cd>; }; @@ -19,8 +27,12 @@ &vcc3v0_sd { bootph-pre-ram; + /delete-property/ regulator-always-on; }; &vcc_sdio { + bootph-pre-ram; + /delete-property/ regulator-always-on; + /delete-property/ regulator-boot-on; regulator-init-microvolt = <3000000>; }; diff --git a/arch/arm/mach-k3/am62ax/am62a7_init.c b/arch/arm/mach-k3/am62ax/am62a7_init.c index 28aee34f30b..edd43a1d78d 100644 --- a/arch/arm/mach-k3/am62ax/am62a7_init.c +++ b/arch/arm/mach-k3/am62ax/am62a7_init.c @@ -191,6 +191,7 @@ void board_init_f(ulong dummy) if (ret) panic("DRAM init failed: %d\n", ret); #endif + spl_enable_cache(); setup_qos(); diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index 9210877a4a4..d3ed870b169 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -11,9 +11,8 @@ config ROCKCHIP_PX30 select TPL_TINY_FRAMEWORK if TPL select TPL_HAVE_INIT_STACK if TPL imply SPL_SEPARATE_BSS - select SPL_SERIAL - select TPL_SERIAL - select DEBUG_UART_BOARD_INIT + imply SPL_SERIAL + imply TPL_SERIAL imply ROCKCHIP_COMMON_BOARD imply ROCKCHIP_COMMON_STACK_ADDR imply SPL_ROCKCHIP_COMMON_BOARD diff --git a/arch/arm/mach-snapdragon/board.c b/arch/arm/mach-snapdragon/board.c index 3ab75f0fce0..5547d6d054f 100644 --- a/arch/arm/mach-snapdragon/board.c +++ b/arch/arm/mach-snapdragon/board.c @@ -409,52 +409,39 @@ static void configure_env(void) return; } - /* The last compatible is always the SoC compatible */ - ret = ofnode_read_string_index(root, "compatible", compat_count - 1, &last_compat); - if (ret < 0) { - log_warning("Can't read second compatible\n"); - return; - } - - /* Copy the second compat (e.g. "qcom,sdm845") into buf */ - strlcpy(buf, last_compat, sizeof(buf) - 1); - tmp = buf; - - /* strsep() is destructive, it replaces the comma with a \0 */ - if (!strsep(&tmp, ",")) { - log_warning("second compatible '%s' has no ','\n", buf); - return; - } - - /* tmp now points to just the "sdm845" part of the string */ - env_set("soc", tmp); - - /* Now figure out the "board" part from the first compatible */ - memset(buf, 0, sizeof(buf)); strlcpy(buf, first_compat, sizeof(buf) - 1); tmp = buf; /* The Qualcomm reference boards (RBx, HDK, etc) */ if (!strncmp("qcom", buf, strlen("qcom"))) { + char *soc; + /* * They all have the first compatible as "qcom,<soc>-<board>" * (e.g. "qcom,qrb5165-rb5"). We extract just the part after * the dash. */ - if (!strsep(&tmp, "-")) { + if (!strsep(&tmp, ",")) { + log_warning("compatible '%s' has no ','\n", buf); + return; + } + soc = strsep(&tmp, "-"); + if (!soc) { log_warning("compatible '%s' has no '-'\n", buf); return; } - /* tmp is now "rb5" */ + + env_set("soc", soc); env_set("board", tmp); } else { if (!strsep(&tmp, ",")) { log_warning("compatible '%s' has no ','\n", buf); return; } - /* for thundercomm we just want the bit after the comma (e.g. "db845c"), - * for all other boards we replace the comma with a '-' and take both - * (e.g. "oneplus-enchilada") + /* + * For thundercomm we just want the bit after the comma + * (e.g. "db845c"), for all other boards we replace the comma + * with a '-' and take both (e.g. "oneplus-enchilada") */ if (!strncmp("thundercomm", buf, strlen("thundercomm"))) { env_set("board", tmp); @@ -462,6 +449,28 @@ static void configure_env(void) *(tmp - 1) = '-'; env_set("board", buf); } + + /* The last compatible is always the SoC compatible */ + ret = ofnode_read_string_index(root, "compatible", + compat_count - 1, &last_compat); + if (ret < 0) { + log_warning("Can't read second compatible\n"); + return; + } + + /* Copy the last compat (e.g. "qcom,sdm845") into buf */ + memset(buf, 0, sizeof(buf)); + strlcpy(buf, last_compat, sizeof(buf) - 1); + tmp = buf; + + /* strsep() is destructive, it replaces the comma with a \0 */ + if (!strsep(&tmp, ",")) { + log_warning("second compatible '%s' has no ','\n", buf); + return; + } + + /* tmp now points to just the "sdm845" part of the string */ + env_set("soc", tmp); } /* Now build the full path name */ diff --git a/arch/arm/mach-uniphier/debug-uart/debug-uart.c b/arch/arm/mach-uniphier/debug-uart/debug-uart.c index 6836eb63bfa..1a3e290aa97 100644 --- a/arch/arm/mach-uniphier/debug-uart/debug-uart.c +++ b/arch/arm/mach-uniphier/debug-uart/debug-uart.c @@ -16,7 +16,7 @@ #define UNIPHIER_UART_LSR 0x14 #define UNIPHIER_UART_LDR 0x24 -static void _debug_uart_putc(int c) +static inline void _debug_uart_putc(int c) { void __iomem *base = (void __iomem *)CONFIG_VAL(DEBUG_UART_BASE); diff --git a/arch/riscv/dts/binman.dtsi b/arch/riscv/dts/binman.dtsi index c5b0464d6a7..b518560bb94 100644 --- a/arch/riscv/dts/binman.dtsi +++ b/arch/riscv/dts/binman.dtsi @@ -5,12 +5,6 @@ #include <config.h> -#ifdef CONFIG_64BIT -#define ARCH "riscv64" -#else -#define ARCH "riscv" - -#endif / { binman: binman { multiple-images; @@ -37,7 +31,7 @@ description = "U-Boot"; type = "standalone"; os = "U-Boot"; - arch = ARCH; + arch = "riscv"; compression = "none"; load = /bits/ 64 <CONFIG_TEXT_BASE>; @@ -49,7 +43,7 @@ description = "Linux"; type = "standalone"; os = "Linux"; - arch = ARCH; + arch = "riscv"; compression = "none"; load = /bits/ 64 <CONFIG_TEXT_BASE>; @@ -62,7 +56,7 @@ tee { description = "OP-TEE"; type = "tee"; - arch = ARCH; + arch = "riscv"; compression = "none"; os = "tee"; load = /bits/ 64 <CONFIG_SPL_OPTEE_LOAD_ADDR>; @@ -76,7 +70,7 @@ description = "OpenSBI fw_dynamic Firmware"; type = "firmware"; os = "opensbi"; - arch = ARCH; + arch = "riscv"; compression = "none"; load = /bits/ 64 <CONFIG_SPL_OPENSBI_LOAD_ADDR>; entry = /bits/ 64 <CONFIG_SPL_OPENSBI_LOAD_ADDR>; diff --git a/arch/riscv/include/asm/u-boot.h b/arch/riscv/include/asm/u-boot.h index a90cc4c21cf..d5e1d5f3231 100644 --- a/arch/riscv/include/asm/u-boot.h +++ b/arch/riscv/include/asm/u-boot.h @@ -23,10 +23,6 @@ #include <asm/u-boot-riscv.h> /* For image.h:image_check_target_arch() */ -#ifdef CONFIG_64BIT -#define IH_ARCH_DEFAULT IH_ARCH_RISCV64 -#else #define IH_ARCH_DEFAULT IH_ARCH_RISCV -#endif #endif /* _U_BOOT_H_ */ diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index c98c5e76633..9544907ab1e 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -90,10 +90,6 @@ static void boot_jump_linux(struct bootm_headers *images, int flag) announce_and_cleanup(fake); if (!fake) { - if (images->os.arch != IH_ARCH_DEFAULT) { - printf("Image arch not compatible with host arch.\n"); - hang(); - } if (CONFIG_IS_ENABLED(OF_LIBFDT) && images->ft_len) { #ifdef CONFIG_SMP ret = smp_call_function(images->ep, |