[U-Boot] [PATCH v5 19/21] rockchip: Add max init size & chip tag configs
Simon Glass
sjg at chromium.org
Fri Nov 13 19:13:54 CET 2015
Hi Lin,
On 10 November 2015 at 03:24, Lin Huang <hl at rock-chips.com> wrote:
> From: Jeffy Chen <jeffy.chen at rock-chips.com>
>
> Our chips may have different sram size limits and chip tag, so
> we need to add configs for that.
>
> Signed-off-by: Jeffy Chen <jeffy.chen at rock-chips.com>
> ---
> Changes in v1: None
> Changes in v2: None
> Changes in v3: None
> Changes in v4: None
> Changes in v5:
> - Adviced by Simon:
> - move CONFIG_ROCKCHIP_MAX_INIT_SIZE and CONFIG_ROCKCHIP_CHIP_TAG
> - to arch/arm/mach-rokchip/Kconfig
>
> arch/arm/mach-rockchip/Kconfig | 11 +++++++++++
> arch/arm/mach-rockchip/rk3036/Kconfig | 6 ++++++
> arch/arm/mach-rockchip/rk3288/Kconfig | 6 ++++++
> include/configs/rk3036_common.h | 3 ---
> tools/Makefile | 6 ++++++
> tools/rkcommon.c | 2 +-
> tools/rkcommon.h | 1 -
> tools/rkimage.c | 2 +-
> tools/rksd.c | 4 ++--
> tools/rkspi.c | 4 ++--
> 10 files changed, 35 insertions(+), 10 deletions(-)
Acked-by: Simon Glass <sjg at chromium.org>
But please see ideas below.
>
> diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig
> index 6b608db..6dddbab 100644
> --- a/arch/arm/mach-rockchip/Kconfig
> +++ b/arch/arm/mach-rockchip/Kconfig
> @@ -17,6 +17,17 @@ config ROCKCHIP_RK3036
> and video codec support. Peripherals include Gigabit Ethernet,
> USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
>
> +config ROCKCHIP_CHIP_TAG
> + string "Tag of initial loader"
> + help
> + Tag of initial loader, which depends on the chip type.
What is a tag? This should be more descriptive with more detail. E.g.
the tag is a 4-byte header at the start of the image. It is required
by the boot ROM...
> +
> +config ROCKCHIP_MAX_INIT_SIZE
> + hex "Max size of initial loader"
> + help
> + Max size of initial loader, which is mostly limited by chip's sram
> + size.
Is the initial loader the 'SPL' image, or is it more than that? I am
not keen on the name INIT, since it could mean anything. So if it
means SPL, can we use that name? Also please add more detail to the
help: exactly how is it limited? Does the loader need to be the same
size as SRAM, or at most xx bytes smaller.
> +
> config SYS_MALLOC_F
> default y
>
> diff --git a/arch/arm/mach-rockchip/rk3036/Kconfig b/arch/arm/mach-rockchip/rk3036/Kconfig
> index 0fbc58e..3fa67bc 100644
> --- a/arch/arm/mach-rockchip/rk3036/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3036/Kconfig
> @@ -9,6 +9,12 @@ config SYS_SOC
> config SYS_MALLOC_F_LEN
> default 0x400
>
> +config ROCKCHIP_CHIP_TAG
> + default "RK30"
> +
> +config ROCKCHIP_MAX_INIT_SIZE
> + default 0x1000
> +
> config ROCKCHIP_COMMON
> bool "Support rk common fuction"
>
> diff --git a/arch/arm/mach-rockchip/rk3288/Kconfig b/arch/arm/mach-rockchip/rk3288/Kconfig
> index d0a7276..ac4dd94 100644
> --- a/arch/arm/mach-rockchip/rk3288/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3288/Kconfig
> @@ -16,6 +16,12 @@ config TARGET_CHROMEBOOK_JERRY
> WiFi. It includes a Chrome OS EC (Cortex-M3) to provide access to
> the keyboard and battery functions.
>
> +config ROCKCHIP_CHIP_TAG
> + default "RK32"
> +
> +config ROCKCHIP_MAX_INIT_SIZE
> + default 0x8000
> +
> config SYS_SOC
> default "rockchip"
>
> diff --git a/include/configs/rk3036_common.h b/include/configs/rk3036_common.h
> index 92b6119..b7f78d5 100644
> --- a/include/configs/rk3036_common.h
> +++ b/include/configs/rk3036_common.h
> @@ -37,9 +37,6 @@
> #define CONFIG_SPL_STACK 0x10081fff
> #define CONFIG_SPL_TEXT_BASE 0x10081004
>
> -#define CONFIG_ROCKCHIP_MAX_INIT_SIZE (4 << 10)
> -#define CONFIG_ROCKCHIP_CHIP_TAG "RK30"
> -
> #define CONFIG_ROCKCHIP_COMMON
>
> /* MMC/SD IP block */
> diff --git a/tools/Makefile b/tools/Makefile
> index 9082bda..39a852f 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -108,6 +108,12 @@ fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o
>
> # TODO(sjg at chromium.org): Is this correct on Mac OS?
>
> +ifneq ($(CONFIG_ARCH_ROCKCHIP),)
> +HOST_EXTRACFLAGS += \
> + -DCONFIG_ROCKCHIP_MAX_INIT_SIZE=$(CONFIG_ROCKCHIP_MAX_INIT_SIZE) \
> + -DCONFIG_ROCKCHIP_CHIP_TAG="\"$(CONFIG_ROCKCHIP_CHIP_TAG)\""
> +endif
> +
> ifneq ($(CONFIG_MX23)$(CONFIG_MX28),)
> # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register
> # the mxsimage support within tools/mxsimage.c .
> diff --git a/tools/rkcommon.c b/tools/rkcommon.c
> index 4389622..7aa4c7c 100644
> --- a/tools/rkcommon.c
> +++ b/tools/rkcommon.c
> @@ -50,7 +50,7 @@ int rkcommon_set_header(void *buf, uint file_size)
> {
> struct header0_info *hdr;
>
> - if (file_size > RK_MAX_CODE1_SIZE)
> + if (file_size > CONFIG_ROCKCHIP_MAX_INIT_SIZE)
> return -ENOSPC;
>
> memset(buf, '\0', RK_CODE1_OFFSET * RK_BLK_SIZE);
> diff --git a/tools/rkcommon.h b/tools/rkcommon.h
> index 57fd726..39b1d52 100644
> --- a/tools/rkcommon.h
> +++ b/tools/rkcommon.h
> @@ -11,7 +11,6 @@
> enum {
> RK_BLK_SIZE = 512,
> RK_CODE1_OFFSET = 4,
> - RK_MAX_CODE1_SIZE = 32 << 10,
> };
>
> /**
> diff --git a/tools/rkimage.c b/tools/rkimage.c
> index 7b292f4..efd91bb 100644
> --- a/tools/rkimage.c
> +++ b/tools/rkimage.c
> @@ -30,7 +30,7 @@ static void rkimage_print_header(const void *buf)
> static void rkimage_set_header(void *buf, struct stat *sbuf, int ifd,
> struct image_tool_params *params)
> {
> - memcpy(buf, "RK32", 4);
> + memcpy(buf, CONFIG_ROCKCHIP_CHIP_TAG, 4);
> }
>
> static int rkimage_extract_subimage(void *buf, struct image_tool_params *params)
> diff --git a/tools/rksd.c b/tools/rksd.c
> index a8dbe98..2dccb78 100644
> --- a/tools/rksd.c
> +++ b/tools/rksd.c
> @@ -50,7 +50,7 @@ static void rksd_set_header(void *buf, struct stat *sbuf, int ifd,
> size);
> }
>
> - memcpy(buf + RKSD_SPL_HDR_START, "RK32", 4);
> + memcpy(buf + RKSD_SPL_HDR_START, CONFIG_ROCKCHIP_CHIP_TAG, 4);
> }
>
> static int rksd_extract_subimage(void *buf, struct image_tool_params *params)
> @@ -72,7 +72,7 @@ static int rksd_vrec_header(struct image_tool_params *params,
> {
> int pad_size;
>
> - pad_size = RKSD_SPL_HDR_START + RK_MAX_CODE1_SIZE;
> + pad_size = RKSD_SPL_HDR_START + CONFIG_ROCKCHIP_MAX_INIT_SIZE;
> debug("pad_size %x\n", pad_size);
>
> return pad_size - params->file_size;
> diff --git a/tools/rkspi.c b/tools/rkspi.c
> index a3c4c73..e16d5c0 100644
> --- a/tools/rkspi.c
> +++ b/tools/rkspi.c
> @@ -53,7 +53,7 @@ static void rkspi_set_header(void *buf, struct stat *sbuf, int ifd,
> size);
> }
>
> - memcpy(buf + RKSPI_SPL_HDR_START, "RK32", 4);
> + memcpy(buf + RKSPI_SPL_HDR_START, CONFIG_ROCKCHIP_CHIP_TAG, 4);
>
> /*
> * Spread the image out so we only use the first 2KB of each 4KB
> @@ -89,7 +89,7 @@ static int rkspi_vrec_header(struct image_tool_params *params,
> {
> int pad_size;
>
> - pad_size = (RK_MAX_CODE1_SIZE + 0x7ff) / 0x800 * 0x800;
> + pad_size = (CONFIG_ROCKCHIP_MAX_INIT_SIZE + 0x7ff) / 0x800 * 0x800;
> params->orig_file_size = pad_size;
>
> /* We will double the image size due to the SPI format */
> --
> 1.9.1
>
Regards,
Simon
More information about the U-Boot
mailing list