> From: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk>
> Date: Mon, 14 Aug 2017 19:59:55 +0100
> 
> On 14/08/17 14:25, Mark Kettenis wrote:
> 
> >> Great, thanks for the information - the fact that the nsphy0 has been
> >> detected correctly means that the access still works. Looks like I'll
> >> have to go digging deeper.
> > 
> > The OpenBSD code uses %asi if necessary to let the hardware do the
> > byteswapping.  Howver, I think the psycho(4) host bridge also does an
> > implicit byteswap.  Always has been a bit confusing to me.  But the
> > code defenitely works correctly on real hardware.
> 
> So tracing through HME register writes it seems the difference between
> OpenBSD and the other OSs is that OpenBSD appears to write to the
> virtual address 0x40008098000 with a standard (0x80) primary ASI,
> whereas the other OSs seem to write directly to the physical address
> 0x1ff04000000 with a physical LE ASI.
> 
> Is this because in OpenBSD the memory is being allocated as DVMA memory
> via the IOMMU?

Ah, no.  For memory mapped io it seems we create an actual
little-endian memory mapping (i.e. with the IE bit set).  That was
probably done to support mapping framebuffers.

Reply via email to