[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