[OpenBIOS] r638 - in trunk/openbios-devel/forth: bootstrap device
blauwirbel at gmail.com
Fri Dec 4 17:14:25 CET 2009
On Fri, Dec 4, 2009 at 2:58 AM, Tarl Neustaedter
<Tarl.Neustaedter at sun.com> wrote:
> Mark Cave-Ayland wrote:
>> Tarl Neustaedter wrote:
>>>> Continuing to work on Milax, I've found out that the infinite loop bug
>>>> I'm getting here is because of an MMU problem - two different virtual
>>>> addresses appear to be mapped to the same physical address.
>>> I believe that's legal. I know that OBP used to do that on sun4s systems.
>> Oh that's interesting to know; however in this case I'm fairly confident
>> it's broken :( What happens is that first the volume descriptor is read
>> from the ISO image into a special buffer, and subsequent reads for file
>> entries should then go into a different buffer. Unfortunately the subsequent
>> reads into the second buffer seem to be mapped to the same memory location
> Ah. So the problem isn't that you have two virts->one phys, but that you
> expect your two virts to have different physical backing, and they don't.
> Yup, that's a bug :-)
Enabling DEBUG_MMU (and fixing the bugs...) confirms the MMU problem:
 VA: 8000000, PA: 0, 8k, user, RW, unlocked, ctx 0
 VA: 8002000, PA: 0, 8k, user, RW, unlocked, ctx 0
 VA: 8004000, PA: 0, 8k, user, RW, unlocked, ctx 0
The physical address is the same (0) for all three VA entries. Why?
More information about the OpenBIOS