[OpenBIOS] r638 - in trunk/openbios-devel/forth: bootstrap device

Blue Swirl 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:
DMMU dump:
[46] VA: 8000000, PA: 0,   8k, user, RW, unlocked, ctx 0
[53] VA: 8002000, PA: 0,   8k, user, RW, unlocked, ctx 0
[54] 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 mailing list