]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Various fixes to get the SWARM config working on a big-endian Sibyte CPU.
authorneel <neel@FreeBSD.org>
Wed, 17 Feb 2010 06:43:37 +0000 (06:43 +0000)
committerneel <neel@FreeBSD.org>
Wed, 17 Feb 2010 06:43:37 +0000 (06:43 +0000)
commit35bb94898826bf1bea52a17e85ccba0f7a5ea447
treea199f0216bfc48841234c5a2389859fbf4f9e46c
parentfc770dc08c82744750f3a85efd2e289c2388d79b
Various fixes to get the SWARM config working on a big-endian Sibyte CPU.

Getting the little-endian PCI bus working on the big-endian CPU proved to be
quite challenging. We let the PCI devices be mapped in the "match byte lanes"
address window. This is where they are mapped by the CFE and DMA transfers
generated to or from addresses within this window are not subject to automatic
byte-swapping.

However any access by the driver to memory-mapped pci space is redirected
via the "match bit lanes" address window. We get the benefit of automatic
byte swapping through this address window and drivers don't need to change
to deal with CPU big-endianness.
sys/mips/mips/bus_space_generic.c
sys/mips/sibyte/sb_asm.S
sys/mips/sibyte/sb_bus_space.h [new file with mode: 0644]
sys/mips/sibyte/sb_zbpci.c