On Fri, Jan 15, 2010 at 9:11 PM, Artyom Tarasenko <atar4q...@googlemail.com> wrote: > 2010/1/15 Blue Swirl <blauwir...@gmail.com>: >> On Fri, Jan 15, 2010 at 6:46 PM, Artyom Tarasenko >> <atar4q...@googlemail.com> wrote: >>> According to pages 9-31 - 9-34 of "SuperSPARC & MultiCache Controller >>> User's Manual": >>> >>> 1. "A lower priority fault may not overwrite the >>> MFSR status of a higher priority fault." >>> 2. The MFAR is overwritten according to the policy defined for the MFSR >>> 3. The overwrite bit is asserted if the fault status register (MFSR) >>> has been written more than once by faults of the same class >>> 4. SuperSPARC will never place instruction fault addresses in the MFAR. >>> >>> Implementation of points 1-3 allows booting Solaris 2.6 and 2.5.1. >> >> Nice work! This also passes my tests. > > I'm afraid we still are not there yet though: Solaris 7 fails potentially due > to > another bug in the MMU emulation, and the initial [missing-] RAM > detection in OBP fails > very probably due to a bug in in the MMU emulation.
Some guesses: - Access to unassigned RAM area may be handled by the memory controller differently (no faults, different faults etc.) than unassigned access to SBus or other area. - Real RAM banks have aliasing effects (which could be emulated by mapping the aliased RAM areas many times). - OBP on machines with ECC controller may detect missing RAM using ECC checks. >> However, there are some CODING_STYLE issues. > > Is it something you do by hand (or, actually, by eyes), or is there a > way I can automatically test my patches before sending? There is CODING_STYLE document in the QEMU tree, please read it. It's too bad we don't have a checkpatch script like Linux kernel has. IIRC Anthony once said that he may write one.