Commit Graph

2176 Commits

Author SHA1 Message Date
matthias af667cdd42 The io offsets in arm32/isa/timerreg.h included the IO_TIMER1 offset.
With dev/ic/i8253reg.h this is not the case.
Add IO_TIMER1 to all offsets used in inb and outb. This fixes port-arm32/13009.
2001-06-02 12:51:28 +00:00
bjh21 447793851c Add hcsc to every configuration that has SCSI podules. 2001-06-02 10:48:54 +00:00
mrg 67afbd6270 use _KERNEL_OPT 2001-05-30 11:57:16 +00:00
bjh21 7d9a4dbad7 Move blockio.S from sys/arch/arm32/arm32 to sys/arch/arm/arm, since I want to
start using it on arm26.

hpcarm gets to keep its own version, since it's not identical and I haven't
got an hpcarm box to test.
2001-05-29 23:03:20 +00:00
mrg 3783ca5d30 define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
chs e44e9dec8a replace vm_page_t with struct vm_page *. 2001-05-26 21:27:02 +00:00
bjh21 c7a388d937 Turn "oak" into an MI podulebus driver. Tested on my new A310. 2001-05-26 17:49:46 +00:00
chris 7dd0515e15 Use ffs asm routine in arm32 context switch code. 2001-05-23 21:49:57 +00:00
chris f220cad8dd Use ffs like routine in the footbridge irq handling. It is now very similair to the iomd irq handler.
Note that I've kept the existing quirk of still passing the irq to the next handler even if the irq handler returned 1.  I need to investigate why we do this.
2001-05-23 21:23:54 +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 e2b24925d1 Use get_bootconf_option() to find boot options, rather than home-grown
strstr()-based hacks.
2001-05-13 13:53:08 +00:00
bjh21 61044be691 Move get_bootconf_option() into a new file, sys/arch/arm/arm/bootconfig.c,
since it's in no way machine-dependent.  It's not really ARM-specific either,
but I don't think it's useful enough to be made part of the MI kernel.
2001-05-13 13:44:33 +00:00
matt 9c197c4609 Change references to <arm32/isa/timerreg.h> to <dev/ic/i8253reg.h>
Remove timerreg.h
2001-05-09 17:34:40 +00:00
matthias 0edc338e99 third argument of pcpoll is a struct proc now. 2001-05-08 11:29:39 +00:00
bjh21 0336117218 The arch/arm32/kshell code was removed three years ago. Kill references to it. 2001-05-06 18:38:58 +00:00
bjh21 6d4648fa03 Move "defopt PMAP_DEBUG" into files.arm, since it's used by code in arch/arm. 2001-05-06 18:31:14 +00:00
bjh21 f9087c439b Move cpufunc stuff from arm32/arm32 to arm/arm. The only change involved is
to add recognition of the SA-1100 and SA-1110 for compatibility with hpcarm
(which is now using this code as well).
2001-05-06 18:01:42 +00:00
reinoud b3798660cd Small typo... 2001-05-03 23:07:08 +00:00
reinoud da9012cd1d Some small improvements on the setting of keyboard LEDS's and a small
cleanup
2001-05-03 23:05:48 +00:00
scw 2963ff5c58 Add `l_poll' to `struct linesw' and provide an xxxpoll() entry point
in each tty driver to indirect through it.

This allows tty line-disciplines to handle poll(2) system calls.
2001-05-02 10:32:08 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +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
bouyer 937a7a3ed9 Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
bjh21 843c4223f1 setsoftast is a macro now. 2001-04-24 18:21:10 +00:00
bjh21 01adfb1d35 Pull in <arm32/psl.h> for spl* definitions. 2001-04-24 18:16:43 +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
bjh21 72aab13520 Add the IOLINES register from the ARM7500FE, and delete a few incongruous
blank lines.
2001-04-23 22:17:09 +00:00
rearnsha 8a64dad5d2 Eliminate dev->sc_xs. Simplify calls to sbicicmd. Replace
dev->sc_kv.dc_{addr,count} with dev->data{,len}.
2001-04-23 20:32:33 +00:00
rearnsha 8faae68155 Use bus_space functions for accessing SBIC registers. 2001-04-21 20:47:26 +00:00
matt 5f6967f571 A small change for NETWINDER support. (netwinder needs its own pci_attach_hook) 2001-04-20 16:52:04 +00:00
reinoud 80b53c5a9b Euhm... small typo ! 2001-04-20 12:47:55 +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
rearnsha 348133bed4 More formatting cleanups. Disable UNPROTECTED_CSR since the code
is unsafe (can clear interrupts that we are waiting on).
2001-04-19 17:30:20 +00:00
matt 446403457a Don't the RPC stuff on SHARK or FOOTBRIDGE machines. 2001-04-19 07:19:48 +00:00
matt afc8ecb0ea A small NETWINDER kludge. 2001-04-19 07:15:24 +00:00
matt e046a0dbfb Add a NETWINDER keyword 2001-04-19 07:14:52 +00:00
chris 7b97ef04ca Enable clockswitching on sa110 (with it disabled the core clock runs at the speed of the memory bus) 2001-04-16 18:09:56 +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
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
reinoud 763e66f5de Initial commit of wsmouse driver for the IOMD quadratic mouse. 2001-04-14 19:22:43 +00:00
reinoud 4e845e001a Accidently left COMCONSOLE configured 2001-04-14 14:51:04 +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
reinoud c025377acc Cleanup of attachment code of framebuffers 2001-04-14 02:25:43 +00:00
reinoud fdeb609887 Place a remark ... the old vidcconsole code can't handle the comconsole
not yet for it is called early in the init_arm() ... this needs to be
patched one day so it can be called very early; but is this possible ?
2001-04-12 21:54:06 +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
reinoud 11c012efcc Just switch the RI_CENTER off for now ... just to avoid troubles with
the hardware scrolling code...
2001-04-12 00:42:50 +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 3e6eaba006 The old vidc console code can't handle all display depths 2001-04-09 19:33:22 +00:00
reinoud ba53dd71d7 Re-enable setmode() in wscons implementation. 2001-04-09 19:23:32 +00:00
reinoud b592059273 Just some pretty printing for 640 width screens 2001-04-09 19:22:42 +00:00
reinoud e9d5de6e98 Patch the hardware scrolling to be only used when using VRAM until it is
working perfectly with DRAM only.
2001-04-09 13:59:44 +00:00
reinoud ed0aea79a7 Make the NC start run again ... it didnt detect the start of the DRAM good
enough.
2001-04-07 20:57:24 +00:00
reinoud 0eb01da9c9 Two preliminary NC kernel definition files.... 2001-04-05 22:34:28 +00:00
reinoud 1b2003f235 Apply patches for the NC ... not really in the line of the merge but at least
its in the source tree for now.
2001-04-05 22:33:12 +00:00
bjh21 9411be7c80 Re-enable the old "ea" and "eb" drivers under the names "oea" and "oeb".
These shouldn't last long, but they may be useful until I hammer all the bugs
out of the new version.
2001-04-05 20:31:50 +00:00
reinoud b44dca831b Since the NC's seem to have trouble with the OS_HeapSort, i've implemented
my own sorting routine (bubblesort). Also replaced a declaration for BASIC
seemed to mess things up.
2001-04-05 19:17:17 +00:00
rearnsha d9de58f3e1 Ansify. Replace bcopy/bzero with memcpy/memset. Clean up formatting.
Clean up debug messages.  No significant functional changes.
2001-04-05 18:06:45 +00:00
reinoud 8008708109 Hmm... these were just plain wrong ... it should be more sane now 2001-04-04 21:11:07 +00:00
reinoud 9d0e339af2 Fix a big memory allocation bug in the bootloader; i underdementioned
a piece
2001-04-04 17:13:28 +00:00
reinoud 4b9911dfd2 Finally implement the BREAK key in the wskbd ! :)
The BREAK key is a wierd one that gives an extra prelude.
2001-04-02 12:34:34 +00:00
reinoud 12f7f9e0de Make it compile again ... removed an unused variable 2001-04-01 20:16:25 +00:00
reinoud 321ff3e0db Remove the VIDC start video programming from the Vsync to when its moved; this
also solves problems with the interrupts being disabled in ddb resulting in no
scrolling :(
2001-04-01 20:08:18 +00:00
reinoud 4b7f5e2feb Add hardware scrolling to the RiscPC wscons implementation.
There are still some minor oddities esp. at startup but after that it
functions OK.

The scrolling speed is increased *dramatically* and allmost even faster
compared to the old vidcconsole code; *NOT* tested yet on non-VRAM machines.
2001-04-01 16:58:05 +00:00
reinoud 29cf89ce1a Bump BtNetBSD version number to 0.95 ... forgot that 2001-04-01 16:50:24 +00:00
chris 101035dac6 Add EtherN/EtherI card support + EtherH media auto detection support.
Based on updated patch from Mike Pumford, originally submitted in
port-arm32/8765.
2001-03-31 15:32:46 +00:00
toshii dfddb1e107 Increase spl_masks[] size by one and set the extra element to 0.
irq_entry accesses here.
2001-03-31 12:22:37 +00:00
reinoud 7cf783665e Please preserve copyright notices modified by Ben Harris since the a.out and
ELF structure loadings are of his design from BBBB
2001-03-30 23:49:06 +00:00
reinoud 7d798b3ef7 Initial ELF kernel loading for RiscPC/A7000/NC based on Ben Harris's work
Since arm32 isnt switched to ELF yet its not completely tested; It loads
a kernel but then hangs on symbol table loading; propably a ELF/a.out
symbol table conflict.

Also cleaned up the code a bit
2001-03-30 23:44:58 +00:00
toddpw a6a587a71e Track prototype change to isa_fillw() that avoids passing u_short as an arg. 2001-03-30 11:21:33 +00:00
lukem 20ba07f2fe - add dev_noimpl(xxx,yyy) macro to replace "(dev_type_xxx((*))) yyy",
and use appropriately

- create more helper macros:
   . cdev__xyz_init(c,n), such as cdev__ocri_init() for
     /* open, close, read, ioctl */, etc.
   . cdev__xRy_init(c,n), where nullop is used instead of enodev to dummy out
     method `R' and the comments now read /* xxx (read) yyy */ instead
   . cdev__xyz_t_init(c,n,t) - as per cdev__xyz_init, but sets d_type = t
     as well

- use seltrue instead of dev_noimpl(poll,*), as (IIRC) cdevsw.d_poll should
  always DTRT WRT returning a valid result.  (a few devices previously
  incorrectly returned ENODEV)

- use dev_noimpl(stop,enodev) instead of dev_noimpl(stop,nullop) if tty
  == 0, because it doesn't matter if dev_type_stop isn't implemented in that
  case, and it allows the use of the cdev__xyz_init macros. certain ports
  (sparc,sparc64,x68k) used the nullop method for dev_type_stop in a few
  drivers, whereas everything else uses enodev

- ensure that the comments are accurate WRT the behaviour of a given entry
2001-03-26 12:33:22 +00:00
reinoud 903b8688da The interface to `setdisplay' was implemented wrong. The utility stated the number
of bits per pixel instead of the log2_bpp as assumed (since the rest uses this).
2001-03-25 21:25:35 +00:00
bjh21 8edd158910 MI(ish) EtherB driver using the MI SEEQ 8005 driver. Very lightly tested. 2001-03-25 01:09:36 +00:00
bjh21 cbe4d910da It might be useful if I actually filled in the interrupt handle for
podulebus_irq_establish() to use.
2001-03-25 00:56:58 +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 9f60674a47 now that duplicated stuff has been moved to sys/conf.h, remove unnecessary
defs for: lpt, joy, pc
2001-03-21 23:42:14 +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
soren 912c115675 s/vm_page_alloc_memory/uvm_pglistalloc/ in panic message. 2001-03-21 18:40:28 +00:00
bjh21 998606396f Move struct podule_list and struct podule_description to podulebus.h.
They're MI, even if only arm32 actually uses them at present.
2001-03-20 23:27:04 +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
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 482f11868a Added dependency for "VIDCCONSOLE" (old console code) for the physcon char
device on console (makedev(4,0)) to aid in wscons transition.
2001-03-20 15:39:16 +00:00
reinoud adbed15428 Replace `bitsperpixel' by `log2_bpp' for thats the value that is in it
and not the number of bits per pixel !
2001-03-20 12:52:03 +00:00
reinoud e8f67fd5b7 `bitsperpixel' in the bootconfig structure is replaced by `log2_bpp'
for thats the value that is in it anyway and not the number of bits per pixel !
This to avoid confusion.
2001-03-20 12:50:08 +00:00
reinoud 2ac5b2f7cf Replace `bitsperpixel' by `log2_bpp' for thats the value that is in it
and not the number of bits per pixel !
2001-03-20 12:48:37 +00:00
bjh21 34cca2e23e Pull in shared podulebus drivers. 2001-03-20 00:01:37 +00:00
bjh21 2821b16ef4 Quick hack implementation of region ops. Not very pretty, but good enough
to get ei(4) working on arm32.
2001-03-19 23:56:45 +00:00
bjh21 4d5762c860 This file depends on <machine/io.h>. 2001-03-19 23:03:59 +00:00
bjh21 e7cc62cc44 A few #defines for the common podulebus API. 2001-03-19 22:59:13 +00:00
rearnsha 51e6b460ab Slightly smaller code and tune for StrongARM. 2001-03-19 22:51:51 +00:00
rearnsha 77d7115444 Spelling mistake (saftey -> safety). No functional change. 2001-03-18 18:49:37 +00:00
rearnsha f8ffa07954 Always restore the spl value when returning form physconkbd. 2001-03-18 17:03:26 +00:00
rearnsha 62dd3b3608 Fix a couple of cases where we could return without restoring the
SPL value.  Fixes a problem with the Xserver on A7000 kernels.
2001-03-18 17:00:56 +00:00
bjh21 614827277d Switch over to using podulebus_irq_establish(). 2001-03-18 16:58:55 +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 6c42a5d73a Move over to using podulebus_irq_establish. 2001-03-18 01:31:03 +00:00
bjh21 63059bd6dc Remove redundant sc_ih from struct ea_softc. 2001-03-18 01:30:30 +00:00