Commit Graph

29215 Commits

Author SHA1 Message Date
gmcgarry d9b1140ca5 Merge some fixes from clock.c, revision 1.23. 2001-11-17 23:48:15 +00:00
gmcgarry 257f825d26 Device attachment for the real-time clock. 2001-11-17 23:38:32 +00:00
gmcgarry 3cf284349d Update for new intio parent interface. 2001-11-17 23:35:31 +00:00
gmcgarry 224cd45a75 Overhaul the intio device attachment. Devices are direct connected and
attached based on machine id.
2001-11-17 23:33:22 +00:00
gmcgarry 3acacb5fc1 Make hil interrupts come through the standard dispatch mechanism rather
than its custom handler.
2001-11-17 23:29:08 +00:00
gmcgarry 40aa97f8b1 For INTIO space, use an offset for the mapping rather than the physical
address.
2001-11-17 23:26:55 +00:00
gmcgarry 4b62b5b023 Don't try to mmap the framebuffer as executable. Fixes MMU faults
when executing the X server.
2001-11-17 23:25:04 +00:00
kleink 852f87fe13 i386_memio_mmap(): return -1 to indicate failure, not EOPNOTSUP. 2001-11-17 19:32:03 +00:00
kleink 4a41ec8583 In fdopen():
* Defer deref'ing of `un' until it's been initialized.
* Kludge around a false-positive uninitialized warning.
Brought to you by the graces of GCC 2.95.3.
2001-11-17 19:00:25 +00:00
kleink 117651c65e Can't pass temporary storage to an inline assembly statement as input
operand; debunked by GCC 2.95.3 as uninitialized.
2001-11-17 18:55:57 +00:00
christos e36e7f175a Add transmeta crusoe cpu support from toshi. 2001-11-17 08:21:43 +00:00
christos 79f74a0b0f Add transmeta crusoe cpu support from toshi's fiva patches. 2001-11-17 08:20:58 +00:00
thorpej 21c0578357 Walk the ARCS device tree to find the L2 cache size. 2001-11-17 01:19:58 +00:00
bjh21 04e005d19a Don't bother setting lint flags. arm26 doesn't pass lint anyway, so we may
as well use the defaults.
2001-11-16 14:53:47 +00:00
bjh21 eff0c97bb0 Use the exciting new MI kernel building machinery on arm26. 2001-11-16 14:46:16 +00:00
bjh21 294f95152f db_interface.c:
Include <ddb/db_access.h> for db_read_bytes etc prototypes.
  Add prototype for db_trapper().
  Move prototypes for "machine" subcommands to db_machdep.h.
db_machdep.h:
  Add prototypes for "machine" subcommands.
2001-11-16 14:39:30 +00:00
bjh21 73dd1b11c1 Include <uvm/uvm_extern.h> for pagemove() prototype. 2001-11-16 13:48:33 +00:00
bjh21 4244e4f4ce Add a prototype for pmap_dump(). Since this function is only called from
DDB, there's no suitable header file.
2001-11-16 13:47:06 +00:00
junyoung 12b82871db Add pseudo-device wsfont, which is necessary to make wsfontload(8)
work.
2001-11-16 13:46:31 +00:00
bjh21 aacfb7f42c Include <sys/sysctl.h> for cpu_sysctl() prototype. 2001-11-16 13:41:58 +00:00
bjh21 77c5245c8f Fix names of bus_space_copy_region_1() and bus_space_copy_region_2(). 2001-11-16 13:34:03 +00:00
bjh21 6b12ec55b2 Add prototypes for undefinedinstruction() and resethandler(). 2001-11-16 13:12:06 +00:00
gmcgarry e9ec95622b Remove unnecessary trailing argument. Now compiles with new toolchain. 2001-11-16 08:14:05 +00:00
atatat d5de3c2fb2 Abstract out a large chunk of the kernel build machinery so that new
build features (such as ross's DEBUGLIST) can easily be applied to all
ports.  This should reduce the complexity of each port's kernel
Makefile considerably.  Line counts:

     227 arch/i386/conf/Makefile.i386.orig
      98 arch/i386/conf/Makefile.i386
     227 arch/alpha/conf/Makefile.alpha.orig
      99 arch/alpha/conf/Makefile.alpha
     219 arch/sparc/conf/Makefile.sparc.orig
     102 arch/sparc/conf/Makefile.sparc
     215 arch/vax/conf/Makefile.vax.orig
     102 arch/vax/conf/Makefile.vax
     253 conf/Makefile.kern.inc

Roll i386, alpha, sparc, and vax over to the new build machinery.
2001-11-16 00:23:02 +00:00
thorpej 6b842c44f3 MACHINE_ARCH == arm on hpcarm. 2001-11-15 19:35:31 +00:00
thorpej 0b6370bfee Implement __cpu_simple_lock*() primitives using the SWP insn. Note
this insn is available only on ARM arch v3 and later (and 2a).  We
don't expect to be using these ops in the kernel on processors too
old to have SWP, and for userland uses (in e.g. a pthread library),
the kernel will simply have to trap and emulate the insn (it needs
to be "atomic", so a kernel trap of some sort will be necessary on
such platforms anyway).
2001-11-15 19:22:32 +00:00
soren 662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
lukem 95c969f245 add RCSID 2001-11-15 07:03:28 +00:00
chs a69c43b997 fix pmap_extract() to handle addresses with a PTP but an invalid PTE. 2001-11-15 05:16:41 +00:00
thorpej 283e0a4c6e We need to declare the "plcom" device in files.evbarm, since a
"plcom.h" header file needs to be generated for conf.c even for
non-Integrator kernels.
2001-11-14 23:47:51 +00:00
thorpej 6445977d84 Slight cleanup. 2001-11-14 23:02:02 +00:00
tv 48c09b6243 Work around <bsd.lib.mk> used for kernel libs in other places. Clean up
include paths.
2001-11-14 23:01:13 +00:00
mhitch 636eb23869 When loadfile() leaves the ELF header at the end of the kernel, it enables
erroneous code that tries to compute the end of the symbol table.  Disable
that for now so that kernels don't hang when booted from the disk.
2001-11-14 22:47:16 +00:00
matt b0372f6f25 Add brgphy 2001-11-14 21:25:15 +00:00
thorpej ceb42fbf3f This file is not used. 2001-11-14 21:17:17 +00:00
matt a6d8d89acf Bump the default macppc MSGBUFSIZE to 12KB so we can get an entire
sequence of boot messages.
2001-11-14 20:55:34 +00:00
matt 34d4887431 Some #ifdef cleanup for DIAGNOSTIC/DEBUG/PMAPCHECK so that that many of
the expensive checks are skipped when (!DEBUG&&!PMAPCHECK) and all of the
light-weigth checks are skipped when (!DIAGNOSTIC&&!DEBUG&&!PMAPCHECK).
This bring pmap.o's text down from 21KB (with PMAPCHECK) to 18.5KB (DEBUG)
to 16KB text (!DIAGNOSTIC).
2001-11-14 20:38:22 +00:00
thorpej bd15cfaed8 Merge the thorpej-mips-cache branch onto the trunk. This is an
overhaul of how caches are handled for NetBSD's MIPS ports.
2001-11-14 18:26:21 +00:00
thorpej af66038f73 Merge the thorpej-mips-cache branch onto the trunk. This is an
overhaul of how caches are handled for NetBSD's MIPS ports.
2001-11-14 18:15:10 +00:00
hubertf 95bf3bc4cd add pseudo-device rnd - it's needed by sshd 2001-11-14 13:25:19 +00:00
thorpej be13b85887 * Give the XScale its own cpu_control() entry point; we have to flush
the Branch Target Buffer of the BPRD bit changes.
* Enable Branch Prediction on the XScale by default.
* Don't invalidate the Branch Target Buffer explicitly. the i80200
  manual (section 5.1, Branch Target Buffer Operation) notes that
  manual software management of the BTB is unnecessary; it is flushed
  implicitly when:
     * processor resets
     * FCSE process ID is written
     * I-cache is invalidated
2001-11-14 01:00:05 +00:00
tv 5489b30b60 ${MAKE} print-objdir -> ${PRINTOBJDIR} 2001-11-14 00:58:48 +00:00
thorpej 91f49d269d Eliminate some duplicated code here (similar to XScale code):
* sa110_cache_purgeD() is the same as sa110_cache_cleanD() on the
  SA-1 -- make it an alias.
* sa110_cache_syncI() and sa110_cache_purgeID() are identical to
  sa110_cache_cleanD() on the SA-1, with the exception that the
  I-cache must also be flushed.  Save code duplication by moving
  the I-cache flush before the D-cache clean and letting it fall
  through.
2001-11-14 00:08:05 +00:00
augustss b684acbf39 Add wsmux (it seems to work now). 2001-11-13 17:56:30 +00:00
augustss c5477b70aa The wsmux pseudo device does not need a count anymore. 2001-11-13 17:54:46 +00:00
isaki 2108a5c977 Rewrite vs_query_encoding() using array. 2001-11-13 09:27:06 +00:00
isaki c2e9ead40b Clean up debug messages. Separate it two debug levels. 2001-11-13 09:06:00 +00:00
perry 9f8afd5252 Make the type of ports in the in*()/out*() routines u_long instead of
int. Massively reduced kernel lint, causes no harm. Discussed
extensively with christos and thorpej.
2001-11-13 03:27:50 +00:00
uwe 0c392b9e2f Move dvma_cachealign to cache.c where it belongs and declare it in
cache.h, so that kernel can be linked without iommu support (for the
sake of microSPARC-IIep that has a very different iotlb).
2001-11-13 03:04:50 +00:00
pk 4f1fe56be8 Remove redundant declarations. 2001-11-12 16:32:25 +00:00
simonb 1143123ee5 Fix pasto in a comment. 2001-11-12 11:12:16 +00:00
matt ab93af26ea Fix pte_clear to TLB flush the va, not the tlb adress (which is only valid
for clearing the ref bit).  pvo_to_pte (if !diagnostic) will return NULL
immediately if PTE_VALID is not set.
2001-11-11 23:07:02 +00:00
chris 8298c55eab Correct comments for ffs algoritm (it isn't using register r0) 2001-11-11 22:07:41 +00:00
thorpej 944fcd0d83 Allocate the appropriate space for the XScale global cache clean code. 2001-11-11 17:30:14 +00:00
rafal 1a9f819d84 Make microtime(9) do interpolation to get better-than-hz resolution, if
the platform supplies a clkread function that does something other than
return 0 (which is the default unless overridden by the platorm code).
Supply such a function for the IP22; even if it isn't perfect, it goes
a long way to making ntp usable.

While I'm at it, move the ticks-per-hz variable out of the struct platform
since it's really private to the per-platform interrupt/clock code.

XXX: No clkread function supplied for IP32, since it has other problems --
like a hardcoded ticks-per-hz, but the same code as on the IP22 could be
used.
2001-11-11 17:21:40 +00:00
thorpej b75edaf367 Some fixes/cleanup to the XScale cache clean code:
* Define a CPWAIT macro as described in the i80200 manual and use it,
  rather than replicating the code in a few places.
* The i80200 manual notes that the line-allocate operation used to
  do global D$ clean does not actually perform a load/fill request
  from external memory, and thus does not actually place valid data
  in the cache lines allocated.  Require that machine-dependent code
  allocate an appropriately-sized chunk of unmapped VA space for the
  global clean operation in order to avoid unpredictable results.
* The i80200 manual notes that the VA range for the Mini-Data global
  clean (which *must* be mapped to physical memory) must be reserved
  exclusively for cleaning the Mini-Data cache.  Require that machine-
  dependent code allocate an appropriately-sized chunk of memory for
  this purpose.
2001-11-11 17:18:27 +00:00
thorpej 4ffa983428 Pull in common 32-bit ARM VM parameters. 2001-11-11 16:44:15 +00:00
thorpej c653a0ee51 Even though the ARM architecture defines large, standard, and small
pages, we use the standard (4K) page size as PAGE_SIZE.  Make the
PAGE_SIZE related variables compile-time constants that reflect this.

Results in a bit over 2K worth of .text savings, and visibly better
code in the places that use PAGE_SIZE, etc.
2001-11-11 16:40:36 +00:00
isaki db0f7ea415 add Nereid. ne* at intio0 2001-11-11 01:40:29 +00:00
isaki 85e2e11f39 Support an ethernet part of Nereid.
Nereid is the board of ethernet/USB/memory for X68k
developed by X-PowerStation, a japanese X68k circle.
See http://xps.jp/ but only written in japanese.
2001-11-11 01:39:02 +00:00
isaki 20d2e2f7e8 Support BUS_SPACE_MAP_SHIFTED_EVEN for bus_space_map().
Now BUS_SPACE_MAP_SHIFTED means BUS_SPACE_MAP_SHIFTED_ODD.
It is needed for Nereid Ethernet.
2001-11-11 01:38:00 +00:00
thorpej 2ea8a793d0 * Define prologue/epilogue macros for the cache clean functions,
and use them, like we do in the SA-1 code.
* Use numbered labels for loops.
2001-11-11 01:05:11 +00:00
thorpej 3492e0ce0b Fix a missing-whitespace typo. 2001-11-11 01:02:58 +00:00
thorpej eb8206f223 Use numeric labels for loops. 2001-11-11 00:47:49 +00:00
thorpej de8e924e4c * Define prologue/epilogue macros for the cache clean functions,
and use them, rather than replicating the code several times.
* Use numbered labels for loops.
2001-11-11 00:41:48 +00:00
soren 3566ffe886 Fix vnd pastoes. 2001-11-11 00:38:30 +00:00
thorpej ddb435fb56 Define KERNEL_TEXT_BASE, ALT_PAGE_TBLS_BASE, and KERNEL_VM_BASE
in terms of KERNEL_BASE.
2001-11-11 00:32:02 +00:00
thorpej fe9e809208 Add a comment explaining that we expect the memory controller
registers to already be subregion'd off, and actually init
the PCI DMA tag.
2001-11-10 23:14:51 +00:00
thorpej 9e1b785626 Split all the model/version-specific cpufuncs into separate files
corresponding to the model/version.
2001-11-10 23:14:08 +00:00
thorpej a27687fb2f Fix some whitespace. 2001-11-10 23:12:41 +00:00
wdk 571fbc80c7 Tidy up debug logic
Fix compile errors when DIAGNOSTIC or DEBUG options disabled.
2001-11-10 22:54:54 +00:00
perry 2cff38a9ba trivially rename some macro parameters to avoid lint warnings. 2001-11-10 22:21:00 +00:00
jklos e00ba8ee0d Now properly probes for cards with 64k of buffer. Reversed order
of tests in case space isn't fully decoded.
2001-11-10 21:32:33 +00:00
tsutsui 3f6a86f512 Add some definitions for battery backed clock register 5,
and fix one spelling nit.

Mostly from port-hp300/8824, which had already pointed out
y2k (and y2k+1) bugs before 2000, but they were not fixed
till the last month. (I noticed this PR today. Oops)
2001-11-10 19:43:48 +00:00
augustss c64847f048 If the RTC gives a time more than 1000 days before file system time then
use the file system time.  (My iMac seems to give 1904 as the year very
often (dead battery?), and setting the correct date with ntpdate doesn't
seem to work.)
2001-11-10 15:37:40 +00:00
wdk 7f5269c58f NetBSD Disklabel and SGI Volume header support. Based on NetBSD/mipsco
due to its similarities.

Patch has been tested by many people on the sgimips list for some time with
no complaints.

Contributed by: Christopher SEKIYA <wileyc@rezrov.net>
2001-11-10 07:35:17 +00:00
wdk de81761c50 Complete overhaul of WD33c93 SCSI driver
- Full support for SCSI-2 Tagged commands (enabled by default)
 - Implement save and restore datapointer messages
 - Formalize interface between MI and MD drivers.
 - decouple interface between MD driver and DMA routines
 - Use scsipi layer where appropriate (Tags, Sync Negotiations etc)
 - control blocks stored using kernel pool(9) functions
 - evcnt(9) compliant counters
 - Enable advanced features on later WD33c93 chips.
   (Identify message out phase is hardware assisted)
 - Improved timeout support (one per active control block)
 - Improved MESG_IN and MESG_OUT handling
 - Start to tidy up debugging output
 - Numerous bug fixes and cleanups throughout

Changes are based largely on the NCR53c9x MI driver for ideas on
how to DTRT.
2001-11-10 07:32:42 +00:00
shin 82c810212c make this compile without DDB. 2001-11-10 06:56:35 +00:00
sato c702430929 MCR-300/310/320/330/for Docomo have same PWCTL_LCDLIGHT, PWCTL_LCD port. 2001-11-10 04:53:47 +00:00
thorpej 615b7aff22 Delete an option that doesn't really exist. 2001-11-10 00:18:17 +00:00
thorpej fa6ae96384 This file is not used. 2001-11-10 00:13:58 +00:00
thorpej f03c5f5a7c Add VERBOSE_INIT_ARM and SYMTAB_SPACE options (commented out). Add
devices: iopxs (i80312 Companion I/O), pci, ppb, fxp, inphy, ukphy.
2001-11-10 00:11:11 +00:00
thorpej 8a0624f3a4 Add some missing backslashes. 2001-11-09 23:36:52 +00:00
thorpej d1f4bf74ca Add support for PCI DMA on the i80312. We currently just do
DMA via the Secondary Inbound window, for now.  Will probably
need to revisit this at some point.

Require that the board-specific i80312 front-end slice off a
subregion for the memory controller before calling i80312_attach(),
and fix a bug in the IQ80310 front-end that caused the Secondary
Inbound window to be configured incorrectly.
2001-11-09 23:15:52 +00:00
thorpej 3797f5214d Fix typos in determing the ATU and PPB bus numbers. 2001-11-09 22:47:48 +00:00
thorpej c3dc4c8c9e Add PCI_NETBSD_CONFIGURE. 2001-11-09 20:59:39 +00:00
thorpej 393b381a6d PCI interrupt mapping support for the IQ80310. 2001-11-09 20:58:57 +00:00
scw 45e7238a02 Bump the version numbers of all bootloaders which use loadfile_elfXX() now
that it tries hard to avoid backwards seeks.
2001-11-09 19:53:11 +00:00
thorpej d32191e3da Add support for configuring the PCI bus (starting with the Secondary
bus only, for now).

XXX Some cleanup wrt. pci_conf_interrupt() needs to happen.
2001-11-09 19:48:35 +00:00
thorpej b1ec255377 Add a "firstbus" argument to pci_configure_bus(), indicating the
first bus number to use, rather than always assuming that we should
start at bus #0.
2001-11-09 19:29:12 +00:00
thorpej 671a1b111f Print the fault PC for non-USR Prefetch Aborts. 2001-11-09 19:04:23 +00:00
scw 439d3ea3cb G/C some debug printfs inadvertently left in the last commit. 2001-11-09 18:27:59 +00:00
scw 2f42a5932e Implement just enough of an lseek() to keep loadfile_elf32() happy.
While I'm here, bump RAWFS_BSIZE up to 8192 since the installation
instructions use "bs=8k oconv=sync". My Archive Viper now streams
nicely while booting.
2001-11-09 18:25:11 +00:00
scw dca93f1b48 The success/failure status for some Bug syscalls is indicated by the Z
flag in the status register, not by a value on the stack.

How this ever worked for so long is beyond me...
2001-11-09 18:18:19 +00:00
thorpej 82c11eec1c Clear the Master Abort after reading config space for a non-existent
PCI device.  Disable debugging messages, as PCI config space works now.
2001-11-09 18:04:10 +00:00
thorpej 42a10f6cd4 Implement a badaddr_read() routine which performs a load of the
specified size for the caller, and returns true or false indicating
whether or not a Data Abort occurred (i.e. the address was "bad").
2001-11-09 17:58:00 +00:00
thorpej d16c00cfb2 Disable the ATU interrupt sources (i.e. interrupts that occur when
we get Master or Target aborts).
2001-11-09 17:44:43 +00:00
thorpej 10392361f8 Make the DDB trace output a lot easier to look at. 2001-11-09 16:49:29 +00:00
thorpej 13aa19d0fc Eval boards usually don't have boot loaders. If we're lucky, we
have firmware that understands ELF.  We're usually stuck with S-Records.
To make life easier, attempt to stuff kernel symbols into the image
with dbsym(8).

If the kernel doesn't have SYMTAB_SPACE, or if the SYMTAB_SPACE is too
small, the kernel build continues as normal; this is just a convenience
measure.
2001-11-09 07:39:25 +00:00
thorpej 147b1bdc1c Add some rudimentary support for ELF symbols in DDB on the ARM ports.
On platforms which load the kernel sans symbols directly from firmware
(possibly in e.g. S-Record format), call ddb_init() with empty arguments,
so that it will search any compiled in SYMTAB_SPACE.  On all other platforms,
if __ELF__, also call ddb_init() with empty arguments until ELF bootloaders
which pass symbol information are ready.
2001-11-09 07:21:37 +00:00