summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSumit Garg <sumit.garg@linaro.org>2018-11-26 16:50:17 +0530
committerTom Rini <trini@konsulko.com>2018-12-12 12:14:21 -0500
commit03fb0958c9090eb3add089cb9f5a8a5ecb30ddf6 (patch)
tree3094c913aa257de5fa0dca1b2fb1b079b357eab5
parent5266db16eeba3318e2d0a6e27eb91c0b494d0de4 (diff)
qemu-arm: Add persistent environment support
Currently on qemu-arm platforms environment is kept in RAM. Instead use pflash device 1 to provide persistent environment support across device reset. Also (optionally) provide support for persistent environment across qemu machine OFF/ON using following instructions: - Create envstore.img using qemu-img: qemu-img create -f raw envstore.img 64M - Add a pflash drive parameter to the command line: -drive if=pflash,format=raw,index=1,file=envstore.img Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
-rw-r--r--configs/qemu_arm64_defconfig7
-rw-r--r--configs/qemu_arm_defconfig7
-rw-r--r--doc/README.qemu-arm6
-rw-r--r--include/configs/qemu-arm.h8
4 files changed, 27 insertions, 1 deletions
diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
index f4502c9e9f..0f13716c2e 100644
--- a/configs/qemu_arm64_defconfig
+++ b/configs/qemu_arm64_defconfig
@@ -29,3 +29,10 @@ CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_PCI=y
+CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MTD=y
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_CFI_FLASH=y
+CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
+CONFIG_SYS_FLASH_CFI=y
diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
index acebdc5a4e..b75363e305 100644
--- a/configs/qemu_arm_defconfig
+++ b/configs/qemu_arm_defconfig
@@ -29,3 +29,10 @@ CONFIG_USB=y
CONFIG_DM_USB=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_PCI=y
+CONFIG_ENV_IS_IN_FLASH=y
+CONFIG_MTD=y
+CONFIG_MTD_NOR_FLASH=y
+CONFIG_FLASH_CFI_DRIVER=y
+CONFIG_CFI_FLASH=y
+CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
+CONFIG_SYS_FLASH_CFI=y
diff --git a/doc/README.qemu-arm b/doc/README.qemu-arm
index 260165638a..e67bc13f70 100644
--- a/doc/README.qemu-arm
+++ b/doc/README.qemu-arm
@@ -47,6 +47,12 @@ The minimal QEMU command line to get U-Boot up and running is:
Note that for some odd reason qemu-system-aarch64 needs to be explicitly
told to use a 64-bit CPU or it will boot in 32-bit mode.
+Additional persistent U-boot environment support can be added as follows:
+- Create envstore.img using qemu-img:
+ qemu-img create -f raw envstore.img 64M
+- Add a pflash drive parameter to the command line:
+ -drive if=pflash,format=raw,index=1,file=envstore.img
+
Additional peripherals that have been tested to work in both U-Boot and Linux
can be enabled with the following command line parameters:
diff --git a/include/configs/qemu-arm.h b/include/configs/qemu-arm.h
index 33dcce0f92..0431a7982d 100644
--- a/include/configs/qemu-arm.h
+++ b/include/configs/qemu-arm.h
@@ -21,7 +21,8 @@
#define CONFIG_SYS_HZ 1000
/* Environment options */
-#define CONFIG_ENV_SIZE SZ_64K
+#define CONFIG_ENV_ADDR 0x4000000
+#define CONFIG_ENV_SIZE SZ_256K
#define BOOT_TARGET_DEVICES(func) \
func(SCSI, scsi, 0) \
@@ -43,4 +44,9 @@
#define CONFIG_SYS_CBSIZE 512
+#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE
+#define CONFIG_SYS_FLASH_BASE 0x0
+#define CONFIG_SYS_MAX_FLASH_BANKS 2
+#define CONFIG_SYS_MAX_FLASH_SECT 256 /* Sector: 256K, Bank: 64M */
+
#endif /* __CONFIG_H */