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
bjh21
a4e55e0f13
Shared ARM ptrace(2) implementation. Mostly the same as the arm32
...
version, but with some #ifdefs for arm26.
Also, don't define PT_STEP, since we don't implement it. This should
reduce code size a little.
2001-02-11 17:03:04 +00:00
bjh21
9826a76781
Common <arm/reg.h> (and hence common struct reg) for ARM.
...
This is theoretically backward-incompatible on arm26, but GDB doesn't work there
yet anyway.
2001-02-11 14:51:55 +00:00
bjh21
60af6ce7ca
Don't trust function return to restore IRQ disable flag, since it won't
...
in APCS-32.
2001-02-11 14:46:11 +00:00
bjh21
6d285953f5
When an array is declared as int r[13], don't go trying to use r[13].
2001-02-10 19:09:48 +00:00
bjh21
21e1b73962
Update ioeb_irq_clear to match its caller.
2001-02-08 22:21:24 +00:00
bjh21
74591d814f
Add a definition of MID_MACHINE -- kernel cores still need it.
2001-02-03 17:18:30 +00:00
bjh21
917e1e8fd2
Set the palette in 4bpp modes. They still don't work right, though.
2001-01-24 00:56:29 +00:00
bjh21
050769744d
cf_unit usage is now fixed.
2001-01-24 00:03:21 +00:00
bjh21
3c3ed6cecd
Flush out cf_unit abuses.
...
Also, most device functions related to IRQ handling no longer take a device
pointer. We make so many assumptions about the machine's layout in irq.c that
this just seemed silly.
2001-01-23 23:58:31 +00:00
bjh21
d21e15aefe
This is no longer used.
2001-01-23 23:19:45 +00:00
bjh21
c59e8d1831
ANSIfy.
2001-01-23 22:59:24 +00:00
bjh21
34bf08cd05
Use a permanent breakpoint to invoke DDB rather than constructing a trapframe
...
manually. Prevents the problem introduced in the trapframe unification
whereby continuing from DDB would cause a panic.
2001-01-23 22:41:16 +00:00
bjh21
f32fc0fc90
Use evcnts properly for interrupt counting.
...
The architecture here follows that of the vax port -- each device has its
evcnt in its softc, but defers actually incrementing it to the IRQ
dispatcher. This way, devices can attach sub-counts (e.g. Rx and Tx counts
for Ethernet interfaces), but don't all have to have code to increment the
counters.
Drivers deliberately call evcnt_attach_dynamic() before establishing their
interrupt handler so that the establish routine can attach a parent event if
that's appropriate. At present, it isn't.
2001-01-23 22:07:59 +00:00
bjh21
8c87715ce0
We abuse cf_unit. The shame!
2001-01-23 22:07:58 +00:00
bjh21
616dad1a1b
Use evcnts properly for interrupt counting.
...
The architecture here follows that of the vax port -- each device has its
evcnt in its softc, but defers actually incrementing it to the IRQ
dispatcher. This way, devices can attach sub-counts (e.g. Rx and Tx counts
for Ethernet interfaces), but don't all have to have code to increment the
counters.
Drivers deliberately call evcnt_attach_dynamic() before establishing their
interrupt handler so that the establish routine can attach a parent event if
that's appropriate. At present, it isn't.
2001-01-23 22:07:57 +00:00
bjh21
668b6cbaba
We now have a rasops4 attribute to play with. It doesn't work, but then
...
neither do rasops1 and rasops2...
2001-01-23 00:27:44 +00:00
bjh21
55648b014b
Use our own evcnt structure to count VSYNC interrupts.
...
Also disable interrupts while we're not using them.
2001-01-22 23:29:34 +00:00
bjh21
d0b6f0f1cd
Changes to interrupt accounting:
...
NULL "name" argument to irq_establish indicates that the device will maintain
an evcnt structure for this interrupt. In this case, irq_establish will still
maintain its own count (for DDB machine irqstat), but won't attach it to the
global list.
Change use of ev_group and ev_name to follow guidelines in evcnt(9).
Switch arckbd(4) over to the new arrangements.
2001-01-22 23:08:26 +00:00
bjh21
fe3273fbb4
Patch from PR kern/8001, submitted by Rafal Boni.
...
This adds support for EtherExpress/16 cards with 16k of RAM, and in the
process adds general support for PIO mode on these cards. This entails
changing the way the i82586 driver handles bus barriers, since it doesn't
allow for strange cases like this.
This has been tested on the i386 port with the 'ix' driver in both
16KB (which was the source of the problem) and 32KB modes, as well
as with the 'ef' driver. I've tested it (briefly) with 'ei' on arm26
as well. In theory, drivers other than 'ix' should follow precisely the
same code paths as before.
2001-01-22 22:28:43 +00:00
bjh21
1178bf4219
Initial potentially sharable <arm/armreg.h>. Used by all arm26 code.
2001-01-22 22:10:39 +00:00
jdolecek
8b24036797
Require the machine-dependant DDB commands to be in db_machine_command_table[]
...
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()
Patch written by enami.
2001-01-22 13:56:55 +00:00
bjh21
8805bd8b56
Unify arm26 and arm32 trapframe structures. The unified trapframe is the same
...
shape as the old arm32 one, but there are a few #defines to keep arm26 code
happy. Anything that depends on the precise shape of the trapframe,
and especially on being able to treat it as an array of registers, has been
updated.
2001-01-20 17:14:19 +00:00
bjh21
2c89ce7e74
Add <arm/frame.h>, for shared stack frame structures. Currently, only sigframes
...
are common.
2001-01-18 21:48:25 +00:00
tv
e58532a4bf
No-op commit to force update to a non-"-kk" revision.
2001-01-18 17:47:58 +00:00
bjh21
46b21bb8a8
Fix a couple of brackets in a comment.
2001-01-18 17:05:06 +00:00
jdolecek
c1fc5392f5
adjust ddb variable access functions to have first arch 'const', make db_[e]regs[] const
2001-01-18 10:55:29 +00:00
fvdl
c7f1462f3e
Add machdep file for procfs. Currently only used for linux-style
...
/proc/cpuinfo (only active when procfs is mounted with -o linux).
For ports other than the i386 this currently produces an empty
string.
2001-01-17 00:07:18 +00:00
bjh21
f575270d81
Switch over to using the arm32 sigcontext structure.
...
Yes, this causes binary incompatibility. Yes, it's Evil, Bad and Wrong.
Nonetheless, I think it's probably the least unpleasant way to get close to
binary compatibility with NetBSD/arm32, and a very much doubt there are any
arm26 binaries out there that depend on the old shape of struct sigcontext.
2001-01-16 00:29:45 +00:00
thorpej
d74e432ed3
Make softclock a generic soft interrupt of the API is available,
...
adding the requisite void * argument to softclock().
2001-01-15 20:19:50 +00:00
thorpej
45de366b2e
Rename __GENERIC_SOFT_INTERRUPTS to __HAVE_GENERIC_SOFT_INTERRUPTS,
...
and place the definition in <machine/types.h>. This can now be used
as a flag to indicate whether or not <machine/intr.h> can be included
to get the generic soft interrupt API.
2001-01-14 23:50:28 +00:00
thorpej
6f0dfa5049
splimp() -> splvm()
2001-01-14 03:32:20 +00:00
thorpej
d85a75f583
Make sure everybody has an splvm() and equate it with splimp() (splimp()
...
is the historical name for this interrupt level, and the historical name
is going to go away in the near future).
2001-01-14 02:00:37 +00:00
bjh21
78c0ba909e
Separate out sigcode into its own file, since it's shared by arm26 and arm32.
2001-01-13 00:06:50 +00:00
bjh21
a5ef6e1f81
Move db_disasm.c into sys/arch/arm/arm. Use arm26 version, since it should
...
generate smaller compiled code.
2001-01-12 21:31:51 +00:00
bjh21
a4047bf10c
Move the generic ARM disassembler from arm32/arm32 to arm/arm.
2001-01-12 13:43:11 +00:00
bjh21
6189064e69
More FPU-state-saving infrastructure. Not useful yet.
2001-01-12 13:23:49 +00:00
bjh21
d74ad44e33
Document format of various chunk types.
2001-01-12 00:13:26 +00:00
bjh21
0bb3b087a6
Document the VIDC audio format.
2001-01-12 00:12:38 +00:00
bjh21
531e3e2075
Fix up irq_string for a world without intrnames.
2001-01-12 00:11:42 +00:00
bjh21
6fa98146d5
Start merging actual code in arm32 and arm26:
...
arm32/arm32/in_cksum_arm32.c -> arm/arm/in_cksum_arm.c
Also move specification of other checksum stuff to files.arm, even though we
use the MI code for that.
2001-01-11 23:27:26 +00:00
bjh21
5159a10d97
Share <machine/elf_machdep.h> between arm26 and arm32.
2001-01-11 22:28:06 +00:00
bjh21
a2dacbe06d
Switch over to using the generic arm header files for everything that arm26
...
and arm32 agree on.
2001-01-11 22:07:53 +00:00
bjh21
68ac1c6fc3
Add some infrstructure to support saving FPU state.
2001-01-11 22:03:52 +00:00
bjh21
7424b1f3c1
Grotty hack to attach names to interrupts.
...
Should be fixed when I next overhaul this code.
2001-01-11 14:56:07 +00:00
bjh21
5a91dd00b9
Add "arm" to the "machine" line, so we get files.arm pulled in, and more
...
importantly, the arm->arch/arm/include symlink.
2001-01-10 18:38:37 +00:00
bjh21
84a9223126
Add APCS-32 return instructions, though not used yet.
2001-01-09 12:11:57 +00:00
bjh21
2aa1fb4020
Remove old-style interrupt-counting infrastructure (intrnames/intrcnt).
2001-01-07 19:39:08 +00:00
bjh21
d6bd1012e3
Add facilities for counting interrupts, and a "machine irqstat" command to
...
DDB to tell us what's going on.
2001-01-07 17:01:53 +00:00
bjh21
2b076072d3
Add a "name" argument to irq_establish and friends, in imitation of arm32.
2001-01-07 15:56:01 +00:00
bjh21
6b513dfe29
Remove ioc_irq_establish -- It wasn't serving any useful purpose.
2001-01-07 15:36:34 +00:00
bjh21
fb3dd6b589
ANSIfy.
2001-01-07 15:27:37 +00:00
bjh21
32ad12527c
ANSIfy.
2001-01-07 15:00:02 +00:00
bjh21
32ff4eef91
ANSIfy.
2001-01-07 14:28:02 +00:00
bjh21
c730bd06be
Un-__P, remove arg names.
2001-01-07 13:48:24 +00:00
bjh21
5c09bd5fc5
Un-__P and remove function arg names.
2001-01-07 13:38:42 +00:00
bjh21
610a127a3d
Fix a stupid = vs == bug that prevented the code working usefully at all.
...
While I'm here, fix all the other GCC warnings too.
2001-01-07 00:30:29 +00:00
bjh21
fa64805abd
Specify (void) arguments, hence avoiding GCC warning.
2001-01-07 00:07:58 +00:00
bjh21
32c62f1fdb
ANSIfy
2001-01-06 13:09:05 +00:00
takemura
c5fd828440
replace 'long long' with int64_t to compile stand alone program with
...
compiler other than GCC.
2001-01-03 10:08:55 +00:00
bjh21
7866e2f2c9
Arrange that the return value of copyin() and friends be provided by
...
do_fault(), in preparation for do_fault() being able to get it from
uvm_fault().
2001-01-01 16:00:42 +00:00
bjh21
bc86e85531
Correct various initial comments, and provide a useful overview of how the
...
MEMC works, at the suggestion of chs.
2000-12-31 16:09:34 +00:00
bjh21
c1ad66d687
Whitespace cleanup.
2000-12-30 13:53:26 +00:00
bjh21
66c70101f3
Add a cache flush to pmap_fault() when it adds a r/w mapping, since there's
...
probably an old mapping around that we don't want to get stale.
2000-12-30 13:42:12 +00:00
bjh21
e9d5e8f1e5
Overhaul v(un)mapbuf: Don't worry about unmapping things (the pmap can handle
...
multiple wired mappings now). Do worry about seeding referenced/modified
information correctly.
2000-12-30 13:33:15 +00:00
bjh21
e4c6b6f4e5
pmap_kenter_pa(): Seed referenced/modified information correctly.
2000-12-30 13:31:50 +00:00
bjh21
b3eae7d1c8
Since we need to have an aout_machdep.h, we may as well borrow the arm32 one.
2000-12-29 23:08:31 +00:00
bjh21
36f8a8d0f8
Purge vestiges of a.out support.
2000-12-29 23:07:29 +00:00
bjh21
00a01e20d8
Sync with arm32. No functional changes.
2000-12-29 22:42:23 +00:00
bjh21
df10cbcda9
Sync with arm32 (fixes warnings compiling /bin/sh and probably others).
2000-12-29 19:30:34 +00:00
matt
a589927cbc
Make identical to arm32 version. (add same parens, use __P, etc.)
2000-12-28 03:55:14 +00:00
matt
f1f4acfb4d
Remove reference to CLBYTES
2000-12-28 03:54:15 +00:00
matt
61b05af542
Except for the RCSID, this file is now identical with arm32/include/ansi.h
2000-12-28 03:52:50 +00:00
bjh21
c00a8ab5fd
Calculate the required amount of screen memory, rather than just trusting the
...
number that RISC OS gives us (which may be far too large).
2000-12-27 22:13:42 +00:00
bjh21
9822871467
Add a special call to uvm_page_physload to register RISC OS's zero page as
...
free at startup.
2000-12-27 20:43:44 +00:00
bjh21
1b364c5082
pmap_confess() is unused and doesn't work any more. G/C it.
2000-12-27 18:38:50 +00:00
bjh21
c481cdca92
Overhaul of data-abort handling:
...
- Make data_abort_address() return the whole affected range, rather than
just one end.
- Don't rely on pmap_confess(). Instead, for LDM/STM, behave as if two faults
had occurred, one at each end of the range.
- Separate out fault handling into do_fault(), and call it from
data_abort_handler() (twice) and prefetch_abort_handler().
2000-12-27 18:35:18 +00:00
bjh21
58e80f030f
Two batches of changes:
...
1: Cleanup of syscall() -- treat the arguments as an array of register_t
throughout. This saves a few casts, and generally makes seeing what's
going on easier.
2: Be a little more careful in the handling of data aborts on kernel
addresses: don't use the kernel's map unless the access was actually from
a kernel mode. This is how the arm32 data abort handler behaves.
2000-12-27 16:57:09 +00:00
bjh21
186792c5b7
Use KASSERT for simple assertions.
2000-12-27 16:50:12 +00:00
bjh21
2433e71e6e
Medium-sized pmap overhaul:
...
- Use UVMHIST for debugging messages, rather than printf
- Rely on the caller of pmap_enter to tell us how to manipulate referenced/
modified bits in the kernel pmap.
[ Suggested by chs -- may need work on the rest of the kernel. ]
- Split third-stage initialisation out of pmap_create() into pmap_init2().
- Bug fix: when relocating pv_table, fix up all references to it as well.
- Bug fix: in pv_release(), if pulling up a pv_entry to the head of the
list, correct the reference from its pmap.
2000-12-27 15:16:04 +00:00
bjh21
ce3cd11d08
Unreasonably simple fix for PR#11817: Don't worry about duplicate mappings,
...
just get pmap_fault to shove them back in. Crude, but effective. Fix inspired
by Chuck Silvers.
This breaks pmap_confess, but it probably deserves to die.
2000-12-26 23:18:50 +00:00
bjh21
939baa9f0d
Follow the herd: Use the MI md_root.c.
2000-12-26 19:55:52 +00:00
itojun
efa2b7073c
make mbstate_t bigger (32 -> 128 bytes).
...
XXX if you have libc after citrus locale import, please recompile libc,
and your applications that use mbstate_t (rather rare). really sorry
for the mess.
2000-12-26 10:35:28 +00:00
bjh21
f1fc4edf08
In pmap_enter(), seed referenced and modified bits from access type passed in.
2000-12-23 23:06:51 +00:00
bjh21
5568314c66
Since the Arc's interrupt layout is fixed, only print IRQ numbers in
...
verbose mode. This helps to ensure the kernel version number doesn't disappear
too quickly.
2000-12-23 21:49:13 +00:00
bjh21
7cce6a2816
Remove "machine" subcommands that duplicate "show".
...
Add "machine bsw" which does a bus_space_write_*().
2000-12-23 15:18:34 +00:00
bjh21
da1e6b7cfb
Don't SIGSEGV a process just because we get KERN_RESOURCE_SHORTAGE. It might
...
go away.
Yes, this is a grotty hack. The right solution is for uvm_fault to be less
pessimistic.
2000-12-23 15:12:54 +00:00
bjh21
95920110c7
Stub FPU driver -- identifies FPUs and warns they aren't supported. e.g:
...
cpu0 (root): ARM2
fpu0 at cpu0: FPPC/WE32206
fpu0: WARNING: FPU type not supported by kernel
2000-12-23 13:37:02 +00:00
bjh21
85aa3d3b8d
G/c unused declarations.
2000-12-23 12:57:55 +00:00
jdolecek
e9e91a0fb5
split off thread specific stuff from struct sigacts to struct sigctx, leaving
...
only signal handler array sharable between threads
move other random signal stuff from struct proc to struct sigctx
This addresses kern/10981 by Matthew Orgass.
2000-12-22 22:58:52 +00:00
bjh21
0c0d8f3775
Support for identifying MAUs attached to EtherLan 200-series cards.
2000-12-22 22:21:37 +00:00
itojun
823498203f
populate _BSD_MBSTATE_T_. add warning regarding to rune_t.
2000-12-21 06:03:47 +00:00
bjh21
15d214bd18
Looks like I got the state of the link-detect bit inverted. Fixing that
...
gets me working auto-media selection, which is nice.
2000-12-20 23:08:44 +00:00
bjh21
9ca53819f0
Actually use 10baseT when we say we will.
2000-12-20 22:48:15 +00:00
bjh21
4a33b50a91
Add eh(4).
2000-12-20 22:17:31 +00:00
bjh21
f8e732cd45
Use the podule loader code to get at the card description the official way,
...
and get our Ethernet address from there. This works on both of my cards.
2000-12-20 10:59:32 +00:00
bjh21
b66603547a
Add support for using RISC OS podule loaders to get at ROM chunks on podules.
...
By default, they aren't used, since most cards seem to put the non-OS-dependent
stuff in the main chunk directory. i-cubed cards are a notable exception.
2000-12-20 10:57:38 +00:00
bjh21
5b4c3dc909
Disable media autoselection entirely, but use whatever medium the card was
...
found using (presumably having been set up by RISC OS) as the default.
NB that this doesn't seem to be right for the EtherLan 200.
2000-12-20 00:01:56 +00:00
tsutsui
cb7f7c7f3b
Remove "rnd is EXPERIMENTAL" comments.
2000-12-19 15:51:47 +00:00
bouyer
c71f40d166
Add pseudo-device vlan
2000-12-19 10:42:02 +00:00
bjh21
c25ab2f1ec
Rudimentary facilities for extracting the card's Ethernet address from the
...
ROM. Only works on one of my two cards, though. It looks like we'll need
to use the RISC OS loader on the podule to get this right. *mutter*
2000-12-18 00:46:47 +00:00
bjh21
4942923809
Handle detecting the available media and state of medium selection links
...
on EtherLan 100 (and presumably 500) boards.
2000-12-17 22:29:26 +00:00
jdolecek
cacec11253
delete obsolete comment
2000-12-17 15:52:39 +00:00
bjh21
72735aa75a
Correct embarrassing null-pointer-dereference bug. Also fixes interrupt
...
enabling.
Default to 10base2 for now, since automatic media selection doesn't work.
2000-12-16 18:24:36 +00:00
bjh21
3ebcd51009
I think bit 0 of the status register is the interrupt status on read.
2000-12-16 18:23:14 +00:00
bjh21
3c5709c088
Separate out checkvectors(), so it can be used elsewhere for debugging.
2000-12-16 16:45:11 +00:00
bjh21
395a883e48
Pull across arm32 rev 1.19:
...
Remove ALTENTRY(). It's dangerous and should not be used.
2000-12-14 20:50:56 +00:00
bjh21
e266a563d8
Filter out non-ASCII characters from podule descriptions.
...
I think my MIDI card had a \r at the end, which was confusing.
2000-12-14 20:40:29 +00:00
bjh21
84d111ea01
Move RCSID to the end of locore so it doesn't end up in zero page if we
...
compile with an asm.h which doesn't know about section .ident.
2000-12-14 20:30:03 +00:00
bjh21
a6b4048c85
Get ELF RCSIDs back
2000-12-14 20:26:42 +00:00
bjh21
14198dc0bd
Sync with arm32 -- they've got ELF stuff there these days.
2000-12-14 19:28:12 +00:00
bjh21
acff6e4375
Use _C_LABEL rather than _C_FUNC.
2000-12-14 19:22:39 +00:00
bjh21
afb44982ee
Correct the mangled-vectors check.
2000-12-11 23:51:58 +00:00
bjh21
0692c35dda
Since BBBB correctly disables the CPU cache at startup, we now decide whether
...
to leave it disabled based on the bottom bit of cpu0's cf_flags.
2000-12-11 23:46:50 +00:00
bjh21
d606f7e6e0
Move most of the RISC OS shutdown into BASIC code.
...
Issue Service_PreReset to get the hardware to a sane state.
Use *ShutDown to log off fileservers.
Use the correct arguments to Cache_Control.
Using Service_PreReset seems to have rendered the Podule_ReadID trick
unnecessary, so g/c it.
2000-12-11 22:19:18 +00:00
bjh21
4f1ee09e5f
It looks like UBC_WINSIZE needs to be at least PAGE_SIZE.
2000-12-10 14:28:45 +00:00
bjh21
4f5619bc7c
Prototype kdb_trap().
2000-12-10 01:31:48 +00:00
bjh21
7e79390d64
Delint.
2000-12-10 01:27:35 +00:00
bjh21
6073fc61bf
Indirect the SWI handler through the current emulation, thus providing a
...
syscall() for MI code. Hope it never calls it itself.
2000-12-10 01:18:52 +00:00
bjh21
477863502b
DIAGNOSTIC check for mangled exception vectors.
2000-12-10 01:02:04 +00:00
bjh21
559ea94aca
Fix arguments to ktrsys*() functions.
2000-12-09 18:57:17 +00:00
bjh21
6d66ade542
We no longer have zeropage.S. It was merged into locore.S last week.
2000-12-09 18:54:01 +00:00
bjh21
86dd29d1f5
Add a definition of BUS_SPACE_ALIGNED_POINTER.
2000-12-09 18:47:15 +00:00
bjh21
8df54708da
If we get an odd IOEB type, tell the user. I have a feeling issue 1 A5000s
...
might trip this.
2000-12-09 18:04:05 +00:00
bjh21
38d918f85f
Proper support for the Unix backplane in those machines that have one.
...
Not very well-tested, but it seems to work.
2000-12-09 17:52:44 +00:00
bjh21
facbe746d0
Provide friendly names for the IRQs as they're wired in normal machines.
2000-12-09 15:16:01 +00:00
bjh21
3e0d9a1b4a
Fix multiple-file loading. Bump version number to 0.41.
2000-12-09 13:30:25 +00:00
bjh21
4c4e11c0f8
Merge zero page into the start of locore. This allows us to just map the
...
start of the kernel text segment in at address 0 to get zero-page properly
mapped. This should save us one page, but that may need a bit of extra
shuffling before we can easily tell UVM about it.
2000-12-07 21:48:58 +00:00
bjh21
cb5273b547
First attempt at an EtherH driver. Can just about transmit and receive
...
packets. Interrupt enabling is left to the RISC OS driver, medium selection
is untested and it's hard-wired to the MAC address of my card. Not really
for production use.
2000-12-01 14:28:36 +00:00
bjh21
9307dc5373
Reduce default UBC_NWINS to save precious KVM.
2000-11-30 20:59:36 +00:00
bjh21
32b19479ca
Drastically reduce PAGER_MAP_SIZE so we don't run out of KVM so soon.
2000-11-30 12:16:00 +00:00
bjh21
eb0dc305da
Insert clock low after ack bit.
2000-11-26 18:53:12 +00:00
bjh21
f801b80192
Zero-length reads seem to confuse the chip, so don't do that.
2000-11-26 18:12:36 +00:00
bjh21
70562420ce
Support multiple files on the command line (they're catted together).
...
Ditch a.out support while we're here (to save updating it).
2000-11-25 18:30:23 +00:00
bjh21
98253a5467
It seems that all versions of BBC BASIC V can load a text file specified on
...
the command line, so we don't need to tokenize it first.
This makes it less than clear what file type BBBB should have, so let's not
make an issue of it.
2000-11-25 13:32:51 +00:00
bjh21
564a044dcb
Using bsd.man.mk looked silly without a man page. Use bsd.prog.mk without
...
PROG instead.
2000-11-22 00:36:22 +00:00
bjh21
fc955e1104
Move BBBB out of the kernel tree so other architectures can see it.
2000-11-22 00:32:53 +00:00
bjh21
c4eb6c6325
Rudimentary manual page for BBBB.
2000-11-22 00:18:47 +00:00
bjh21
986c78ced4
New mechanism for building the tokenised version of BBBB under NetBSD. This
...
saves us having to keep a uuencoded version around.
2000-11-21 23:47:37 +00:00
bjh21
99899665e8
Move of BBBB to a more sensible location.
...
Look in sys/arch/arm26/boot/BBBB,fd1 for old commit messages.
2000-11-21 23:44:24 +00:00
chs
c62d17a551
rationalize the use of b_flags for geteblk() buffers.
...
rather than assigning to the whole field, set or clear individual flags,
which implies that the B_BUSY and B_INVAL flags will remain set.
this allows us to make the assertion in brelse() that B_BUSY is set,
which is the purpose of all this.
2000-11-20 08:24:08 +00:00
bjh21
b4ef973eab
IDE hard discs seem to work -- turn them on by default.
2000-10-14 23:46:40 +00:00
bjh21
a449e4af6d
Ensure that the IOC is attached before any other devices, mostly because
...
the UPC driver needs to know whether the system's got an IOEB in it.
The way this is implemented is a mess -- I need to get my mind round
autoconfiguration again.
2000-10-14 23:44:42 +00:00
bjh21
7270db5ec0
Change to semantics of irq_establish: IRQs are now enabled by default, which
...
I think is the same as all other ports.
2000-10-14 23:41:01 +00:00
itojun
9e47af8814
enable rnd device. they are now mandatory for ssh/sshd support,
...
so it makes more sense to enable it.
please disable them if there's any issues, but in that case, in-tree
ssh/sshd won't work.
2000-10-04 03:35:53 +00:00
jdolecek
b1f94e26ab
don't specify number of ptys if >= 16 (current default initial number)
...
pty comments: normalize and g/c what is no longer relevant
2000-09-24 15:59:26 +00:00
jdolecek
49c105ffdb
add new macro BOOT_FLAG() (defined in <sys/boot_flag.h>) - this
...
maps standard boot flags to corresponding RB_* values
use BOOT_FLAG() in port's MD code as appropriate
as discussed on tech-kern, add new boot flags -v, -q for booting
verbosely or quietly, and corresponding AB_VERBOSE/AB_QUIET
boot flags; also add FreeBSD-compatible bootverbose macro and
NetBSD-specific bootquiet macro
for hpcmips, use new bootverbose instead of it's own hpcmips_verbose
Tested on i386, and to limited extend (compile of affected files) also for
mvme68k, hp300, luna68k, sun3.
2000-09-24 12:32:31 +00:00
bjh21
d0dfd74448
COrrect comment at top and add options NFS_V2_ONLY.
2000-09-23 12:58:26 +00:00
bjh21
b6ba812d35
Much juggling of pmap startup sequence:
...
* All of pmap_init is now deferred to the first call of pmap_create. This
allows us to allocate stuff dynamically using malloc.
* pv_table (which is needed before malloc is available) is temporarily
allocated using pmap_steal_memory in pmap_bootstrap, and then
re-allocated using malloc in pmap_create, with the old allocation being
given back to UVM. This should save some memory on small machines, but
the malloc overhead probably soaks it up.
2000-09-23 12:54:47 +00:00
bjh21
3112fd4f14
Add a pmap_steal_memory implementation. This has two good consequences.
...
First, it reduces the kernel text segment by 1k or so.
Second, it should enable me to eventually allocate the pv_table dynamically.
2000-09-23 11:10:58 +00:00
bjh21
7751c0fd46
If we haven't got DDB in the kernel, there's not much point hanging onto the
...
symbol table.
2000-09-21 23:22:51 +00:00
bjh21
f3ef35c447
Add rudimentary 80C04 support (basically saying "Oh look, an 80C04!").
...
Move printing the initial ":" into the board driver, like i82586.c does.
Don't bother printing the amount of RAM, as it's always 64 KB.
2000-09-21 22:20:38 +00:00
bjh21
40aba7cd4d
Split the arm26 Ether3 (ea) driver into an MI driver for the SEEQ 8005 chip,
...
and a front-end driver for the Ether3. Only semantic change is to remove
ea_claimirq() and ea_releaseirq() on the grounds that the seem too spurious
to warrant a callback to the front-end.
2000-09-18 20:51:14 +00:00
bjh21
41b1cb9327
Remove mention of truly dead files
2000-09-18 20:08:43 +00:00
bjh21
f32aac93cb
Add an ROMTEXTBASE option to change where the text segment is linked. This
...
might be useful for making rommable kernels if I can get the rest of the
infrastructure sorted.
2000-09-18 18:33:33 +00:00
bjh21
bae27bc250
Make the FOURMEG kernel a bit smaller. Still not small enough.
2000-09-18 18:30:01 +00:00
bjh21
35dc9595d6
Move the user structure for process 0 into the same page as its stack segment,
...
the same as for every other process. It probably doesn't matter, but it makes
me feel more comfortable.
2000-09-18 18:01:39 +00:00
thorpej
72a24b4eae
Add an align argument to uvm_map() and some callers of that
...
routine. Works similarly fto pmap_prefer(), but allows callers
to specify a minimum power-of-two alignment of the region.
How we ever got along without this for so long is beyond me.
2000-09-13 15:00:15 +00:00
bjh21
7c9498f7cb
Move setsoftast() and friends into cpu.h and make them into macros, so arm26
...
is the same as every other port (except arm32).
2000-08-25 16:43:46 +00:00
bjh21
36f4367186
<machine/spl.h> -> <machine/intr.h> (missed this one last time)
2000-08-25 10:37:58 +00:00
thorpej
4db6fc7542
Make need_resched() take a "struct cpu_info *" argument. This
...
causes gives a primitive form of processor affinity. Its use in
roundrobin() still needs some work.
2000-08-25 01:04:06 +00:00
bjh21
acb0541a4b
Use symbolic names for interrupt lines.
2000-08-23 17:28:51 +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
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