Commit Graph

24009 Commits

Author SHA1 Message Date
wdk a3ec172607 Initial commit of a 2 stage bootloader for NetBSD/mipsco. Based on pmax
and alpha ports.

Uses PROM standalone I/O functions but due to the lack of a lseek function
it currently only works with version 5.40 of the firmware.  A more portable
solution is being worked on.

installboot utility requires several changes in order to correctly install
the bootstrap code - there is a "volume directory" which contains a list
of filenames, start sectors and length.  We need to add a "boot" entry of
the correct length starting at block 2.  The boot file has to be ecoff
which means we waste another 0.5k

Normally the Mips filesystem has a ~500k partition for this purpose but it
should be possible to squeeze it all into the first 7k "BSD Style" (1k is
required for 2 different copies of the partition table)

Only the bootxx_ffs first stage bootstrap has been tested via bootp() which
loads the second stage off disk and then boots the kernel.
2000-09-18 11:40:46 +00:00
eeh 0596b6b6dc Make the improved %tick changes work with machines that use the counter-timer
for the clock.
2000-09-17 19:23:37 +00:00
is ff3205e665 Make this build again. Fixes by Michael Hitch. 2000-09-17 18:24:12 +00:00
eeh 903720d945 Add bus_space*stream*() methods. I hope they work. 2000-09-16 14:07:58 +00:00
wdk 74fa574688 * Add INET6 and IPSEC support.
* Enable vnd driver for creating a working miniroot.
2000-09-16 09:35:38 +00:00
wdk 0b445f157e Add missing align argument to uvm_map() which was missed by thorpej during
original commit.
2000-09-16 09:18:01 +00:00
wdk da962aaad5 Add support for bootinfo structure to be passed from 2nd stage bootstrap.
Pass symbol table information to DDB if available.
2000-09-16 08:34:26 +00:00
wdk 780256a327 Prototype prom_ioctl 2000-09-16 08:27:58 +00:00
wdk b57fe26ada Write a NetBSD disklabel to 2nd sector while retaining the Mips volume
header in the ist sector.   We now use the NetBSD label in preference
to the Mips Volume header.
2000-09-16 08:27:16 +00:00
nisimura 70a97ab16c Introduce new MIPS1 direct mapped cache capacity detection logics. 2000-09-16 07:20:16 +00:00
jeffs 36c4252a17 Re-enable SR IE bit before calling syscall(). Matches Tohru's mips1 change. 2000-09-16 06:57:21 +00:00
nisimura 2982d7707b There is no need to handle processor master interrupt mask SR_INT_IE
in syscall() anymore.  By defition, processor was in SR_INT_IE turn
on prior to have syscall exception.  MIPS1 assembler hook arranges
to enable the bit for its own.  MIPS3 does the same effect by
turning off EXL bit.
2000-09-16 05:07:06 +00:00
nisimura f4b74d3898 - Reimplement MIPS1 cache size dectection logic taking advantage of the
fact the direct mapped cache makes address alias effect.
- Just turn on processor master interrupt mask IEc (SR_INT_IE) bit prior
  to call syscall() kernel entry point.  IEp is always 1 in this case
  by defition.
2000-09-16 04:54:44 +00:00
simonb 3db7ffbbce Add a (commented out for now) VNODE_OP_NOINLINE options line, and mention
that it makes smaller and possibly slightly faster kernels.
2000-09-16 00:09:14 +00:00
simonb 4afcecdc80 Use VNODE_OP_NOINLINE - saves about 17k off the INSTALL kernel size. 2000-09-16 00:06:56 +00:00
chuck 9dc2f5ced0 IDT32364's Config register uses a different base for IC/DC (instruction
and data cache sizes).   R4000 uses 2^(12+IC) and 2^(12+DC).  IDT32364
uses 2^(9+IC) and 2^(9+DC).

abstract around the problem by making the base a parameter to the
MIPS3_CONFIG_CACHE_SIZE macro.   we pass the base down from mips_vector_init
to mips3_vector_init and to mips3_ConfigCache (where it is used).

XXX: someone with an MIPS3_4100 should switch to this and get rid
of the ugly ifdefs in cpuregs.h
2000-09-16 00:04:57 +00:00
tsutsui 6c7e1613e0 Add uvm_pageidlezero support. From x68k. 2000-09-15 17:15:05 +00:00
tsutsui 74662105ab netintr() is now declared in isr.h. 2000-09-15 15:55:10 +00:00
tsutsui f528673cf3 Add prototype declaration of netintr(). 2000-09-15 15:52:15 +00:00
scw 53d57897d0 Use the complete ethernet address stored in nvram on mvme162/mvme167
instead of faking the first 5 nibbles a'la mvme147.

Apparently recent mvme16x boards have a new 5 nibble prefix...
2000-09-15 08:50:24 +00:00
jeffs bdad8bae5b Handle R4K trap faults in user mode like overflows (deliver SIGFPE). This
prevents a panic running crashme.  Better comment for VCE define.
2000-09-15 06:50:46 +00:00
enami ead2ed15cf Add few more L2 cache info entry. 2000-09-15 03:44:28 +00:00
enami 29027825f3 When fetching cache info:
- Don't fall into infinite loop even if the # of iteration necessary isn't 1.
- Don't interpret lower 8bit of AL, which is # of iteration, as a descriptor.
2000-09-15 03:41:18 +00:00
thorpej d4f4fa2190 Make sure pmap_collect() doesn't remove wired mappings. Per discussion
w/ Chuq Silvers.  Fixes a panic when a program with wired pages that
has run for a long time when the system is under heavy memory load
exits (specific case was ntpd, reported by Simon Burge).
2000-09-14 17:06:52 +00:00
is 47d6ee388a Missing piece of PowerPC support. 2000-09-13 20:15:52 +00:00
thorpej 3d6272fcdf Use VNODE_OP_NOINLINE. 2000-09-13 16:26:15 +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
tsutsui ed45ef52e2 Disable KERNFS. 2000-09-13 13:52:21 +00:00
thorpej d0b099a9fc Fetch cache info via `cpuid' insn, parse it, remember it,
and report it at boot time.
2000-09-13 08:04:15 +00:00
jeffs efef8a5aa6 Do not save t* registers in syscall stub as suggested by cgd. Saves
a whole 0.01us in lmbench lat_syscall null on our 250Mhz QED system.
$at is still saved just to be safe, although it looks like it does
not need to be.  $v1 is used in syscall(), although I'm not sure why.
2000-09-13 06:48:04 +00:00
nisimura c65b8a8ceb Nuke unused obscure #define's. 2000-09-13 05:23:37 +00:00
scottr ff2130346c Resolve bus_space_write_region_2() type mismatches. 2000-09-13 05:21:16 +00:00
scottr 7eb72c4f15 ae_write_mbuf() broke with the last change; revert. 2000-09-13 05:16:47 +00:00
thorpej 90a2e46ab1 Add support for using the 586- and 686-class performance
counters.
2000-09-13 04:47:00 +00:00
thorpej b9b07590ec Define some 586-class CESR MSR bits. 2000-09-13 04:44:27 +00:00
simonb 57a9ae4559 Add support for booting off RAIDframe RAID1 mirrors.
If the first partition is of type FS_RAID, then add 64 to the block
number for each I/O in rzstrategy().
2000-09-13 04:06:46 +00:00
nisimura cfbce2edce Have MI SCSI device descriptions in GENERIC, removing 'mi.scsi' file. 2000-09-13 03:44:38 +00:00
thorpej e2cc69026a Add 686-class performance counter events. 2000-09-13 03:37:04 +00:00
nisimura 0ba2036eee Introduce 'segbase' global variable to hold the pointer to current
process's segtab, retiring 'pcb_segtab' field from 'struct pcb'.
This would be another MULTIPROCESSOR unfriendly and the necessity
might be eliminated when the way to hold PTE is redesigned.
2000-09-13 01:53:00 +00:00
chuck 0dcdf1214c kill mips3_write_xcontext_upper 2000-09-13 01:20:41 +00:00
chuck 6f9229b2e6 modify mips3 locore to elminate the abuse of XContext
so that we can run on systems that do not have XContext
(e.g. IDT 32364).
2000-09-13 01:12:47 +00:00
eeh 022746fd14 This really does seem to fix the ref/mod issues. (Yeah, like were did we hear that before?) 2000-09-12 19:42:26 +00:00
minoura a78010b7b8 Adjust ramdisk sizes. 2000-09-12 17:07:44 +00:00
soren 99418ce05f Remove old comment. 2000-09-12 15:40:36 +00:00
minoura 8199d05ce7 Reduce ramdisk size by using hacked commands in distrib/utils. 2000-09-12 15:40:00 +00:00
minoura ff4b8473ae Enable sram device, which is used by memswitch(8). 2000-09-12 15:00:06 +00:00
tsubai a0cf020afb Configure L2 cache if it is not enabled by the firmware. 2000-09-12 14:47:38 +00:00
sato aa96730805 bzero allocated structutre initialy. 2000-09-12 08:25:44 +00:00
eeh 5be9d50b09 Fix new version of microtime. 2000-09-12 04:16:29 +00:00
takemura 83517998af fix typo in boot message. 2000-09-12 02:12:20 +00:00
eeh cc7f95986b (Hopefully) fix clock skew on machines that us %tick for the clock (UIIi). 2000-09-11 23:29:31 +00:00
eeh 870af94ef7 Add locking to pmap operations and support multiple physical memory segments. 2000-09-11 23:27:22 +00:00
eeh cb2350a90d Don't take protection faults on I/O mappings. 2000-09-11 22:37:34 +00:00
eeh df698d172e Fix some sign extension bugs. 2000-09-11 22:36:35 +00:00
eeh 6c00d395e1 Don't take protection faults on I/O pages. 2000-09-11 22:34:02 +00:00
sato 5bb7aeddee - delete some unused codes (but some experimental code is not deleted)
- add experimental HPCFB_JUMP code but it is not enabled.
2000-09-11 13:44:49 +00:00
nisimura a101bca4b8 Needs to have machine/asm.h for userland applications. 2000-09-11 03:25:40 +00:00
sato 96f8d01088 add SPEAKER pwctl device for several machines. 2000-09-10 15:48:10 +00:00
sato 20cc493f48 add CONFIH_HOOK_POWERCONTROL_SPEAKER. 2000-09-10 15:45:47 +00:00
sato 988e123a02 - not handle CONFIG_HOOK_POWERCONTROL events because the events
handled by lower lcd/lcdlight control device.
2000-09-10 15:33:48 +00:00
sato 39556606fe handle CONFIG_HOOK_POWERCONTROL events
- PWR_SUSPEND: save giu bits values and turn "off" the values.
- PWR_RESUME: restore giu bits values.
2000-09-10 15:30:32 +00:00
lukem cbb605647a add (commented out) entry for WSCONS_DEFAULT_TYPE 2000-09-10 11:48:38 +00:00
pk 4e56e1746f Turn off page zeroing in the idle loop; an unidentified bug causes (very
sporadic) user process corruption.
2000-09-10 11:32:04 +00:00
takemura ed9f910cc8 Introduce WSDISPLAY_NULLSCREEN to allow low level device to detach control
process. Hpcmips frame buffer driver(hpcfb) call wsdisplay_switch with
WSDISPLAY_NULLSCREEN to notify user process of suspend/resume event.
2000-09-10 09:39:57 +00:00
takemura 3369a78b96 Create dummy main window to resolve the problem that it can't setup color
palette correctly.
version no gets '1.16.00 2000.09.10'
2000-09-10 08:29:53 +00:00
takemura 1f41d9a644 Previous revision contains some Japanese chars by mistake.
The bootloader has been improved by Kazuma Arino.
  - dialog style main window
  - support to read compressed kernel image
  - automatic boot with timer
  - human readable configrarion file
version no gets '1.15.00 2000.08.29'
2000-09-10 08:02:13 +00:00
nisimura eafab3fe6b RB_DFLTROOT is obsolute and G/C'ed from main trunk at late Jul of 2000. 2000-09-10 06:26:51 +00:00
chs 62a6d0660c move the guts of pmap_remove() to pmap_do_remove(), which has a flags arg
to tell it whether or not to remove wired mappings.  pmap_remove() wants
to remove wired mappings, pmap_collect() doesn't.  fixes PRs 10363 and 10761.
2000-09-10 03:45:58 +00:00
eeh 2f28900566 Make sbus_wenable() and ebus_wenable() work on 32-bit kernels. 2000-09-09 23:29:06 +00:00
scw 4bf2309112 Partially back-out the previous change. What was I thinking... 2000-09-09 19:51:36 +00:00
pk 3011e0816b Revise pv_table_map(): to simplify calculations, pv_table[] now covers
all of physical memory, i.e. it conceptually is pv_table[0..avail_end].
The previous version could lead to an off-by-one error in the page allocation
for pv_table[] in some memory configurations.
2000-09-09 10:24:34 +00:00
nisimura 48ff19c98b u_char -> u_int for function argument and return of Zilog register
manipulation helper functions; no loss, no gain, for Alpha processor.
2000-09-09 06:08:42 +00:00
tron cb01317d62 Final fix to make this work without object directories again. 2000-09-08 19:57:05 +00:00
msaitoh 2b1674cc62 remove extra #endif 2000-09-08 19:52:13 +00:00
tron 3220c30427 Readd at signs before commands which were removed for debugging. 2000-09-08 19:50:52 +00:00
msaitoh 2cb1f4181a sync with i386's revision 1.133:
It's legal to mmap pages in the lower part of the stack (<limit),
	and use them, so allow this by relaxing the check for it.
2000-09-08 19:48:12 +00:00
tron 278e796ec6 Do last change differently: "(unset MAKEOBJDIRPREFIX || true)" is a NOP,
use "MAKEOBJDIRPREFIX= && unset MAKEOBJDIRPREFIX" instead.
2000-09-08 19:48:00 +00:00
tron f5cb2786f8 Use "(unset MAKEOBJDIRPREFIX || true)" because unset return an error code
if the variable was not set before.
2000-09-08 19:45:45 +00:00
chs e3b6ec1d77 remove extra paren so this compiles again. 2000-09-08 19:26:17 +00:00
msaitoh 772c846544 delete an obsolete comment. 2000-09-08 18:46:39 +00:00
ragge d85872dd78 By some reason setstatclockrate() suddenly get called occationally
(it hasn't been called since -94 :-) Remove the panic that happens when
it is called.
2000-09-08 11:41:59 +00:00
tsubai 9fdd44d404 DDB single step and stack trace support. 2000-09-08 10:15:23 +00:00
jeffs bbcf1beea0 In outofworld, keep $sp for DDB case if it looks like a kernel address
so the stacktrace is ok.
2000-09-08 07:24:42 +00:00
matt 9c01e4e226 deal properly with MAKEOBJDIRPREFIX (which has priority over MAKEOBJDIR so
the MAKEOBJDIR to ${MAKE} has no effect) so we unset MAKEOBJDIRPREFIX before
invoking ${MAKE}
2000-09-08 05:37:59 +00:00
jeffs 8f8a7ca780 Shuichiro URATA pointed out that the R4000 needs 3 nops. Other OSs make
it look at casual inspection like 1 nop is needed but play other tricks.
Still have reduced by 1 nop.  Hopefully this covers the NEC 41[x]1.  Could
not find info for those processors.
2000-09-07 20:31:02 +00:00
thorpej a1139ee535 Example config file for enabling large page support. 2000-09-07 18:55:30 +00:00
thorpej 2fc18ed7a4 Replace the old db_memrw.c with the hp300 version, modified for i386
and large page support.  This version is a bit more intelligent about
how it deals with kernel text pages.

Now that this is fixed, don't map the kernel text read-write if
DDB is configured.
2000-09-07 18:46:19 +00:00
thorpej a68986edfc Add optional support for mapping the kernel with large (4MB) pages.
Right now, only does kernel text, and wastes a little memory, but
there is some noticeable performance improvement even with just text.
2000-09-07 17:20:58 +00:00
thorpej 2204402aa1 If KERN_LDSCRIPT is specified as a makeoption, then add it to the
linker flags.
2000-09-07 06:39:36 +00:00
thorpej 1946ce2a42 A linker script based on elf_i386.x which aligns the .data segment
to a 4MB boundary, thus allowing the text and read-only data to be
mapped using large pages.
2000-09-07 06:36:24 +00:00
thorpej 50668be499 Deal with low addresses in pmap_k{enter_remove}. port-i386/10966. 2000-09-07 06:06:52 +00:00
sato 9a5210c76d - adapt config_hook(CONFIG_HOOK_PMEVENT,..)
save cmu clock mask register and disable all clock when PWR_SUSPEND event.
  restore saved cmu clock mask register when PWR_RESUME event.
2000-09-07 03:11:11 +00:00
thorpej fbc40806dd vtopte() and kvtopte() now check for kernel vs. non-kernel addresses,
respectively.
2000-09-06 23:32:13 +00:00
thorpej b53916e196 Cast arguments to kvtopte() to vaddr_t. 2000-09-06 23:28:30 +00:00
thorpej 5f98fd6c03 On second thought, back out kvtopte() change in previous. Dug, PT pages
are in a special VA range, not kernel VA range.
2000-09-06 22:23:46 +00:00
thorpej ba3605f2bf Use kvtopte() for kernel addresses. 2000-09-06 22:22:27 +00:00
thorpej a7b2cf9d7a Print CPU features, and use kvtopte() for kernel addresses. 2000-09-06 22:19:46 +00:00
thorpej e32a6a7c54 Use kvtopte() for kernel addresses. 2000-09-06 22:09:58 +00:00
scw 7f3786d36a Add preliminary support for the MVME162-LX 200/300 series of boards.
Currently, the major onboard devices are supported (disk, network,
rs232 and VMEbus). However, work is still need to support the remaining
devices (eg. IndustryPack sites).

These boards are available with a dazzling array of build options. At
this time, the following options are *required*:

	o Real floating point hardware (the 68LC040 model isn't tested),
	o The VMEchip2 must be present,
	o If offboard VMEbus RAM is not present, at least 8MB of onboard
	  RAM is required.
	o Even if offboard VMEbus RAM *is* present, at least 4MB of onboard
	  RAM is required. (Boards with 1 or 2MB onboard RAM *can* be
	  supported with offboard RAM, but not without some funky values in
	  the VMEbus Master mapping registers.)

There is no support for boards other than those in the -LX 200/300 series.
2000-09-06 19:51:42 +00:00
thorpej 7dd395bb7f Remove some vto*() macros that won't stand a chance of working
with PSE or PAE, and reimplement vtphys() in terms of pmap_extract().
2000-09-06 19:09:45 +00:00
minoura b53cfef01f Adjust ramdisk size. 2000-09-06 14:29:41 +00:00
tsubai d0078c839c Add breakpoint(). 2000-09-06 11:25:13 +00:00
wdk b38096892a Microtime calculation was seriously incorrect when HZ != 100
Give rest of clock interrupt code a revamp.  Because we are using an external
cycle counter we can now handle loosing several hundred interrupts without
the time slipping.
2000-09-06 07:52:47 +00:00
jeffs 8f2cc012b5 Remove 3 of the nops between tlbwr and eret in tlb miss handlers. They
were added early when adding the QED support.  RM5231 seems to work fine
w/o the extra nops.  Noticed by Chuck Cranor.
2000-09-06 06:33:42 +00:00
thorpej eac566737e In pmap_extract():
- Return FALSE if the PTE does not have PG_V set (previously, you would
  get always get true of the PDE was valid, even if the PTE was not).
- Teach it about 4MB pages.
2000-09-05 21:56:41 +00:00
thorpej 7683d3f956 Define PG_LGFRAME, which is the page frame mask for large (4MB) pages. 2000-09-05 21:52:16 +00:00
thorpej 9c5afcb2f0 Move the Alpha _mcount() into a .S file so that it can be
pre-processed, like other Alpha assembly files.
2000-09-05 16:28:30 +00:00
tsubai bc0d647e21 Preserve symbol table for DDB. 2000-09-05 15:57:26 +00:00
tsubai dfcd3bca08 On G3 and G4, display short message if L2 cache is not enabled. 2000-09-05 15:29:28 +00:00
enami ef2b361222 Fix to work with objdir. 2000-09-05 05:05:16 +00:00
soren c5ce14be0a Back out (most of) previous. I was using an 1.5 asm.h and hadn't
noticed cgd's fix..
2000-09-05 01:24:51 +00:00
soren c3150dc3dc Add nop after PANIC macros. 2000-09-05 00:55:48 +00:00
tsubai 96f1451685 Downcase mnemonics. 2000-09-04 23:18:36 +00:00
tsubai 600169a9a3 Make this (at least) compile on sh3. 2000-09-04 23:11:42 +00:00
tsubai bf4246e37a Disassembly support in DDB. 2000-09-04 23:02:42 +00:00
tsubai cdbe0b9ec9 Add DDB hook. 2000-09-04 22:44:18 +00:00
wdk f0f97fa466 * Add extra tests to ensure NetBSD disklabel is not corrupted
* For MIPS RISC/os based diskl labels create partition 8 which is used
  by sash (and where bootstrap code hides).

* If existing MIPS RISC/os label is present update disk parameter information
2000-09-04 22:35:26 +00:00
wdk 3e329a2925 * Use bus_space_write_multi_2 for priming the DMA FIFO as suggested by cgd
*  Correctly handle transfer pad operation

*  Remove check for DMA fifo flush during DMA chaining - after considerable
   thought this is not required
2000-09-04 22:28:53 +00:00
wdk 7980486e61 Add #define's for PROM entry point addresses which will be needed by any
replacement bootstrap routines
2000-09-04 22:23:34 +00:00
wdk 801b97faf2 Add wbflush() to bus_space_{write_multi,write_region,set_region,copy_region}
functions
2000-09-04 22:18:58 +00:00
tsubai 5f39c378a3 Correct label_t size. 2000-09-04 22:18:43 +00:00
abs b5f864571c Switch INSTALL back to being used by miniroot install.
Add INSTALL-SYSINST config for sysinst install.
These are expected to diverge more as time progresses.
2000-09-04 16:16:18 +00:00
ragge 7b3463b7d7 Fix to correctly identify 3100/m30. From moj@stacken.kth.se. 2000-09-04 11:46:33 +00:00
msaitoh 85c00d0fed refer MMUCR_VALIDBITS from mmureg.h 2000-09-04 05:50:45 +00:00
msaitoh 8d1b1036ff - move MMUCR_VALIDBITS definition into mmureg.h.
- access correct address in cacheflush().
2000-09-04 05:48:35 +00:00
thorpej 0778dad08f Define the biglock perimeter for the Alpha port, and generally clean
up a bunch of the MP code.  Still doens't work properly yet, this is
just a snapshot of work-in-progress.
2000-09-04 00:31:58 +00:00
is 7d54381711 sm* at (mhz at) pcmcia* needs mii to link (although not at runtime...). 2000-09-03 19:07:05 +00:00
mhitch 4a320ca712 Use the correct DMA pointer for the second channel on 14-bit byte-swapped
conversion.  Fixes NULL pointer reference crash when playing 16 bit little
endian audio.
2000-09-03 02:04:53 +00:00
thorpej 7453e98fb9 Profiling version of the FRAU-FARBISSINA kernel. 2000-09-02 21:38:19 +00:00
mhitch 76585aedee Fix typo: a%0 -> %a0. 2000-09-02 04:50:08 +00:00
msaitoh e44c80532c sh3 disassembler written by Akinori Koketsu. 2000-09-01 22:25:36 +00:00
eeh 0d01e04003 Add support for write protecting clock registers. 2000-09-01 19:04:49 +00:00
tsubai 2e72bb2b72 Add fr key layout. (From Manuel Bouyer, modified by me) 2000-09-01 16:00:38 +00:00
tsubai a964ecd1a9 Correct iosize. 2000-09-01 10:43:33 +00:00
eeh 67ca76fd68 Use casx instead of stx to change entries in the page table trees. 2000-08-31 20:14:55 +00:00
eeh 65f1bb68b5 Add support for multiple memory segments. 2000-08-31 19:12:45 +00:00
eeh a17d71cd4b Fix register sheduling bug in st?a() routines and add casxa(). 2000-08-31 19:08:47 +00:00
pk 710295327e Scheduler lock update. 2000-08-31 16:59:12 +00:00
jdolecek 3fd457414e constify first arg to parseopts() 2000-08-31 07:21:46 +00:00
jhawk a022cf9d37 Use
${MAKE}
instead of
  make
2000-08-30 23:51:46 +00:00
jeffs f8d9f59ed9 Correct _KERN_MCOUNT restoration of $t9.
From Ethan Solomita (ethan@geocast.com).
2000-08-30 22:31:12 +00:00
is 0a7489b1e8 Enlarge RAMDISK to make it fit the installation fs again.
By Mike Pumford per port-arm32 mailing list..
2000-08-30 21:29:16 +00:00
tsubai c6b969cd89 Cosmetic changes. 2000-08-30 19:16:15 +00:00
tsubai f286397ff1 Scheduler locking changes. 2000-08-30 18:41:16 +00:00
jdolecek ad4cbd94a4 Switch to newvers_stand.sh-based boot block versioning. Add sensible 'version'
template, the boot block changes were picked from cvs annotates for Makefile
and boot.c.

Reviewed by Ragge.
2000-08-30 18:16:09 +00:00
soren 55dbdb6091 Typo. 2000-08-30 14:59:48 +00:00
tsubai c6615ed380 Initialize pv_head locks. 2000-08-30 09:55:28 +00:00
is 9ec45c470a Use an INSTALL kernel, instead of GENERIC. We want this to be as small as
possible so that it can boot even on low memory Amiga machines.
2000-08-30 09:43:04 +00:00
is e83ee64031 Stripped down Install kernels (no audio, no OSI or Xerox networking, no
scanners).
INSTWDCPCM has the wdc instead of the idesc, and the PCMCIA support, so
that people can test it easily.
2000-08-29 21:09:28 +00:00
leo 6c521b3fcc Now that formatting works (Thanks Nathan!), it shows that spec_read() is
issueing a 'DIOCGPART' at every read. Avoid re-reading the label at
every format-verify (or read/write on the block-device) by fetching the label
at open-time and caching it until we close.
2000-08-29 20:00:16 +00:00
takemura 212b3fa9d8 The bootloader has been improved by Kazuma Arino.
- dialog style main window
  - support to read compressed kernel image
  - automatic boot with timer
  - human readable configrarion file
version no gets '1.15.00 2000.08.29'
2000-08-29 15:10:14 +00:00
wdk 35871e7996 Report memory sizes using format_bytes(9) kernel function 2000-08-29 12:12:59 +00:00
wdk 149a5fc5f2 Engage the clutch before changing gears.
If the machine uses a Z85230 ESCC device with deep buffers, we observe
output glitches when printing the zstty{0,1} probe lines when the device
is reset & reprogrammed during startup.

There is no easy 'hook' in the MI Z8530 driver, so we wait for output
buffer to drain before changing the baud rate generator prescaler value.
2000-08-29 11:25:08 +00:00
wdk 5656bdea79 Don't trust the realtime clock if the data is before 1988. This is
consistant with other ports.

Prevent uninitialized time from being written back to the RTC (1-Jan-1970)
if the machine is halted from the root device name prompt
(bootflags & RB_ASKNAME)
2000-08-29 10:34:13 +00:00
wdk aaa3f11967 Fix an obscure bug with dump corrupting files during raw reads.
If the DMA chaning interrupt couldn't be serviced immediately (higher spl
level when kernel doing something else) a few microseconds later the NCR
controller will fill its FIFO and also interrupt the CPU.

The SCSI interrupt sees the terminal count has been reached, calls
asc_dma_intr to finish the job off.   The FIFO cannot be flushed because
the block count hasn't been setup for the last dma segment (DMA chaining
still wasn't serviced).

Since the NCR 53c94 FIFO is only 16 bytes in size, any short DMA in this
size combined with the machine 'doing something else' causes the problem
to occur.

Servicing the DMA chaining interrupt before the NCR SCSI interrupt solves
this problem.

Add tests to ensure the DMA FIFO has been flushed correctly at the end of
each DMA operation just to be on the safe side.
2000-08-29 08:24:06 +00:00
pk 55af96281e Pull down from 1.4 branch: default relocation address = 3E0000 2000-08-28 19:10:31 +00:00
eeh bbede65f5b Fix E250 identification. 2000-08-28 18:01:23 +00:00
tsubai f671e87235 Add an argument to need_resched macro. 2000-08-28 11:52:59 +00:00
tsubai 077c9ca312 Enable hash filter mode. 2000-08-28 11:27:44 +00:00
sato 2a9cfc2e99 add pwctl PWCTL_LCD, PWCTL_LCDLIGHT for NEC_MCR_FORDOCOMO, NEC_MCR_500. 2000-08-27 22:56:31 +00:00
matt 4027af140c Make the pmap: enter on myself panic conditional under DIAGNOSTIC 2000-08-27 17:14:44 +00:00
ragge fa53886b69 Wiring of a page were done at the wrong place, so pages in kernel space
never got the wired bit set. This caused panics if a swapped out process
was swapped in again and the kernel stack had not yet been unmapped.
While here, add a forgotten lock initializer.
2000-08-27 14:14:50 +00:00
is 115bd3b350 Replace one callout handler by using a timeout in tsleep().
1.4.x version of it submitted by Ingolf Koch; translated to 1.5-ish by
myself.
2000-08-27 10:35:43 +00:00
matt 98e5e148fa Since cpu_switch (aka Swtch) is now called at splsched() with sched_lock
locked, cpu_exit needs to do that too.  Since in the lock debug case we
have to use a CALLS which wipes out R0-R6, change the convention for Swtch
so that the proc is passed in R6 and that R6 is clobbered.  This is so
Swtch itself doesn't have to save/restore the proc pointer explicitly.
2000-08-27 00:21:46 +00:00
minoura cbac1a91d9 Add #ifdef _KERNEL ~ #endif to protect kernel variables from userland. 2000-08-26 23:23:43 +00:00
minoura 33f305090e Set fputype earlier, before proc0 initialization. 2000-08-26 23:04:44 +00:00
eeh a0f2ab32f7 Make 64-bit clean. 2000-08-26 16:02:06 +00:00
matt 5c62e0cab4 Fix the idle loop. 2000-08-26 15:13:23 +00:00
thorpej 9eed6192a2 Un-transpose some characters in an abbreviation. 2000-08-26 06:58:25 +00:00
matt 7e0ad8b0c2 Update to reflect new processor switching conventions w/ LOCKDEBUG
and MULTIPROCESSOR
2000-08-26 03:38:46 +00:00
thorpej 0ba350214f Thinko in previous. 2000-08-26 03:33:49 +00:00
thorpej 2af5e3861c Fix a couple of typos in previous. 2000-08-26 03:32:36 +00:00
thorpej 0e04909346 Snapshot of TLB shootdown bugfixes. 2000-08-26 03:27:44 +00:00
matt fc1511e910 add a COMPAT_15 and remove TCP_COMPAT_42 2000-08-26 02:32:57 +00:00
matt 3fec8167d3 Reverse polarity on INSN_EMULATION to NO_INSN_EMULATION. Thus by default
all kernels will have instruction emulation.
2000-08-26 02:30:59 +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
tsubai 308d7eb3e4 Add (experimental) awacs audio driver. Output (play) only. 2000-08-25 12:44:42 +00:00
bjh21 36f4367186 <machine/spl.h> -> <machine/intr.h> (missed this one last time) 2000-08-25 10:37:58 +00:00
pk baa6bfe332 The `fb' device is optional. 2000-08-25 08:12:49 +00:00
matt 3351f4cf4b Need <bsd.own.mk> for OBJECT_FMT. 2000-08-25 03:51:34 +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
eeh 61197aa4f0 Add workaround for E250s. 2000-08-24 22:00:04 +00:00
nathanw 5127aa189d In fdioctl(), allocate fd_formb dynamically when needed, rather than on
the stack, and remove the no-longer-necessary PHOLD()/PRELE() calls
in fdformat().

(This eliminates 1/3 of the instances of PHOLD()/PRELE() in the kernel code.)

XXX We still have too many mostly-redundant floppy drivers.
2000-08-24 20:04:28 +00:00
ragge 5796505d43 Fix after %b fixes. 2000-08-24 13:12:25 +00:00
msaitoh b78abd33dc KNF 2000-08-24 11:35:16 +00:00
uch 97749b6bb4 don't refer cf_unit.
undef __BROKEN_CONFIG_UNIT_USAGE
2000-08-24 11:19:19 +00:00
uch 2111496e74 Rewrote TX39 series cache routines. 2000-08-24 05:31:59 +00:00
eeh 5ca48b896d Update the scheduler to the new locking scheme. 2000-08-23 21:35:56 +00:00
jhawk 2ea44b1dd4 install dosboot.com in the release(7) hierarchy. 2000-08-23 21:00:46 +00:00
wrstuden 4678e2bb87 Correctly spell DRIVER. Noted by Tsubai. :-) 2000-08-23 19:15:25 +00:00
bjh21 acb0541a4b Use symbolic names for interrupt lines. 2000-08-23 17:28:51 +00:00
pk 7c10808744 Use common fb.c from sys/dev/sun. 2000-08-23 13:41:58 +00:00
tsubai 5558e41363 New PowerBook (firewire) seems to use edge-triggered interrupt.
XXX cannot hot-plug yet
2000-08-23 12:18:17 +00:00
pk 194a6c2d97 remove pfourreg.h. 2000-08-23 12:08:16 +00:00
pk 408d2f01d0 Brooktree DAC support now lives in sys/dev/sun. 2000-08-23 10:08:48 +00:00
pk 837ef2bae6 This driver is now in sys/dev/sbus. 2000-08-23 10:07:46 +00:00
pk aa81eb0f8b This file is now in sys/dev/sun. 2000-08-23 10:07:25 +00:00
pk c85ada8053 These drivers are now in sys/dev/sun 2000-08-23 10:05:46 +00:00
scw da7dfaefcc Though the VMEchip2 documentation is not explicit on the subject, a
VMEbus analyser confirms that D8 transfers are possible on all the
master ranges.
2000-08-23 08:13:14 +00:00
pk 317a570728 These devices will never be found on sun4u machines. 2000-08-22 21:43:35 +00:00
pk 1e1790859a Pull in sys/dev/sun/files.sun.
Remove driver declarations that are now in /sys/dev/{sbus,sun}
2000-08-22 21:35:45 +00:00
pk 91f1b275c9 Remove driver declarations that are now in /sys/dev/{sbus,sun} 2000-08-22 21:29:49 +00:00
pk 702e1dd9e6 Use the framebuffer drivers & header files that now live in /sys/dev/sun. 2000-08-22 21:28:24 +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
leo 67f170f93c Need to specify BINDIR or the executable ends up in / 2000-08-22 14:26:04 +00:00
abs 02a00854f4 Diet a little to help fitting onto a floppy 2000-08-22 13:36:14 +00:00
wdk caa807ac35 * Tidy up reading of Mips volume header information
All compatable values are copied from the MIPS volume header to the
  BSD disklabel structures.

* Add support for writing Mips volume header.

* Remove support for writing NetBSD label directly (this was broken)

These changes allow the kernel to read either a BSD disklabel created under
NetBSD/sparc or a MIPS volume header created under RISC/os.

There is a small amount of losage with the conversion between the 2
types of disk labels (mainly to do with file system types).
A table is used to map partition numbers and types between the two
types, and unless someone does something real fancy (or crazy) it should
work in both senario's

This change will allow the stand alone shell to directly load a NetBSD
kernel and mount a file system, avoiding the need for a seperate disk or
bootp server to bootstrapping NetBSD.

NetBSD/mipsco is now self sufficiant.  We are not far from having a
miniroot filesystem and removing the need to have another NetBSD
machine to create the base filesystems.

Minor Trap for young players:
   The root partition must be created with 'newfs -O' in order for the
   stand alone shell to boot the kernel

TODO:
   Add support for writing NetBSD disk labels back in - it will be useful
   for non boot disks.   I'm just not sure how to control the 2 behavours
2000-08-22 11:59:34 +00:00
tsubai eaa177d2f1 Add a missing entry to chrtoblktbl. 2000-08-22 11:48:23 +00:00
tsubai f406aae2d2 MD part of mcount. 2000-08-22 11:25:49 +00:00
joda 71cabc49dd (rbus_pccbb_parent_mem): make the rbus minimum start address
configurable (RBUS_MIN_START), since default value of 1GB doesn't work
well on some ThinkPads
2000-08-22 08:42:55 +00:00
erh df316aa06c Change the heap limit from 40000 to 50000 so the heap is the same size as it was before the "Hack from Hell'. 2000-08-22 02:46:30 +00:00
scw 72f826d727 A VMEbus RAM board configured for use by mvme68k can now be
treated as just another available VMEbus slave image as far as
bus_dma(9) is concerned.

To preserve faster onboard memory, mvmebus_dmamem_alloc() will
allocate first from the offboard VMEbus RAM slave image if present,
and assuming its address modifier matches the caller's constraints.
This can be overidden by specifying the BUS_DMA_ONBOARD_RAM flag.
2000-08-21 20:50:13 +00:00
tsubai 365ec2aa42 Scheduler locking changes. 2000-08-21 18:46:03 +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
itohy 5755dca55d Fix typos.
No functional changes.
2000-08-21 07:39:42 +00:00
thorpej 23a7f255d4 Make sure we provide splsched() as described in spl(9). 2000-08-21 02:06:31 +00:00
thorpej 2648536e0c Add experimental code for pausing other CPUs upon a CPU's
entry into the debugger.  While I'm here, add splsched()
as per spl(9).
2000-08-21 02:03:12 +00:00
scw 3cac59ee4f Expand on how VMEbus master addressing modes are specified, to better
deal with dynamic address modifier generation based on the CPU's
function code pins.

Also implement VMEbus slave mode for mvme147. (Not yet 100% working.)
2000-08-20 21:51: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
scw 3f2adcb2b0 Checkpoint of code to add VMEbus slave support using vme_dmamap* and
vme_dmamem*.

This is still a work in progress, but seems to DTRT on mvme167 so far.

TODO:
	. Get VMEbus slave mode going on mvme147. This should be easy.
	. Fix up the A16 slave mappings.
	. Bounce buffer support. (Messy, but pretty much a `must have'.)
	. Figure out how to deal with `location monitor' interrupts
	  within the framework. (Useful for Busnet, among other things.)
	. It would be nice to make use of the VMEchip2's DMA facilities...
2000-08-20 17:07:41 +00:00
bjh21 567f2768d1 Implement the easy ptrace requests and turn off the difficult ones. 2000-08-20 15:16:49 +00:00
mrg e144281c4e move ofwboot & bootblk here; add a Makefile to build ofwboot.net 2000-08-20 14:58:36 +00:00
mrg 85737336b4 add/merge sparc64 support. 2000-08-20 14:57:16 +00:00
mrg 9bea0e1a52 fix ultrasparc support. 2000-08-20 14:56:28 +00:00
mrg b74059e5cf move everything to arch/sparc/stand; leave the Makefile behind. 2000-08-20 14:53:19 +00:00
mrg 651a58c846 add SOFTDEP 2000-08-20 14:51:56 +00:00
pk 4ec48d799f fbio.h moded to sys/dev/sun.
Retain symlink from /usr/include/machine.
2000-08-20 14:02:59 +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
tsubai 31ec486214 Correct asm parameter to avoid gcc uninitialized warning. 2000-08-20 07:48:45 +00:00
tsubai 1267826d5d Increase stack size. 2000-08-20 07:04:59 +00:00
tsubai 58aaeaae7f In decr_intr(), update lasttb only when clock interrupt is not masked. 2000-08-20 07:02:41 +00:00
tsubai d832bf8e95 Add "type" argument to openpic_enable_irq(). 2000-08-20 06:56:42 +00:00
thorpej dd87a44f4a Initialize PV head simple locks, done slightly differently than
in the sommerfeld_i386mp_1 branch.
2000-08-19 19:48:53 +00:00
wdk 9ac68bcb51 - Add support for calling most prom firmware functions
- Using the prom getenv function determine the correct console port

- Remove old prom function hooks

- Tidy up bootflags (remove upper case names, fixup RB_ASKNAME) as
  recommended by Jaromír Doleèek
2000-08-19 12:13:46 +00:00
wrstuden 17c0d4d853 Add some new partition types, and flags. Have the Apple Partition Map
code ignore the new partition types, and look for the new "USR" partition
flag.

From SUNAGAWA Keiki <kei_sun@ba2.so-net.ne.jp> with slight changes by me.

Closes PR port-macppc/10046
2000-08-18 22:40:28 +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
sato d5b133164a - disable warning: add missing argument. 2000-08-18 07:33:14 +00:00
bjh21 a81231398b Oops. Remember to close the comment! 2000-08-17 22:09:10 +00:00
wdk 702ec79b19 #include <mips/locore.h> no longer required since implementing bus_space(9)
remove unused extern variable that is never used in mipsco port
2000-08-17 21:26:34 +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
msaitoh 4a9013cf38 add code to mask mmucr register (SH4 only)
I'm sorry, I'd forgotten to commit it for a long time.
2000-08-17 13:13:28 +00:00
msaitoh a8fe4a6776 check INTEVT_SCIF (SH4 only)
I'm sorry, I'd forgotten to commit it for a long time.
2000-08-17 13:07:51 +00:00
wdk b9333bd4e7 Check for memory aliases when sizing physical memory. Remove 32MB memory
restriction.

Tested with 32 x 1MB SIMM's plus mix of 4MB and 1MB SIMM's to ensure the
aliases is detected in all memory configuratiions.
2000-08-17 05:05:01 +00:00
msaitoh 7369c6d979 add an INTEVT code for WDT 2000-08-17 00:01:53 +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