Commit Graph

112 Commits

Author SHA1 Message Date
reinoud 7bace466ad Initial commitment of the bus_space_mmap() functions as proposed by Jason R
Thorpe as an extension to the bus_space(9) API.

Only the mainbus has a working mmap... iomd, podulebus and isa dont have
one yet. Its trivial to add the iomd and isa's memory part but am a bit
hessistant to add it without knowing its implications by heart.

Podulebus might be implemented in 32 bits EASI but otherwise its not really
transparent since there is AFAIK no function to explicitly read one byte or
so .. or is this implemented in a higher level ?

ARM26 and arch/arm32/dnard (Shark) kernels compile and RiscPC and Shark
kernels are tested and function OK.

Implications of other ARM systems like hpcarm and ebarm are propably
minimal or solved trivially.
2001-09-10 02:20:19 +00:00
chris 9f04d8d670 A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.
2001-07-28 18:12:43 +00:00
chris 338f184d45 Fixup stray interrupt handler's return address. 2001-07-28 12:28:56 +00:00
bjh21 3eec98b7e8 Gratuitously print out the IOMD version at boot, since there's a register
for it.
2001-07-10 21:31:59 +00:00
bjh21 9c93fee83f Remove spurious inclusions of opt_cputypes.h. 2001-07-10 20:10:48 +00:00
bjh21 cf9453aeae iomd is marked "needs-flag", and this file is conditional on iomd, so
NIOMD == 1 whenever this file is included.  Don't bother asserting it.
2001-07-10 00:36:10 +00:00
bjh21 469339d93c Clean up some cruft left behind (but AFAIK never used) from poduleirqhandler(). 2001-07-10 00:04:30 +00:00
bjh21 368f9c15c1 Remove another spurious #ifdef CPU_ARM7500. 2001-07-09 23:35:58 +00:00
reinoud 8ca7d6ec9c Initial commit for merging A7000/NC with the RISCPC in order to get _one_
bootable GENERAL kernel for the 3 machines.

This is done by integrating the ARM7500 in a better way. In various places
the IOMD ID is checked and action is taken at runtime compared to
compiletime.

The small piece of assembler that is changed now uses the flag
`arm7500_ioc_found' that is set up by iomd.c at startup. When this chip
isnt found at startup it will skip reading the ARM7500 extended IRQ
registers and wont clear them either.

The next step will be getting the mode-definition files to the bootloader.
Currently they are compiled in.
2001-07-09 21:46:19 +00:00
bjh21 ba2ed3776e Refer to the Risc PC IOMD by its real name (which appears to be IOMD20). 2001-05-13 14:30:00 +00:00
bjh21 72aab13520 Add the IOLINES register from the ARM7500FE, and delete a few incongruous
blank lines.
2001-04-23 22:17:09 +00:00
chris 485dbd078a Improved IRQ handling code on IOMD. By using an ffs-like algorithm we don't need to loop quite so much when looking for bits to service (also means we only service irqs that need servicing), also moved code around to avoid stalling where it doesn't loose too much understandabilty. 2001-04-19 20:46:07 +00:00
reinoud 763e66f5de Initial commit of wsmouse driver for the IOMD quadratic mouse. 2001-04-14 19:22:43 +00:00
reinoud 242cca702b Part one of the COMCONSOLE repair ... it works now but the video console
is effectively dead instead... this needs work. Also the boottime switching
to the vidcconsole would be good.
2001-04-12 20:15:06 +00:00
bjh21 4c8caed00d Apply a bandage to delay() so that it takes a more suitable time on
StrongARM Risc PCs.  It really should be replaced entirely, but I've got more
important bugs to fix.
2001-04-10 19:08:42 +00:00
bjh21 edde8b993b Add a DIAGNOSTIC check to see if delay() waits long enough (it doesn't on
my machine).
2001-04-10 18:58:56 +00:00
reinoud df2b9ae2bd Initial commit of wscons for the RiscPC/A7000 arm32 family. There is still lots
to do notably the mouse, some issues about 4 bpp modes and most of all Xwscons !

This code will still allow usage of the old vidcconsole complete with X etc.
Note that the wscons code can now only be booted with the new bootloader but
kernels compiled with vidcconsole can still be booted the old way.
2001-03-20 18:20:53 +00:00
reinoud 5cc6423696 Fixed the bug that crept into giving support for moving IOMDs during startup.
Initially I gave it the type `int *iomd_base' but some macro's defined in
iomdreg.h calculated with the value asuming it to be an int ... thus all the
registers offsets were multiplied by four and that can only mean trouble !
The kernel boots again ever happily. Sorry for the inconvenience... it was
a good bug hunt though!
2001-03-02 01:46:57 +00:00
reinoud 3500dc208f Centralise declaration of memc_base 2001-02-27 20:23:11 +00:00
reinoud 5cd12d1f9e Make it compile again 2001-02-27 18:33:26 +00:00
reinoud d4eb8fb142 Also forgot to declare the iomd_base. 2001-02-27 18:30:46 +00:00
reinoud d35a86c1a6 Forgot to declare iomd_base since it isnt in iomdreg.h anymore due to the
inclusion of this file in assembler.
2001-02-27 18:29:36 +00:00
reinoud e4e4d358a0 Fixed IOMD remapping during boottime 2001-02-25 23:59:48 +00:00
bjh21 3fb058011a Move arm32 ports over to using <arm/armreg.h>, so <cpu.h> mostly contains
NetBSD-specific definitions.

This also entails some changes to the way CPU identification is done.  I hope
I've got it right.
2001-02-25 21:31:13 +00:00
reinoud 7535275b7c Fixed the `slow printing' bug that occured with debugged kernels on RiscPC's.
When the IOMD isnt mapped and all is mapped 1:1 a read gives garbage and thus
the obscure feature that slows down printing (or halts it!) when the mouse
button is pressed during output to the vidcconsole gets allways activated.

Included a simple flag that signals if the IOMD is mapped; the delay routine
won't check the mouse if this flag is still clear.
2001-02-24 21:29:38 +00:00
mycroft 7057d01bbc Inline need_resched() and need_proftick(). Make need_proftick() actually *do*
something!
2000-12-12 06:06:05 +00:00
mrg b564830503 remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 08:44:03 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
drochner 5e990a7f7c implement bus_space_vaddr() 2000-04-17 17:39:17 +00:00
mark 7ef62e2b59 Remove unncessary cf_unit usage.
Make sure we only attach 1 of these devices.
2000-02-13 05:00:57 +00:00
mark 9316cea99d Remove unnecessary cf_unit usage. 2000-02-13 04:59:57 +00:00
tsutsui b236cf48c3 check whether tv_usec >= 1000000 2000-01-22 05:21:24 +00:00
cgd c9c2181ed9 provide an __ELF__ version of _C_FUNC and _C_LABEL, convert the assembly
#defines in asm.h to use them, and convert code which needs to use C labels
to use _C_LABEL as well.  (I can't see any reason why the label vs. function
differentiation shouldn't be GC'd; i only added uses of _C_LABEL.)  This
should help if this port is converted to use ELF, and was checked by
compiling all kernels in arm32/conf (with some driver removals and some
MI header fixups re: common blocks) with an arm-linux ELF toolchain.
1999-10-26 06:53:41 +00:00
thorpej 3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
mark 902004cefc Don't try and calculate the time in microtime() unless cpu_initclocks()
has already been called and thus we know the values the timers are using.
This also ensures that clock_sc will always be valid when we try and use
it to read the timer registers.
Fixes PR7357.
1999-04-20 09:14:32 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
mark 1b8eea513f _intrnames is only used in irq_release() if IRQ_STATS is defined so add an
appropriate guard.
1999-03-16 10:53:50 +00:00
sommerfe 83940dae72 Finish the rest of the pms->opms rename for non-wscons PS/2 mice. 1999-01-23 22:18:41 +00:00
mark f6f7ac980d Fix bug in the initialization of the interrupt masks for shared
interrupts as described in PR6421. Fix from Richard Earnshaw.
1999-01-22 06:59:26 +00:00
mark 4285910912 Implement faster method of blocking all lower priority interrupts.
Modify current_spl_level to reflect the temporary change in interrupt
priority level which dispatching.
Don't increment the interrupt stats for every handler in the interrupt chain.
Cleaned up a number of comments.
Define soft interrupt names.
A few miscellaneous tidy ups.
1998-09-05 04:05:31 +00:00
mark de5eac54ea Simplified initialisation of irqmasks.
Removed any remnants of soft interrupt dispatching.
Cleaned up a number of comments.
Removed a number of blank lines.
Nuked register keywords.
Made sure code is in sync with interrupt handling for other ARM hardware.
1998-09-05 04:04:24 +00:00
mark af91a82f1e Remove pv_addr_t and systempage declarations. 1998-08-27 03:58:10 +00:00
mycroft 6d3d8a1350 Make copyright notices with my name consistent. 1998-08-15 03:02:31 +00:00
mycroft d5eb56b2c2 Move splclock and splaudio outside splimp. 1998-08-08 23:39:38 +00:00
mark 4a463e49fe defopt CPU_* options in opt_cputypes.h 1998-07-07 03:05:15 +00:00
mark c73c7674d7 defopt IRQSTATS. 1998-07-06 00:53:07 +00:00
mark 36af051383 Update functions that missed the previous name space change. 1998-07-05 23:31:16 +00:00
thorpej 46320bb017 Clean up the bus space function namespace somewhat; make sure they don't
collide with function names used in other parts of the kernel.
1998-06-28 07:27:51 +00:00
mark 2c1cbdae75 Moved delay() from machdep.c to iomd_clock.c as delay will be dependant
on the system timers being used.
1998-06-02 21:57:58 +00:00
mark bdfeab3714 Merge in UVM support from Neil Carson <neil@causality.com>. 1998-06-02 20:41:46 +00:00