Home | History | Annotate | only in /src/sys/arch/evbarm/ixm1200
History log of /src/sys/arch/evbarm/ixm1200
RevisionDateAuthorComments
 1.2 03-Jan-2003  thorpej Use the generic irq_dispatch.S
 1.1 17-Aug-2002  briggs branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8;
Add a new option EVBARM_BOARDTYPE to differentiate between different
evbarm ports. Inline _splraise/_spllower/splx for i80321 and iq80310
for more performance.
 1.1.8.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.8.1 17-Aug-2002  jdolecek file ixm1200_intr.h was added on branch kqueue on 2002-09-06 08:34:10 +0000
 1.1.6.2 30-Aug-2002  gehenna catch up with -current.
 1.1.6.1 17-Aug-2002  gehenna file ixm1200_intr.h was added on branch gehenna-devsw on 2002-08-30 00:19:38 +0000
 1.1.4.2 03-Jan-2003  thorpej Sync with HEAD.
 1.1.4.1 17-Aug-2002  thorpej file ixm1200_intr.h was added on branch nathanw_sa on 2003-01-03 16:43:16 +0000
 1.1.2.1 19-Aug-2002  thorpej Partial (ARM only) sync with trunk -- significant performance improvements
for XScale-based systems.
 1.68 03-Aug-2023  mrg ignore "-Warray-bounds" for various low level platform code that knows
how something is setup but technically is undefined behaviour. the
most common here is "extern int end;" and then using offsets of "&end"
that are outside the bounds of this 4-byte integer.

these uses are almost certainly all OK in reality.

found by GCC 12.
 1.67 20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.66 17-Aug-2021  andvar fix multiplei repetitive typos in comments, messages and documentation. mainly because copy paste code big amount of files are affected.
 1.65 18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.64 18-Apr-2020  skrll Trailing whitespace
 1.63 16-Jul-2019  skrll branches: 1.63.8;
Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.62 16-Jul-2019  skrll KNF
 1.61 28-Oct-2018  skrll Fix a commit
 1.60 21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.59 31-Jul-2018  skrll Sprinkle #include "opt_arm_debug.h" where VERBOSE_INIT_ARM is used
 1.58 06-Nov-2017  christos branches: 1.58.2; 1.58.4;
Cleanup and clarify the ELFSIZE mess:

We now have 2 variables automatically set in elf_machdep.h:

ARCH_ELFSIZE: the size for userland binaries
KERN_ELFSIZE: the size for the kernel binaries

DB_ELFSIZE has been deleted and KERN_ELFSIZE should have always the
same values DB_ELFSIZE used to have.

In sys/exec_elf.h, if ELFSIZE is not set, it is set to KERN_ELFSIZE
for the kernel and ARCH_ELFSIZE for userland. These defaults should
eliminate the need for most manual ELFSIZE setting.
 1.57 22-Dec-2016  cherry switch all ports to use uvm_init.c:uvm_md_init()

uvm_setpagesize() is now subsumed within this funciton.
 1.56 13-Sep-2014  matt branches: 1.56.2; 1.56.4;
Replace more vm_offset_t, vm_size_t with vaddr_t, vsize_t
Use paddr_t for msgbufphys
 1.55 22-Feb-2014  matt Deal with non-4KB page sizes
 1.54 18-Aug-2013  matt <arm/locore.h> fallout (fixes some include ordering errors)
 1.53 12-Nov-2012  skrll branches: 1.53.2;
C99 types
 1.52 22-Sep-2012  matt Don't use an asm in pmap_activate to update the TTBR, use cpu_setttb instead
but add a second argument to it to indicate whether the TLB/caches need to be
flushed. Default cortex to pmap_needs_fixup = 1. But check the MMFR3 field
to see if the fixed can be skipped.
Use a cf_flag bit 0 to indicate whether the A9 L2 cache should disable (bit 0 = 1)
or enabeld (bit = 0).

With these changes, the A9 MMU can use traverse caches to do MMU tablewalks
Also, make sure all memory has the shareable bit for the A9.
 1.51 16-Aug-2012  matt branches: 1.51.2;
Move the standard definitions of the {UND,IRQ,FIQ,ABT}_STACK_SIZE to
<arm32/machdep.h>
Move the extern for cpu_reset_address to the same file.
Add cpu_reset_address_paddr.
Kill cpu_reset_v4_MMU_disable.
if cpu_reset_address is NULL, then the MMU will be disabled.
 1.50 29-Jul-2012  matt Fix more -fno-common fallout.
Move more variables to common locations.
 1.49 01-Jul-2011  dyoung branches: 1.49.2;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.48 30-Jun-2011  wiz dependant -> dependent
 1.47 28-Dec-2009  uebayasi More setttb() -> cpu_setttb() for readability & consistency. Missing instances
pointed out by tsutsui@ & nonaka@, thanks.
 1.46 26-Dec-2009  uebayasi Use cpu_* prefix to call cpu_* functions (setttb() -> cpu_setttb()); no
functional changes.
 1.45 26-Dec-2009  uebayasi Garbage collect an unused global, vm_offset_t pagetables_start.
 1.44 27-Nov-2009  rmind - Use uvm_lwp_setuarea() instead of directly setting address to lwp_t::l_addr.
- Replace most remaining uses of l_addr with uvm_lwp_getuarea() or lwp_getpcb().
- Amend assembly in ports where it accesses PCB via struct user.
- Rename L_ADDR to L_PCB in few places. Reduce sys/user.h inclusions.
 1.43 26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.42 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.41 11-Aug-2009  matt Remove all declarations of physmem from sys/arch. Add an include of
<sys/systm.h> to the one file that did not already contain it.
This now means that physmem can be changed by updating systm.h and uvm_page.c
(excluding fixing printfs)
 1.40 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.39 14-Mar-2009  dsl Remove all the __P() from sys (excluding sys/dist)
Diff checked with grep and MK1 eyeball.
i386 and amd64 GENERIC and sys still build.
 1.38 13-Feb-2009  apb Use "defopt MODULAR" in sys/conf/files, and #include "opt_modular.h"
in all kernel sources that use the MODULAR option.
Proposed in tech-kern on 18 Jan 2009.
 1.37 30-Nov-2008  martin branches: 1.37.4;
As discussed on tech-kern: mutex_init is too heavyweight for early bootstrap
phases, so move the initialization of the ksyms mutex back into main via
a function called ksyms_init. Rename the existing (but quite different)
ksyms_init* variations into ksyms_addsyms_elf() and ksyms_addsyms_explicit()
and adapt machdep code accordingly.
 1.36 12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.35 11-Nov-2008  dyoung It is not appropriate to call pmf_system_shutdown(9) from
doshutdownhooks(9): shutdown hooks registered by shutdownhook_establish(9)
expect to be called with interrupts disabled, but shutdown hooks
registered with pmf_device_register1(9) expect to be called with
interrupts enabled. So I have made two changes:

1 Do not call pmf_system_shutdown() from doshutdownhooks(). Instead,
change every call to doshutdownhooks() to a call to doshutdownhooks()
followed by a call to pmf_system_shutdown(). No functional change
is intended by this change.

2 Make i386 re-enable interrupts briefly while it calls
pmf_system_shutdown(). I leave it to others either to fix the
other ports, or to factor out some MI shutdown code, as joerg@
suggests, and fix that. Note that a functional change *is* intended
by this change.

I hope that this patch will stop us from flip-flopping between
calling doshutdownhooks() and pmf_system_shutdown() sometimes with
and sometimes without interrupts enabled.
 1.34 27-Apr-2008  matt branches: 1.34.6; 1.34.8;
Merge kernel changes in matt-armv6 to HEAD.
 1.33 19-Jan-2008  chris branches: 1.33.6; 1.33.8; 1.33.10;
Remove arm support for IPKDB.

It hasn't worked since arm was broken out from arm32 in Jan 2001, and
no-one has noticed or cared to fix it.
 1.32 17-May-2006  mrg branches: 1.32.34; 1.32.38; 1.32.44; 1.32.52;
in initarm(), initialise kernel_l1pt.pv_va as well as kernel_l1pt.pv_pa.
 1.31 11-Dec-2005  christos branches: 1.31.4; 1.31.6; 1.31.8; 1.31.12;
merge ktrace-lwp.
 1.30 12-Dec-2004  abs branches: 1.30.10;
Fix comments slighly
 1.29 06-Aug-2004  rearnsha Use db_machine_init.
 1.28 13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.27 13-Jul-2003  igy using common bus_space_tag in ixpsip too
 1.26 13-Jul-2003  igy using devmap for static mapping
 1.25 22-May-2003  thorpej branches: 1.25.2;
Move KERNEL_VM_SIZE into the C files where its used.
 1.24 21-May-2003  thorpej Move KERNEL_VM_BASE inside where it is used (it won't be there for long).
 1.23 17-May-2003  thorpej Decrease the verbosity level unless VERBOSE_INIT_ARM is defiend.
 1.22 05-May-2003  igy code cleanup
 1.21 05-May-2003  igy using high vector page
 1.20 03-May-2003  thorpej Don't expose KERNEL_TEXT_BASE outside of board-specific code. This gives
individual board start-up code more flexibility about where the kernel
starts in the kernel address space.
 1.19 03-May-2003  thorpej Reduce differences between ARM32_NEW_VM_LAYOUT and not; always pass
the start and end of the kernel managed virtual address space to
pmap_bootstrap() in the new pmap.
 1.18 03-May-2003  thorpej Remove old pmap support for platforms which have fully switched over.
 1.17 03-May-2003  thorpej Switch Integrator, IXM1200, and SMDK2800 to ARM32_PMAP_NEW. These
are the last of the ARM platforms to be converted.
 1.16 28-Apr-2003  ragge Missed '(', noted by H�vard.
 1.15 26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.14 02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.13 25-Mar-2003  igy Add __KERNEL_RCSID tags
 1.12 22-Feb-2003  igy correct physical/virtual address handling

- to identify device instance, using hardware address.
- when console accesses device, using statically mapped address.
- when tty accesses device, using handler given by bus_space_map().
 1.11 08-Dec-2002  ichiro delete unneed pmap for LED and Clock
 1.10 02-Dec-2002  ichiro move location of pmap_debug()
 1.9 09-Oct-2002  thorpej Make this compile with strict prototypes.
 1.8 27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.7 24-Aug-2002  thorpej branches: 1.7.2; 1.7.4;
Enable caching on kernel and user page tables. This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).
 1.6 22-Aug-2002  thorpej * Add PTE_SYNC() and PTE_SYNC_RANGE() macros. These don't actually do
anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
where vtopte() is used.
 1.5 21-Aug-2002  thorpej Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.
 1.4 31-Jul-2002  thorpej Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical. Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.
 1.3 30-Jul-2002  thorpej Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
 1.2 21-Jul-2002  ichiro cosmetic change
mapping i21555 control/status registers
 1.1 15-Jul-2002  ichiro branches: 1.1.2;
add support ixp12x0 eva-board "IXM1200"
 1.1.2.3 30-Aug-2002  gehenna catch up with -current.
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixm1200_machdep.c was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.7.4.3 11-Dec-2002  thorpej Sync with HEAD.
 1.7.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.7.4.1 24-Aug-2002  nathanw file ixm1200_machdep.c was added on branch nathanw_sa on 2002-10-18 02:36:34 +0000
 1.7.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.7.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.7.2.1 24-Aug-2002  jdolecek file ixm1200_machdep.c was added on branch kqueue on 2002-09-06 08:34:10 +0000
 1.25.2.5 18-Dec-2004  skrll Sync with HEAD.
 1.25.2.4 21-Sep-2004  skrll Fix the sync with head I botched.
 1.25.2.3 18-Sep-2004  skrll Sync with HEAD.
 1.25.2.2 12-Aug-2004  skrll Sync with HEAD.
 1.25.2.1 03-Aug-2004  skrll Sync with HEAD
 1.30.10.2 21-Jan-2008  yamt sync with head
 1.30.10.1 21-Jun-2006  yamt sync with head.
 1.31.12.1 24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.31.8.1 24-May-2006  yamt sync with head.
 1.31.6.1 01-Jun-2006  kardel Sync with head.
 1.31.4.1 09-Sep-2006  rpaulo sync with head
 1.32.52.1 20-Jan-2008  bouyer Sync with HEAD
 1.32.44.1 18-Feb-2008  mjf Sync with HEAD.
 1.32.38.2 23-Mar-2008  matt sync with HEAD
 1.32.38.1 09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.32.34.1 28-Feb-2008  rjs Sync with HEAD.
 1.33.10.4 11-Mar-2010  yamt sync with head
 1.33.10.3 19-Aug-2009  yamt sync with head.
 1.33.10.2 04-May-2009  yamt sync with head.
 1.33.10.1 16-May-2008  yamt sync with head.
 1.33.8.1 18-May-2008  yamt sync with head.
 1.33.6.2 17-Jan-2009  mjf Sync with HEAD.
 1.33.6.1 02-Jun-2008  mjf Sync with HEAD.
 1.34.8.3 28-Apr-2009  skrll Sync with HEAD.
 1.34.8.2 03-Mar-2009  skrll Sync with HEAD.
 1.34.8.1 19-Jan-2009  skrll Sync with HEAD.
 1.34.6.1 13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.37.4.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.49.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.49.2.2 16-Jan-2013  yamt sync with (a bit old) head
 1.49.2.1 30-Oct-2012  yamt sync with head
 1.51.2.3 03-Dec-2017  jdolecek update from HEAD
 1.51.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.51.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.53.2.2 18-May-2014  rmind sync with head
 1.53.2.1 28-Aug-2013  rmind sync with head
 1.56.4.1 07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.56.2.1 05-Feb-2017  skrll Sync with HEAD
 1.58.4.3 21-Apr-2020  martin Sync with HEAD
 1.58.4.2 13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.58.4.1 10-Jun-2019  christos Sync with HEAD
 1.58.2.3 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.58.2.2 30-Sep-2018  pgoyette Ssync with HEAD
 1.58.2.1 06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.63.8.1 20-Apr-2020  bouyer Sync with HEAD
 1.13 16-Nov-2018  jmcneill Add intr_establish_xname support to arm and expose it to intrctl
 1.12 23-Oct-2018  jmcneill Fix printf format strings - pci_intr_handle_t is uint64_t now on arm
 1.11 29-Mar-2014  christos branches: 1.11.28; 1.11.30;
make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.10 26-Mar-2014  christos kill sprintf.
 1.9 01-Jul-2011  dyoung branches: 1.9.2; 1.9.12; 1.9.16;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.8 04-Apr-2011  dyoung Neither pci_dma64_available(), pci_probe_device(), pci_mapreg_map(9),
pci_find_rom(), pci_intr_map(9), pci_enumerate_bus(), nor the match
predicate passed to pciide_compat_intr_establish() should ever modify
their pci_attach_args argument, so make their pci_attach_args arguments
const and deal with the fallout throughout the kernel.

For the most part, these changes add a 'const' where there was no
'const' before, however, some drivers and MD code used to modify
pci_attach_args. Now those drivers either copy their pci_attach_args
and modify the copy, or refrain from modifying pci_attach_args:

Xen: according to Manuel Bouyer, writing to pci_attach_args in
pci_intr_map() was a leftover from Xen 2. Probably a bug. I
stopped writing it. I have not tested this change.

siside(4): sis_hostbr_match() needlessly wrote to pci_attach_args.
Probably a bug. I use a temporary variable. I have not tested this
change.

slide(4): sl82c105_chip_map() overwrote the caller's pci_attach_args.
Probably a bug. Use a local pci_attach_args. I have not tested
this change.

viaide(4): via_sata_chip_map() and via_sata_chip_map_new() overwrote the
caller's pci_attach_args. Probably a bug. Make a local copy of the
caller's pci_attach_args and modify the copy. I have not tested
this change.

While I'm here, make pci_mapreg_submap() static.

With these changes in place, I have tested the compilation of these
kernels:

alpha GENERIC
amd64 GENERIC XEN3_DOM0
arc GENERIC
atari HADES MILAN-PCIIDE
bebox GENERIC
cats GENERIC
cobalt GENERIC
evbarm-eb NSLU2
evbarm-el ADI_BRH ARMADILLO9 CP3100 GEMINI GEMINI_MASTER GEMINI_SLAVE GUMSTIX
HDL_G IMX31LITE INTEGRATOR IQ31244 IQ80310 IQ80321 IXDP425 IXM1200
KUROBOX_PRO LUBBOCK MARVELL_NAS NAPPI SHEEVAPLUG SMDK2800 TEAMASA_NPWR
TEAMASA_NPWR_FC TS7200 TWINTAIL ZAO425
evbmips-el AP30 DBAU1500 DBAU1550 MALTA MERAKI MTX-1 OMSAL400 RB153 WGT624V3
evbmips64-el XLSATX
evbppc EV64260 MPC8536DS MPC8548CDS OPENBLOCKS200 OPENBLOCKS266
OPENBLOCKS266_OPT P2020RDB PMPPC RB800 WALNUT
hp700 GENERIC
i386 ALL XEN3_DOM0 XEN3_DOMU
ibmnws GENERIC
macppc GENERIC
mvmeppc GENERIC
netwinder GENERIC
ofppc GENERIC
prep GENERIC
sandpoint GENERIC
sgimips GENERIC32_IP2x
sparc GENERIC_SUN4U KRUPS
sparc64 GENERIC

As of Sun Apr 3 15:26:26 CDT 2011, I could not compile these kernels
with or without my patches in place:

### evbmips-el GDIUM

nbmake: nbmake: don't know how to make /home/dyoung/pristine-nbsd/src/sys/arch/mips/mips/softintr.c. Stop

### evbarm-el MPCSA_GENERIC
src/sys/arch/evbarm/conf/MPCSA_GENERIC:318: ds1672rtc*: unknown device `ds1672rtc'

### ia64 GENERIC

/tmp/genassym.28085/assym.c: In function 'f111':
/tmp/genassym.28085/assym.c:67: error: invalid application of 'sizeof' to incomplete type 'struct pcb'
/tmp/genassym.28085/assym.c:76: error: dereferencing pointer to incomplete type

### sgimips GENERIC32_IP3x

crmfb.o: In function `crmfb_attach':
crmfb.c:(.text+0x2304): undefined reference to `ddc_read_edid'
crmfb.c:(.text+0x2304): relocation truncated to fit: R_MIPS_26 against `ddc_read_edid'
crmfb.c:(.text+0x234c): undefined reference to `edid_parse'
crmfb.c:(.text+0x234c): relocation truncated to fit: R_MIPS_26 against `edid_parse'
crmfb.c:(.text+0x2354): undefined reference to `edid_print'
crmfb.c:(.text+0x2354): relocation truncated to fit: R_MIPS_26 against `edid_print'
 1.7 21-Oct-2009  rmind branches: 1.7.4; 1.7.6;
Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.6 16-Mar-2009  dsl ANSIfy functions with function-pointer arguments
 1.5 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.4 25-Mar-2003  igy branches: 1.4.108; 1.4.116; 1.4.122;
Add __KERNEL_RCSID tags
 1.3 17-Feb-2003  ichiro files.ixp12x0
no need device ixpcom in evbarm/conf/files.evbarm move it to
arm/ixp12x0/files.ixp12x0

ixp12x0_com.c:
some fix around address handling
1. Do not call bus_space_map() in ixpcominit(). Calling bus_space_map()
is not safe here, because bus_space_map() calls uvm_km_valloc() but
uvm is not yet initialized.
2. Use dv_unit to determine console instead comparering iobase.
Now you can attach ixpcom0 with physical address like this:
ixpcom* at ixpsip? addr 0x90000000 size 0x4000
Statically mapped address (0xf0000000) is still usable.

ixp12x0_clk:
1. access PLL_CFG register via bus_space
2. Make the delay() working correctly. (bug fix)
3. Start the timer device without interrupt on attach time.
Now delay() called before cpu_initclocks() works fine.

ixp12x0_pci:
1.Mapping PCI type0/1 configuration space to the upper address.
2."PCI I/O Cycle Access" mapping to same virtual address(VA==PA)
but size of this mapping increase to 1MByte because fails
cause couldnt set L2 table.
3.use bus_space address handling in ixp12x0_pci.c.
 1.2 21-Jul-2002  ichiro branches: 1.2.2; 1.2.4;
make compile when PCI_DEBUG was defined
 1.1 15-Jul-2002  ichiro branches: 1.1.2;
add support ixp12x0 eva-board "IXM1200"
 1.1.2.3 30-Aug-2002  gehenna catch up with -current.
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixm1200_pci.c was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.2.4.2 21-Jul-2002  ichiro make compile when PCI_DEBUG was defined
 1.2.4.1 21-Jul-2002  ichiro file ixm1200_pci.c was added on branch nathanw_sa on 2002-07-21 22:16:59 +0000
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 21-Jul-2002  jdolecek file ixm1200_pci.c was added on branch kqueue on 2002-09-06 08:34:11 +0000
 1.4.122.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.4.116.1 28-Apr-2009  skrll Sync with HEAD.
 1.4.108.2 11-Mar-2010  yamt sync with head
 1.4.108.1 04-May-2009  yamt sync with head.
 1.7.6.1 06-Jun-2011  jruoho Sync with HEAD.
 1.7.4.1 21-Apr-2011  rmind sync with head
 1.9.16.1 18-May-2014  rmind sync with head
 1.9.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.2.1 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.11.30.1 10-Jun-2019  christos Sync with HEAD
 1.11.28.1 26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.6 24-May-2022  andvar fix various typos in comment, documentation and log messages.
 1.5 02-Dec-2013  joerg Don't use cpsr_all/spsr_all with mrs, it doesn't take a mask.
 1.4 31-Jan-2011  matt branches: 1.4.4; 1.4.14; 1.4.18;
Add RCSID when needed.
Don't include pmap.h or pte.h, include "assym.h" instead.
Use assym.h provided values.
 1.3 28-Apr-2008  martin branches: 1.3.22; 1.3.28; 1.3.30;
Remove clause 3 and 4 from TNF licenses
 1.2 21-Jul-2002  ichiro branches: 1.2.2; 1.2.4; 1.2.112; 1.2.114; 1.2.116;
cosmetic change
mapping i21555 control/status registers
 1.1 15-Jul-2002  ichiro branches: 1.1.2;
add support ixp12x0 eva-board "IXM1200"
 1.1.2.3 30-Aug-2002  gehenna catch up with -current.
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixm1200_start.S was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.2.116.1 16-May-2008  yamt sync with head.
 1.2.114.1 18-May-2008  yamt sync with head.
 1.2.112.1 02-Jun-2008  mjf Sync with HEAD.
 1.2.4.2 21-Jul-2002  ichiro cosmetic change
mapping i21555 control/status registers
 1.2.4.1 21-Jul-2002  ichiro file ixm1200_start.S was added on branch nathanw_sa on 2002-07-21 14:26:06 +0000
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 21-Jul-2002  jdolecek file ixm1200_start.S was added on branch kqueue on 2002-09-06 08:34:11 +0000
 1.3.30.1 08-Feb-2011  bouyer Sync with HEAD
 1.3.28.1 06-Jun-2011  jruoho Sync with HEAD.
 1.3.22.1 05-Mar-2011  rmind sync with head
 1.4.18.1 18-May-2014  rmind sync with head
 1.4.14.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.4.1 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.2 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.1 15-Jul-2002  ichiro branches: 1.1.2; 1.1.4; 1.1.6; 1.1.118;
add support ixp12x0 eva-board "IXM1200"
 1.1.118.1 11-Mar-2010  yamt sync with head
 1.1.6.2 15-Jul-2002  ichiro add support ixp12x0 eva-board "IXM1200"
 1.1.6.1 15-Jul-2002  ichiro file ixm1200reg.h was added on branch nathanw_sa on 2002-07-15 17:13:34 +0000
 1.1.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 15-Jul-2002  jdolecek file ixm1200reg.h was added on branch kqueue on 2002-09-06 08:34:11 +0000
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixm1200reg.h was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.2 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.1 15-Jul-2002  ichiro branches: 1.1.2; 1.1.4; 1.1.6; 1.1.118;
add support ixp12x0 eva-board "IXM1200"
 1.1.118.1 11-Mar-2010  yamt sync with head
 1.1.6.2 15-Jul-2002  ichiro add support ixp12x0 eva-board "IXM1200"
 1.1.6.1 15-Jul-2002  ichiro file ixm1200var.h was added on branch nathanw_sa on 2002-07-15 17:13:34 +0000
 1.1.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 15-Jul-2002  jdolecek file ixm1200var.h was added on branch kqueue on 2002-09-06 08:34:12 +0000
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixm1200var.h was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.10 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.9 01-Jul-2011  dyoung branches: 1.9.2; 1.9.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.8 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.7 11-Dec-2005  christos branches: 1.7.78;
merge ktrace-lwp.
 1.6 13-Jul-2003  igy mapping pci configuration space (not subregion)
 1.5 25-Mar-2003  igy branches: 1.5.2;
Add __KERNEL_RCSID tags
 1.4 17-Feb-2003  ichiro files.ixp12x0
no need device ixpcom in evbarm/conf/files.evbarm move it to
arm/ixp12x0/files.ixp12x0

ixp12x0_com.c:
some fix around address handling
1. Do not call bus_space_map() in ixpcominit(). Calling bus_space_map()
is not safe here, because bus_space_map() calls uvm_km_valloc() but
uvm is not yet initialized.
2. Use dv_unit to determine console instead comparering iobase.
Now you can attach ixpcom0 with physical address like this:
ixpcom* at ixpsip? addr 0x90000000 size 0x4000
Statically mapped address (0xf0000000) is still usable.

ixp12x0_clk:
1. access PLL_CFG register via bus_space
2. Make the delay() working correctly. (bug fix)
3. Start the timer device without interrupt on attach time.
Now delay() called before cpu_initclocks() works fine.

ixp12x0_pci:
1.Mapping PCI type0/1 configuration space to the upper address.
2."PCI I/O Cycle Access" mapping to same virtual address(VA==PA)
but size of this mapping increase to 1MByte because fails
cause couldnt set L2 table.
3.use bus_space address handling in ixp12x0_pci.c.
 1.3 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.2 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.1 15-Jul-2002  ichiro branches: 1.1.2; 1.1.4; 1.1.6;
add support ixp12x0 eva-board "IXM1200"
 1.1.6.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.6.1 15-Jul-2002  nathanw file ixp12x0_mainbus.c was added on branch nathanw_sa on 2002-10-18 02:36:34 +0000
 1.1.4.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 15-Jul-2002  jdolecek file ixp12x0_mainbus.c was added on branch kqueue on 2002-09-06 08:34:12 +0000
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file ixp12x0_mainbus.c was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.5.2.3 21-Sep-2004  skrll Fix the sync with head I botched.
 1.5.2.2 18-Sep-2004  skrll Sync with HEAD.
 1.5.2.1 03-Aug-2004  skrll Sync with HEAD
 1.7.78.1 11-Mar-2010  yamt sync with head
 1.9.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.9.2.1 30-Oct-2012  yamt sync with head
 1.12 20-Dec-2023  thorpej Remove unnecessary <sys/malloc.h>.
 1.11 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.10 12-Feb-2012  matt branches: 1.10.6;
Change old-stlye-defintions to C89 prototypes.
Switch to CFATTACH_DECL_NEW/device_t/cfdata_t
Defer attaching interrupt evcnts.

Approved by releng.
 1.9 01-Jul-2011  dyoung branches: 1.9.2; 1.9.6;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.8 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.7 14-Mar-2009  dsl Change about 4500 of the K&R function definitions to ANSI ones.
There are still about 1600 left, but they have ',' or /* ... */
in the actual variable definitions - which my awk script doesn't handle.
There are also many that need () -> (void).
(The script does handle misordered arguments.)
 1.6 25-Mar-2003  igy branches: 1.6.108; 1.6.116; 1.6.122;
Add __KERNEL_RCSID tags
 1.5 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.4 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.3 27-Sep-2002  thorpej Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver. The cfdriver is then looked
up in a list which is built at run-time.
 1.2 21-Jul-2002  ichiro branches: 1.2.2; 1.2.4;
cosmetic change
mapping i21555 control/status registers
 1.1 20-Jul-2002  ichiro branches: 1.1.2;
attach/match separated from ixp12x0_com
Some bug of com driver have been improved.
 1.1.2.3 30-Aug-2002  gehenna catch up with -current.
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 20-Jul-2002  gehenna file ixpcom_ixm.c was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.2.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.1 21-Jul-2002  nathanw file ixpcom_ixm.c was added on branch nathanw_sa on 2002-10-18 02:36:34 +0000
 1.2.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 21-Jul-2002  jdolecek file ixpcom_ixm.c was added on branch kqueue on 2002-09-06 08:34:12 +0000
 1.6.122.1 13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.6.116.1 28-Apr-2009  skrll Sync with HEAD.
 1.6.108.2 11-Mar-2010  yamt sync with head
 1.6.108.1 04-May-2009  yamt sync with head.
 1.9.6.1 18-Feb-2012  mrg merge to -current.
 1.9.2.2 30-Oct-2012  yamt sync with head
 1.9.2.1 17-Apr-2012  yamt sync with head
 1.10.6.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.2 21-Oct-2009  rmind Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.1 20-Jul-2002  ichiro branches: 1.1.2; 1.1.4; 1.1.6; 1.1.118;
attach/match separated from ixp12x0_com
Some bug of com driver have been improved.
 1.1.118.1 11-Mar-2010  yamt sync with head
 1.1.6.2 20-Jul-2002  ichiro attach/match separated from ixp12x0_com
Some bug of com driver have been improved.
 1.1.6.1 20-Jul-2002  ichiro file ixpcom_ixmvar.h was added on branch nathanw_sa on 2002-07-20 03:09:06 +0000
 1.1.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 20-Jul-2002  jdolecek file ixpcom_ixmvar.h was added on branch kqueue on 2002-09-06 08:34:13 +0000
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 20-Jul-2002  gehenna file ixpcom_ixmvar.h was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.14 17-Jun-2020  thorpej - <sys/extent.h> not needed here.
- Fix interrupt string buffer name.
 1.13 29-Mar-2014  christos make pci_intr_string and eisa_intr_string take a buffer and a length
instead of relying in local static storage.
 1.12 26-Mar-2014  christos kill sprintf.
 1.11 12-Nov-2012  skrll branches: 1.11.2;
C99 types
 1.10 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.9 01-Jul-2011  dyoung branches: 1.9.2; 1.9.12;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.8 06-Jun-2011  matt Some more device_t, cfdata_t, CFATTACH_DECL_NEW cleanup.
 1.7 21-Oct-2009  rmind branches: 1.7.4; 1.7.10;
Drop 3rd and 4th clauses from Ichiro FUKUHARA's license.
Reviewed and approved by ichiro@ (copyright holder).
 1.6 25-Mar-2003  igy branches: 1.6.108;
Add __KERNEL_RCSID tags
 1.5 17-Feb-2003  ichiro files.ixp12x0
no need device ixpcom in evbarm/conf/files.evbarm move it to
arm/ixp12x0/files.ixp12x0

ixp12x0_com.c:
some fix around address handling
1. Do not call bus_space_map() in ixpcominit(). Calling bus_space_map()
is not safe here, because bus_space_map() calls uvm_km_valloc() but
uvm is not yet initialized.
2. Use dv_unit to determine console instead comparering iobase.
Now you can attach ixpcom0 with physical address like this:
ixpcom* at ixpsip? addr 0x90000000 size 0x4000
Statically mapped address (0xf0000000) is still usable.

ixp12x0_clk:
1. access PLL_CFG register via bus_space
2. Make the delay() working correctly. (bug fix)
3. Start the timer device without interrupt on attach time.
Now delay() called before cpu_initclocks() works fine.

ixp12x0_pci:
1.Mapping PCI type0/1 configuration space to the upper address.
2."PCI I/O Cycle Access" mapping to same virtual address(VA==PA)
but size of this mapping increase to 1MByte because fails
cause couldnt set L2 table.
3.use bus_space address handling in ixp12x0_pci.c.
 1.4 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.3 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.2 21-Jul-2002  ichiro branches: 1.2.2; 1.2.4;
cosmetic change
mapping i21555 control/status registers
 1.1 15-Jul-2002  ichiro branches: 1.1.2;
add support ixp12x0 eva-board "IXM1200"
 1.1.2.3 30-Aug-2002  gehenna catch up with -current.
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file nappi_nppb.c was added on branch gehenna-devsw on 2002-07-21 13:00:35 +0000
 1.2.4.2 18-Oct-2002  nathanw Catch up to -current.
 1.2.4.1 21-Jul-2002  nathanw file nappi_nppb.c was added on branch nathanw_sa on 2002-10-18 02:36:35 +0000
 1.2.2.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.2.2.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.2.2.1 21-Jul-2002  jdolecek file nappi_nppb.c was added on branch kqueue on 2002-09-06 08:34:13 +0000
 1.6.108.1 11-Mar-2010  yamt sync with head
 1.7.10.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.7.4.1 12-Jun-2011  rmind sync with head
 1.9.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.9.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.9.2.2 16-Jan-2013  yamt sync with (a bit old) head
 1.9.2.1 30-Oct-2012  yamt sync with head
 1.11.2.1 18-May-2014  rmind sync with head
 1.11 27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.10 30-Jul-2012  matt branches: 1.10.2;
Make this compile again.
 1.9 01-Jul-2011  dyoung branches: 1.9.2;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.8 28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.7 17-Oct-2007  garbled branches: 1.7.16; 1.7.18; 1.7.20;
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.6 12-Jul-2007  he branches: 1.6.10;
Adapt to the new signature of callout_init().
 1.5 25-Mar-2003  igy branches: 1.5.18; 1.5.60; 1.5.68;
Add __KERNEL_RCSID tags
 1.4 17-Feb-2003  ichiro files.ixp12x0
no need device ixpcom in evbarm/conf/files.evbarm move it to
arm/ixp12x0/files.ixp12x0

ixp12x0_com.c:
some fix around address handling
1. Do not call bus_space_map() in ixpcominit(). Calling bus_space_map()
is not safe here, because bus_space_map() calls uvm_km_valloc() but
uvm is not yet initialized.
2. Use dv_unit to determine console instead comparering iobase.
Now you can attach ixpcom0 with physical address like this:
ixpcom* at ixpsip? addr 0x90000000 size 0x4000
Statically mapped address (0xf0000000) is still usable.

ixp12x0_clk:
1. access PLL_CFG register via bus_space
2. Make the delay() working correctly. (bug fix)
3. Start the timer device without interrupt on attach time.
Now delay() called before cpu_initclocks() works fine.

ixp12x0_pci:
1.Mapping PCI type0/1 configuration space to the upper address.
2."PCI I/O Cycle Access" mapping to same virtual address(VA==PA)
but size of this mapping increase to 1MByte because fails
cause couldnt set L2 table.
3.use bus_space address handling in ixp12x0_pci.c.
 1.3 02-Oct-2002  thorpej Use CFATTACH_DECL().
 1.2 27-Sep-2002  thorpej Declare all cfattach structures const.
 1.1 15-Jul-2002  ichiro branches: 1.1.2; 1.1.4; 1.1.6;
add support ixp12x0 eva-board "IXM1200"
 1.1.6.2 18-Oct-2002  nathanw Catch up to -current.
 1.1.6.1 15-Jul-2002  nathanw file nappi_nr.c was added on branch nathanw_sa on 2002-10-18 02:36:35 +0000
 1.1.4.3 10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.1.4.2 06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.1.4.1 15-Jul-2002  jdolecek file nappi_nr.c was added on branch kqueue on 2002-09-06 08:34:14 +0000
 1.1.2.2 21-Jul-2002  gehenna catch up with -current.
 1.1.2.1 15-Jul-2002  gehenna file nappi_nr.c was added on branch gehenna-devsw on 2002-07-21 13:00:36 +0000
 1.5.68.1 03-Oct-2007  garbled Sync with HEAD
 1.5.60.1 15-Jul-2007  ad Sync with head.
 1.5.18.1 03-Sep-2007  yamt sync with head.
 1.6.10.1 06-Nov-2007  matt sync with HEAD
 1.7.20.1 16-May-2008  yamt sync with head.
 1.7.18.1 18-May-2008  yamt sync with head.
 1.7.16.1 02-Jun-2008  mjf Sync with HEAD.
 1.9.2.1 30-Oct-2012  yamt sync with head
 1.10.2.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC

RSS XML Feed