bjh21
a6b4c8d3da
Strip the PSR bits off values of R15 before passing them to _mcount(). This
...
makes call-graph profiling actually work (hooray!).
2001-04-30 23:41:11 +00:00
bjh21
e5b19b546c
Add two functions, int_off_save() and int_restore(), for mcount to use to
...
disable interrupts without getting into a loop or screwing up irq_handler().
Also use them.
2001-04-30 19:57:10 +00:00
thorpej
2b27ac7a99
Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
...
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM. These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.
This deprecates struct pmap_physseg. As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.
Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now). Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
bjh21
45eb40e8d3
Minimal implementation of cpu_sysctl().
2001-04-29 15:13:45 +00:00
bjh21
e9c8a1fbb5
Add ipfilter, rnd, vcoda and raid.
2001-04-28 17:41:01 +00:00
bjh21
271fb855ce
Arrange to restore R14 on return from __mcount, so that profiled assembler
...
routines will work. We could put this in _PROF_PROLOGUE, but this seems
lighter-weight and possibly cleaner.
2001-04-26 22:09:57 +00:00
thorpej
a60e816e7a
Provide a pmap_resident_count() that simply expands to 0.
2001-04-25 18:03:19 +00:00
bjh21
90dfa8d8ff
Undo my accidental revival of pmap_kenter_pgs().
2001-04-25 16:30:03 +00:00
bjh21
7cf0a5e592
Arrange the "unamanaged" pages (entered through pmap_kenter_pa()) are tracked
...
and ignored as necessary.
2001-04-25 14:42:31 +00:00
bjh21
05d087e7c7
Remove definitions of CLKF_*. They're defined in <arm/cpu.h> now.
2001-04-24 18:15:44 +00:00
thorpej
1c3a62e066
Sprinkle pmap_update() calls after calls to:
...
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).
These calls are relatively conservative. It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej
55044638aa
Remove pmap_kenter_pgs(). It was never really adopted by
...
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej
ec66f67f3a
Use pmap_kenter_pa() rather than pmap_kenter_pgs().
2001-04-22 23:28:52 +00:00
thorpej
69abdbf60c
Undo a misguided previous change to the pmap_update() API.
2001-04-22 23:19:26 +00:00
thorpej
5871b80f00
Use uvm_pageboot_alloc() for early memory allocation, rather than
...
calling pmap_steal_memory() directly. On these platforms, since
uvm_pageboot_alloc() is a wrapper around pmap_steal_memory(), there
is no functional change. This is merely for API consistency.
2001-04-22 18:21:48 +00:00
thorpej
cfb5c7ed9f
Make pmap_virtual_space() a required pmap function, even on platforms
...
which have pmap_steal_memory(). This is to reduce the API differences
between pmaps that implement pmap_steal_memory() and pmaps which do
not.
Note that pmap_steal_memory() needs to adjust *vstartp and/or
*vendp only if it used addresses within the range provided to UVM
via the pmap_virtual_space() call. I.e. it is not necessary to do
so in any current pmap_steal_memory() implementation.
2001-04-22 17:22:57 +00:00
bjh21
8eed59a146
Move arcpp so it attaches before podulebus.
2001-04-22 15:26:07 +00:00
bjh21
11b40e716c
Add arcpp. Not in GENERIC because I don't know it works.
2001-04-22 15:02:51 +00:00
bjh21
856547f067
Driver for Archimedes parallel ports. I haven't got a parallel printer, so
...
this is currently untested.
2001-04-22 15:01:25 +00:00
bjh21
2a1570b5d9
Add functions to twiddle the latch bits, patterned after the ones in Linux.
2001-04-22 15:00:13 +00:00
thorpej
4738622712
Give pmap_update() an argument (a pmap_t) so that it knows which
...
pmap it should be updating.
2001-04-22 00:33:59 +00:00
bjh21
660a20cd22
Add a skeleton driver for the random latches on the Archimedes, which are
...
shared between the printer port and floppy drive. Useful facilities will be
added when I know what I need.
2001-04-22 00:26:35 +00:00
bjh21
85e1abfb39
Keep track of interrupt depth. With forthcoming changes to cpu.h, this gets
...
us accounting for interrupt time.
2001-04-21 18:51:17 +00:00
bjh21
e66c66730e
Remove <arch/arm26/podulebus/podulebus.h>. Podulebus driverd now include
...
<dev/podulebus/podulebus.h>.
2001-04-19 13:47:07 +00:00
bjh21
074987f4a3
Ensure that we have some idea what a label_t is, even in userland.
2001-04-16 17:30:32 +00:00
bjh21
020a050984
Randomize the statclock period properly. We use the same algorithm as the
...
sparc port.
2001-04-16 14:12:38 +00:00
kleink
f06533a1ee
Add definitions of C99 integer format conversion macros.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink
739cb75837
Add definitions of C99 specified-width integer type limits.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
bjh21
5a15be6a18
Don't panic on a stray IRQ, just log it and hope it goes away. This works for
...
my acemidi card at least.
2001-04-15 11:59:43 +00:00
kleink
cdcf9f46c5
Add definitions of C99 integer constant macros.
...
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink
a7c20e5788
Add definitions of C99 integer constant macros.
2001-04-14 22:38:33 +00:00
bjh21
cee3528adc
When checking if an IRQ is active, check for _all_ the right bits' being set,
...
not just some of them.
2001-04-14 19:58:58 +00:00
bjh21
e0e3b230c1
Remember to initialise the interrupt handle.
...
Bugs like this are my penalty for having my only supported podule in slot 0.
2001-04-14 18:39:20 +00:00
kleink
7affdab52e
Add definitions of C99 minimum-width and greatest-width integer types.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej
bf2dcec4f5
Remove the use of splimp() from the NetBSD kernel. splnet()
...
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
bjh21
d3c7885319
Make sure that every time we touch the referenced/modified bits, we do a
...
pmap_update_page() to get all the mappings of that page up-to-date.
2001-04-13 16:37:28 +00:00
bjh21
991d163aa2
Remove code from pmap_fault() that ws trying to do referenced/modified
...
emulation on kernel pages (and getting it wrong).
2001-04-13 15:09:35 +00:00
bjh21
7b00aef2da
Rev 1.3 accidentally undid rev 1.2. Re-do it.
2001-04-13 14:50:47 +00:00
bjh21
ac01781de7
Make UBC_WINSHIFT a constant.
2001-04-13 12:40:16 +00:00
bjh21
d039e70428
Remove the "asc" driver. It's never worked, and we should have an MI version
...
sometime.
2001-04-10 21:33:00 +00:00
bjh21
5677634e50
Small comment correction.
2001-03-28 13:04:57 +00:00
bjh21
8bd452c648
Create an MI Ether3 driver. It's derived from the arm26 driver, which uses
...
my MI SEEQ 8005 driver, which is based on the arm32 ea driver.
2001-03-24 00:14:52 +00:00
bjh21
2714607c72
Add podulebus_shift_tag, which generates a bus_space_tag_t with a specified
...
address shift (stride). This is necessary because many podules have standard
chips with odd address-bus wiring to allow for using LDM for
bus_space_*_multi_*().
2001-03-24 00:10:42 +00:00
lukem
723cd818d8
move duplicate definitions for:
...
pc, lpt, joy, ocis, apm, satlink, i4bctl, i4brbch, i4btel, i4btrc, i4b
from the port-specific arch/*/*/conf.c files into sys/conf.h
2001-03-21 22:25:52 +00:00
bjh21
de59def2f2
Remove spurious #define mod_base.
2001-03-20 23:29:07 +00:00
bjh21
86d6442c28
Move machine-dependent podulebus headers to <machine/podulebus_machdep.h>.
...
<dev/podulebus/podulebus.h> is the canonical file to include, and includes
<machine/podulebus_machdep.h>.
<arch/${MACHINE}/poudulebus/podulebus.h> remains for backward compatibility.
2001-03-20 22:59:39 +00:00
bjh21
61e80eef9b
As Richard Earnshaw pointed out, bus_space_copy_1() and bus_space_copy_2()
...
had the wrong names and did the wrong things. Both are now fixed.
2001-03-20 22:56:16 +00:00
bjh21
0fe2c0aedc
These have moved to sys/dev/podulebus.
2001-03-20 00:13:16 +00:00
bjh21
2c4e09f4c9
Revert last change, which shouldn't have applied to this file.
2001-03-20 00:04:28 +00:00
bjh21
23836945a3
Redefine bus_space_addr_t to be a raw address, for compatibility with arm32
...
podulebus drivers.
2001-03-20 00:03:10 +00:00
bjh21
34cca2e23e
Pull in shared podulebus drivers.
2001-03-20 00:01:37 +00:00
bjh21
1c300d3ee8
Make pa_*_base bus_addr_ts.
2001-03-19 21:03:47 +00:00
chs
c40daf0aed
change uvm_winsize to uvm_winshift so that we can avoid division
...
by a non-constant value.
2001-03-19 00:29:03 +00:00
bjh21
5c98fe3fec
Gratuitous change of signature for podulebus_irq_establish(). It now takes
...
an opaque podulebus_intr_handle_t, which can be found in podulebus_attach_args.
It's actually the slot number, but don't tell anyone.
2001-03-18 15:56:04 +00:00
bjh21
949f93d279
If uvm_fault() returns an error, pass it on to the pcb_onfault handler
...
if there is one. They already arrange to return it to their callers.
2001-03-18 14:04:04 +00:00
bjh21
16198f2b92
Podulebus convergence:
...
pa_memc_[th] -> pa_mod_[th]
Add pa_easi_*
Add pa_*_base
Add pa_slot_flags to indicate whether EASI is supported.
2001-03-17 21:56:06 +00:00
bjh21
697e84ed46
Update for new location of podules.h and podule_data.h
2001-03-17 20:34:43 +00:00
bjh21
bfc2063e69
Create an ARM2-specific undefined-instruction handler which deals with the
...
undef/SWI bug and handles emulating SWP.
Untested bacuse my ARM2 machine isn't currently set up.
2001-03-17 18:12:09 +00:00
bjh21
9dfd56f6dc
Make this compile with "options DEBUG" again.
2001-03-16 18:11:57 +00:00
chs
ac3bc537bd
eliminate the KERN_* error codes in favor of the traditional E* codes.
...
the mapping is:
KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
2001-03-15 06:10:32 +00:00
toshii
300d398485
Move references to arm/arm/disksubr*.c from files.arm to
...
files.{arm26,arm32,dnard}.
2001-03-14 14:39:45 +00:00
bjh21
c3c5158d00
Change the value of tf_pc in undefined-instruction handlers on arm32. It now
...
always points to the undefined instruction in question. It's up to the
handler to advance it to the next instruction if it wants execution to
continue there. This is how things have always worked on arm26.
2001-03-13 23:56:48 +00:00
bjh21
a7ba6bb441
Update for new linked-list undefined-instruction handler.
2001-03-13 21:00:13 +00:00
bjh21
db1f089718
Initialise the undefined-instruction handler at startup.
2001-03-13 20:20:43 +00:00
bjh21
b1475781a2
Make arm26 implementation of DDB slightly less gratuitously different from the
...
ARM one. Also update for recent undefined-instruction handler changes.
2001-03-11 16:31:05 +00:00
bjh21
ce5529eabf
Change undefined instruction handler to use a linked list for each
...
co-processor. This is necessary so we can have several handlers for
CP0 (used as a catch-all for non-CP instructions).
Handlers are now removed using remove_coproc_handler(), rather than by calling
install_coproc_handler() with a NULL handler.
Because install_coproc_handler() can now allocate memory, there's a version
for use at boot time that doesn't.
2001-03-11 16:18:39 +00:00
bjh21
c6c5fda4be
Use <arm/undefined.h>
2001-03-11 16:14:36 +00:00
bjh21
c7bfcc0130
These are no longer used.
2001-03-10 23:31:32 +00:00
bjh21
29e609e3c5
Update for recent changes to the i82586 driver.
2001-03-10 22:32:17 +00:00
bjh21
f6c36838ae
Use the same undefined-instuction handler on both arm26 and arm32. The handler
...
is derived mostly from the arm32 version, but with a check for an obscure ARM2
bug thrown in.
arm26 fpu and cpu drivers use the new interface for catching undefined
instructions.
2001-03-08 21:30:35 +00:00
bjh21
c0aee693f5
Add a missing part of FPU support.
2001-03-08 21:12:48 +00:00
bjh21
25ec015449
Merge setregs() from sys/arch/arm32/arm32/machdep.c,
...
sys/arch/hpcarm/hpcarm/machdep.c and sys/arch/arm26/arm26/vm_machdep.c
into sys/arch/arm/arm/arm_machdep.c.
2001-03-04 23:25:00 +00:00
matt
2bfaa741b1
remove disksubr since they are common.
2001-03-04 20:47:03 +00:00
bjh21
8054b2ad5f
dev/cons.c is supplied by files.arm.
...
XXX should it really be?
2001-03-04 14:38:29 +00:00
bjh21
fddf453e7a
Allow for size=0 case in copyin(), copyout() and kcopy().
2001-02-28 11:55:39 +00:00
bjh21
163eba47d8
Use <arm/cpu.h>.
2001-02-28 00:17:40 +00:00
bjh21
fa45b68520
Actually remember to look up the system call we're trying to invoke.
...
Oops.
2001-02-27 23:57:30 +00:00
bjh21
9a1c596b0b
cpu_wait() is now in vm_machdep_arm.c
2001-02-27 13:58:13 +00:00
bjh21
09f63bd785
Now that arm26 does __HAVE_MINIMAL_EMUL, switch it over to using
...
<arm/types.h>.
2001-02-26 00:19:57 +00:00
bjh21
e56f5ba174
__HAVE_MINIMAL_EMUL
2001-02-25 23:08:33 +00:00
bjh21
9d22bf6fdf
Adapt for __HAVE_MINIMAL_EMUL world.
2001-02-25 23:07:51 +00:00
bjh21
846fe69958
Remove CPU_* options (they're in files.arm now -- for some reason I missed
...
this lot in the last commit).
2001-02-25 18:28:27 +00:00
bjh21
96b16f75a6
Hack to allow arm26 to have its own "cpu" device. This device should really
...
be shared between all ARM ports, but the arm32 one is too ugly for me to
touch it till I've got a test system running.
2001-02-25 15:33:33 +00:00
bjh21
090dc051cf
Reduce the amount of memory allocated for assembler fragments.
...
Excise unnecessary instructions from kernel launch code.
Increase HIMEM on >8Mb machines, since the last two changes didn't free
enough memory to boot with 16Mb.
2001-02-23 00:27:40 +00:00
bjh21
ab20625e49
Lint doesn't like zero-sized structs.
2001-02-17 20:07:01 +00:00
bjh21
3dbffcc29f
Move the RAM base address of the kernel into a variable.
...
Set CPPFLAGSm CWARNFLAGS and STRIPFLAGS to the same as arm32 uses.
2001-02-17 19:38:36 +00:00
bjh21
503e69a88a
Don't define pmaphistbuf unless UVMHIST is defined.
2001-02-17 19:09:51 +00:00
bjh21
33c7eb2382
Add necessary DDB includes.
2001-02-17 19:08:21 +00:00
bjh21
4acea3a8cc
Don't do arithmetic on void *s.
2001-02-17 19:04:36 +00:00
bjh21
2e041e883b
Correct return type of arcvideo_show_screen().
2001-02-17 18:45:19 +00:00
bjh21
b211962232
Include <machine/machdep.h> for update_memc().
2001-02-17 18:43:13 +00:00
bjh21
575fa5e5af
#ifdef out arckbd_pick_layout until we get round to using it again.
2001-02-17 18:39:11 +00:00
bjh21
a72248beab
Reduce unnecessary differences between this and Makefile.arm32.
...
Also (more significantly), use the compiler's default -mcpu setting. This
means I can now build APCS-32 kernels. They work, too.
2001-02-17 17:23:48 +00:00
bjh21
8b601afaf3
Re-introduce <arm/endian_machdep.h>, this time using GCC's idea of the target
...
endianness.
2001-02-17 14:55:44 +00:00
bjh21
9b6de1da90
Move cpu_coredump() from arm32/arm32/vm_machdep.c to arm/arm/vm_machdep_arm.c.
...
Also ANSIfy it and use it on arm26.
2001-02-13 22:54:25 +00:00
bjh21
f942342607
Fix a typo in the last change (eh_init_media -> eh_media_init).
2001-02-13 18:20:57 +00:00
bjh21
284047a2b2
Move sendsig() and sys___sigreturn14() from arm26/arm26/vm_machdep.c and
...
arm32/arm32/machdep.c into arm/arm/sig_machdep.c, merging and ANSIfying in
the process.
The code is based on the arm32 version, so I don't think anything should break
there.
2001-02-13 13:19:52 +00:00
bjh21
4e460028dc
Since idle() turns up in so many stack backtraces, put it in the global
...
symbol table.
2001-02-13 13:16:37 +00:00
bjh21
82bf8a9d0a
Avoid uninitialised variable reading /dev/mem.
2001-02-12 23:29:08 +00:00
thorpej
043e519d55
Adjust the way that media is initialized on DP8390-compatible
...
chips. The dp8390_softc now has media_init and media_fini
function pointers that do the work.
2001-02-12 18:49:03 +00:00