Hi Hesham,
Thanks for your kindly answer. Yes, you are right, the linker file set the
physical load address to be 0x10000000.
The ld version is GNU ld 2.26.1.
What surprise me is that today I can run the sel4test correctly. I first
change the physical load address in linker file to be 0x20000000, and I
find that this doesn't work. Then I change it back to be 0x10000000. Now I
can compile sel4test without any warnings. The warnings generated by ld
disappear. I cannot explain this.
Thanks again.
Best Regards,
Shijun
2017-03-21 9:16 GMT+08:00
Hi Shijun,
It's the physical address of the "kernel" that's the problem, not the whole image. The elfloader reads the LMA of the kernel elf file to load it to memory. For imx6, currently the kernel assumes the physical load address to be 0x10000000. Have a look at the linker file at "./src/plat/imx6/linker.lds". So if you objdump -h build/kernel/kernel.elf (from where you run make), you should see LMA of the boot section set to 0x10000000. If it's not, that's a problem. If you didn't change anything, I'd suspect your binutils (ld) doesn't set that right. What's your *arm-linux-gnueabi-ld* --version (assuming this is your toolchain)?
On 21/03/17 11:49, shijun zhao wrote:
Hi Hesham,
I use the following command to get the sel4test projects, and I see that the kernel is version 4.0.0-dev.
repo init -u https://github.com/seL4/sel4test-manifest.git
The following is the my compilation process:
*make sabre_debug_xml_defconfig* *make* *arm-linux-gnueabi-objcopy --output-target binary sel4test-driver-image-arm-imx6 bootimg.bin * *tftpboot 0x20000000 bootimg.bin && go 0x20000000*
I have tried to load the image to physical address 0x30000000, but it doesn't run.
Best Regards, Shijun
2017-03-21 7:15 GMT+08:00
mailto:Hesham.Almatary@data61.csiro.au>: Hi Shijun,
The load physical address of the kernel does not seem to be right. May I ask which kernel revision are you using? How did you get the repo and how do you run it?
Regards, Hesham On 20/03/17 20:15, shijun zhao wrote: > Hi everyone, > > I am running sel4 on i.mx6q sabre board. I use the > sabre_debug_xml_defconfig config file. However, the image stops at > "Jumping to kernel-image entry point..." when I run it on the board. > Following is the printed messages: > > ## Starting application at 0x20000000 ... > > ELF-loader started on CPU: ARM Ltd. Cortex-A9 r2p10 > > paddr=[20000000..2030081f] > > ELF-loading image 'kernel' > > paddr=[80000000..80032fff] > > vaddr=[e0000000..e0032fff] > > virt_entry=e0000000 > > ELF-loading image 'sel4test-driver' > > paddr=[80033000..80406fff] > > vaddr=[10000..3e3fff] > > virt_entry=203d0 > > Enabling MMU and paging > > Jumping to kernel-image entry point... > > > > There are some warnings during compilation, all of which are caused by > arm-none-eabi/bin/ld. And I see that the sel4 wiki shows how to solve > the warnings: > > /To fix, > do make menuconfig visit seL4 Libraries→Build musl C Library and > untick libmuslc use precompiled archive then do make clean and attempt > to rebuild. > / > > > However, there is no /Build musl C library/ in my menuconfig, and there > are only /libmuslc /and /libsel4muslcsys /options in the seL4 libraries. > > > Can anyone tell me how to solve this problem? Thanks! > > > Best Regards, > > Shijun > > > > > _______________________________________________ > Devel mailing list > Devel@sel4.systems > https://sel4.systems/lists/listinfo/devel https://sel4.systems/lists/listinfo/devel >
-- Hesham Almatary Kernel Engineer DATA61 | CSIRO E: hesham.almatary@csiro.au www.data61.csiro.au http://www.data61.csiro.au
-- Hesham Almatary Kernel Engineer DATA61 | CSIRO E: hesham.almatary@csiro.au www.data61.csiro.au