[U-Boot] [PATCH 7/8] rockchip: Drop first 32kb of zeros from the rksd image type

Simon Glass sjg at chromium.org
Sun Aug 23 23:24:27 CEST 2015


Hi Sjoerd,

On 16 August 2015 at 06:01, Sjoerd Simons <sjoerd.simons at collabora.co.uk> wrote:
> Instead of creating a rockchip SPL sd card image with 32Kb of zeros

SD

(I'm fine with lower case also, but please be consistent)

> which can be written to the start of an SD card, create the images with
> only the useful data that should be written to an offset of 32Kb on the

KB I think, since Kb means Kbits in my book.

> SD card.
>
> The first 32 kilobytes aren't needed for bootup and only serve as
> convenient way of accidentally obliterating your partition table.
>
> Signed-off-by: Sjoerd Simons <sjoerd.simons at collabora.co.uk>
> ---
>
>  doc/README.rockchip | 2 +-
>  tools/rksd.c        | 9 ++-------
>  2 files changed, 3 insertions(+), 8 deletions(-)

Acked-by: Simon Glass <sjg at chromium.org>

Yes I think this is a better approach.

>
> diff --git a/doc/README.rockchip b/doc/README.rockchip
> index ce8ce77..347fc05 100644
> --- a/doc/README.rockchip
> +++ b/doc/README.rockchip
> @@ -90,7 +90,7 @@ Booting from an SD card
>  To write an image that boots from an SD card (assumed to be /dev/sdc):
>
>     ./firefly-rk3288/tools/mkimage -T rksd -d firefly-rk3288/spl/u-boot-spl-dtb.bin out
> -   sudo dd if=out of=/dev/sdc
> +   sudo dd if=out of=/dev/sdc seek=64
>     sudo dd if=firefly-rk3288/u-boot-dtb.img of=/dev/sdc seek=256
>
>  This puts the Rockchip header and SPL image first and then places the U-Boot
> diff --git a/tools/rksd.c b/tools/rksd.c
> index 2efcd68..a8dbe98 100644
> --- a/tools/rksd.c
> +++ b/tools/rksd.c
> @@ -14,9 +14,7 @@
>  #include "rkcommon.h"
>
>  enum {
> -       RKSD_HEADER0_START      = 64 * RK_BLK_SIZE,
> -       RKSD_SPL_HDR_START      = RKSD_HEADER0_START +
> -                                       RK_CODE1_OFFSET * RK_BLK_SIZE,
> +       RKSD_SPL_HDR_START      = RK_CODE1_OFFSET * RK_BLK_SIZE,
>         RKSD_SPL_START          = RKSD_SPL_HDR_START + 4,
>         RKSD_HEADER_LEN         = RKSD_SPL_START,
>  };
> @@ -44,11 +42,8 @@ static void rksd_set_header(void *buf,  struct stat *sbuf,  int ifd,
>         unsigned int size;
>         int ret;
>
> -       /* Zero the whole header. The first 32KB is empty */
> -       memset(buf,  '\0',  RKSD_HEADER0_START);
> -
>         size = params->file_size - RKSD_SPL_HDR_START;
> -       ret = rkcommon_set_header(buf + RKSD_HEADER0_START, size);
> +       ret = rkcommon_set_header(buf, size);
>         if (ret) {
>                 /* TODO(sjg at chromium.org): This method should return an error */
>                 printf("Warning: SPL image is too large (size %#x) and will not boot\n",
> --
> 2.5.0
>

Regards,
Simon


More information about the U-Boot mailing list