Commit Graph

1443 Commits

Author SHA1 Message Date
mark 0c2564ec4a Remove some unused variables. 1998-09-06 04:25:15 +00:00
mark f21d591227 Convert bzero() to memset(). 1998-09-06 04:24:18 +00:00
mark f472d5f788 Include machine/intr.h. 1998-09-06 04:22:43 +00:00
mark 249cdfe998 Convert b*() functions to mem*(). 1998-09-06 04:20:37 +00:00
tv a3da712ec1 Add netbsd_sdboot and explain the differences between the kernels. 1998-09-06 03:38:56 +00:00
mark 352fc12abe Define BootConfig for EBSA285 kernels. 1998-09-06 03:11:38 +00:00
mark f275d29c4b Implement a dummy version of pciide_machdep_compat_intr_establish()
for now.
1998-09-06 03:01:38 +00:00
mark 3c2941eda0 Initial commit of PCI-ISA bridge device driver. This driver use the
PCI-ISA bridge callback mechanism to attach the ISA bus to the PCI=ISA
bridge.
This is basically an import of the i386 pcib.c code with very minor
changes.
1998-09-06 03:00:25 +00:00
mark 722e17fbfe Don't build depandancies for genassym.c as it no longer exists. 1998-09-06 02:41:19 +00:00
mark 203b612984 Move UVM option to std.arm32 1998-09-06 02:37:47 +00:00
mark f3889623a7 Add USB device declarations. 1998-09-06 02:35:22 +00:00
mark 9968946f1e Added USB devices.
Added fcom serial device.
1998-09-06 02:33:56 +00:00
mark 896041468d Initial commit of config file for EBSA285 architecture boards. 1998-09-06 02:30:52 +00:00
mark 928d54f699 Added Footbridge (DC21285) files, PCI and USB. 1998-09-06 02:28:58 +00:00
mark 71150c9734 Initial commit of board support for DEC/Intel EBSA285 architecture
systems include the Chalice CATS board and others running the cyclone
firmware.
1998-09-06 02:23:36 +00:00
mark 0823f75d49 Initial commit of DC21285 'Footbridge' core logic support for the
StrongARM SA110 processor
The DC21285 provides memory controller, timers, interrupt controller
PCI-HOST bridge and diagnostic serial port.
1998-09-06 02:20:33 +00:00
christos 449820f2ea Assign copyright to TNF. 1998-09-05 15:28:04 +00:00
lukem c9db84ecc9 distclean is a synonym for cleandir 1998-09-05 15:15:14 +00:00
mark 646b4ca78b Declare boot_file. 1998-09-05 04:14:21 +00:00
mark 4285910912 Implement faster method of blocking all lower priority interrupts.
Modify current_spl_level to reflect the temporary change in interrupt
priority level which dispatching.
Don't increment the interrupt stats for every handler in the interrupt chain.
Cleaned up a number of comments.
Define soft interrupt names.
A few miscellaneous tidy ups.
1998-09-05 04:05:31 +00:00
mark de5eac54ea Simplified initialisation of irqmasks.
Removed any remnants of soft interrupt dispatching.
Cleaned up a number of comments.
Removed a number of blank lines.
Nuked register keywords.
Made sure code is in sync with interrupt handling for other ARM hardware.
1998-09-05 04:04:24 +00:00
mark 451f011ac6 Always call dosoftints() for both lowerspl() and splx().
Fix several comments.
1998-09-05 04:01:53 +00:00
mark 3a115108ed Nuke register keywords.
Update set_spl_masks() to reflect the _SPL_SOFT* macros.
Initialise the soft interrupt mask array.
Update dump_spl_masks() to dump all the hardware and software spl masks.
1998-09-05 04:00:30 +00:00
mark 900bbc08fc Soft interrupt dispatching now uses the soft_interrupts variable along
with the spl_smasks array and the current_spl_level variable to work
out which soft interrupts are pending.
This means that soft interrupts are now separated from the hardware
interrupts so a full 32 hardware and 32 software interrupts can now be
supported.
Implement clearsoftintr() function.
Define several macros to make the soft interrupt dispatching code cleaner.
Implement setsoftserial() function.
Implement soft serial interrupt dispatching.
1998-09-05 03:59:29 +00:00
mark 867fa9eb68 If boot_file is defined try using it to determine the boot device.
Update printing of irqmasks for IPL_SERIAL.
1998-09-05 03:58:31 +00:00
mark 08c24a03e4 Cleanup and simplify interrupt number definitions for various architectures.
Remove all soft interrupt definitions now soft interrupts are being
separated from hardware ones.
Reserved interrupts do not have any special uses so only define then if
needed as placeholders.
1998-09-05 03:51:01 +00:00
mark 6edf348e6d Define _SPL_SOFT{CLOCK,NET,SERIAL} and create or update the
appropriate spl* macros.
Move spllpt() maro here from intr.h
Prototype setsoftserial().
Define spl_smasks array for software interrupt masks to complement the
hardware interrupt masks.
1998-09-05 03:50:01 +00:00
mark 4d98d58935 Define IPL_SERIAL & IPL_HIGH.
Define SOFTIRQ_CLOCK, SOFTIRQ_NET and SOFTIRQ_SERIAL and SOFTIRQ_BIT()
macros.
Move spltty macro to psl.h
1998-09-05 03:47:10 +00:00
mycroft d9753cd7d0 Install joystick.h. 1998-09-05 03:32:57 +00:00
mycroft dc0d1c09d5 Add joy at ofisa. 1998-09-05 03:32:36 +00:00
mark 5ae7ff7e6e Added assembly code for set_region_2.
Rewritten/Optimised a number of the bus space functions.
1998-09-05 01:31:53 +00:00
mark 1a6733681f Add set_region_2 to ISA IO and MEM tags.
KNF.
1998-09-05 01:30:02 +00:00
mark 46f166f090 Cleaned up the map_entry*() functions.
Removed register keywords.
Tidied up printf format strings.
Removed a number of blank lines.
1998-09-05 01:23:04 +00:00
mark a21a7644df Rip out a load of junk thats long past its "best before" date. 1998-09-05 01:18:19 +00:00
mark ec1dae5a9d Only build modedefs.c if MONITOR is defined. 1998-09-05 01:16:17 +00:00
mark 9ad228e3bc Update MINIROOTSIZE option. 1998-09-05 01:14:43 +00:00
mark 7115a4f53e Updated several comments and acknowledgements. 1998-09-05 01:12:14 +00:00
mark 218bf90f49 Nuke register keywords. 1998-09-05 01:09:42 +00:00
mark e6aee6549e Updated for recent driver additions and reservations. 1998-09-05 01:06:38 +00:00
mark 3a01450f20 Bring up to date. 1998-09-05 01:04:48 +00:00
mark 323528d86f Integrate another one of Neil Carson's pmap improvements.
Use pmap_clean_page() in pmap_remove_all() to improve cache cleaning
efficiency.
1998-09-03 03:31:53 +00:00
cgd 8bbc38a130 avail mem is calculated ptoa(uvmexp.free), not ptoa(uvmexp.free - bufpages),
like on other ports.  uvmexp.free is already adjusted by the uvm_pagealloc
calls used to get the buffer pages.  (reported by mrg)
1998-09-02 00:03:05 +00:00
mark 0c11c52fc1 Added csc device. 1998-09-01 02:28:04 +00:00
mark 1c13966ceb Add csc device and scsibus attachment. 1998-09-01 02:27:21 +00:00
mark edb737d09d Initial commit of a Cumana SCSI II driver using the sfas chip driver. 1998-09-01 02:24:11 +00:00
mrg 478a07de87 generate dependancies from genassym.cf 1998-09-01 01:48:21 +00:00
mrg 1fe0874746 use genassym.sh/.cf rather then the C program. 1998-08-31 06:52:18 +00:00
mark 0e533ae4c7 Use IPL_AUDIO for the interrupt priority.
KNF.
1998-08-31 02:36:11 +00:00
mark bd75906989 Use IPL_AUDIO for the interrupt priority.
Cleaned up some comments and removed several un-necessary includes.
1998-08-31 02:35:31 +00:00
mark 47364b0c91 Use IPL_AUDIO for the interrupt priority. 1998-08-31 02:34:36 +00:00
mark cdaa8d9c45 Further improvements to init_arm(). Use map_chunk() to map a number of
areas of the kernel including the text, data and bss.
1998-08-31 00:11:18 +00:00
mark 80d8aa6034 Remove a couple of redundant lines. 1998-08-31 00:08:11 +00:00
mark c4ae202098 Further improvements to init_arm(). Use map_chunk() to map a number of
areas of the kernel include the text, data and bss.
1998-08-30 23:19:37 +00:00
mark 45faa60d85 Added a new function map_chunk() used during init_arm() when setting up
the kernel page tables. map_chunk() replaces running a loop, calling
map_entry() and in addition where possible it will use L1 section mappings
or L2 large page mappings instead of L2 small page mappings in order to
reduce the TLB entried needed for the kernel.
1998-08-30 23:17:44 +00:00
mark 82661d453d Define new PTE construction macros for L2 large small pages and L1
sections and define some of the other macros using the new ones.
Add more comments for various definitions in the file.
1998-08-30 23:15:14 +00:00
mark eff784066e Don't discard the proc0_pt_pte mapping and make sure that the
proc0_pt_pte and proc_pagedir mappings are uncached.
1998-08-29 04:58:16 +00:00
mark 4a241e1fbd Change KERNEL_BASE to VM_MIN_KERNEL_ADDRESS. 1998-08-29 04:08:12 +00:00
mark 9eb28e934b Include sys/types.h instead of sys/param.h
Junk some un-needed includes and include cpu.h.
1998-08-29 04:05:44 +00:00
mark ae7526d965 Removed some un-necessary includes. 1998-08-29 04:01:58 +00:00
mark c611af7c7f Change boot_path to boot_file and initialise to NULL along with boot_args. 1998-08-29 03:57:03 +00:00
mark 5898385f6b Change boot_path -> boot_file and initialise to NULL along with boot_args. 1998-08-29 03:55:57 +00:00
mark 4ad81305d5 Initialise boot_args and boot_file to NULL. 1998-08-29 03:53:17 +00:00
mark 80b4f63e42 Updated for some reserved majors. 1998-08-29 03:28:17 +00:00
mark af5eba9861 Implement address validation as a separate function db_validate_address().
Use this function to validate the page table entries for all reads and
writes.
1998-08-29 03:21:33 +00:00
mark 3e217a0157 Remove the definition of CURRENT_PAGEDIR_HOLE and CURRENT_PAGEDIR_BASE
as they are no longer reference.
Move ALT_PAGE_TBLS_BASE from 0xf3c00000 to 0xf0c00000.
Increase the size of the KERNEL_VM_SIZE by 16MB now that 0xf3xxxxxx is free.
1998-08-29 03:19:55 +00:00
mark 22a3c54923 Use KERNEL_VM_SIZE to calculate the number of page tables needed for
the kernel data area.
Don't map the proc0 L1 page table into the L2 page tables space.
1998-08-29 03:17:27 +00:00
mark 99bb4b6b6b Rewritten pmap_pte() not to use the mapping of the L1 page table within
the L2 pages tables (CURRENT_PAGEDIR_HOLE).
Don't map the L1 page table into the L2 page table space any more (easy
reference hack) in pmap_allocpagedir().
1998-08-29 03:14:14 +00:00
mark 66074cf792 Use VM_MAX_KERNEL_BUF only to limit nbuf and not bufpages. 1998-08-29 03:09:14 +00:00
mark 808c0cca58 Fix bug with zeroing kernel page tables that I introduced yesterday. 1998-08-28 20:04:35 +00:00
mark 1cb7a16aed Fix typo. The page table allocation loop in initarm() should be
<= NUM_KERNEL_PTS rather than < NUM_KERNEL_PTS.
1998-08-28 17:15:45 +00:00
mark 25ae95328f Use kernel_pmap->pm_pdir instead of PAGE_DIRS_BASE when mapping podule
space.
1998-08-28 03:19:34 +00:00
mark 17dcbf485c More reworking in initarm().
Further cleanup and simply the allocation and mapping of the kernel
  pagetables and static data pages.
  Removed the page directory page table as it is no longer necessary.
  Changed the allocation of the proc0 L1 page table and L2 page table
  that maps the page tables to map these pages into kernel virtual
  address space.
  Updated for pv_addr_t argument changes to pmap_bootstrap().
1998-08-28 02:58:41 +00:00
mark 133f5c93f0 Updated for pmap_bootstrap() argument change. Modify ofw_configmem()
to obtains pv_addr_t structures for the proc0 L1 page table and the proc0
pagetable that maps page tables.
Use the virtual address from the pv_addr_t structure for the proc0 L1 page
table when calling pmap_bootstrap rather than relying on a special mapping
at PAGE_DIRS_BASE.
Modify ofw_construct_proc0_addrspace() for similar changes to
ofw_configmem().
Remove the kernel_pde page table in ofw_construct_proc0_addrspace() as it
it now longer needed.
1998-08-28 02:52:37 +00:00
mark 1ca0ef8cae Modify the arguments to pmap_bootstrap() to take a pv_addr_t structure
for the page table to map kernel pagetables (kernel_ptpt). This means
that the pm_vptpt field is now valid for the kernel_pmap.
Use constants from vmparam.h in pmap_allocpagedir().
1998-08-28 02:46:51 +00:00
mark c5695ed630 Centralize the definition of pv_addr_t to pmap.h 1998-08-27 04:00:53 +00:00
mark af91a82f1e Remove pv_addr_t and systempage declarations. 1998-08-27 03:58:10 +00:00
mark e7a61c9984 Centralise the definition of the pv_addr_t structure. 1998-08-27 03:55:06 +00:00
tv 7308faf67b "COMPAT_11 + COMPAT_12 + COMPAT_13" doesn't work - these are based on
definition, not 1 or 0.  Also, since all pre-1.4 releases require
COMPAT_13 (not just 1.3 binaries), just "#ifdef COMPAT_13".
1998-08-26 14:51:57 +00:00
augustss 9deb19798f Add OPL driver. 1998-08-26 12:10:57 +00:00
augustss 76567c8213 Remove ad1848 attribute; it's in conf/files now.
(Why don't we remove the XXX hack in this file?)
1998-08-26 09:32:24 +00:00
mark 47e470f2af Use UVM as standard. 1998-08-25 22:07:46 +00:00
mark 34f8ef18c9 Updated for changes to some of the constants defined in vmparam.h
Simplified serveral parts of the initarm() to make the code clearer and
modified parts of initarm() as part of an on-going effort to abstract
out part of initarm() on various machines.
1998-08-25 22:03:07 +00:00
mark 61bd706797 Include machine/vmparam.h 1998-08-25 21:56:14 +00:00
mark bd14bb41f0 Define KERNEL_PD_SIZE in terms of various constants defined in vmparam.h 1998-08-25 21:55:06 +00:00
mark cda0e37703 Collect various kernel constants together and define them in all one
place (some moved from param.h)
Define several constants such as page table addresses in terms of other
constants.
Increase some of the limits :
  MAXTSIZ	8MB -> 16MB
  DFLDSIZ	16MB -> 128MB
  MAXDSIZ	256MB -> 512MB
  DFLSSIZ	512KB -> 2MB
1998-08-25 21:53:37 +00:00
mark 4e8239cdca Removed a number of kernel constants as they have moved to vmparam.h 1998-08-25 21:50:54 +00:00
mark f920e4e2d6 In physconinit(), don't use printf() to clear the screen but call
the console's putstring function directly.
1998-08-25 03:26:36 +00:00
mark b75234f009 Add calls to cpu_cache_cleanID() after calling setttb() during initarm().
This is necessary as the memory addresses being used for the cache clean
(if the CPU is a SA110) may have been remapped by the setttb() call and
thus the cache could loose sync with memory.
1998-08-25 03:10:25 +00:00
augustss c29fdceff3 Prepare for MIDI devices. 1998-08-22 22:50:53 +00:00
thorpej f73a7043f3 ISA Game port driver, lifted from BeBox port. 1998-08-20 06:31:34 +00:00
thorpej b176b7ba0f Add joy driver at cdev 56. 1998-08-20 06:30:56 +00:00
thorpej 31ac3d022c Add joy driver devsw declarations. 1998-08-20 06:28:43 +00:00
thorpej 2d282c7e70 Add joy driver glue. 1998-08-20 06:28:18 +00:00
thorpej cc042ba0e5 Correct a function name in a panic message. 1998-08-20 05:46:20 +00:00
thorpej 4396c67463 Internal cleanup. 1998-08-17 22:28:00 +00:00
augustss cd09067eb4 * Redo the way the way the MIDI driver attaches to audio devices.
* Improve the midisyn layer a little.
* Add a driver for the Yamaha OPL[23] FM synths.
  The opl driver is not finished yet; it sounds pretty awful.

For some strange reason I cannot get any FM sound from my SB64 cards,
but a regular SB16 works fine.
1998-08-17 21:16:09 +00:00
thorpej 0809175887 #define _CS_OFISA_MD_REG_FIXUP 1998-08-17 20:40:53 +00:00
thorpej defb1b327e Implement a reg fixup, needed for old OpenFirmware builds. 1998-08-17 20:38:08 +00:00
mark 518c6812d3 Block user space access between the cache purge and the context switch in
cpu_switch() as all user space addresses must be removed from the cache
prior to the context switch and interrupts are live for the purge.
1998-08-16 02:17:17 +00:00
mark 2ea34b589c Enable interrupts during cache clean, purge and sync operations.
Instead use a flag to indicate that all user space access are blocked
during the cache op to ensure that user space virtual addresses correctly
expunged from the cache.
1998-08-16 02:14:15 +00:00