summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd.simons@collabora.co.uk>2015-08-30 16:55:50 -0600
committerSimon Glass <sjg@chromium.org>2015-09-02 21:28:25 -0600
commitdd39bcaffbc886e5948d5b6dc0a4156a8b0ba053 (patch)
tree0d206f40ebcb0982b778829016b495d66d7b2e41
parent81b0618ddf449aab669b42068ad8c90f63714c14 (diff)
rockchip: Drop first 32kb of zeros from the rkSD image type
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>
-rw-r--r--doc/README.rockchip2
-rw-r--r--tools/rksd.c9
2 files changed, 3 insertions, 8 deletions
diff --git a/doc/README.rockchip b/doc/README.rockchip
index ce8ce77505..347fc05c97 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 2efcd68c3a..a8dbe98750 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@chromium.org): This method should return an error */
printf("Warning: SPL image is too large (size %#x) and will not boot\n",