Hi Jonas, On 2/17/23 21:52, Jonas Karlman wrote: > Sync init size limit from vendor u-boot:
This sync might not be correct. Please recheck with each SoC or limit your change to the rk3328 SoC if prove fails. Could Kever disclose SoC details here? Johan > > px30: 12KiB (+2KiB) > rk3066: 32KiB (+2KiB) On the rk3066 the limitation depends on the bootrom logic and the tpl location it is loaded in memory: //SPL flash_boot_size = idb_buf[0].flash_boot_size; size = flash_boot_size - 5; if ( size >= 32763 ) flash_boot_size = 10; //TPL flash_data_size = idb_buf[0].flash_data_size; if (flash_data_size - 4 >= 61 || flash_boot_size < flash_data_size || flash_data_size & 3) { flash_data_size = 4; } offset = idb_buf[0].boot_code1_offset + start; === CONFIG_TPL_TEXT_BASE=0x10080C00 TPL/SPL truncated to 2048 = 4 sectors of 512bytes per NAND page. Header size = 4 x 512bytes limit1: flash_data_size - 4 >= 61 limit2: flash_boot_size < flash_data_size === usFlashDataSec = (ALIGN(dwLoaderDataSize, 2048)) / SECTOR_SIZE; usFlashBootSec = (ALIGN(dwLoaderSize, 2048)) / SECTOR_SIZE; dwSectorNum = 4 + usFlashDataSec + usFlashBootSec; pSec0->usBootDataSize = usFlashDataSec; pSec0->usBootCodeSize = usFlashDataSec + usFlashBootSec; > rk3328: 30KiB (+2KiB) > rk3568: 60KiB (-16KiB) > > This makes it possible to use latest vendor TPL with RK3328 without > getting a size limit error running the mkimage command. > > Signed-off-by: Jonas Karlman <jo...@kwiboo.se> > --- > v3: > - Sync with vendor u-boot as-is > - Update commit message to include size changes > > v2: > - New patch > > tools/rkcommon.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/tools/rkcommon.c b/tools/rkcommon.c > index 1f1eaa16752b..630e54b1a54d 100644 > --- a/tools/rkcommon.c > +++ b/tools/rkcommon.c > @@ -121,20 +121,20 @@ struct spl_info { > }; > > static struct spl_info spl_infos[] = { > - { "px30", "RK33", 0x2800, false, RK_HEADER_V1 }, > + { "px30", "RK33", 0x4000 - 0x1000, false, RK_HEADER_V1 }, > { "rk3036", "RK30", 0x1000, false, RK_HEADER_V1 }, > - { "rk3066", "RK30", 0x8000 - 0x800, true, RK_HEADER_V1 }, This is OK. > - { "rk3128", "RK31", 0x1800, false, RK_HEADER_V1 }, > + { "rk3066", "RK30", 0x8000, true, RK_HEADER_V1 }, This wrong. printf "%d\n" $(((0x8000 - 0x800 ) / 512)) 60 sectors of size 512 > + { "rk3128", "RK31", 0x2000 - 0x800, false, RK_HEADER_V1 }, > { "rk3188", "RK31", 0x8000 - 0x800, true, RK_HEADER_V1 }, > { "rk322x", "RK32", 0x8000 - 0x1000, false, RK_HEADER_V1 }, > { "rk3288", "RK32", 0x8000, false, RK_HEADER_V1 }, > { "rk3308", "RK33", 0x40000 - 0x1000, false, RK_HEADER_V1 }, > - { "rk3328", "RK32", 0x8000 - 0x1000, false, RK_HEADER_V1 }, > + { "rk3328", "RK32", 0x8000 - 0x800, false, RK_HEADER_V1 }, > { "rk3368", "RK33", 0x8000 - 0x1000, false, RK_HEADER_V1 }, > { "rk3399", "RK33", 0x30000 - 0x2000, false, RK_HEADER_V1 }, > { "rv1108", "RK11", 0x1800, false, RK_HEADER_V1 }, > { "rv1126", "110B", 0x10000 - 0x1000, false, RK_HEADER_V1 }, > - { "rk3568", "RK35", 0x14000 - 0x1000, false, RK_HEADER_V2 }, > + { "rk3568", "RK35", 0x10000 - 0x1000, false, RK_HEADER_V2 }, > }; > > /**