[U-Boot] [PATCH] arm: qemu: fix failure in flash initialization if booting from TF-A

AKASHI Takahiro takahiro.akashi at linaro.org
Thu Jun 27 01:09:37 UTC 2019


If U-Boot is loaded and started from TF-A (you need to change
SYS_TEXT_BASE to 0x60000000), it will hang up at flash initialization.

If secure mode is off (default, or -machine virt,secure=off) at qemu,
it will provide dtb with two flash memory banks:
	flash at 0 {
		bank-width = <0x4>;
		reg = <0x0 0x0 0x0 0x4000000 0x0 0x4000000 0x0 0x4000000>;
		compatible = "cfi-flash";
	};
If secure mode is on, on the other hand, qemu provides dtb with 1 bank:
	flash at 0 {
		bank-width = <0x4>;
		reg = <0x0 0x4000000 0x0 0x4000000>;
		compatible = "cfi-flash";
	};

As a result, flash_init()/flash_get_size() will eventually fail.
With this patch applied, relevant CONFIG values are modified.

NOTE: you will not have to modify SYS_TEXT_BASE any more once
Yamada-san's patch[1] is merged.

[1] https://lists.denx.de/pipermail/u-boot/2019-June/374178.html

Signed-off-by: AKASHI Takahiro <takahiro.akashi at linaro.org>
---
 include/configs/qemu-arm.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index 65fdb1e92981..35e3c5ad7a8d 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -46,8 +46,13 @@
 #define CONFIG_SYS_CBSIZE 512
 
 #define CONFIG_SYS_MONITOR_BASE		CONFIG_SYS_TEXT_BASE
+#ifdef CONFIG_TFABOOT
+#define CONFIG_SYS_FLASH_BASE		0x4000000
+#define CONFIG_SYS_MAX_FLASH_BANKS	1
+#else
 #define CONFIG_SYS_FLASH_BASE		0x0
 #define CONFIG_SYS_MAX_FLASH_BANKS	2
+#endif
 #define CONFIG_SYS_MAX_FLASH_SECT	256 /* Sector: 256K, Bank: 64M */
 
 #endif /* __CONFIG_H */
-- 
2.21.0



More information about the U-Boot mailing list