From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sumit Garg Date: Tue, 11 Dec 2018 18:04:05 +0530 Subject: [U-Boot] [PATCH] qemu-arm: Add persistent environment support In-Reply-To: <1543231217-18799-1-git-send-email-sumit.garg@linaro.org> References: <1543231217-18799-1-git-send-email-sumit.garg@linaro.org> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Mon, 26 Nov 2018 at 16:51, Sumit Garg wrote: > > 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 > --- > configs/qemu_arm64_defconfig | 7 +++++++ > configs/qemu_arm_defconfig | 7 +++++++ > doc/README.qemu-arm | 6 ++++++ > include/configs/qemu-arm.h | 8 +++++++- > 4 files changed, 27 insertions(+), 1 deletion(-) > Gentle reminder. Please let me know if you have any further comments. -Sumit > diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig > index f4502c9..0f13716 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 acebdc5..b75363e 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 2601656..e67bc13 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 fedc466..83a930b 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) \ > @@ -42,4 +43,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 */ > -- > 2.7.4 >