Home | History | Annotate | Download | only in powerpc
History log of /src/sys/arch/powerpc/powerpc/bus_space.c
RevisionDateAuthorComments
 1.39  10-Mar-2022  riastradh powerpc: Implement bus_space_barrier as eieio.
 1.38  06-Jul-2020  rin Include missing opt_ppcarch.h.
 1.37  06-Jul-2020  rin Style and cosmetic changes. No binary changes intended.
 1.36  09-Jul-2013  matt Fix typo (pa instead of va).
 1.35  11-Apr-2013  macallan branches: 1.35.4;
in memio_map() don't fail without trying to mapiodev() if we don't find a BAT
mapping or don't have BATs
now this works on G5
 1.34  18-Jul-2012  matt branches: 1.34.2;
Fix some boundary conditions (fence post errors).
 1.33  05-Jul-2012  kiyohara Don't call extent_free() in memio_unmap(), if not call extent_alloc() with
defined PPC_IBM4XX and extent_flags.
 1.32  01-Feb-2012  matt Use kmem instead of malloc. Remove unneeded <sys/malloc.h> includes.
 1.31  01-Feb-2012  matt Enable XBSEN and HIGHBAT for OEA 7455 and related CPUs.
The BAT entries now have a resolution of 8MB. (Adjacent entries are merged
up to a total of 2GB per entry).
 1.30  27-Jan-2012  para converting extent(9) from malloc(9) to kmem(9)
preceding kmem-vmem-pool-uvm patch

releng@ acknowledged
 1.29  17-Dec-2011  phx Allow defining a bus space with pbs_limit=0, which will have the effect to
create a space which ends with 0xffffffff.
This is needed, because pbs_limit=0xffffffff ends the space with 0xfffffffe.
 1.28  30-Jun-2011  matt branches: 1.28.2; 1.28.6;
Modify mapiodev to take a third argument indicating whether the space
should be prefetchable (true) or not (false).
 1.27  20-Jun-2011  matt Tidy up includes.
 1.26  05-Mar-2011  matt branches: 1.26.2;
Only call unmapiodev if va is non-zero.
 1.25  15-Feb-2011  macallan implement pmap_mmap_flags() and teach PowerPC's bus_space_mmap() to actually
use BUS_SPACE_MAP_PREFETCHABLE which, now that /dev/pci* knows how to use it,
helps improve X performance
 1.24  18-Jan-2011  matt branches: 1.24.2;
Add support for BookE Freescale MPC85xx (e500 core) processors.
Add fast softint support for PowerPC (though only booke uses it).
Redo FPU/VEC support and add e500 SPE support.
Rework trap/intrs to use a common trapframe format.
Support SOFTFLOAT (no hardfloat or fpu emulation) for BookE.
 1.23  06-Nov-2010  uebayasi branches: 1.23.2;
Machine dependent code is considered as part of UVM. Include
internal API header.
 1.22  18-Mar-2010  kiyohara Support PowerPC 405EX/EXr.
1. Add some new source and header files.
(MAL(split) and RGMII(new) relations for EMAC)
2. Create dcr4xx.h. Its moved from dcr405gp.h. Also remove dcr405xx.h.
3. intr.c supports MULTIUIC with virtual-irq. likes to oea.
support 32-virq/128-hwirq.
4. multiple emac support.
5. WALNUT and VIRTEX_* includes arch/powerpc/conf/files.ibm4xx.
6. WALNUT pci uses arch/powerpc/ibm4xx/pci/.
 1.21  25-Feb-2010  matt branches: 1.21.2;
Adapt to spr.h breakup.
 1.20  28-Apr-2008  martin branches: 1.20.20; 1.20.24;
Remove clause 3 and 4 from TNF licenses
 1.19  04-Mar-2008  mrg branches: 1.19.2; 1.19.4;
insert a .WAIT between include and include/foo subdirs, so that
include/ is created before include/foo.

fixes -j builds on ofppc for me.
 1.18  23-Feb-2008  matt Use BAT_VA2IDX()
 1.17  07-Feb-2008  garbled branches: 1.17.2; 1.17.6;
Code to disable BAT use on cpu's that either don't have BAT's, or don't
gain any benefit from them. This nets a small speedup on the POWER3, and
is probably needed for POWER5, which might not emulate BATs like the 3 does.
Also, thanks to Matt Thomas, who suggested re-using alitrap rather than
writing a new dsinobattrap that would have looked remarkably identical
when finished.
 1.16  06-Feb-2008  garbled Some minor cleanup in the PPC_OEA601 code, and a fix for bridge-mode
cpus, which apparently still need the non-601 code to zap various
instructions into nops.
 1.15  05-Feb-2008  garbled Ifdef out all the MPC601 code with PPC_OEA601. Now only arches that have the
possibility of running on an MPC601, are infected with all the extra code
and nops that it added.

Also, fix compilation that I broke with the pmap code, by adding
oeacpufeat to the locores of various ppc arches. Noted by mlelstv.
 1.14  05-Feb-2008  garbled Rewrite a big chunk of the pmap and locore code for powerpc to better
deal with the 64bit bridge mode. pmap changes by Matt Thomas, rest by myself.

Change pmap.c to work similar to exec_elf.c to allow us to compile in
multiple pmaps to a single kernel. This allows the pmap for bridge64 to
co-exist with the 32bit pmap.

Yank __HAVE_PMAP_PHYSSEG from all the oea code.

Add a new global, "oeacpufeat", which is used early in locore to determine
certain cpu features. This allows us to conditionalize code early in the boot
for certain CPUs that have special needs.

Yank most of the ifdef PPC_OEA_BRIDGE64 code from almost every file it was
found in. Some of it seemed incorrect, and my 7044 booted just fine
without it. It would appear that the bridge cpus treat BAT instructions
as nops, so they seem to be safe.

In ofppc, check the oeacpufeat, and if we are on a 64bit proc, clear
MSR[SF], and ASR[V].

With all of these changes, a kernel with both PPC_OEA and PPC_OEA_BRIDGE64
will boot on the POWERIII-2 cpu. However, it will not yet boot on a 32bit
cpu, because of CACHELINESIZE. Work remains to be done there to fix that.
 1.13  17-Oct-2007  garbled branches: 1.13.2;
Merge the ppcoea-renovation branch to HEAD.

This branch was a major cleanup and rototill of many of the various OEA
cpu based PPC ports that focused on sharing as much code as possible
between the various ports to eliminate near-identical copies of files in
every tree. Additionally there is a new PIC system that unifies the
interface to interrupt code for all different OEA ppc arches. The work
for this branch was done by a variety of people, too long to list here.

TODO:
bebox still needs work to complete the transition to -renovation.
ofppc still needs a bunch of work, which I will be looking at.
ev64260 still needs to be renovated
amigappc was not attempted.

NOTES:
pmppc was removed as an arch, and moved to a evbppc target.
 1.12  09-Apr-2007  garbled branches: 1.12.4; 1.12.12; 1.12.14; 1.12.16; 1.12.18;
Fix the other instance of SR601_PA_MATCH_P in this file (the unmap case) too.
 1.11  09-Apr-2007  garbled When testing if something from the iosrtable is valid, don't call
SR601_PA_MATCH_P(), because that macro assumes the io region you are
mapping lies within the 32-bit address space addressable by the CPU,
which might not allways be the case.
 1.10  04-Mar-2007  christos branches: 1.10.2; 1.10.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.9  31-Aug-2006  freza branches: 1.9.8;
* move the "cheating" conditional into unmapiodev() implementation
itself (instead of memio_unmap()), as it differs between OEA and
ibm4xx.

OK by matt@
 1.8  31-Aug-2006  matt Call unmapiodev when unmapping bus_space to possibly reclaim the VA.
 1.7  05-Aug-2006  sanjayl 1st cut of Powermac G5 support (uses bridge mode).
 1.6  11-Dec-2005  christos branches: 1.6.4; 1.6.8;
merge ktrace-lwp.
 1.5  08-Jun-2004  kleink branches: 1.5.12;
Add MPC601 support.
 1.4  25-Jul-2003  scw Switch ibm4xx over to using the more flexible powerpc bus_space/bus_dma code.
 1.3  15-Jul-2003  lukem __KERNEL_RCSID()
 1.2  09-Apr-2003  matt branches: 1.2.2;
Add some debug printf's.
 1.1  15-Mar-2003  matt New generic powerpc bus_space framework.
 1.2.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.2.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.2.2.1  03-Aug-2004  skrll Sync with HEAD
 1.5.12.6  17-Mar-2008  yamt sync with head.
 1.5.12.5  27-Feb-2008  yamt sync with head.
 1.5.12.4  11-Feb-2008  yamt sync with head.
 1.5.12.3  27-Oct-2007  yamt sync with head.
 1.5.12.2  03-Sep-2007  yamt sync with head.
 1.5.12.1  30-Dec-2006  yamt sync with head.
 1.6.8.2  03-Sep-2006  yamt sync with head.
 1.6.8.1  11-Aug-2006  yamt sync with head
 1.6.4.1  09-Sep-2006  rpaulo sync with head
 1.9.8.2  15-Apr-2007  yamt sync with head.
 1.9.8.1  12-Mar-2007  rmind Sync with HEAD.
 1.10.4.1  11-Jul-2007  mjf Sync with head.
 1.10.2.2  23-Oct-2007  ad Sync with head.
 1.10.2.1  10-Apr-2007  ad Sync with head.
 1.12.18.1  25-Oct-2007  bouyer Sync with HEAD.
 1.12.16.1  18-Oct-2007  yamt sync with head.
 1.12.14.2  23-Mar-2008  matt sync with HEAD
 1.12.14.1  06-Nov-2007  matt sync with HEAD
 1.12.12.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.12.4.3  16-Oct-2007  garbled remove a #define DEBUG that got left in this file somehow
 1.12.4.2  02-Aug-2007  macallan bus_space_mmap() should honour pbs_offset
 1.12.4.1  02-Aug-2007  macallan bus addresses need to get the dtride treatment as well, not only sizes
 1.13.2.1  18-Feb-2008  mjf Sync with HEAD.
 1.17.6.2  02-Jun-2008  mjf Sync with HEAD.
 1.17.6.1  03-Apr-2008  mjf Sync with HEAD.
 1.17.2.1  24-Mar-2008  keiichi sync with head.
 1.19.4.3  11-Aug-2010  yamt sync with head.
 1.19.4.2  11-Mar-2010  yamt sync with head
 1.19.4.1  16-May-2008  yamt sync with head.
 1.19.2.1  18-May-2008  yamt sync with head.
 1.20.24.1  07-Jan-2011  matt Add booke support.
 1.20.20.5  09-Nov-2010  uebayasi Sync with HEAD.
 1.20.20.4  09-Nov-2010  uebayasi Sync with HEAD.
 1.20.20.3  02-Nov-2010  uebayasi Drop the 'paddr_t avail_start' and 'paddr_t avail_end' arguments
from uvm_page_physload_device(9).

Those two arguments are used by uvm_page_physload(9) to specify a
range of physical memory available for general purpose pages (pages
which are linked to freelists). Totally irrelevant to device
segments.
 1.20.20.2  11-Aug-2010  uebayasi Support bus_space_physload(9) and friends.
 1.20.20.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.21.2.3  06-Mar-2011  rmind sync with head (and fix few botches with this)
 1.21.2.2  05-Mar-2011  rmind sync with head
 1.21.2.1  30-May-2010  rmind sync with head
 1.23.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.24.2.1  17-Feb-2011  bouyer Sync with HEAD
 1.26.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.28.6.1  18-Feb-2012  mrg merge to -current.
 1.28.2.3  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.28.2.2  30-Oct-2012  yamt sync with head
 1.28.2.1  17-Apr-2012  yamt sync with head
 1.34.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.34.2.1  23-Jun-2013  tls resync from head
 1.35.4.1  28-Aug-2013  rmind sync with head

RSS XML Feed