Commit Graph

398 Commits

Author SHA1 Message Date
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
thorpej 23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06: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
bjh21 567f2768d1 Implement the easy ptrace requests and turn off the difficult ones. 2000-08-20 15:16:49 +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
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
bjh21 a81231398b Oops. Remember to close the comment! 2000-08-17 22:09:10 +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
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
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
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
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
bjh21 7d83a5201a bus_space version of if_ea.c -- should have been committed before.
Transmit and receive buffer sizes aren't an intrinsic property of the card,
so they belong in if_ea.c rather than if_eareg.h.

Correct some comments in if_ea.c
2000-08-12 14:06:29 +00:00
bjh21 4493200775 Use bus_space stuff. No more ReadShort and WriteShort.
Also a few minor cleanups.
2000-08-12 13:35:08 +00:00
bjh21 7ba12358d7 return isn't a function call 2000-08-12 12:20:17 +00:00
bjh21 b108872b97 Remove spurious reset of card in probe routine -- it can almost certainly
safely be left till attach time.
2000-08-12 12:15:59 +00:00
bjh21 ef01128d16 Avoid gratuitously copying data on transmission as well, and hence do away
with the 2k packet buffer in the softc.
2000-08-12 11:56:46 +00:00
bjh21 e801d41011 Remove void casts from splx(). It returns void anyway. 2000-08-10 23:06:38 +00:00
bjh21 c636092423 Use ETHER_IS_MULTICAST where relevant. 2000-08-10 23:03:04 +00:00
bjh21 24ab4fb4f8 Check the podule has a description before using it. 2000-08-10 22:57:01 +00:00
bjh21 2fb8a3feb8 Clean up packet reception. Notably, copy data straight from the card to
mbuf(s) without using the packet buffer in the softc.  Also, clean up error
messages.
2000-08-10 22:43:45 +00:00
tshiozak dec20dab0e set MB_LEN_MAX to 32. I forgot the modification for arm26 yesterday. 2000-08-09 16:43:59 +00:00
bjh21 b642a6e612 ANSIfication and general cleaning. 2000-08-08 21:16:59 +00:00
bjh21 e74a0fd322 Major formatting cleanups. If I'm going to work on this driver, I want to be
able to read it.
2000-08-07 22:21:44 +00:00
bjh21 77a537a1ba Use M_SOFTINTR for soft interrupt sructures 2000-07-30 16:39:18 +00:00
bjh21 4d52022987 Comment tidying 2000-07-28 09:54:56 +00:00
bjh21 61edac627c Convert the arm26 rtc driver to use pk's new todr(9) interface internally.
Nothing outside the driver will notice until we get proper MI I^2C.
2000-07-27 23:51:43 +00:00
mason 4a353b5330 Moving to a default of 64 PTYs. 2000-07-27 17:53:35 +00:00
bjh21 f6ce16a43b Fix up alignment of incoming payloads. BOOTP at least now works. 2000-07-22 21:30:54 +00:00
bjh21 9c47f8b134 Read the ECID from each podule just before we launch the kernel. This means
that the ROM page registers on the podules are likely to end up pointing at
the page with the ECID in it, so NetBSD can recognise the podules.

This is necessary for my i-cubed EtherLan cards, at least.
2000-07-22 15:36:15 +00:00