Broken u-boot on n900 hw (possibly CONFIG_POSITION_INDEPENDENT)

Pali Rohár pali at kernel.org
Sun Oct 9 21:33:17 CEST 2022


Hello!

Current u-boot from master branch does not work on n900 hw. It does not
show anything on display, there just nokia logo.

In qemu it is working fine and all tests are passing. Also in qemu is
display working without any problem.

Could you help me to debug it? Maybe something is printed to serial
console? Or maybe serial console could be used for printf-debugging?

I just figured out that disabling CONFIG_POSITION_INDEPENDENT u-boot
option make it working again. But it requires to restoring older version
of lowlevel_init.S file which does not depend on POSITION_INDEPENDENT:

    git checkout 7c4ad9821758f98db127e9d6864671c906c02d3b -- board/nokia/rx51/lowlevel_init.S

And also setting CONFIG_SYS_TEXT_BASE=0x80008000 (to some value in RAM).

I'm looking at the POSITION_INDEPENDENT usage and seems that only few
boards have it enabled and even less of them are 32-bit ARM.

So it is possible that there is bug in POSITION_INDEPENDENT code? I just
do not understand how it is possible that u-boot binary is working fine
in qemu, but not on the real HW...


More information about the U-Boot mailing list