On Sunday 20 November 2022 10:33:35 Tom Rini wrote: > On Sat, Nov 19, 2022 at 10:13:01PM +0100, Pali Rohár wrote: > > On Wednesday 09 November 2022 21:33:28 Pali Rohár wrote: > > > On Wednesday 02 November 2022 01:08:26 Pali Rohár wrote: > > > > On Friday 21 October 2022 21:09:55 Pali Rohár wrote: > > > > > 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' > > > > > > > > Can somebody with serial console provide this debug output if there is > > > > something useful? > > > > > > Can somebody help me with this? > > > > Merlijn Wajer now sent me output from serial console: > > > > ... > > initcall: 0001ebd4 (relocated to 8fe0abd4) > > MMC: 0 > > - 0 'omap_hsmmc' > > - found > > 1 > > - 0 'omap_hsmmc' > > - 1 'omap_hsmmc' > > - found > > 2 > > - 0 'omap_hsmmc' > > - 1 'omap_hsmmc' > > - not found > > OMAP SD/MMC: 0, OMAP SD/MMC: 1 > > initcall: 0001ea8c (relocated to 8fe0aa8c) > > Loading Environment from <NULL>... Using default environment > > Destroy Hash Table: 8fe25a98 table = 00000000 > > Create Hash Table: N=387 > > > > After the "Create Hash Table: N=387" line there is nothing more. > > Repeated tests have same result, always stop at that line. > > > > In qemu after that line I see following output: > > > > INSERT: table 8fe25a98, filled 1/389 rv 8fd0e2f4 ==> name="bootcmd" > > value="run sdboot;run emmcboot;run attachboot;echo" > > INSERT: table 8fe25a98, filled 2/389 rv 8fd0e344 ==> name="bootdelay" > > value="30" > > INSERT: table 8fe25a98, filled 3/389 rv 8fd0f960 ==> name="baudrate" > > value="115200" > > DELETE CANDIDATE: "preboot" > > hdelete: DELETE key "preboot" > > DELETE ERROR ############################## > > INSERT: table 8fe25a98, filled 4/389 rv 8fd0e574 ==> name="loadaddr" > > value="0x80008000" > > ... > > > > In qemu is u-boot working fine. > > > > So it looks like that there is u-boot crash in environment code and only > > when running on real HW. > > > > Any idea? Could there be some relocation issue in u-boot env code? > > My first thought here is that something like 534f0fbd6520 ("arm64: Fix > relocation of env_addr if POSITION_INDEPENDENT=y") might be needed on > 32bit as well? > > -- > Tom
Thank you Tom! This is really the issue. After I applied same fix for 32-bit ARM, U-Boot on real N900 HW booted. I will send a patch for it. Interesting is that same u-boot binary is working fine in qemu N900. And it works with and also without fix for env_addr.