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

Reply via email to