Corstone-700 FVP - Increase Rootfs Size Above 2048 kB

I'm building Linux images off of the ARM Reference Platforms targeting the Corstone-700 MPS3 and Corstone-700 FVP machine models, and I'm trying to bundle some additional custom recipes into the image rootfs. I've essentially just been following the baseline instructions from linaro and only added a few application-level recipes on top, no kernel modifications or anything. However, the corstone700 image seems to have a baseline limit of 2048 kB for any rootfs, and if my image exceeds that, bitbake fails during image packaging with:

ERROR: File system image of partition None is larger (3924 kB) than its allowed size 2048 kB

So far, I've tried a few tweaks to increase this limit, but I haven't had any success in producing a working linux image yet. To sum things up, I've

  1. Edited arm-reference-image.corstone700.wks to increase the "Rawcopy of the rootfs" from a "--fixed-size 2" to "--fixed-size 4" (which makes the build complete successfully but ofc doesn't produce a working linux image)
  2. Patched the boot-firmware recipe to set the HOST_ROOTFS_SIZE to (4 * 1024 * 1024)
  3. Patched over the corstone700 u-boot recipe to set an offset kernel_addr_r by an additional 2MB

However, after messing around with this for a bit, in the FVP I'm never able to get past the "Booting Linux..." console output.

Does anyone have any ideas what other changes I might need to be making in order to get around this 2MB size limitation for the rootfs?

  • Managed to find a solution eventually to at least change from a 2 MiB to a 4 MiB rootfs by doing the following:

    1. Edit the arm-reference-image.corstone700.wks as in the original post
    2. Patch the boot-firmware recipe to set the firewall region to be 4 MiB in size rather than the original 2 and move the XIP_HOST_FLASH_BASE up by 2 MiB (change the selected line to "HOST_FLASH_BASE + 0x500000")
    3. Patch the u-boot recipe to set the kernel base address to be upwards 2 MiB as described in the original post ("kernel_addr_r=0x08500000\0")
    4. Adjust the corstone700 xip.cfg to offset the kernel by 2 MiB and adjust the size of the PHYSMAP_LEN to 4 MiB
More questions in this forum