BCM53xx on D-Link DIR-890L - 2MB max problem

Arınç ÜNAL arinc.unal at arinc9.com
Sun Jan 15 12:02:11 PST 2023


On 15.01.2023 17:54, Linus Walleij wrote:
> On Fri, Jan 13, 2023 at 11:11 PM Arınç ÜNAL <arinc.unal at arinc9.com> wrote:
> 
>> Side question, did you risk writing your test builds to the flash or
>> have you already got the flash in an easily reprogrammable set up?
> 
> This device has the boot prom in NOR so firmware is only flashed
> to the NAND flash, no risk of overwriting the boot loader.

Sorry, I don't follow. What's a boot prom? You didn't overwrite CFE when 
you booted U-Boot? I was asking how did you write U-Boot to flash if it 
wasn't clear.

> 
>> I tried letting U-Boot's lzmadec decompress the kernel image.
>> Decompressing fails when the kernel size reaches a certain point.
> 
> Hm haven't tried that, I used a zImage and I added u-boot
> CMD_BOOTZ to U-boot so it can start it directly without any
> external compression or funny uImage stuff.

I've just spotted SYS_BOOTM_LEN in the same menu as CMD_BOOTZ:

This is the maximum size of the buffer that is used to decompress the OS 
image in to, if passing a compressed image to bootm/booti/bootz.

This is set to 0x2000000 (32 MiB) on the U-Boot I was testing the 
compressed kernel images on. The lzma compressed image at 19134142 bytes 
(~18.2477 MiB) must've exceeded 32 MiB when decompressed.

Maybe there's an option like this for CFE. I don't know if you're able 
to compile a custom CFE and boot it somehow.

> 
>> Since the image is compressed in the end, I can't exactly add bytes and
>> predict what the size of the compressed file will be. So after a lot of
>> compiling and trying on the board, this is the closest I got.
>>
>> LZMA compressed kernel size in bytes which U-Boot’s lzmadec can decompress:
>> 19134096
>>
>> LZMA compressed kernel size in bytes which U-Boot’s lzmadec fails to
>> decompress:
>> 19134142
> (...)
>> I was wondering if there's a limit the bootloader sets for the lzma
>> decompressor. I assume it's 2 MiB for CFE.
> 
> Hm. I guess this could be a limitation in some implementations
> of the algorithm simply...

Even if there is, I don't think I've hit it yet.

> 
>> Did you try booting a kernel on this Northstar SoC with U-Boot?
> 
> Haven't gotten there yet, I need to implement SEAMA support
> (the D-Link preferred NAND image format) first, because it
> totally scrambles the stuff written to flash.

I guess tftpboot is out of question, no network support yet?

Arınç



More information about the openwrt-devel mailing list