Hello,
I am trying customized bootload to boot linux on LS1021A rev2 board. We could boot the board and launch the Linux kernel. But I am facing issue while accessing ethernet interface, it gives kernel crash.
1. When i execute command #> udhcp eth2
2. Instead of dhcp i tried to set staic IP and ping localhost it works fine but when try to ping remote IP gets same kernel crash.
Do I need to add any additional configuration in bootloader before launching kernel?
Thanks & Regards,
Amol M Shrotri
Just want to add I am using SDK2.0 kernel.
Hello AMOL SHROTRI,
Would you please provide your modified file in u-boot?
Have you verified whether this Ethernet port can work under u-boot?
In addition, have you modified Linux Kernel Kernel or dts file?
Have a great day,
Yiping
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello Yiping,
Thanks for the response.
Yes when booting the kernel with u-boot it works fine.
Regarding DTS I am using the same SDK dts with updates for MAC addresses and clock settings etc, as I am not using uboot dtb updates are not happening at run time.
Here are different scenarios , i tried to debug and find root cause,
1. With customized boot-loader we were trying to boot in Secure SVC mode. (My understanding if we are booting in secure mode boot-loader do not need to configure GIC registers e.g. setting GIC group registers to 1 and priority mask registers etc).
2. When I checked CPU mode after booting with u-boot, it was SVC non-secure, so with customizes boot-loader I tried to set all above GIC registers and switch the CPU mode to non-secure before jumping to zImage, still same issue. Kernel boots but while executing dhcp command gets same queue timeout issue.
3. Also one more observation, when booting seeing error message as "error: Could not get TBI device", even MDIO device gets probed. But when I boot the same kernel image and dtb with u-boot, it just works fine.
4. One more thing I tried with u-boot, I wanted to boot in SVC secure mode, So I modified the function boot_jump_linux() from arch/arm/lib/bootm.c as calling kernel entry directly as kernel_entry(0, machid, r2); instead as secure_ram_addr(_do_nonsec_entry)(kernel_entry, 0, machid, r2); For this I commented all code that sets GIC registers in functions armv7_init_nonsec() and _nonsec_init(), with this kernel boots but gives same queue timeout error.
I am not able to exactly pin point what am I missing to configure before launching kernel.
Before launching kernel we are making sure to disable MMU, caches and interrupts,
Thanks & Regards,
Amol M Shrotri
Hello Yiping,
Want to add one more observation,
Without any change in u-boot, I set the environment variable bootm_boot_mode to 'sec', so it directly launch the kernel in secure mode. With this setting i am observing the same queue timeout issue.
Thanks & Regards,
Amol M Shrotri