[OpenBIOS] [PATCH 0/3] sparc64 cleanups v1

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Fri May 28 12:08:26 CEST 2010


Igor Kovalenko wrote:

> Atomic quad ldda is indeed implemented by separate helper_ldda_asi not
> helper_ld_asi as I expected.
> With a bit more debugging it turns out that issue happens if MMU
> primary context is not zero!
> 
> IN:
> 0x0000000000424d18:  ldda  [ %g1 ] #ASI_NUCLEUS_QUAD_LDD, %g4
> 0x0000000000424d1c:  cmp  %g4, %g6
> 0x0000000000424d20:  bne,pn   %xcc, 0x4076c0
> 0x0000000000424d24:  mov  2, %g3
> 
> MMU: get_physical_address DATA tl=5 mmu_idx=2 primary context=1
> secondary context=1 address=8000000
> MMU: DMISS at 8000000 context 1
> --- do_interrupt tl=5
> 948404: Data Access MMU Miss (v=0068) pc=0000000000424d18
> npc=0000000000424d1c SP=00000000ffba1ef0
> pc: 0000000000424d18  npc: 0000000000424d1c
> General Registers:
> %g0-3: 0000000000000000 0000000008000000 0000000000004000 0000000000000002
> %g4-7: 00000000000003fe 0000000000000001 0000000000000020 0000000000004000
> 
> So helper_ldda_asi must be changed to do loads from NUCLEUS (0) context.
> I'll post a patch now but with that applied I see no crash but not
> that much progress either.

Okay; I've just tried your patch and the crash is gone :)

However, the boot now seems to freeze with "su: Cannot register IRQ 0" 
which didn't happen before the recent PCI fixes. I think that maybe 
another bug is being triggered somewhere now that the PCI bus is being 
handled more correctly.


ATB,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the OpenBIOS mailing list