Commit Graph

23663 Commits

Author SHA1 Message Date
pk
aa81eb0f8b This file is now in sys/dev/sun. 2000-08-23 10:07:25 +00:00
pk
c85ada8053 These drivers are now in sys/dev/sun 2000-08-23 10:05:46 +00:00
scw
da7dfaefcc Though the VMEchip2 documentation is not explicit on the subject, a
VMEbus analyser confirms that D8 transfers are possible on all the
master ranges.
2000-08-23 08:13:14 +00:00
pk
317a570728 These devices will never be found on sun4u machines. 2000-08-22 21:43:35 +00:00
pk
1e1790859a Pull in sys/dev/sun/files.sun.
Remove driver declarations that are now in /sys/dev/{sbus,sun}
2000-08-22 21:35:45 +00:00
pk
91f1b275c9 Remove driver declarations that are now in /sys/dev/{sbus,sun} 2000-08-22 21:29:49 +00:00
pk
702e1dd9e6 Use the framebuffer drivers & header files that now live in /sys/dev/sun. 2000-08-22 21:28:24 +00:00
bjh21
769e82477f Move contents of <machine/spl.h> to <machine/intr.h>.
Add IST_* macros to <machine/intr.h>, mostly for the feature-list tickbox.
Generally tidy up.
2000-08-22 21:27:21 +00:00
bjh21
6e3e3a755d Don't include <machine/spl.h> any more.
Include <machine/intr.h> everywhere than uses spl(9) functions.
2000-08-22 21:22:48 +00:00
thorpej
58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
leo
67f170f93c Need to specify BINDIR or the executable ends up in / 2000-08-22 14:26:04 +00:00
abs
02a00854f4 Diet a little to help fitting onto a floppy 2000-08-22 13:36:14 +00:00
wdk
caa807ac35 * Tidy up reading of Mips volume header information
All compatable values are copied from the MIPS volume header to the
  BSD disklabel structures.

* Add support for writing Mips volume header.

* Remove support for writing NetBSD label directly (this was broken)

These changes allow the kernel to read either a BSD disklabel created under
NetBSD/sparc or a MIPS volume header created under RISC/os.

There is a small amount of losage with the conversion between the 2
types of disk labels (mainly to do with file system types).
A table is used to map partition numbers and types between the two
types, and unless someone does something real fancy (or crazy) it should
work in both senario's

This change will allow the stand alone shell to directly load a NetBSD
kernel and mount a file system, avoiding the need for a seperate disk or
bootp server to bootstrapping NetBSD.

NetBSD/mipsco is now self sufficiant.  We are not far from having a
miniroot filesystem and removing the need to have another NetBSD
machine to create the base filesystems.

Minor Trap for young players:
   The root partition must be created with 'newfs -O' in order for the
   stand alone shell to boot the kernel

TODO:
   Add support for writing NetBSD disk labels back in - it will be useful
   for non boot disks.   I'm just not sure how to control the 2 behavours
2000-08-22 11:59:34 +00:00
tsubai
eaa177d2f1 Add a missing entry to chrtoblktbl. 2000-08-22 11:48:23 +00:00
tsubai
f406aae2d2 MD part of mcount. 2000-08-22 11:25:49 +00:00
joda
71cabc49dd (rbus_pccbb_parent_mem): make the rbus minimum start address
configurable (RBUS_MIN_START), since default value of 1GB doesn't work
well on some ThinkPads
2000-08-22 08:42:55 +00:00
erh
df316aa06c Change the heap limit from 40000 to 50000 so the heap is the same size as it was before the "Hack from Hell'. 2000-08-22 02:46:30 +00:00
scw
72f826d727 A VMEbus RAM board configured for use by mvme68k can now be
treated as just another available VMEbus slave image as far as
bus_dma(9) is concerned.

To preserve faster onboard memory, mvmebus_dmamem_alloc() will
allocate first from the offboard VMEbus RAM slave image if present,
and assuming its address modifier matches the caller's constraints.
This can be overidden by specifying the BUS_DMA_ONBOARD_RAM flag.
2000-08-21 20:50:13 +00:00
tsubai
365ec2aa42 Scheduler locking changes. 2000-08-21 18:46:03 +00:00
bjh21
a776e1268d General cleanup of definitions of translation table stuff.
Also add PPN[8] for the A540.  Now all I need are two more RAM cards for my
A540 so I can test it.
2000-08-21 14:37:51 +00:00
itohy
5755dca55d Fix typos.
No functional changes.
2000-08-21 07:39:42 +00:00
thorpej
23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06:31 +00:00
thorpej
2648536e0c Add experimental code for pausing other CPUs upon a CPU's
entry into the debugger.  While I'm here, add splsched()
as per spl(9).
2000-08-21 02:03:12 +00:00
scw
3cac59ee4f Expand on how VMEbus master addressing modes are specified, to better
deal with dynamic address modifier generation based on the CPU's
function code pins.

Also implement VMEbus slave mode for mvme147. (Not yet 100% working.)
2000-08-20 21:51:31 +00:00
thorpej
a86d1f4891 Add a lock around the scheduler, and use it as necessary, including
in the non-MULTIPROCESSOR case (LOCKDEBUG requires it).  Scheduler
lock is held upon entry to mi_switch() and cpu_switch(), and
cpu_switch() releases the lock before returning.

Largely from Bill Sommerfeld, with some minor bug fixes and
machine-dependent code hacking from me.
2000-08-20 21:50:06 +00:00
scw
3f2adcb2b0 Checkpoint of code to add VMEbus slave support using vme_dmamap* and
vme_dmamem*.

This is still a work in progress, but seems to DTRT on mvme167 so far.

TODO:
	. Get VMEbus slave mode going on mvme147. This should be easy.
	. Fix up the A16 slave mappings.
	. Bounce buffer support. (Messy, but pretty much a `must have'.)
	. Figure out how to deal with `location monitor' interrupts
	  within the framework. (Useful for Busnet, among other things.)
	. It would be nice to make use of the VMEchip2's DMA facilities...
2000-08-20 17:07:41 +00:00
bjh21
567f2768d1 Implement the easy ptrace requests and turn off the difficult ones. 2000-08-20 15:16:49 +00:00
mrg
e144281c4e move ofwboot & bootblk here; add a Makefile to build ofwboot.net 2000-08-20 14:58:36 +00:00
mrg
85737336b4 add/merge sparc64 support. 2000-08-20 14:57:16 +00:00
mrg
9bea0e1a52 fix ultrasparc support. 2000-08-20 14:56:28 +00:00
mrg
b74059e5cf move everything to arch/sparc/stand; leave the Makefile behind. 2000-08-20 14:53:19 +00:00
mrg
651a58c846 add SOFTDEP 2000-08-20 14:51:56 +00:00
pk
4ec48d799f fbio.h moded to sys/dev/sun.
Retain symlink from /usr/include/machine.
2000-08-20 14:02:59 +00:00
bjh21
ba6517aa9c Adjust register spacing to take A0 into account. This should make supporting
8-bit uses of the 8005 (such as, I suspect, 8-bit Ether3 cards) easier.
2000-08-20 13:43:23 +00:00
bjh21
ef49e5cd42 Exclude cpu_Debugger if DDB is not defined. 2000-08-20 13:41:44 +00:00
tsubai
31ec486214 Correct asm parameter to avoid gcc uninitialized warning. 2000-08-20 07:48:45 +00:00
tsubai
1267826d5d Increase stack size. 2000-08-20 07:04:59 +00:00
tsubai
58aaeaae7f In decr_intr(), update lasttb only when clock interrupt is not masked. 2000-08-20 07:02:41 +00:00
tsubai
d832bf8e95 Add "type" argument to openpic_enable_irq(). 2000-08-20 06:56:42 +00:00
thorpej
dd87a44f4a Initialize PV head simple locks, done slightly differently than
in the sommerfeld_i386mp_1 branch.
2000-08-19 19:48:53 +00:00
wdk
9ac68bcb51 - Add support for calling most prom firmware functions
- Using the prom getenv function determine the correct console port

- Remove old prom function hooks

- Tidy up bootflags (remove upper case names, fixup RB_ASKNAME) as
  recommended by Jaromír Doleèek
2000-08-19 12:13:46 +00:00
wrstuden
17c0d4d853 Add some new partition types, and flags. Have the Apple Partition Map
code ignore the new partition types, and look for the new "USR" partition
flag.

From SUNAGAWA Keiki <kei_sun@ba2.so-net.ne.jp> with slight changes by me.

Closes PR port-macppc/10046
2000-08-18 22:40:28 +00:00
bjh21
cc396125ae Add support for clearing IRQ 0, which is latched by the IOEB (on IOEB systems). 2000-08-18 12:50:00 +00:00
sato
d5b133164a - disable warning: add missing argument. 2000-08-18 07:33:14 +00:00
bjh21
a81231398b Oops. Remember to close the comment! 2000-08-17 22:09:10 +00:00
wdk
702ec79b19 #include <mips/locore.h> no longer required since implementing bus_space(9)
remove unused extern variable that is never used in mipsco port
2000-08-17 21:26:34 +00:00
bjh21
6bc85d382a Add cdevsw entries for bpf, tun, com, lpt. 2000-08-17 16:31:52 +00:00
bjh21
7fd0191223 Hard-wire the unit number of the on-board wdc so podules don't confuse it.
Add commented-out wd, atapibus etc in GENERIC and FOURMEG.  Not yet tested.
2000-08-17 13:38:51 +00:00
msaitoh
4a9013cf38 add code to mask mmucr register (SH4 only)
I'm sorry, I'd forgotten to commit it for a long time.
2000-08-17 13:13:28 +00:00
msaitoh
a8fe4a6776 check INTEVT_SCIF (SH4 only)
I'm sorry, I'd forgotten to commit it for a long time.
2000-08-17 13:07:51 +00:00
wdk
b9333bd4e7 Check for memory aliases when sizing physical memory. Remove 32MB memory
restriction.

Tested with 32 x 1MB SIMM's plus mix of 4MB and 1MB SIMM's to ensure the
aliases is detected in all memory configuratiions.
2000-08-17 05:05:01 +00:00
msaitoh
7369c6d979 add an INTEVT code for WDT 2000-08-17 00:01:53 +00:00
bjh21
999646a30b Add some extra levels for MI drivers. 2000-08-16 23:58:29 +00:00
bjh21
d7eebd9227 Basic driver for CHIPS 82C710 Universal Peripheral Controller and friends,
as used on later arm26 system (A5000, A4, A3010, A3020, A4000).

What we have got:
...
upc0 at iobus0 base 0x010000: config state bb 87 1c 00 00
fdc at upc0 offset 0x3f4 not configured
wdc0 at upc0 offset 0x1f0
lpt0 at upc0 offset 0x278
com0 at upc0 offset 0x3f8: ns8250 or ns16450, no fifo
...

What we haven't got:
 - FDC support (found, but not configured).
 - Clearing lpt interrupts on arm26 systems (needs help from IOEB).
 - A upc(4) manual page.
 - More than minimal testing (my A3020s don't have root devices).
 - A proper probe routine (arm26 can't use one anyway).
2000-08-16 23:56:08 +00:00
wdk
4cad781e16 Parse bootflags and attempt to find the root device from the boot command line 2000-08-16 21:54:43 +00:00
wdk
bf69eb6def Trap and report memory parity errors 2000-08-16 21:00:39 +00:00
pk
1f76e23f2c Drop two #ifdef SUN4U's, since sparc{64}/include/instr.h' are now synced. 2000-08-16 11:36:36 +00:00
pk
d48d0665e9 Sync with sparc64. 2000-08-16 11:30:38 +00:00
pk
814e226e9d Fix two printf formats: %ld' -> %d'. 2000-08-16 11:29:42 +00:00
mrg
ac5a03b4eb find loadfile_machdep.h on sparc64. 2000-08-16 08:24:01 +00:00
mrg
286b5c3fbf backout previous; unintentional. 2000-08-16 08:21:52 +00:00
mrg
ecd972e9cb include the sparc loadfile_machdep.h as-is; we can blow this header away
completely later.
2000-08-16 08:17:49 +00:00
mrg
3eeab3822d deal with 64 bit ELF 2000-08-16 08:16:58 +00:00
thorpej
b0dc085df7 Move the TSS selector out of the PCB and put it into mdproc. We
need to access this when we have the proclist locked for reading,
and thus cannot store it in the PCB (which may be swapped out).

As part of this, call pmap_activate() from cpu_switch() to switch
to the new address space, and refresh the PCB's copy of the LDT
selector from the pmap structure (see above paragraph).  We need
to do this for MP support anyhow.

Fixes a "panic: spinlock_switchcheck: CPU 0 has 1 spin locks" via
gdt_compact() reported by Nathan Williams.
2000-08-16 04:44:35 +00:00
thorpej
5a7793edd9 Implement MP-safe lazy FP context switching, modeled on the
way Bill Sommerfeld implemented it for x86 (and bug fixes
fed back to Bill :-)
2000-08-15 22:16:17 +00:00
ross
37262919a9 Edit adv0 comment to include "SCSI"; now 'grep -v -i SCSI GENERIC' works. 2000-08-15 20:09:26 +00:00
fvdl
534b45c853 Move identifycpu to a place where it gets called earlier in the process,
so that special setup functions needed for some CPUs will be run before
some things (like UVM) are inited.

Add vm_page_zero_enable = FALSE to the cyrix 6x86 case, as page zeroing
while idle causes problems.
2000-08-15 18:21:44 +00:00
thorpej
c7b8439ec4 - Make lazy I-sync a little safer -- always mark the pmap as needing
I-sync in pmap_remove_mapping() if the old mapping had PG_EXEC, and
  kick curcpu (IMB) or other CPUs (via an IPI) only if the pmap was
  the kernel pmap or active on other CPUs (curcpu is handled in userret()).
- Use lazy I-sync everywhere, (hopefully) eliminating the last of the
  I-sync issues for multiprocessor support.
- Eliminate some memory barriers added in a couple of previous revisions,
  after some discussion on port-alpha/tech-smp.

Still some lazy I-sync optimization possibilites:
- pmap_changebit() does not need to I-sync when only write-protecting
  a page.
- pmap_asn_alloc() may be able to cancel a pending lazy I-sync when a
  new ASN is allocated.  Need to double check against Green Book or
  Brown Book.
2000-08-15 05:21:20 +00:00
wdk
33016f23e0 * Tidy up interrupt handlers by implementing an intr_establish()
handler to hook up device interrupts and softc callbacks.

   Suggested by:  Jason Thorpe and Toru Nishimura

*  Fixup the indenting in a few places to conform to NetBSD style
2000-08-15 04:56:45 +00:00
wdk
374fb8efbc Decrement the block count to compensate for 64 bytes prefetched to fill
the DMA FIFO on non block aligned writes.   Not doing this causes large
writes (>4k) that are not aligned to incorrectly write 64bytes
of data every 4k interval.   This only occurs on raw devices - typically
newfs fails to create a clean filesystem.
2000-08-14 21:04:44 +00:00
thorpej
f10ccf00b1 Remove an unnecessary MB in __cpu_simple_unlock(), per sections
5.3.3 and 5.3.4 of the Green Book, and a discussion w/ cgd@netbsd.org.
2000-08-14 20:28:28 +00:00
thorpej
f80d70f19a Just add the mmap argument to vga_common_attach(), don't bother
with vga_extended_attach().
2000-08-14 20:14:50 +00:00
nonaka
d07d2e70be Fix link problem. 2000-08-14 17:51:41 +00:00
thorpej
b80f38bf8b Issue a memory barrier before clearing a lock, as per section 5.5.3
of the Green Book and a discussion on tech-smp and port-alpha.
2000-08-14 17:18:50 +00:00
ragge
d9bb2fc1fa Clear result registers before using them.
Be more informative if unimplemented addressing modes.
2000-08-14 11:16:52 +00:00
kleink
378b9a84c3 At splsoftclock(), don't block softnet but softclock. 2000-08-14 10:09:06 +00:00
kleink
4fddd7dacc * Make spllower()ing functions not return the previous priority level,
as specified in spl(9).
* In due course, ipmlement splx() via spllower().
2000-08-14 09:55:41 +00:00
kleink
1790b00d25 Replace the body of lcsplx() with an open-coded version of spllower()
and return the previous priority level, which is actually expected by
cpu_switch() in order to it be stashed into the PCB.
2000-08-14 08:58:39 +00:00
thorpej
86ef3ea256 Clean this up a little bit, and issue a Specific EOI after
dispatching an EISA interrupt.
2000-08-14 05:38:23 +00:00
wdk
1e59559e3e intrcnt[] counters should be handled by the port specific interrupt handlers.
This change facilitates the migration from intrcnt[] to the new evcnt(9)
framework without breaking all of the mips based ports.
2000-08-14 04:36:34 +00:00
thorpej
b022657405 Add support for EISA configuration space on the Jensen (it's
mapped differently than on other EISA sysetms).
2000-08-14 02:14:24 +00:00
christos
cabafb6c60 cast to u_long before casting to u_int to appease lint. 2000-08-13 22:45:01 +00:00
thorpej
5d5752af8b More MP cleanup:
- pmap_zero_page() and pmap_copy_page(): if MULTIPROCESSOR, issue
  a memory barrier after we zero/copy the page, to ensure that
  other CPUs see the correct data.
- XXX Should we use MB, or is WMB good enough?

Also, bzero -> memset, bcopy -> memcpy.
2000-08-13 22:43:42 +00:00
thorpej
cdc6dac7f1 More MP cleanup:
- Make sure to do an MB after a PTE is set to a new value, so that
  other processors see it.
- Use lazy I-sync in two pmap_page_protect() and in pmap_changebit(),
  so that it is MP-safe.  XXX Two more places where IMB is used in
  the raw, but they're not in the common path.

There'll be some more lazy I-sync cleanups soon.
2000-08-13 22:30:18 +00:00
augustss
de0b1dd11d Go to splhigh() before calling power hooks and maintain this level
while suspended.  When waking up the power hooks are again called at
splhigh() and then the level is lowered.
This prevents interrupts from reaching a device before the power hook
has reinitialized it.
2000-08-13 22:26:27 +00:00
jdolecek
47b371580e make this usable as INSTALL-like kernel suitable for boot floppy
enable supported stuff, add also SCSI devices (only sd* and cd* uncommented)
2000-08-13 21:55:33 +00:00
soren
6f1de2d858 s/dev/obio/ 2000-08-13 19:25:13 +00:00
thorpej
f49fa3615c Add some XXXSMP to places were imb is still used in the raw. 2000-08-13 18:41:15 +00:00
thorpej
cd04e9fb14 Add MULTIPROCESSOR versions of PMAP_SYNC_ISTREAM_{KERNEL,USER}(). 2000-08-13 18:22:21 +00:00
thorpej
325f9ccafc Add alpha_multicast_ipi(). 2000-08-13 18:20:55 +00:00
scw
b77bc217e1 Pull a bunch of common code from vme_pcc.c and vme_two.c into
the new mvmebus.[ch] files, and put down some initial code to
deal with VMEbus slave mode.
2000-08-13 17:00:51 +00:00
bjh21
9d7a3f8ed7 Shuffle debugging code around to make debugging copy{in,out,}str easier. 2000-08-13 12:32:48 +00:00
bjh21
4014c03b26 Replace copyinstr, copyoutstr and copystr with slightly more sensible
assembler versions.
2000-08-13 12:31:26 +00:00
jdolecek
40dc315f3b #if 0 bogus mca_intr_establish() added possibly mistakely
by cgd in rev. 1.2
2000-08-13 10:38:38 +00:00
itojun
85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
wdk
3f55a7b9aa Initial commit of port to MIPS Computer Systems RC3xxx systems.
Currently supports the RC3230
2000-08-12 22:57:55 +00:00
scw
e09ab8e986 G/C an unused variable. 2000-08-12 20:09:12 +00:00
bjh21
5317f1db63 General cleanup and factoring out of common code in ea_readbuf and ea_writebuf. 2000-08-12 18:18:52 +00:00
bjh21
7d96bc05ba Make various types unsigned, for ease of comparison.
Use bus_space_read_multi_2 and bus_space_write_multi_2 to copy packets to/from
board.
2000-08-12 17:03:44 +00:00
bjh21
f096772215 Two changes for endianness-independence (when we finally split of the SEEQ 8005
driver and make it MI):

Set the ByteSwap bit on big-endian hosts, so we can use 16-bit transfers to get
at packets whatever.

Treat Tx/Rx headers as arrays of four bytes rather than as 32-bit words.
2000-08-12 15:29:35 +00:00