[OpenBIOS] SOLVED: the mystery of Solaris on SPARC32 and the missing Forth arguments
mark.cave-ayland at siriusit.co.uk
Sat Oct 30 10:38:48 CEST 2010
Blue Swirl wrote:
>>>> None. It probably tries to access something which is not mapped.
>>> This could be verified by changing a line in helper.c:
>>> *physical = 0xffffffffffff0000ULL;
>>> to for example
>>> *physical = 0xfef1f0fef1ff0000ULL;
>>> and see if the address changes.
>> It changes for me here:
>> Unassigned mem write access of 4 bytes to fef1f0fef1ff0ecc from f004127c
> Then it must be no-fault access. But I wonder why there is a fault, in
> no-fault mode there should be no faults. And when MMU is switched back
> to normal mode, the fake TLB mappings should be flushed.
>> But then again I'm not sure whether this comment was aimed at me or Artyom?
>> Does Tarl's suggestion of just ignoring write accesses to the ROM area sound
> I don't think ROM area is in play, but no-fault mode.
Is this the relevant section from the SPARC v8 manual here?
NF is the “No Fault” bit. When NF = 0, any fault detected by the MMU
causes FSR and FAR to be updated and causes a fault to be generated to
the processor. When NF = 1, a fault on an access to ASI 9 is handled as
when NF = 0; a fault on an access to any other ASI causes FSR and FAR to
be updated but no fault is generated to the processor.
If a fault on access to an ASI other than 9 occurs while NF = 1, subse-
quently resetting NF from 1 to 0 does not cause a fault to the processor
(even though FSR.FT ≠ 0 at that time). A change in value of the NF bit
takes effect as soon as the bit is written; a subsequent access to ASI 9
will be evaluated according to the new value of the NF bit.
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
t: +44 870 608 0063
Sirius Labs: http://www.siriusit.co.uk/labs
More information about the OpenBIOS