rk3328 broken between v2022.04 and v2022.07 - still not working with v2023.01

Janpieter Sollie janpieter.sollie at kabelmail.de
Fri Feb 10 19:46:37 CET 2023


Op 10/02/2023 om 17:02 schreef Jonas Karlman:
> Hi,
> On 2023-02-10 16:32, Janpieter Sollie wrote:
>> Op 10/02/2023 om 13:41 schreef Peter Robinson:
>>> On Fri, Feb 10, 2023 at 12:31 PM Janpieter Sollie
>>> <janpieter.sollie at kabelmail.de>   wrote:
>>>> Hello,
>>>>
>>>> After a few years, I tried updating my u-boot 2021 to a more recent version, as the linux kernel
>>>> complained "ATF needs update".
>>>> The device I'm using is a nanopi neo3 2GB (more or less the same compared to NanoPi R2S, both
>>>> RK3328 platform).
>>>>
>>>> Starting from 2023.04-rc1, I couldn't get it running: in TPL, it complained "out of memory".
>>>> A hint on IRC made me pull back to v2022.04, which works with a few mods, but there's one
>>>> (minor) thing not working:
>>>> board_misc_init() causes a function call failed.  Probably because efuse isn't working properly?
>>>> I also had to modify the device tree a bit:
>>> I have the Rock64 running 2022.10 without issues.
>>>
>> On your advice, I tested these as well 2022.10 and 2023.1.
>> seems to work when the patches are applied.  However, still no misc_init():
>>
>> initcall sequence 000000007ffcf0b0 failed at call 0000000000202ff8 (err=-1)
>> ### ERROR ### Please RESET the board ###
>>
>> in the map file I see this points to misc_init()
>> but I guess your advice already obsoletes my statement, it's only "2023.04-rc1" now.
>> make oldconfig seems to be a bad idea, simply defconfig and make modifications again seems to be
>> a much safer choice.
>>
>> Any way I could help fixing the misc_init_f()?
> Try with CONFIG_ROCKCHIP_EFUSE disabled. misc_init_f will try to read cpuid from efuse/otp
> and use that to have a persistent ethaddr, should probably not hard fail when there is
> no efuse/otp to read cpuid from.
>
> Regards,
> Jonas
>
>> kind regards,
>>
>> Janpieter Sollie
>
I made a typo here, sorry:
the function we're talking about is misc_init_r().
Without efuse, it won't do a thing:

__weak intmisc_init_r(void)
{
constu32 cpuid_offset = 0x7;
constu32 cpuid_length = 0x10;
        u8 cpuid[cpuid_length];
intret;

        ret = rockchip_cpuid_from_efuse(cpuid_offset, cpuid_length, cpuid);
if(ret)
returnret;

        ret = rockchip_cpuid_set(cpuid, cpuid_length);
if(ret)
returnret;

        ret = rockchip_setup_macaddr();

returnret;
}

I may as well simply dump the mac in a uboot.env and skip misc_init completely ... which is what 
I did right now :)

Kind regards,

Janpieter Sollie



More information about the U-Boot mailing list