Hi, thanks for letting us know. I'm not surprised there's something
not quite right in this part of gem5. Would you mind please putting
together a review on reviews.gem5.org? You can use the postreview
mercurial extension which makes things a little easier after some
minor configuration.
Gabe
Quoting Feng Lu <[email protected]>:
Hi gem5-users,
I recently found that when running some relatively new kernels, the boot
process fails at very early stage.
After tracking the instructions, it seemed the reason is m5 doesn't allow
the stack segment register (%ss) to be zero.
However, the following may suggest %ss being zero at system start-up:
1. According to AMD x86_64 spec, %ss=0 is not tolerable only when submode !=
64bit_mode or CPL=3.
2. Linux kernel has been updated to load 0 to %ss at start-up, as shown here
https://patchwork.kernel.org/patch/62837/
Hence, I modified gem5../src/arch/x86/isa/microops/regop.isa :
===============================================================
1340,1342c1340,1343
< if ((m5reg.submode != SixtyFourBitMode ||
< m5reg.cpl == 3) ||
< !(desc.s == 1 &&
---
if ( (m5reg.submode==SixtyFourBitMode && m5reg.cpl<3)
) {
//ok
} else {
if ( !(desc.s == 1 &&
1347a1349
}
===============================================================
After this, booting with a newer kernel (eg. 2.6.38) can go a lot further.
Please share any comments on this.
Thanks,
Feng
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users