[U-Boot] [PATCH] ARM: vexpress_*: Enable CMD_UBI support

Liviu Dudau liviu.dudau at foss.arm.com
Mon Nov 19 10:10:39 UTC 2018


Hi Otavio,

On Sun, Nov 18, 2018 at 06:48:07PM -0200, Otavio Salvador wrote:
> This allow for convenient use of QEMU machine to test loading of UBI
> filesystem. There are a couple of changes made together of this which
> are required:
> 
>  1) The malloc must be at least 512 KiB to allow the use of UBI
>     filesystem. We are going to enable it in a next patch.
> 
>  2) MTD_DEVICE must be enabled, otherwise we get missing symbols
>     during the build
> 
> Following configs were change:
> 
>  - vexpress_aemv8a_dram_defconfig
>  - vexpress_aemv8a_juno_defconfig
>  - vexpress_aemv8a_semi_defconfig
>  - vexpress_ca15_tc2_defconfig
>  - vexpress_ca5x2_defconfig
>  - vexpress_ca9x4_defconfig
> 
> Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> ---
> 
>  configs/vexpress_aemv8a_dram_defconfig | 2 ++
>  configs/vexpress_aemv8a_juno_defconfig | 2 ++
>  configs/vexpress_aemv8a_semi_defconfig | 2 ++
>  configs/vexpress_ca15_tc2_defconfig    | 2 ++
>  configs/vexpress_ca5x2_defconfig       | 2 ++
>  configs/vexpress_ca9x4_defconfig       | 2 ++
>  include/configs/vexpress_common.h      | 2 +-
>  7 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/configs/vexpress_aemv8a_dram_defconfig b/configs/vexpress_aemv8a_dram_defconfig
> index 9848f96293..0f0f138303 100644
> --- a/configs/vexpress_aemv8a_dram_defconfig
> +++ b/configs/vexpress_aemv8a_dram_defconfig
> @@ -23,12 +23,14 @@ CONFIG_CMD_ARMFLASH=y
>  # CONFIG_CMD_NFS is not set
>  CONFIG_CMD_CACHE=y
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  # CONFIG_ISO_PARTITION is not set
>  # CONFIG_EFI_PARTITION is not set
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_DM=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/configs/vexpress_aemv8a_juno_defconfig b/configs/vexpress_aemv8a_juno_defconfig
> index ef38915955..ed611fea7c 100644
> --- a/configs/vexpress_aemv8a_juno_defconfig
> +++ b/configs/vexpress_aemv8a_juno_defconfig
> @@ -23,12 +23,14 @@ CONFIG_CMD_ARMFLASH=y
>  # CONFIG_CMD_NFS is not set
>  CONFIG_CMD_CACHE=y
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  # CONFIG_ISO_PARTITION is not set
>  # CONFIG_EFI_PARTITION is not set
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_DM=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/configs/vexpress_aemv8a_semi_defconfig b/configs/vexpress_aemv8a_semi_defconfig
> index a4d1233cd5..0b3bb65ee6 100644
> --- a/configs/vexpress_aemv8a_semi_defconfig
> +++ b/configs/vexpress_aemv8a_semi_defconfig
> @@ -23,12 +23,14 @@ CONFIG_CMD_ARMFLASH=y
>  # CONFIG_CMD_NFS is not set
>  CONFIG_CMD_CACHE=y
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  # CONFIG_ISO_PARTITION is not set
>  # CONFIG_EFI_PARTITION is not set
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_DM=y
>  # CONFIG_MMC is not set
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/configs/vexpress_ca15_tc2_defconfig b/configs/vexpress_ca15_tc2_defconfig
> index f4d555be48..cabc0c4577 100644
> --- a/configs/vexpress_ca15_tc2_defconfig
> +++ b/configs/vexpress_ca15_tc2_defconfig
> @@ -18,8 +18,10 @@ CONFIG_CMD_MMC=y
>  # CONFIG_CMD_SETEXPR is not set
>  # CONFIG_CMD_NFS is not set
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/configs/vexpress_ca5x2_defconfig b/configs/vexpress_ca5x2_defconfig
> index bdacc60c2c..dc4411d6f5 100644
> --- a/configs/vexpress_ca5x2_defconfig
> +++ b/configs/vexpress_ca5x2_defconfig
> @@ -17,8 +17,10 @@ CONFIG_CMD_MMC=y
>  # CONFIG_CMD_SETEXPR is not set
>  # CONFIG_CMD_NFS is not set
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
> index 7a90831918..9390cf61d1 100644
> --- a/configs/vexpress_ca9x4_defconfig
> +++ b/configs/vexpress_ca9x4_defconfig
> @@ -17,8 +17,10 @@ CONFIG_CMD_MMC=y
>  # CONFIG_CMD_SETEXPR is not set
>  # CONFIG_CMD_NFS is not set
>  # CONFIG_CMD_MISC is not set
> +CONFIG_CMD_UBI=y
>  CONFIG_ENV_IS_IN_FLASH=y
>  CONFIG_MTD_NOR_FLASH=y
> +CONFIG_MTD_DEVICE=y
>  CONFIG_FLASH_CFI_DRIVER=y
>  CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y
>  CONFIG_SYS_FLASH_PROTECTION=y
> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
> index 267b230fda..f277e80578 100644
> --- a/include/configs/vexpress_common.h
> +++ b/include/configs/vexpress_common.h
> @@ -120,7 +120,7 @@
>  #define CONFIG_INITRD_TAG		1
>  
>  /* Size of malloc() pool */
> -#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 128 * 1024)
> +#define CONFIG_SYS_MALLOC_LEN		(512 * 1024) /* 512 KiB */

I don't have much to say about the enabling of the UBI for some
platforms that I have my doubts that QEMU emulates them correctly, but I
guess it should be harmless. What I have issues here is you saying in
the commit message "The malloc must be *at least* 512 KiB" but here you
make it *exactly* 512KiB, ignoring the CONFIG_ENV_SIZE. Would it not be
better to keep the CONFIG_SYS_MALLOC_LEN to be (CONFIG_ENV_SIZE + 512 * 1024)?

Best regards,
Liviu

>  
>  #define SCTL_BASE			V2M_SYSCTL
>  #define VEXPRESS_FLASHPROG_FLVPPEN	(1 << 0)
> -- 
> 2.19.1
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯


More information about the U-Boot mailing list