Commit Graph

117 Commits

Author SHA1 Message Date
tsutsui
0e88f65e18 Print boot banner and a loading kernel name onto LCD,
for users who don't have serial console.  Bump version.
2008-05-28 14:04:07 +00:00
martin
ce099b4099 Remove clause 3 and 4 from TNF licenses 2008-04-28 20:22:51 +00:00
tsutsui
02cb47cab2 Split softc and device_t for zsc(4) and its children.
XXX we should restructure MI APIs and make it really machine independent.
2008-03-29 19:15:34 +00:00
tsutsui
fc21b00873 Add kernel support for optional Z85C30 serial console on Cobalt Qube 2700.
There is some interrupt related issue (in MI z8530tty driver?) on heavy load,
but useful enough for debugging.
2008-03-27 15:21:46 +00:00
tsutsui
4f64b6719d Use macro defined in <machine/cpu.h> for cobalt_id and device addresses etc.
since <machine/leds.h> has been removed.
Also remove redundant address definitions in Makefile and local headers.
Pointed out by dieter roelants.
2008-03-23 17:19:57 +00:00
tsutsui
38e83cc130 Reorganize interrupt handling on cobalt and allow multiple interrupts on
each icu irq to support multi function PCI devices in the Qube's PCI slot:

- split out interrupt stuff from machdep.c into new interrupt.c
- prepare struct *_intrhead to handle cpu and icu interrupts
- use LIST and malloc(9) to handle multiple interrupts per icu irq
  (mostly taken from algor/pci/pcib.c and evbmips/malta/pci/pcib.c)
- move evcnt(9) stuff into *_intrhead from cobalt_intrhand
  (i.e. make it per interrupt rather than per handler)
- in pci_intr_map(9) handle CPU interrupt separately and add a sanity check
- fixup interrupt lines for devices on the PCI slot in pci_conf_interrupt(9)
- move some device address definitions into <machine/cpu.h> and
  remove <machine/leds.h>
- misc cosmetics

No objection on port-cobalt for three weeks.
2008-03-22 18:32:20 +00:00
joerg
3615cf7715 Now that __HAVE_TIMECOUNTER and __HAVE_GENERIC_TODR are invariants,
remove the conditionals and the code associated with the undef case.
2008-01-20 18:09:03 +00:00
ad
87a9501131 Fix includes. 2008-01-04 22:54:46 +00:00
ad
4b293a84e1 Interrupt handling changes, in discussion since February:
- Reduce available SPL levels for hardware devices to none, vm, sched, high.
- Acquire kernel_lock only for interrupts at IPL_VM.
- Implement threaded soft interrupts.
2007-12-03 15:33:00 +00:00
garbled
d974db0ada 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.
2007-10-17 19:52:51 +00:00
tsutsui
17c3dbc6c5 Parse boot_flags specified on boot prompt and
pass decoded boothowto value to kernel via bootinfo.
2007-08-10 16:47:06 +00:00
ad
63811f5275 Generic soft interrupts are mandatory. 2007-07-14 21:48:17 +00:00
tsutsui
73b3a64df4 Move declaretions of _spl*() and _{clr,set}softintr() functions
(which are in mips/locore.S) into <mips/locore.h>
from various MD files.
2007-06-17 06:04:27 +00:00
tsutsui
2fc470a315 Reorder IPL_SOFTSERIAL and IPL_SOFTCLOCK properly. 2007-05-27 14:22:36 +00:00
christos
53524e44ef Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. 2007-03-04 05:59:00 +00:00
mrg
4410329b87 add a pair of new bus_dma(9) functions:
int _bus_dmatag_subregion(bus_dma_tag_t tag,
				  bus_addr_t min_addr,
				  bus_addr_t max_addr,
				  bus_dma_tag_t *newtag,
				  int flags)
	void _bus_dmatag_destroy(bus_dma_tag_t tag)

that allow a (normally broken/limited) device to restrict the bus address
range it can talk to.  this is used by bce(4) to limit DMA addresses to
1GB range, the maximum the chip can address.

all this is from Yorick Hardy <yhardy@uj.ac.za> with input from several
people on tech-kern.

XXX: bus_dma(9) needs an update still.
2007-02-21 20:41:23 +00:00
ad
3363855a4a Remove spllowersoftclock() and CLKF_BASEPRI(), and always dispatch callouts
via a soft interrupt. In the near future, softclock will be run from process
context.
2007-02-16 02:53:43 +00:00
ad
b07ec3fc38 Merge newlock2 to head. 2007-02-09 21:55:00 +00:00
yamt
8bf7662829 merge yamt-splraiseipl branch.
- finish implementing splraiseipl (and makeiplcookie).
	  http://mail-index.NetBSD.org/tech-kern/2006/07/01/0000.html
	- complete workqueue(9) and fix its ipl problem, which is reported
	  to cause audio skipping.
	- fix netbt (at least compilation problems) for some ports.
	- fix PR/33218.
2006-12-21 15:55:21 +00:00
tsutsui
afb7d3cbe0 Protect from multiple inclusion. 2006-09-26 13:11:59 +00:00
gdamore
5ebcd1bf4f Convert to common mips3_cp0_counter clock.
Convert to timecounters.

From Rivo Nurges (rix at estpak dot ee).  ok soren@, tested by simon@.
Note that this means we aren't using the gt clock, and maybe we should clean
that up a bit.
2006-09-07 03:38:54 +00:00
tsutsui
087695a56b Switch cobalt to MI todr. 2006-09-04 20:30:40 +00:00
drochner
84f50d1b92 don't install <machine/db_machdep.h>, this is kernel only 2006-07-26 19:54:56 +00:00
tsutsui
e621e8f3df - always enable options MIPS3_ENABLE_CLOCK_INTR so that spllowerclock(9)
works properly
  (XXX: the real fix is to implement proper CLFK_BASEPRI())
- prepare an independent statclock(9) handler which use MIPS3 CPU internal
  clock interrupt. Enabled by options ENABLE_INT5_STATCLOCK, but not enabled
  by default.
2006-07-18 12:51:01 +00:00
tsutsui
cbe0593dd5 Cleanup ICU (i8259 compatible PIC) interrupt handling code:
- move ICU interrupt stuff from pci/pcib.h to cobalt/machdep.c
  because ICU should be initialized before pcib is attached
- initialize ICU more properly
- check interrupt types and set ELCR (edge/level control registers)
  accordingly in icu_intr_establish()
- check requested IRQ line and call only a necessary hander in icu_intr()
- use specific EOI to ack interrupts rather than AEOI
- use macro defined in <dev/ic/i8259reg.h>
2006-05-31 12:59:39 +00:00
tsutsui
a465c6b884 Tweak bus_space_barrier(9) macro to appease
"left-hand operand of comma expression has no effect"
warnings by gcc4.
2006-05-26 13:23:34 +00:00
tsutsui
373ffecde6 Add bus_space_*_stream_N() macros, which are identical with non-stream ops. 2006-05-18 15:37:05 +00:00
tsutsui
10918e2c75 Account interrupts by evcnt(9). 2006-04-21 18:17:45 +00:00
tsutsui
661d2895e2 - initialize cpuspeed and curcpu() according to cobalt model id
- switch to cpu cyclecounter based delay(9), taken from evbmips
2006-04-21 16:52:15 +00:00
tsutsui
bf95794e71 - add prefix ih_ to cookie_type member in struct cobalt_intrhand
- clear the cookie type in disestablish functions
- some cosmetics
2006-04-21 16:27:33 +00:00
tsutsui
f07646e1ff - remove "extern" from function declarations
- remove unused intrcnt[] declaration
2006-04-21 16:08:51 +00:00
tsutsui
c1842c746c _ds_vaddr member in struct cobalt_bus_dma_segment is a virtual address,
so it should be vaddr_t rather than bus_addr_t.
2006-04-16 08:10:09 +00:00
tsutsui
6abe9ac90a u_intNN_t -> uintNN_t 2006-04-15 11:33:33 +00:00
tsutsui
7309391544 Identify cobalt models at boot and store it to a variable cobalt_id.
Tested on and Qube2 by several people on port-cobalt and my RaQ2.
2006-04-15 11:28:52 +00:00
tsutsui
bc4a0707e8 Use bus_space_map(9) to get bus_space_handle_t on each driver
and remove bogus bus_space_handle_t member from mainbus_attach_args.
2006-04-06 11:50:19 +00:00
yamt
ec5a93183a merge yamt-uio_vmspace branch.
- use vmspace rather than proc or lwp where appropriate.
  the latter is more natural to specify an address space.
  (and less likely to be abused for random purposes.)
- fix a swdmover race.
2006-03-01 12:38:10 +00:00
perry
fbae48b901 Change "inline" back to "__inline" in .h files -- C99 is still too
new, and some apps compile things in C89 mode. C89 keywords stay.

As per core@.
2006-02-16 20:17:12 +00:00
christos
606bb2caed free -> dealloc
unsigned -> size_t for alloc/dealloc
2006-01-25 18:28:25 +00:00
tsutsui
42f41cb707 Add spllpt() macro for lpt at puc. Requrested by Florian Stoehr.
XXX: IMHO, MI lpt(4) should not use such its own priority level...
2006-01-04 12:29:21 +00:00
perry
5f1c88d70d Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete. 2005-12-24 20:06:46 +00:00
christos
95e1ffb156 merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
tsutsui
e54d906c60 Add empty <machine/wired_map.h> for the MI mips/wired_map.c. 2005-11-05 09:54:48 +00:00
dyoung
a37289db57 Make disklabel(8) and fdisk(8) into "host tools " last step: build
and install ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-disklabel,
${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk by "reaching over" to
the sources in ${NETBSDSRCDIR}/sbin/{disklabel fdisk}/.

To avoid clashes with a build-host's header files, especially on
*BSD, the host-tools versions of fdisk and disklabel search for
#includes such as disklabel.h, disklabel_acorn.h, disklabel_gpt.h,
and bootinfo.h in a new #includes namespace, nbinclude/.  That is,
they #include <nbinclude/sys/disklabel.h>, <nbinclude/machine/disklabel.h>,
<nbinclude/sparc64/disklabel.h>, instead of <sys/disklabel.h> and
such.  I have also updated the system headers to #include from
nbinclude/-space when HAVE_NBTOOL_CONFIG_H is #defined.
2005-06-12 19:46:15 +00:00
tsutsui
120ecb16f8 Switch cobalt port to use MI pci_configure_bus(9)
with options PCI_NETBSD_CONFIGURE.
Patch from KIYOHARA Takashi on port-cobalt.

This change makes siop(4) (and maybe all other PCI devices
using pci mem space) work on cobalt.
2005-03-25 15:01:57 +00:00
matt
a6db24a485 Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API
to select the maximum segment size for each bus_dmamap_load (up to the maxsegsz
supplied to bus_dmamap_create).  dm_maxsegsz is reset to the value supplied to
bus_dmamap_create when the dmamap is unloaded.
2005-03-09 19:04:43 +00:00
tsutsui
106c596dc1 - Use bus_space(9) to access PCI configuration registers on GT64111.
- Remove unused pci stuff from mainbus.c.
2004-08-28 13:33:31 +00:00
drochner
a5a5473c25 remove now unnecessary "pci_enumerate_bus" definitions 2004-07-29 16:55:25 +00:00
kleink
7b3b647647 Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
drochner
cf8b697c65 remove license clauses 3 and 4 from my cpoyright notices 2004-03-24 17:06:57 +00:00
cdi
ceb721fd0b Pass some info from the boot loader to the kernel:
- Kernel image name
 - Symbol table
 - A flag indicating console presence (could be clobbered if not passed)

Add _rtt() entry to the boot loader code.
2004-01-07 12:43:43 +00:00