Review Board 2.0.15


Loader: Make the load address mask be a parameter of the system rather than a constant. This allows one two different OS requirements for the same ISA to be handled.

Review Request #160 - Created Aug. 13, 2010 and submitted

Information
Ali Saidi
gem5
Reviewers
Default
Loader: Make the load address mask be a parameter of the system rather than a constant. This allows one two different OS requirements for the same ISA to be handled.

   
Posted (Aug. 19, 2010, 1:55 a.m.)
Seems reasonable.  How does the mask work and why is it different for two different OSes?  Can you add a better comment somewhere?
  1. ARM linux is compiled at some virtual address that is platform dependent (although they're almost all the same). However, however it needs to be loaded in physical memory which normally starts at address 0. We did the same thing for Alpha years ago. Some bare-metal tool sets generate code where physical address == virtual address so this doesn't need to be done.
    
    
  2. Can you explain this in the code somewhere?
  3. adde to system.hh
    
  4. Could we handle this instead by respecting the virtual vs. physical addresses in the ELFes (ELVes?)? I think I tried that before and the answer was no, but I don't remember why.
  5. I'm pretty sure we tried that before and it didn't work, although the reason escapes me.  Either way this change gives us more flexibility in the future.