summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/dts/qemu-sbsa.dts5
-rw-r--r--arch/arm/dts/rk3399-nanopi4-u-boot.dtsi12
-rw-r--r--arch/arm/mach-k3/am62ax/am62a7_init.c1
-rw-r--r--arch/arm/mach-rockchip/Kconfig5
-rw-r--r--arch/arm/mach-snapdragon/board.c63
-rw-r--r--arch/arm/mach-uniphier/debug-uart/debug-uart.c2
-rw-r--r--arch/riscv/dts/binman.dtsi14
-rw-r--r--arch/riscv/include/asm/u-boot.h4
-rw-r--r--arch/riscv/lib/bootm.c4
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,