]> git.sur5r.net Git - u-boot/commitdiff
rockchip: Drop first 32kb of zeros from the rkSD image type
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>
Sun, 30 Aug 2015 22:55:50 +0000 (16:55 -0600)
committerSimon Glass <sjg@chromium.org>
Thu, 3 Sep 2015 03:28:25 +0000 (21:28 -0600)
Instead of creating a rockchip SPL SD card image with 32KB of zeros
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
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@collabora.co.uk>
Acked-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
doc/README.rockchip
tools/rksd.c

index ce8ce7750521330fa3bff40315dc4b75ca23ba9a..347fc05c97e2d4f2d1042d25d62bd31ecda9f4cb 100644 (file)
@@ -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
index 2efcd68c3ae77afdf1e843382acc182218b6ee73..a8dbe9875094a81238d6ced076b661709981477e 100644 (file)
@@ -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@chromium.org): This method should return an error */
                printf("Warning: SPL image is too large (size %#x) and will not boot\n",