[PATCH 1/1] config: CONFIG_SPL_SIZE_LIMIT for VisionFive 2
Heinrich Schuchardt
heinrich.schuchardt at canonical.com
Wed May 17 08:56:53 CEST 2023
On 5/17/23 02:17, Bo Gan wrote:
> @Heinrich Some background information I discovered by experimenting with
> my vf2 board:
>
> The only reasonable place to load SPL is the L2 LIM, which is 2M in size
> mapped at
> 0x8000000. This region consists of 16 0x20000 sized regions, each one
> can be used as
> either L2 cache way or SRAM (not both). From top to bottom, you have way
> 0-15. When
> ways are enabled, they can't be disabled without reset. Effectively, as
> you enabling
> more and more L2 cache, this SRAM region shrinks. The way 0 is always
> enabled, so SPL
> can only use at most 0x1e0000 bytes of memory.
>
> On 5/16/23 12:56 PM, Heinrich Schuchardt wrote:
>>
>> https://github.com/starfive-tech/Tools/commit/8c5acc4e5eb7e4ad012463b05a5e3dbbfed1c38d
>>
>> seems to have changed the limit in the tooling.
>
> I don't know how they derive the number 180048, but my guess is they
> just pick some
> number that fits their u-boot build. For correctness, it really depends
> on how ROM is
> loading SPL, and where does ROM allocate its data/stack during loading,
> so it won't
> collide with the SPL being loaded. It might also be that ROM uses S7
> DTIM to load SPL,
> and doesn't touch L2 LIM at all. The ROM is close-sourced, thus, not
> very easy to know
> without reverse-engineering it. The defconfig already defines
>
>> https://github.com/u-boot/u-boot/blob/6e1852c/configs/starfive_visionfive2_defconfig#L37
>> CONFIG_SPL_MAX_SIZE=0x40000
>> CONFIG_SPL_BSS_START_ADDR=0x8040000
>
> 256KiB of SPL sounds like a reasonable number to me. 128KiB might be a
> little bit small
> when you have max loglevels enabled, and -DDEBUG. I think we can
> probably just change
> CONFIG_SPL_MAX_SIZE to CONFIG_SPL_SIZE_LIMIT, and be done with it.
128 KiB is exceeded when adding the not yet merged patch series for
updating the DTB based on EEPROM data. This is why I hit the old limit
in spl_tool.
I would prefer if we could add the functionality of spl_tool into
U-Boot's mkimage and let binman handle invoking it.
CONFIG_SPL_SIZE_LIMIT would be without the 1 KiB header added by
spl_tool. So should CONFIG_SPL_MAX_SIZE and CONFIG_SPL_SIZE_LIMIT be set
to 0x3FC00?
Best regards
Heinrich
More information about the U-Boot
mailing list