Преглед изворни кода

rockchip: mkimage: force 2KB alignment for init_size

The Rockchip BootROM relies on init_size being aligned to 2KB
(see https://lists.denx.de/pipermail/u-boot/2017-May/293268.html).

This pads the image to 2KB both for SD card images and SPI images
and uses a common symbolic constant for the alignment.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Philipp Tomsich пре 7 година
родитељ
комит
ad972ac3d9
3 измењених фајлова са 5 додато и 4 уклоњено
  1. 1 0
      tools/rkcommon.h
  2. 3 3
      tools/rksd.c
  3. 1 1
      tools/rkspi.c

+ 1 - 0
tools/rkcommon.h

@@ -10,6 +10,7 @@
 
 enum {
 	RK_BLK_SIZE		= 512,
+	RK_INIT_SIZE_ALIGN      = 2048,
 	RK_INIT_OFFSET		= 4,
 	RK_MAX_BOOT_SIZE	= 512 << 10,
 	RK_SPL_HDR_START	= RK_INIT_OFFSET * RK_BLK_SIZE,

+ 3 - 3
tools/rksd.c

@@ -46,10 +46,10 @@ static int rksd_vrec_header(struct image_tool_params *params,
 			    struct image_type_params *tparams)
 {
 	/*
-	 * Pad to the RK_BLK_SIZE (512 bytes) to be consistent with init_size
-	 * being encoded in RK_BLK_SIZE units in header0 (see rkcommon.c).
+	 * Pad to a 2KB alignment, as required for init_size by the ROM
+	 * (see https://lists.denx.de/pipermail/u-boot/2017-May/293268.html)
 	 */
-	return rkcommon_vrec_header(params, tparams, RK_BLK_SIZE);
+	return rkcommon_vrec_header(params, tparams, RK_INIT_SIZE_ALIGN);
 }
 
 /*

+ 1 - 1
tools/rkspi.c

@@ -63,7 +63,7 @@ static int rkspi_check_image_type(uint8_t type)
 static int rkspi_vrec_header(struct image_tool_params *params,
 			     struct image_type_params *tparams)
 {
-	int padding = rkcommon_vrec_header(params, tparams, 2048);
+	int padding = rkcommon_vrec_header(params, tparams, RK_INIT_SIZE_ALIGN);
 	/*
 	 * The file size has not been adjusted at this point (our caller will
 	 * eventually add the header/padding to the file_size), so we need to