On 06/12/2010 03:26 PM, Josh Triplett wrote: > > Done. I've attached the output of meminfo with the e820 hook as > meminfo-grub-hooked.jpg, and without the e820 hook as > meminfo-unhooked.jpg. > > Everything looks identical except for the region GRUB hooked right below > the first reserved region; the unhooked version has available memory > from 0-0x9cbf0, and the hooked version has available memory from > 0-0x9cba0, then reserved from 0x9cba0-0x9cbec, then 4 bytes of available > memory, and then the same reserved region as before. >
The new reserved area that Grub hooks is located inside a FBM ("DOS RAM") reserved area, so Grub is somehow using memory that someone else has already reserved! The normal thing is to reserve something in FBM and not in INT 15h if it is to be reserved only until the protected-mode operating system starts, but in this case Grub puts something in there which is a real-mode hook. It *will* have overwritten something at this point, the question is just what (and I have no idea how to find that out.) Note that the unmodified entry conditions (unhooked) has FBM quite a bit lower than the reserved area. Something else that really confuses me is that although the memory map has changed, the INT 15h vector itself is still the same, so I'm really confused about how the actual hooking happens in the first place... -hpa -- H. Peter Anvin, Intel Open Source Technology Center I work for Intel. I don't speak on their behalf. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org