[U-Boot] rk3288: 32KB SPL size restriction

Jagan Teki jagannadh.teki at gmail.com
Wed Aug 23 19:56:04 UTC 2017

On Thu, Aug 24, 2017 at 12:33 AM, Jagan Teki <jagannadh.teki at gmail.com> wrote:
> On Thu, Aug 24, 2017 at 12:28 AM, Dr. Philipp Tomsich
> <philipp.tomsich at theobroma-systems.com> wrote:
>>> On 23 Aug 2017, at 20:44, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>> On Wed, Aug 23, 2017 at 6:22 PM, Dr. Philipp Tomsich
>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>>> On 23 Aug 2017, at 13:19, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>>>> Hi Philipp,
>>>>> On Tue, Aug 22, 2017 at 5:41 PM, Dr. Philipp Tomsich
>>>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>>>>> On 22 Aug 2017, at 14:05, Jagan Teki <jagannadh.teki at gmail.com> wrote:
>>>>>>> Philipp and Kever - Thanks for the response.
>>>>>>> Few comment below.
>>>>>>> On Thu, Aug 17, 2017 at 2:02 PM, Dr. Philipp Tomsich
>>>>>>> <philipp.tomsich at theobroma-systems.com> wrote:
>>>>>>>> Jagan,
>>>>>>>>> On 17 Aug 2017, at 08:39, Kever Yang <kever.yang at rock-chips.com> wrote:
>>>>>>>>> Hi Jagan,
>>>>>>>>> On 08/10/2017 05:07 PM, Jagan Teki wrote:
>>>>>>>>>> Hi Simon/Philipp or any,
>>>>>>>>>> I believe rk3288 has 20KB BootRom and 100KB internal SRAM and current
>>>>>>>>>> u-boot can archive the maximum size of u-boot-spl-dtb.bin which the
>>>>>>>>>> boot ROM will read is 32KB, do we have any possibility to increase the
>>>>>>>>>> SPL size here.
>>>>>>>>> The limitation is decide by the boot rom design, so we are not able
>>>>>>>>> to change this. Most of Rockchip SoCs have this limitation except RK3399.
>>>>>>>>> Thanks,
>>>>>>>>> - Kever
>>>>>>>>>> # ./tools/mkimage -n rk3288 -T rksd -d ./spl/u-boot-spl-dtb.bin out.img
>>>>>>>>>> Warning: SPL image is too large (size 0x9000) and will not boot
>>>>>>>>>> Error: image verification failed
>>>>>>>>>> I tried to increase the spl_size from spl_infos (on tools/rkcommon.c)
>>>>>>>>>> but not able to boot.
>>>>>>>> I should have read this more carefully (I only parsed the 20KB and
>>>>>>>> jumped to the conclusion that your had the error already when crossing
>>>>>>>> the 20KB limit—even though 0x8000 bytes where allowed in mkimage)…
>>>>>>> Sorry I really didn't understand the size constraint here, because SPL
>>>>>>> can be boot file after ROM handoff. Can't this sit on 100KB of SRAM?
>>>>>> The ROM usually has different size constraints for each stage.
>>>>>> E.g. for the RK3368 (just been there, done that), the first stage has a
>>>>>> 0x7000 byte limit and the next stage (loaded to 0x0 in DRAM) has a
>>>>>> much larger limit. Note that the SRAM on the 3368 has a capacity of
>>>>>> 0x10000 bytes, so the size limit is also quite pronounced.
>>>>> OK, by looking at your rk3368[1] patch I think the first stage runs
>>>>> under 0x7000 is TPL? and next stage(probably SPL) doesn't have limit
>>>>> since SPL running here in DDR since DDR initialized DDR in TPL itself.
>>>>> this is what the space distributed here?
>>>> Yes, although there is some size limit even for SPL.
>>>> If you are going for a falcon-mode implementation on the 3288, you will
>>>> probably want to use TPL for DRAM setup and maybe clocking up the
>>>> cores (I don’t know the constraints on what clocks the BROM needs
>>>> untouched) and then have SPL w/ falcon mode loaded by the BROM.
>>> So, TPL should have DDR and MMC, and fit into 0x8000 bytes and SPL
>>> will load from MMC and launch u-boot. Do we need spl_bootrom in TPL
>>> instead of MMC? if so where we need to copy SPL?
>> You probably just want DRAM-init and clocking and have everything else
>> in SPL (for the falcon use-case).  The BROM will magically load the SPL
>> stage for you, so no need for MMC support in TPL.
> How does BROM will load SPL here? with
> CONFIG_SPL_ROCKCHIP_BACK_TO_BROM=y ? because I will copy TPL at 64
> sector of MMC card and where should I copy SPL?

OK, TPL_ROCKCHIP_BACK_TO_BROM should have back_to_bootrom So we need
to append the mkimaged-TPL with SPL and copy to 64 so-that ROM loads
SPL by handoff from TPL.

Jagan Teki
Free Software Engineer | www.openedev.com
U-Boot, Linux | Upstream Maintainer
Hyderabad, India.

More information about the U-Boot mailing list