Hi Naman,

> This finally gave some leads in the qemu debug. There seems be some
> misalignment in smp_processor_id.
> While tracing in gdb, we have
> 0x0000000000000908 in ?? ()
> => 0x0000000000000908: 06 fe ff 97   bl  0x120
> (which is actually bl smp_processor_id (from src/arch/arm64/stage_entry.S))
> Under arm64_c_environment (in objdump) we have;
> 10908:       97fffe06        bl      10120 <loop3_csw+0x1b>
> Also in the trace we have
> IN:
> 0x0000000000000908:  97fffe06      bl #-0x7e8 (addr 0x120)
>
> Now loop3_csw is defined at (from objdump)
> 0000000000010105 <loop3_csw>:
>
> So this + 0x1b = 10120
>
> Thus it wants to branch and link to 0x120 but smp_processor_id is at 121.
>
> smp_processor_id is at (from objdump)
> 0000000000010121 <smp_processor_id>:
>
> This gives us where the code is failing. Next up is finding out the reason
> for this misalignment and rectifying it.

We ran into some code alignment issues with those caching functions
recently. This might help: http://crosreview.com/293660

-- 
coreboot mailing list: coreboot@coreboot.org
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to