diff options
author | Adriana Kobylak <anoo@us.ibm.com> | 2018-02-15 01:35:30 +0300 |
---|---|---|
committer | Adriana Kobylak <anoo@us.ibm.com> | 2018-03-02 00:26:57 +0300 |
commit | b70005d476ffa20e278739bde0bc31d180b1e3e8 (patch) | |
tree | 6de84ea120aae9e599c06f76d6fd2f9e4c37b392 /meta-phosphor | |
parent | a317e387272a352100c7d4a9f8a02500f521d63d (diff) | |
download | openbmc-b70005d476ffa20e278739bde0bc31d180b1e3e8.tar.xz |
Increase default size of UBI read-write volume
The default size of the UBI read-write volume is currently set to 4MB.
There are no plans to store more than one BMC rootfs image on the chip
so in a 32MB flash chip, accounting for the current rootfs image size
of ~15MB with plans to grow to ~20MB with the addition of redfish and
other packages, it is safe to increase the read-write volume size to
6MB since the current size is already almost completely taken up if
there are multiple error logs / dumps on the system.
In addition, make the size configurable from a recipe so that the
size can be changed in a per-system basis. And during code update,
check the current size and update it if it's different, this allows
systems to be able to be resized to a new size by performing factory
reset after a code update that sets the new size.
Tested:
- Booted on QEMU and verified non-ubi system (romulus) retains the
current 4MB read-write volume, and ubi system (witherspoon) has a
6MB volume.
- Code updated to an image that has these changes and verified the
rwfs_size env variable changes to 6MB, and that a subsequent factory
reset rebuilds the volume with size 6MB.
Change-Id: I995eb560c1bd87ee95712c731e3d6e55bc0b2735
Signed-off-by: Adriana Kobylak <anoo@us.ibm.com>
Diffstat (limited to 'meta-phosphor')
5 files changed, 13 insertions, 6 deletions
diff --git a/meta-phosphor/classes/image_types_phosphor.bbclass b/meta-phosphor/classes/image_types_phosphor.bbclass index 5599332f6..35843ea81 100644 --- a/meta-phosphor/classes/image_types_phosphor.bbclass +++ b/meta-phosphor/classes/image_types_phosphor.bbclass @@ -52,8 +52,8 @@ FLASH_ROFS_OFFSET ?= "4864" FLASH_RWFS_OFFSET ?= "28672" # UBI volume sizes in KB unless otherwise noted. -FLASH_UBI_RWFS_SIZE ?= "4096" -FLASH_UBI_RWFS_TXT_SIZE ?= "4MiB" +FLASH_UBI_RWFS_SIZE ?= "6144" +FLASH_UBI_RWFS_TXT_SIZE ?= "6MiB" python() { # Compute rwfs LEB count and LEB size. diff --git a/meta-phosphor/common/recipes-bsp/u-boot/files/0004-config-ast-common-Add-conditional-factory-reset-comm.patch b/meta-phosphor/common/recipes-bsp/u-boot/files/0004-config-ast-common-Add-conditional-factory-reset-comm.patch index 792cdb7c5..6bf9bb798 100644 --- a/meta-phosphor/common/recipes-bsp/u-boot/files/0004-config-ast-common-Add-conditional-factory-reset-comm.patch +++ b/meta-phosphor/common/recipes-bsp/u-boot/files/0004-config-ast-common-Add-conditional-factory-reset-comm.patch @@ -21,7 +21,7 @@ index 14191e4ab0..aaa5155e00 100644 #define CONFIG_ENV_SIZE 0x10000 /* Total Size of Environment Sector */ #define CONFIG_ENV_SIZE_REDUND 0x10000 -+#define CONFIG_RWFS_SIZE 0x400000 ++#define CONFIG_RWFS_SIZE 0x600000 + #define CONFIG_BOOTCOMMAND "run set_bootargs; run obmc_bootcmd" #define CONFIG_ENV_OVERWRITE diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb index 5cd017e18..725c83577 100644 --- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb +++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager.bb @@ -86,9 +86,11 @@ SYSTEMD_SERVICE_${PN}-updater += " \ BMC_RW_MTD ??= "bmc" BMC_RO_MTD ??= "bmc" BMC_KERNEL_MTD ??= "bmc" +BMC_RW_SIZE ??= "0x600000" SYSTEMD_SUBSTITUTIONS += "RW_MTD:${BMC_RW_MTD}:obmc-flash-bmc-ubirw.service" SYSTEMD_SUBSTITUTIONS += "RO_MTD:${BMC_RO_MTD}:obmc-flash-bmc-ubiro@.service" SYSTEMD_SUBSTITUTIONS += "KERNEL_MTD:${BMC_KERNEL_MTD}:obmc-flash-bmc-ubiro@.service" +SYSTEMD_SUBSTITUTIONS += "RW_SIZE:${BMC_RW_SIZE}:obmc-flash-bmc-ubirw.service" SRC_URI += "file://obmc-flash-bmc" do_install_append() { diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc index 12c6c762b..d04651611 100644 --- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc +++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc @@ -108,10 +108,14 @@ ubi_rw() { rw="${rwmtd#mtd}" ubidev="/dev/ubi${rw}" - # Create a ubi volume of size 4MB, that is the current size of the rwfs image + rwsize="$(fw_printenv -n rwfs_size)" + if [[ "${imgsize}" != "${rwsize}" ]]; then + fw_setenv rwfs_size "${imgsize}" + fi + vol="$(findubi "${name}")" if [ -z "${vol}" ]; then - ubimkvol "${ubidev}" -N "${name}" -s 4MiB + ubimkvol "${ubidev}" -N "${name}" -s "${imgsize}" fi } @@ -387,6 +391,7 @@ case "$1" in ubirw) reqmtd="$2" name="$3" + imgsize="$4" ubi_rw ;; ubiro) diff --git a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubirw.service b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubirw.service index 4a955f2ab..79d0ea387 100644 --- a/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubirw.service +++ b/meta-phosphor/common/recipes-phosphor/flash/phosphor-software-manager/obmc-flash-bmc-ubirw.service @@ -4,5 +4,5 @@ Description=Create BMC read-write ubi volume [Service] Type=oneshot RemainAfterExit=no -ExecStart=/usr/bin/env obmc-flash-bmc ubirw {RW_MTD} rwfs +ExecStart=/usr/bin/env obmc-flash-bmc ubirw {RW_MTD} rwfs {RW_SIZE} SyslogIdentifier=obmc-flash-bmc |