Commit Graph

32447 Commits

Author SHA1 Message Date
simonb
7f7785b33b Add the sysmon device. 2002-08-01 23:18:07 +00:00
simonb
01aba18e65 Add wdog device.
Add kttcp pseudo-device.
Neaten up a little.
2002-08-01 23:17:04 +00:00
simonb
d16ca1844f Add driver for 405gp (and other 4xx?) watchdog timer. 2002-08-01 23:15:37 +00:00
thorpej
e3e6d7dfa5 Move the DMA tag initialization functions into i80312.c. 2002-08-01 19:55:02 +00:00
thorpej
f546baba66 Move the DMA tag initialization functions into i80321.c. 2002-08-01 19:40:07 +00:00
hannken
5868a9832a Convert to new device buffer queue interface.
Approved by: NISHIMURA Takeshi <nsmrtks@netbsd.org>
2002-08-01 12:45:20 +00:00
hannken
0de052bd51 Convert to new device buffer queue interface.
Approved by: Noriyuki Soda <soda@netbsd.org>
2002-07-31 18:48:17 +00:00
thorpej
dce4476374 Overhaul how DMA ranges work in the ARM bus_dma implementation.
A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.
2002-07-31 17:34:23 +00:00
matt
643ea53c65 Use 11 for the USER_SR since we use BAT 12 for PCI MEM space. 2002-07-31 16:23:37 +00:00
isaki
733ad2d0f4 Fix compile warnings in debug code. 2002-07-31 11:01:26 +00:00
simonb
e5a27ab142 Sync bcm1250 headers with cfe-1.0.32. 2002-07-31 06:26:24 +00:00
simonb
e9dfdd9b2e Add support for the watchdog timers on the BCM1xxx parts. 2002-07-31 05:30:20 +00:00
simonb
4464952a27 Use evbmips/evbmips/conf_common.c since the sbmips port's conf.c was
mostly in-sync with the evbmips one.  The kttcp device has changed
device number; users who have created that will need to re-create it.
2002-07-31 04:04:53 +00:00
simonb
34b375c0dd Add kttcp, sysmon and broadcom/sibyte devices. 2002-07-31 03:42:54 +00:00
thorpej
79af00bddb 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.
2002-07-31 00:20:51 +00:00
simonb
314a0f00d1 Fix the mask for the watchdog init and count registers. 2002-07-30 23:10:04 +00:00
nathanw
3fe600dd5c Experimentation reveals that the implementation of GET_ENV on at least
some systems chokes if the buffer is not 8-byte aligned. GCC only aligns
character arrays to 4-byte boundaries by default, so it's possible to get
unlucky and die in the boot blocks with a "kernel stack not valid halt".

Avoid the problem by using a local, aligned buffer as the argument to GET_ENV,
and copying the result into the caller's buffer.

Should fix PRs port-alpha/17682 and port-alpha/17717.
CVS ----------------------------------------------------------------------
2002-07-30 20:36:42 +00:00
thorpej
d3aa5664b7 Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
2002-07-30 16:16:38 +00:00
thorpej
3dcad9ac9e Don't use pmap_kenter_pa() in pmap_map(); doing so causes an assertion
failure in pmap_kenter_pa().
2002-07-30 16:07:23 +00:00
matt
3e158de7c1 Don't define register references if not KERNEL or STANDALONE. 2002-07-30 06:09:10 +00:00
thorpej
5fed6739d9 Use more descriptive interrupt names. 2002-07-30 04:45:41 +00:00
thorpej
d8eb148780 Clean up some comments. 2002-07-29 22:00:00 +00:00
thorpej
26f7a64dc3 Add iopwdog (i80321 built-in watchdog timer), fxp, and inphy. 2002-07-29 18:42:27 +00:00
thorpej
2bbd3be11a Add support for the i80321 watchdog timer. 2002-07-29 18:40:04 +00:00
thorpej
3ab4598cc0 Add sysmon at cdev 101. 2002-07-29 18:26:58 +00:00
thorpej
2367c7fff8 Add support for attaching IOP built-in sub-devices (aau, dma, ssp,
watchdog, etc.)
2002-07-29 17:37:14 +00:00
thorpej
c92ad565ad * Remove some AAU definitions -- they will be defined elsewhere in
a future commit.
* Fix a typo in the watchdog enable names.
* Add SSP (synchronous serial port, for SPI, Microwire, etc.) definitions.
2002-07-29 17:28:06 +00:00
simonb
c38f2b0214 Remove some debug code accidently left in. 2002-07-29 16:25:02 +00:00
simonb
10a72d78d1 Add support for the Alchemy Semiconductor Pb1000 evaluation board for
their Au1000 CPU.  Should also work with little or no tweaking for the
Pb1500 board for the Au1500 CPU as well.
2002-07-29 16:22:55 +00:00
simonb
3f8c0bc7c5 Move the soft interrupts IPL masks from port-specific code to
board-specific code.
Change a u_long to a uint32_t in the timer calibration routines.
2002-07-29 16:21:03 +00:00
simonb
c61cf25192 Remove prototype for non-existant softintr_dispatch().
Add/modify a few comments.
2002-07-29 16:14:05 +00:00
simonb
99eb5608ad Don't install intr.h isa_machdep.h pci_machdep.h rnd.h for userland. 2002-07-29 15:52:46 +00:00
simonb
223e50d28e Add a slightly modified dev/ic/com.c that supports the Alchemy
Semiconductor Au1x00 series on-chip UARTs.  Will be merged with
the original com.c driver once a few issues are tidied up.  Main
differences from a standard 16550 UART are:
 - separate rxdata and txdata registers
 - single 16-bit register for the clock divisor
 - "enable uart" register
2002-07-29 15:42:41 +00:00
simonb
ca42af5e80 Add support for the the Alchemy Semiconductor Au1x00 series on-chip
devices.  Currently the serial ports and ethernet MAC have working
drivers, and this has only been physically tested on the Au1000 CPU,
but these devices should work on the Au1100 and Au1500 CPUs too.
2002-07-29 15:39:11 +00:00
mrg
117d4dd965 clean up esp & isp attachment lines. 2002-07-29 14:35:44 +00:00
mrg
3a0d60972a bump offset by RF_PROTECTED_SECTORS if FS_RAID 2002-07-29 14:34:12 +00:00
itojun
f8e5e9c295 be friendly with gcc-3.1.1 -O2, which takes advantage of ANSI C
pointer aliasing rule (gcc optimization/7427).  from tsubai, sync w/kame
2002-07-29 09:14:36 +00:00
mrg
321856e31b merge with sparc. 2002-07-29 07:07:15 +00:00
grant
b26eca1528 "DVMA coherent" -> ": DVMA coherent"
noted by Matt Thomas on icb.
2002-07-29 06:39:41 +00:00
thorpej
7b652cb939 Change the way that DMA map syncs are done. Instead of remembering
the virtual address for each DMA segment, just cache a pointer to the
original buffer/buftype used to load the DMA map, and use that.  This
lets us shrink the bus_dma_segment_t down from 12 bytes to 8, and the
cache flushing is also more efficient.

Tested on an i80321 -- changes to others are mechanical.
2002-07-28 17:54:05 +00:00
chs
23ec03fb27 add a config for GENERIC + MP. 2002-07-28 07:40:13 +00:00
chs
03315186b6 install atomic.h. 2002-07-28 07:11:25 +00:00
chs
a7171ee431 add some atomic operations. 2002-07-28 07:09:28 +00:00
chs
fccc379b30 restructure the FPU and AltiVEC code so that it works for MP. 2002-07-28 07:07:44 +00:00
chs
f1953a9667 terminate the MP idle stack for the boot CPU. 2002-07-28 07:07:00 +00:00
chs
b06c12694c clean up secondary CPU startup.
use atomic operators for IPIs.
restructure the FPU and AltiVEC code so that it works for MP.
2002-07-28 07:06:45 +00:00
chs
64094057a1 resync the MP and non-MP trap_subr's. 2002-07-28 07:06:27 +00:00
chs
a7763f6e2c create a syscall_plain() like on other platforms
and avoid getting the kernel lock for MPSAFE syscalls.
2002-07-28 07:05:53 +00:00
chs
0e5816fca3 remove a local copy of mfmsr(). 2002-07-28 07:05:19 +00:00
chs
7f81a49168 propagate the MP idle-loop fix to ppc from the other ports:
Move call to sched_unlock_idle to later in the context switch to
  eliminate a race where another processor could grab the outgoing
  process before we were done saving our state into it, with predictable
  results.

  Bug spotted by Frank van der Linden <fvdl@wasabisystems.com>

also, don't re-enable interrupts temporarily in the middle of
switching to a new process, just wait until we're completely switched.
this didn't work on MP and it's not worth the effort.
2002-07-28 07:05:06 +00:00