Home | History | Annotate | Download | only in integrator
History log of /src/sys/arch/evbarm/integrator/integrator_machdep.c
RevisionDateAuthorComments
 1.82  24-Jun-2023  msaitoh Fix typo in error message.
 1.81  20-Apr-2023  skrll Provide a shared pmap_devmap implementation and convert all pmap_devmap
arrays to use DEVMAP_ENTRY{,_END}
 1.80  10-Aug-2021  skrll G/C unused flag
 1.79  18-Apr-2020  skrll PMAP_DEBUG has been deleted on arm
 1.78  18-Apr-2020  skrll Trailing whitespace
 1.77  16-Jul-2019  skrll branches: 1.77.8;
Consistently use vaddr_t as initarm and friends return type.

Makes no difference to binaries except for aarch64 where it's required
 1.76  21-Sep-2018  skrll Centralise defparam CONSADDR, CONSPEED, CONMODE and CONADDR into
opt_console.h and adjust.
 1.75  31-Jul-2018  skrll Sprinkle #include "opt_arm_debug.h" where VERBOSE_INIT_ARM is used
 1.74  18-Aug-2013  matt branches: 1.74.28; 1.74.30;
<arm/locore.h> fallout (fixes some include ordering errors)
 1.73  19-Feb-2013  skrll branches: 1.73.2;
Add support for the ARM Integrator/CP from Sergio L�pez.

The code hasn't been tested on real hardware, but INTEGRATOR_CP config
is useful for QEMU which supports it.
 1.72  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.71  16-Aug-2012  matt branches: 1.71.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.70  29-Jul-2012  matt Fix more -fno-common fallout.
Move more variables to common locations.
 1.69  25-Jul-2012  skrll Add support for the PL011 to plcom. Pull across a bunch of fixes from
com(4) while I'm here and do some other tidyup.

Tested on a RaspberryPi.

PL010 not tested.
 1.68  01-Jul-2011  dyoung branches: 1.68.2; 1.68.8;
#include <sys/bus.h> instead of <machine/bus.h>.
 1.67  30-Jun-2011  wiz dependant -> dependent
 1.66  26-Dec-2009  uebayasi Use cpu_* prefix to call cpu_* functions (setttb() -> cpu_setttb()); no
functional changes.
 1.65  26-Dec-2009  uebayasi Garbage collect an unused global, vm_offset_t pagetables_start.
 1.64  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.63  26-Nov-2009  matt Kill proc0paddr. Use lwp0.l_addr instead.
 1.62  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.61  30-Nov-2008  martin 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.60  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.59  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.58  27-Apr-2008  matt branches: 1.58.6; 1.58.8;
Merge kernel changes in matt-armv6 to HEAD.
 1.57  19-Jan-2008  chris branches: 1.57.6; 1.57.8; 1.57.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.56  17-May-2006  mrg branches: 1.56.34; 1.56.38; 1.56.44; 1.56.52;
in initarm(), initialise kernel_l1pt.pv_va as well as kernel_l1pt.pv_pa.
 1.55  24-Dec-2005  perry branches: 1.55.4; 1.55.6; 1.55.8; 1.55.12;
bare asm -> __asm
 1.54  11-Dec-2005  christos merge ktrace-lwp.
 1.53  12-Dec-2004  abs branches: 1.53.10;
Fix comments regarding configration bounaries
 1.52  12-Dec-2004  abs Fix comments slighly
 1.51  07-Aug-2004  rearnsha Don't use vector_page before it's been initialized.
 1.50  13-Feb-2004  wiz Uppercase CPU, plural is CPUs.
 1.49  06-Sep-2003  rearnsha Remove include of ifpga/irqhandler.h.
 1.48  06-Sep-2003  rearnsha Switch to using generic soft interrupts.
 1.47  06-Sep-2003  rearnsha General cleanups of the bootstrap code
 1.46  06-Sep-2003  rearnsha When an Integrator board has less than 256M of SDRAM fitted, the
memory that is "obscured" by the SSRAM is visible at a wrapped address.
So we can use the full amount of SDRAM in almost all cases.
 1.45  06-Sep-2003  rearnsha Remove a verbose-boot message that kills the bootstrap (since the
console port mapping has just been moved).
 1.44  06-Sep-2003  rearnsha The third argument to pmap_map_chunk is the pa not the va.
 1.43  15-Jul-2003  lukem __KERNEL_RCSID()
 1.42  15-Jun-2003  thorpej branches: 1.42.2;
Replace the ad-hoc "section mapping table" for static device mappings
with a more generic "devmap" structure that can also handle mappings
made with large and small pages. Add new pmap routines to enter these
mappings during bootstrap (and "remember" the devmap), and routines to
look up the static mappings once the kernel is running.
 1.41  14-Jun-2003  thorpej Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
 1.40  22-May-2003  thorpej Move KERNEL_VM_SIZE into the C files where its used.
 1.39  21-May-2003  thorpej Move KERNEL_VM_BASE inside where it is used (it won't be there for long).
 1.38  17-May-2003  thorpej Decrease the verbosity level unless VERBOSE_INIT_ARM is defiend.
 1.37  05-May-2003  he Remove declaration of unused local variable: kernel_ptpt.
 1.36  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.35  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.34  03-May-2003  thorpej Remove old pmap support for platforms which have fully switched over.
 1.33  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.32  26-Apr-2003  ragge Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
 1.31  02-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.30  01-Apr-2003  mycroft There are two #defines of CONSPEED in here; didn't make sense to me.
 1.29  17-Jan-2003  thorpej Merge the nathanw_sa branch.
 1.28  27-Sep-2002  provos remove trailing \n in panic(). approved perry.
 1.27  24-Aug-2002  thorpej 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.26  21-Aug-2002  thorpej Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.
 1.25  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.24  30-Jul-2002  thorpej Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
 1.23  08-Jul-2002  rearnsha Changes to allow for the fact that the kernel is now mapped at
0xc0200000. Tidy up to remove dead comments and code.
Allow more than one L1 entry for the kernel space and use the 'spare'
memory below the kernel code for the initial page tables in the same
way that the iq80310 does.
 1.22  12-Apr-2002  thorpej branches: 1.22.2; 1.22.4;
Remove footbridge-specific stuff that will never apply on the Integrator.
 1.21  05-Apr-2002  thorpej * Rewrite the 32-bit ARM pte.h based on the ARM architecture manual.
Significant cleanup, here, including better PTE bit names.
* Add XScale PTE extensions (ECC enable, write-allocate cache mode).
* Mechanical changes everywhere else to update for new pte.h. While
doing this, two bugs (as a result of typos) were fixed in

arm/arm32/bus_dma.c
evbarm/integrator/int_bus_dma.c
 1.20  03-Apr-2002  thorpej Clean up handling of the vector page on 32-bit ARM systems:
* Don't refer to VA 0, instead refer to a new variable: vector_page
* Delete the old zero_page_*() functions, replacing them with a new
one: vector_page_setprot().
* When manipulating vector page mappings in user pmaps, only do so if
the vector page is below KERNEL_BASE (if it's above KERNEL_BASE, the
vector page is mapped by the kernel pmap).
* Add a new function, arm32_vector_init(), which takes the virtual
address of the vector page (which MUST be valid when the function
is called) and a bitmask of vectors the kernel is going to take
over, and performs all vector page initialization, including setting
the V bit in the CPU Control register ("relocate vectors to high
address"), if necessary.
 1.19  25-Mar-2002  thorpej * Fix use of pmap_curmaxkvaddr.
* Use the PTP hint in the pmap.
 1.18  23-Mar-2002  thorpej * Rename PROCESS_PAGE_TBLS_BASE -> PTE_BASE
* Rename ALT_PAGE_TBLS_BASE -> APTE_BASE
* Garbage-collect PAGE_TABLE_SPACE_START
 1.17  03-Mar-2002  chris Implement pmap_growkernel for arm32 based ports.
Note that this has been compiled on some systems, cats, IQ80310, IPAQ, netwinder and shark (note that shark's build is currently broken due to other reasons), but only actually run on cats.
Shark doesn't make use of the functionality as I believe there has to be a correlation between OFW and the kernel tables so that calls into OFW work.
 1.16  22-Feb-2002  thorpej Fix the "va" argument to pmap_map_entry() when mapping kernel_ptpt.
 1.15  22-Feb-2002  thorpej Change pmap_map_entry() to work like pmap_map_chunk(): take a pointer
to the L1 table and a virtual address, and no pointer to the L2 table.
The L2 table will be looked up by pmap_map_entry(), which will panic
if the there is no L2 table for the requested VA.

NOTE: IT IS EXTREMELY IMPORTANT THAT THE CORRECT VIRTUAL ADDRESS
BE PROVIDED TO pmap_map_entry()! Notably, the code that mapped
the kernel L2 tables into the kernel PT mapping L2 table were not
passing actual virtual addresses, but rather offsets into the range
mapped by the L2 table. I have fixed up all of these call sites,
and tested the resulting kernel on both an IQ80310 and a Shark.
Other portmasters should examine their pmap_map_entry() calls if
their new kernels fail.
 1.14  21-Feb-2002  thorpej Keep track of which kernel PTs are available during bootstrap,
and let pmap_map_chunk() lookup the correct one to use for the
current VA. Eliminate the "l2table" argument to pmap_map_chunk().

Add a second L2 table for mapping kernel text/data/bss on the
IQ80310 (fixes booting kernels with ramdisks).
 1.13  21-Feb-2002  thorpej Always pass the L1 table to pmap_map_chunk(). This allows pmap_map_chunk()
to perform some error checking.
 1.12  21-Feb-2002  thorpej map_chunk() -> pmap_map_chunk(), and move it to pmap.c
 1.11  20-Feb-2002  thorpej map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c
 1.10  20-Feb-2002  thorpej Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that
takes a prot and a "cacheable" indicator.
 1.9  20-Feb-2002  thorpej Rename map_section() to pmap_map_section(), move it to pmap.c, and give it
an extra argument (prot - specifies protection of the mapping).
 1.8  30-Jan-2002  thorpej Pull in <evbarm/ifpga/irqhandler.h> for now.
 1.7  25-Jan-2002  thorpej Overhaul of the ARM cache code. This is mostly a simplification
pass. Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

icache_sync_all Synchronize I-cache
icache_sync_range Synchronize I-cache range

dcache_wbinv_all Write-back and Invalidate D-cache
dcache_wbinv_range Write-back and Invalidate D-cache range
dcache_inv_range Invalidate D-cache range
dcache_wb_range Write-back D-cache range

idcache_wbinv_all Write-back and Invalidate D-cache,
Invalidate I-cache
idcache_wbinv_range Write-back and Invalidate D-cache,
Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives. Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.
 1.6  23-Nov-2001  thorpej branches: 1.6.2;
Use <arm/undefined.h> instead of <machine/undefined.h>.
 1.5  23-Nov-2001  thorpej No need to pull in <machine/pte.h> directly.
 1.4  09-Nov-2001  thorpej branches: 1.4.2;
Add some rudimentary support for ELF symbols in DDB on the ARM ports.
On platforms which load the kernel sans symbols directly from firmware
(possibly in e.g. S-Record format), call ddb_init() with empty arguments,
so that it will search any compiled in SYMTAB_SPACE. On all other platforms,
if __ELF__, also call ddb_init() with empty arguments until ELF bootloaders
which pass symbol information are ready.
 1.3  09-Nov-2001  thorpej Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
 1.2  09-Nov-2001  thorpej Remove unnecessary prototypes for zero_page_read{only,write}().
 1.1  27-Oct-2001  rearnsha Basic support for the Integrator/AP board.
 1.4.2.9  18-Oct-2002  nathanw Catch up to -current.
 1.4.2.8  27-Aug-2002  thorpej Sync with -current.
 1.4.2.7  01-Aug-2002  nathanw Catch up to -current.
 1.4.2.6  24-Jun-2002  nathanw Curproc->curlwp renaming.

Change uses of "curproc->l_proc" back to "curproc", which is more like the
original use. Bare uses of "curproc" are now "curlwp".

"curproc" is now #defined in proc.h as ((curlwp) ? (curlwp)->l_proc) : NULL)
so that it is always safe to reference curproc (*de*referencing curproc
is another story, but that's always been true).
 1.4.2.5  17-Apr-2002  nathanw Catch up to -current.
 1.4.2.4  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.4.2.3  28-Feb-2002  nathanw Catch up to -current.
 1.4.2.2  08-Jan-2002  nathanw Catch up to -current.
 1.4.2.1  09-Nov-2001  nathanw file integrator_machdep.c was added on branch nathanw_sa on 2002-01-08 00:24:26 +0000
 1.6.2.7  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.6.2.6  06-Sep-2002  jdolecek sync kqueue branch with HEAD
 1.6.2.5  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.6.2.4  16-Mar-2002  jdolecek Catch up with -current.
 1.6.2.3  11-Feb-2002  jdolecek Sync w/ -current.
 1.6.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.2.1  23-Nov-2001  thorpej file integrator_machdep.c was added on branch kqueue on 2002-01-10 19:42:33 +0000
 1.22.4.2  14-Feb-2003  he Revert pull-up of revision 1.26 (requested by rearnsha in ticket #1170):
Revert cached memory access to L1 tables, this causes instability
on the release branch.
 1.22.4.1  21-Nov-2002  he Pull up revision 1.26 (requested by thorpej in ticket #712):
Do cached memory access to L1 tables, making sure to
write-back the cache after any L1 table modifications.
 1.22.2.2  30-Aug-2002  gehenna catch up with -current.
 1.22.2.1  16-Jul-2002  gehenna catch up with -current.
 1.42.2.5  18-Dec-2004  skrll Sync with HEAD.
 1.42.2.4  21-Sep-2004  skrll Fix the sync with head I botched.
 1.42.2.3  18-Sep-2004  skrll Sync with HEAD.
 1.42.2.2  12-Aug-2004  skrll Sync with HEAD.
 1.42.2.1  03-Aug-2004  skrll Sync with HEAD
 1.53.10.2  21-Jan-2008  yamt sync with head
 1.53.10.1  21-Jun-2006  yamt sync with head.
 1.55.12.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.55.8.1  24-May-2006  yamt sync with head.
 1.55.6.1  01-Jun-2006  kardel Sync with head.
 1.55.4.1  09-Sep-2006  rpaulo sync with head
 1.56.52.1  20-Jan-2008  bouyer Sync with HEAD
 1.56.44.1  18-Feb-2008  mjf Sync with HEAD.
 1.56.38.2  23-Mar-2008  matt sync with HEAD
 1.56.38.1  09-Nov-2007  matt Make all the evbarm kernels build again. Fix lossage from rebase.
 1.56.34.1  28-Feb-2008  rjs Sync with HEAD.
 1.57.10.4  11-Mar-2010  yamt sync with head
 1.57.10.3  19-Aug-2009  yamt sync with head.
 1.57.10.2  04-May-2009  yamt sync with head.
 1.57.10.1  16-May-2008  yamt sync with head.
 1.57.8.1  18-May-2008  yamt sync with head.
 1.57.6.2  17-Jan-2009  mjf Sync with HEAD.
 1.57.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.58.8.1  19-Jan-2009  skrll Sync with HEAD.
 1.58.6.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.68.8.1  09-Aug-2012  jdc Pull up revisions:
src/sys/arch/evbarm/dev/plcomreg.h revisions 1.2,1.3,1.4
src/sys/arch/evbarm/conf/INTEGRATOR revision 1.65
src/sys/arch/evbarm/dev/plcom.c revisions 1.34,1.35,1.36,1.37,1.38,1.39,1.40
src/sys/arch/evbarm/ifpga/plcom_ifpga.c revisions 1.12,1.13,1.14
src/sys/arch/evbarm/dev/plcomvar.h revisions 1.9,1.10,1.11
src/sys/arch/evbarm/ifpga/plcom_ifpgavar.h revision 1.2
src/sys/arch/arm/arm/cpufunc.c revisions 1.105,1.108
src/sys/arch/arm/arm32/cpu.c revision 1.79
src/sys/arch/arm/include/armreg.h revisions 1.49,1.54
src/sys/arch/arm/arm32/pmap.c revision 1.229
src/sys/arch/arm/arm32/arm32_machdep.c revision 1.77
src/sys/arch/arm/include/cpu.h revision 1.64
src/sys/arch/arm/arm/cpufunc_asm_arm1136.S revision 1.3
src/sys/arch/arm/arm/cpufunc_asm_arm11x6.S revision 1.1
src/sys/arch/arm/conf/files.arm revision 1.106
src/sys/arch/arm/include/cpufunc.h revision 1.57
src/sys/dev/sdmmc/sdhc.c revisions 1.14,1.24
src/sys/dev/sdmmc/sdhcvar.h revisions 1.7,1.8
src/sys/arch/evbarm/ifpga/ifpgareg.h revision 1.4
src/sys/arch/evbarm/integrator/integrator_machdep.c revision 1.69
src/sys/arch/arm/broadcom/bcm2835_dma.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_emmc.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_intr.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_intr.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835_obio.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_plcom.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_pm.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_pmvar.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835_space.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835_tmr.c revision 1.1
src/sys/arch/arm/broadcom/bcm2835reg.h revision 1.1
src/sys/arch/arm/broadcom/bcm2835var.h revision 1.1
src/sys/arch/arm/broadcom/bcm_amba.h revision 1.1
src/sys/arch/arm/broadcom/files.bcm2835 revision 1.1
src/sys/arch/evbarm/Makefile revision 1.9
src/sys/arch/evbarm/conf/RPI revision 1.1
src/sys/arch/evbarm/conf/files.rpi revision 1.1
src/sys/arch/evbarm/conf/mk.rpi revision 1.1
src/sys/arch/evbarm/conf/std.rpi revision 1.1
src/sys/arch/evbarm/rpi/genassym.cf revision 1.1
src/sys/arch/evbarm/rpi/rpi.h revision 1.1
src/sys/arch/evbarm/rpi/rpi_machdep.c revision 1.1
src/sys/arch/evbarm/rpi/rpi_start.S revision 1.1,1.2
src/etc/etc.evbarm/Makefile.inc revision 1.28
(requested by skrll in ticket #454).

don't mix #define<TAB> and #define<SPACE> in a file.

avoid warning with options PLCOM_DEBUG for INTEGRATOR.

Rename register values. No functional change - same code before and after.

Existing names are prefixed with PL01X_ where they're common between the
PL010 and the PL011. The PL010_/PL011_ prefixes are added where they're
found only on the respective chips.

Replace the simple_lock with a kmutex_t. Update the locking to match
com(4) in the few places it didn't already.

DOH. Replace a line that got accidently deleted in the last commit.

device_t/softc split
struct device * -> device_t
struct cfdata * -> cfdata_t

Add the 'Z' to the 1176 cpu product name.

ok matt@

Fix locking botch introduced in 1.36.

Fix a KASSERT. From/OK'ed by matt@

Fix racy softint dispatch that lead to KASSERT(si->si_active) in
softint_execute

Discussed with matt@. "Looks good to me"

Add the documented ARM11[37]6 Auxiliary control register defines.

Add support for the ARM1176JZS

Add a flag for the lack of LED_ON in HOST_CTL (ti omap3 doesn't do that).

Provide a method for attachments to specify capabilites.

Add support for the PL011 to plcom. Pull across a bunch of fixes from
com(4) while I'm here and do some other tidyup.

Tested on a RaspberryPi.

PL010 not tested.

Initial commit of support for the RaspberryPI (www.raspberrypi.org)

This is enough for serial console via the gpio header pins and to get to
multiuser.

A huge thank you to Matt Thomas for all his help.

Add RPI to KERNEL_SETS

Remove #if 0 code.
 1.68.2.2  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.68.2.1  30-Oct-2012  yamt sync with head
 1.71.2.3  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.71.2.2  25-Feb-2013  tls resync with head
 1.71.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.73.2.1  28-Aug-2013  rmind sync with head
 1.74.30.3  21-Apr-2020  martin Sync with HEAD
 1.74.30.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.74.30.1  10-Jun-2019  christos Sync with HEAD
 1.74.28.2  30-Sep-2018  pgoyette Ssync with HEAD
 1.74.28.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.77.8.1  20-Apr-2020  bouyer Sync with HEAD

RSS XML Feed