[maemo-leste] Broken u-boot on n900 hw (possibly CONFIG_POSITION_INDEPENDENT)

Pali Rohár pali at kernel.org
Fri Oct 21 21:09:55 CEST 2022


On Thursday 20 October 2022 22:06:58 Pali Rohár wrote:
> On Monday 10 October 2022 23:30:21 Sicelo wrote:
> > On Sun, Oct 09, 2022 at 09:33:17PM +0200, Pali Rohár wrote:
> > > 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).
> > 
> > Hi
> > 
> > I have a really crude serial console setup in place now, but very little
> > time, and even less experience with u-boot. I should be able to do the
> > tests for you on Saturday night (UTC+2). Perhaps over IRC might be a
> > good idea, in case I need some hand-holding, and if you still need the
> > help by then.
> > 
> > Regards
> > Sicelo
> 
> Well, I do not know where to start or how to instruct somebody who is
> not experienced with u-boot debugging. I think that the first step
> should be to look if U-Boot prints something on the serial console or
> not. If it prints then try to find via printf-driven-debugging place
> where it stuck. If it does not print anything on the console then try to
> setup debug early console, check if it prints something now and do same
> type of debugging. And if even early debug console does not work then
> probably initialize serial console directly in lowlevel_init.S file,
> prints something to serial, then move code for printing to later stage
> and try to figure out what is broken...

Early debug uart console can be enabled by configs/nokia_rx51_defconfig options:

CONFIG_DEBUG_UART=y
CONFIG_DEBUG_UART_OMAP=y
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_DEBUG_UART_BASE=0x49020000
CONFIG_DEBUG_UART_CLOCK=48000000

And all debug verbose logs can be enabled by configs/nokia_rx51_defconfig options:

CONFIG_DM_DEBUG=y
CONFIG_LOG=y
CONFIG_LOGLEVEL=9
CONFIG_LOG_MAX_LEVEL=9
CONFIG_LOG_DEFAULT_LEVEL=9

By compiling via 'make u-boot.bin KCPPFLAGS=-DLOG_DEBUG'

At least in qemu it is working and printing everything.

> Anybody else with serial console can look at it?
> 
> Or maybe look at the code if you spot some issue there?


More information about the U-Boot mailing list