Commit Graph

2488 Commits

Author SHA1 Message Date
thorpej a07b7d60e2 Garbage-collect. 1999-12-16 20:20:11 +00:00
thorpej 81f44f09a5 - Remove a misguided attempt to use procs as idle contexts for secondary
processors.  Instead, allocate separate idle PCBs for them (including
  the primary -- don't use proc0's for its idle context).
- Use SysValue to store the cpu_info for each processor.
1999-12-16 20:17:22 +00:00
thorpej a5b316c4d5 Key off NSIO and NPCEB for (E)ISA interrupt support.
XXX Can probably nuke the SIO test; don't all of the Noritake-class systems
XXX have EISA?
1999-12-15 22:31:04 +00:00
thorpej 4f580f447c Key off NSIO and NPCEB for (E)ISA interrupt support.
XXX Can probably nuke the SIO test; don't all of the Mikasa-class systems
XXX have EISA?
1999-12-15 22:30:40 +00:00
thorpej 58a51e3b72 Key off NSIO and NPCEB for (E)ISA interrupt support.
XXX Can probably nuke the SIO test; don't all of the ALCOR-class systems
XXX have EISA?
1999-12-15 22:28:15 +00:00
thorpej c557690acc Key off NSIO and NPCEB for (E)ISA interrupt support.
XXX Can probably nuke the SIO test; don't all of the Rawhide-class systems
XXX have EISA?
1999-12-15 22:25:21 +00:00
thorpej 3ffe65b597 Use alpha_shared_intr_{get,set}_private(). 1999-12-15 22:21:45 +00:00
thorpej deed2b3b4b Fix a botch in stray interrupt reporting; report the kn300 IRQ, not the
interrupt enable bit on the MCPCIA the interrupt is mapped to.
1999-12-15 20:10:04 +00:00
thorpej 8b34a5b689 Revert previous. 1999-12-08 23:54:55 +00:00
thorpej fd6f6e85b2 Slight changes so that bounce buffers can be implemented for the Jensen. 1999-12-08 23:40:35 +00:00
thorpej 781149bb12 Handle the case where PCI dense memory and PCI sparse memory don't
overlap; don't require allocation from the dense extent if the PCI
memory address isn't mapped into dense space.

Also, make sure to return an error if a liner mapping is requested
and dense space is not available (not just not requested).
1999-12-08 01:48:39 +00:00
thorpej 9beb275ae8 Oops, committed the wrong version of this file previously. 1999-12-08 00:35:43 +00:00
thorpej a4f30c3f19 Add entry for AlphaServer 2100 (Sable, Sable-Gamma). 1999-12-07 21:51:53 +00:00
thorpej fcf35a8417 Add options, files, etc. for the AlphaServer 2100 (Sable, Sable-Gamma).
Actual source files not yet committed.  Very Soon.
1999-12-07 21:47:12 +00:00
thorpej 25a665e643 Avoid a spurious warning when establishing a pulsed interrupt handler
on an IRQ which was marked "initially-pulsed".
1999-12-07 21:36:16 +00:00
thorpej 4056ebc587 When doing a badaddr check, insert an extra `mb', which is highly magic
on some systems (due to quirky bus adapters).
1999-12-07 21:35:06 +00:00
thorpej ac20942bc5 Some systems don't have dense space; don't require it. 1999-12-07 07:04:39 +00:00
thorpej 51f4c69ad4 Clarify what appear to the untrained eye to be two magic constants (the
address shift and access size shift), and allow them to be overridden
by chip-specific code, if necessary.
1999-12-07 05:44:57 +00:00
drochner 0893832078 update for changed struct wsdisplay_accessops:show_screen signature.
no functional changes
1999-12-06 19:25:56 +00:00
ragge 0513268399 CL* discarding. 1999-12-04 21:13:19 +00:00
mjacob d5e85e61cf Fixes PR#8836. Some changes made by somebody else were a tad incomplete so
configuring w/o SIO broke compilation. I forget why, but there was at one
point (and may still be) a dependency between SIO and EISA. This change
just makes things compile sensibly again. It may make no sense to build
a kernel w/o sio in this case. I can't test this conveniently because I
haven't got a 4100 with a video card in it at the moment.
1999-12-04 20:29:02 +00:00
thorpej 08d1d1b378 Actually, the 2100_A500 has 64 interrupts, not 16. 1999-12-04 00:22:54 +00:00
lukem a63bfb3c6a add atomic.h (missed by thorpej; approved by thorpej) 1999-12-04 00:18:15 +00:00
thorpej 4560ac465a Split the PC-like keyboard controller driver into chip back-end and
bus front-end.
1999-12-03 22:48:22 +00:00
thorpej 0aa48d5c55 New delay(), more carefully coded:
- Use explicit assembly; don't want the compiler optimizing things too
  much here.
- Subtract 2 for each iteration of the loop, rather than 3.  The loop
  consists of only 2 instructions (even the C version compiled to a
  loop of 2 instructions).

The latter change has squashed a fairly annoying timing bug in the
mii_bitbang module as used by the `ex' driver on my AlphaStation 500.

XXX delay() should maybe be rewritten again, to use the rpcc instruction.
1999-12-03 07:29:57 +00:00
thorpej fafcf62fd6 Update my main Alpha development machine's kernel config file to
reflect current reality.
1999-12-03 07:03:43 +00:00
thorpej a51be1961c lock_machdep.c is gone. 1999-12-03 01:13:51 +00:00
thorpej 5d0a62da53 Remove now-obsolete atomic operations. 1999-12-03 01:13:17 +00:00
thorpej 2d8ef60c51 This file is obsolete. 1999-12-03 01:12:00 +00:00
thorpej 2a97466824 Rewrite the atomic locking primitives using in-line assembly. 1999-12-03 01:11:34 +00:00
thorpej d89260177d In pmap_page_protect(), don't reference a pmap we're unlocking via
the PV entry we just freed (D'OH!)
1999-12-02 23:40:27 +00:00
thorpej 9f7d189f05 Inline most of the remaining PALcode calls. 1999-12-02 22:08:04 +00:00
thorpej 90bc415584 Pull in the BWX inlines. We expect the arch to be set appropriately for
the assembler before these files are pulled in by the chip-sepecific files.
1999-12-02 19:44:49 +00:00
thorpej 4e08cc6996 CIA core logic with BWX enabled appears on EV6. We require at least
EV56 for the assembler to emit BWX opcodes, so set the arch to "ev6".
1999-12-02 19:43:58 +00:00
thorpej dc362cf369 CIA core logic with BWX enabled appears on both EV56 and PCA56. We
require at least EV56 for the assembler to emit BWX opcodes, so set
the arch to "ev56".
1999-12-02 19:43:25 +00:00
thorpej 0a2ea99c42 Inline the BWX instructions. 1999-12-02 19:41:39 +00:00
thorpej 4106b60175 Move atomic operations into <machine/atomic.h>, and make them in-line
assembly, rather than function calls.

...except alpha_atomic_testset_l(), which will go away completely once
I commit the new <machine/lock.h>.
1999-12-02 01:09:11 +00:00
thorpej c258dfae2f After reading the GCC `documentation' a little more, improve the inline
__asm() statements added previously for PALcode operations.
1999-12-01 18:23:11 +00:00
thorpej 12f7832ebc don't need private `imb' inline anymore. 1999-11-30 22:32:08 +00:00
thorpej 9314d7f4d7 Use ptoa() consistently when printing out how much memory we have, etc. 1999-11-30 19:31:56 +00:00
thorpej 69b252dfff Put some (disabled) debugging code into pmap_steal_memory(). 1999-11-30 18:18:02 +00:00
thorpej 89ae0bf93c Inline several things from pal.s:
- alpha_rpcc(), alpha_mb(), alpha_wmb() -- these are instructions, and
  we win by inlining them: rpcc is generally used for profiling, and
  the memory barriers really should execute as quickly as possible with
  minimal side-effects (like additional loads/stores required to call the
  functions!)
- alpha_pal_imb(), alpha_pal_rdps(), alpha_pal_swpipl(), alpha_pal_tbi(),
  alpha_pal_whami() -- these are PALcode ops.  We must specify some register
  clobbers for these.

We have a very decent size savings as a result.  My test system:
text    data    bss     dec     hex     filename
2671724 235848  377016  3284588 321e6c  /netbsd.bak
2617708 235736  377016  3230460 314afc  /netbsd

Most of this comes from fewer register saves/restores around spl*() calls
(now that alpha_pal_rdps() and alpha_pal_swpipl() are inlined).

Note that alpha_pal_rdps() and alpha_pal_swpipl() remain in pal.s to
maintain binary compatibility with LKMs that may use spl*() functions.
1999-11-30 00:42:46 +00:00
thorpej 871b54b6d2 Vector to a local function for the IMB IPI. 1999-11-30 00:26:55 +00:00
thorpej 18e6d486f4 Add an IPI which causes the target CPU to perform AST processing when
it returns to userspace.
1999-11-29 20:00:04 +00:00
thorpej 7f1ccd57ea Add a way to get/set a private pointer in the shared interrupt header. 1999-11-29 19:59:19 +00:00
thorpej df2cf70865 - Fix a botch in the IPI bitmasks (they were right-shifted by 1), and
add an IPI which causes the target CPU to perform AST processing when
  it returns to userspace.
- Add a way to get/set a private pointer in the shared interrupt header.
1999-11-29 19:58:39 +00:00
thorpej 68fb3dc662 Switch to the new pmap_remove() and nuke the old one. A simple fork/exit
benchmark shows at least a 10% improvement in the tearing down of a large
address space.
1999-11-29 18:37:28 +00:00
thorpej 94552ad5d6 - Use alpha_atomic_{add,sub}_q() to update the pmap statistics. We now no
longer need to lock the kernel pmap in pmap_kenter_pa() and pmap_kremove().
- Since locking the kernel pmap in interrupt context is no longer required,
  don't go to splimp() when locking the kernel pmap.
- Implement a new pmap_remove() function, not yet enabled by default.  It
  is structured like pmap_protect, and should be *much* faster.  This was
  actually written quite some time ago, but never committed because it
  didn't work properly.  Given the recent bugfix to pmap_protect(), "duh,
  of course it didn't work properly before...".  It seems to work fine now
  (have done several builds and run the UVM regression tests using the new
  code), but it is currently run-time optional so that some performance
  measurements can be easily run against the old and new code.
1999-11-28 19:53:11 +00:00
thorpej 1710fad449 Implement atomic addition and subtraction on quadwords. 1999-11-28 19:47:13 +00:00
mycroft 1d9d2c47c5 In pmap_emulate_reference(), always or in the bits. I know the code is trying
to be clever, but...
Also, a slight optimization for the write case.
1999-11-27 00:25:15 +00:00
mycroft f26df92bed Fix bugs in pmap_protect() that were responsible for the `ld.elf_so lossage'.
* We could overrun the eva by as much as L1SEG_SIZE-PAGE_SIZE.
* sva was advanced *twice* for each valid l3 or l2 page, causing it to get out
  of sync with the PTE pointers.
1999-11-26 23:04:33 +00:00
itojun e9a0023b37 bring in content of GENERIC.v6 into GENERIC.
remove GENERIC.v6 file (as it is part of GENERIC now).

"faith" interface is commented out by default as it is not really for
general use.
IPsec items are commented out as well, though we can enable "options IPSEC"
without export-related issue ("options IPSEC" will enable authentication
portion only).  We may need to think about it again.

if you have problem compiling with INET6 on archs I do not have access to,
please contact me.

XXX what to do with arch/arm32/SHARK{,.v6}?
1999-11-21 14:00:37 +00:00
mrg d07a6cf8e4 pull across fix from dec_3000_500.c:
>split the "asc" and "tcds" searching into two separate sections and
>keep a "tcdsdev" of the booted tcds device.  make sure that the "asc"
>is the child of the tcds.  this fixes boot device detection on dec
>5000/400 (prolly 400-900) machines in the presense of a tcds option
>card, which would use the right tcds chip & disk scsiid of the last
>attached tcds -- which meant it would choose the wrong disk, or not
>find the boot device at all if the corresponding scsiid was unused in
>the last attached disk.
>
>XXX: this may need to be copied to dec_3000_300.c but i have no idea
>as i can not test this hardware at all...
>
>fixes PR#8771 by myself.
1999-11-20 00:01:14 +00:00
mrg 9f1959ab2b split the "asc" and "tcds" searching into two separate sections and
keep a "tcdsdev" of the booted tcds device.  make sure that the "asc"
is the child of the tcds.  this fixes boot device detection on dec
5000/400 (prolly 400-900) machines in the presense of a tcds option
card, which would use the right tcds chip & disk scsiid of the last
attached tcds -- which meant it would choose the wrong disk, or not
find the boot device at all if the corresponding scsiid was unused in
the last attached disk.

XXX: this may need to be copied to dec_3000_300.c but i have no idea
as i can not test this hardware at all...

fixes PR#8771 by myself.
1999-11-19 10:49:46 +00:00
mjacob 8cf9a14802 Add in a step to actually probe for MCPCIAs. This allows us to run on
4100s that only have two of four possible MCPCIAs.
1999-11-16 18:37:24 +00:00
mjacob 2981278f40 Add in a define for a MCPCIA bridge register that would be suitable for
probing for with badaddr(9).
1999-11-16 18:36:27 +00:00
mjacob ce28c5e558 Make sure a MCPCIA exists before trying to initialize it. Also make
sure a MCPCIA softc exists before trying to do post-config cleanup
on it.
1999-11-16 18:33:11 +00:00
enami 0a4858667a Include sys/device.h so that this file compiles again; file dev/tc/tcvar.h
now contains the definition of tc_softc.
1999-11-16 12:26:42 +00:00
dan 46ccd498df Add entries for we[01] (configured as for the i386 GENERIC) to enable
WD/SMC ISA ethernet cards to be used for installation and setup.
1999-11-16 07:37:43 +00:00
dante 7d4ad0e29e Add WDTR, SDTR and TAGQ disable options 1999-11-15 20:07:21 +00:00
fvdl 8bec119fcc Add commented out option SOFTDEP to all GENERIC kernels. 1999-11-15 19:10:44 +00:00
fvdl d116707af0 Add
prefix ../gnu/sys
cinclude "conf/files.softdep"
prefix

to all std.* files, so that soft dependencies can be activated using
"options SOFTDEP".
1999-11-15 19:00:25 +00:00
thorpej 728d672378 Backout my libsa changes. 1999-11-13 21:33:12 +00:00
thorpej abff7cb610 Update for pmap_enter() API change. 1999-11-13 00:27:21 +00:00
thorpej 59cbff957d Update for pmap_enter() API change, and return failure if possible. 1999-11-13 00:26:22 +00:00
lukem 0888d71168 recognise the ACER labs M1543 PCI-ISA Bridge in siomatch(). the DS10 now boots!
thanks to thorpej/ross/mrg for helping me out on this.
1999-11-12 22:07:28 +00:00
simonb 2b6e59dd39 Don't include <lib/libkern/libkern.h> for prototypes that are also in
<lib/libsa/stand.h>.  The alpha still needs libkern for the division
and remainder support.
1999-11-12 13:11:40 +00:00
mycroft 336e3613c3 Kill wsmux. DIE DIE DIE! 1999-11-08 06:17:42 +00:00
mycroft fb17cb2665 Disable wsmux for now. 1999-11-08 04:50:30 +00:00
mhitch 8008907a4c && doesn't work very well for testing a flag - tcds_params() was always using
the baseboard ID and FAST settings instead of getting them from the TC option
card EEPROM.
1999-11-08 03:00:32 +00:00
chs f1c14a8b5d in copystr(), be sure to return an error if maxlen == 0. 1999-11-07 17:01:20 +00:00
mrg defe7bd119 make this compile without DEC_3000_300 1999-11-07 09:14:34 +00:00
mycroft f991846760 Make this a little more current. 1999-11-07 01:04:59 +00:00
thorpej 803d0b1a4b Add some missing Ethernet cards: rl, ti (not in INSTALL), sip, tlp. 1999-11-05 21:30:21 +00:00
thorpej 06a4c7fe53 Allow rd/line, rd/mult, and wr/inval. 1999-11-04 19:15:22 +00:00
thorpej a3759d67fe Don't do rd/line, rd/mult, or wr/inval on the buggy Miata 1's. 1999-11-04 19:11:51 +00:00
thorpej 1825cdf45b Tell the PCI layer that Memory Read Line, Memory Read Multiple, and
Memory Write and Invalidate are okay PCI commands to use.
1999-11-04 01:02:38 +00:00
thorpej 3b8a1e5d8c Implement PT page stealing for extreme low memory conditions. This
has the side-effect of eliminating a locking protocol error in some
memory-desperation code in pmap_physpage_alloc().
1999-11-02 18:09:31 +00:00
thorpej b03d459244 From Ross Harvey:
- Fix a bug where IPL wasn't being lowered to process SIRs, which
  effectively caused them to be processed at splserial(), and loop
  over the ssir, like we do for astpending.
- Optimize the flow of exception_return().
1999-11-01 22:41:55 +00:00
thorpej f3055da377 Simple little speed hack in pmap_is_referenced()/pmap_is_modified(): don't
need to have the pv_head lock in order to test the REFERENCED or MODIFIED
attribute; the load of `pvh_attrs' is atomic.
1999-11-01 20:25:39 +00:00
thorpej 79a1245dbb - Fix a case where we weren't acquiring the pv_head lock when modifying
the page attributes in pmap_enter().
- It's no longer necessary (and hasn't been for a while in this pmap) to
  go to splimp() to use the physical->virtual table, so remove all such
  uses.
1999-11-01 20:18:25 +00:00
thorpej 6bb1df8224 Fix a race condition in AST processing described by Andrew Gallatin on
the freebsd-alpha mailing list which basically boiled down to increasing
stack depth due to lowering the IPL before checking for an AST.

This changes AST processing to do basically what the i386 port does (as
described by Charles Hannum):

 check_ast:
        if (astpending) {
                lower IPL
                process AST
                raise IPL
                goto check_ast
        }
1999-11-01 19:59:58 +00:00
nisimura f476de66fe Use an MI routine in ioasic_subr.c. 1999-10-27 10:16:00 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
jdolecek 7f589dba84 rename the MD Debugger() to cpu_Debugger()
add MI Debugger() which switches to console if wscons is used prior
to calling cpu_Debugger()
1999-10-12 17:08:56 +00:00
sato 6afd48d017 fix typo about checking RB_POWERDOWN. 1999-10-07 22:15:22 +00:00
hubertf 467dda98ab Sync usage with the manpage (add -s) 1999-10-05 03:18:32 +00:00
ross b18cdd3e4e Add transition-flag -S, to regenerate alpha/sparc harmonized checksums. 1999-10-04 21:22:15 +00:00
ross 9648d2fcd6 Merge from my i386 source tree: make this build on i386 (and others) 1999-10-04 19:23:19 +00:00
ross 722e1970eb Completely replace the logic used for sparc/alpha checksum harmonization. 1999-10-04 19:19:11 +00:00
nisimura 7fbac8b3cc - Remove defunct codes and arrange consistency between pmax and alpha.
- Reduce 'ioasic_base' expose.
1999-10-01 09:19:42 +00:00
kleink 7732d7348e Add missing sv(4). 1999-09-29 10:46:03 +00:00
kleink 9daa657fd9 Add eso(4). 1999-09-29 10:43:14 +00:00
ad 80aa2508fc Entries for dpt(4). 1999-09-28 23:43:07 +00:00
mhitch fd6f19b057 Correct the clock speed setting: the GPI2 bit is only for the Alpha baseboard
TCDS;  the TC option card has it's own clock.

Also don't use the TCDSF_FASTSCSI flag to clear fast mode - just rely on the
PROM environment.
1999-09-22 03:32:42 +00:00
mhitch ba734be86b Use the correct definition for the Fast Clock bit in cfg3, and set the
Fast SCSI bit used by the 53C9x chips.
1999-09-22 03:32:26 +00:00
ross add81fb25a New -s option. Arranges for the 64-bit alpha checksum to contain within it
an embedded 16-bit sparc checksum and 16-bit sparc magic number.
See also: rev 1.16
1999-09-19 04:54:57 +00:00
ross 9ff31ad0f5 New option: -s
.
Makes the 64-bit alpha checksum magically contain an embedded 16-bit
Sun (NetBSD/sparc) compatible magic number and checksum. This is the
last piece in the "boot one disk from alpha, sun, and i386" problem.
.
And for those who told me this had been done before, :-P.  It turns out,
it was only done in the collective sense by multi-disk distributions.
1999-09-19 03:19:00 +00:00
thorpej 11cae42531 Centralize the declaration and clearing of `cold'. 1999-09-17 19:59:35 +00:00
thorpej 3b01d1b872 Rename the machine-dependent autoconfiguration entry point `cpu_configure()',
and rename config_init() to configure() and call cpu_configure() from there.
1999-09-15 18:10:33 +00:00
chs f3a668ed84 eliminate the PMAP_NEW option by making it required for all ports.
ports which previously had no support for PMAP_NEW now implement
the pmap_k* interfaces as wrappers around the non-k versions.
1999-09-12 01:16:55 +00:00
ross f468c5f199 This is required by libsa/loadfile.c. 1999-09-10 07:33:57 +00:00
ross e66e48676c Nuke the alpha ecoff/elf bootloader and use the libsa/ one instead. 1999-09-10 07:31:16 +00:00
augustss 14b98cd440 Add uaudio driver. 1999-09-09 12:33:43 +00:00
sommerfeld 745de28592 Patch time_precision so we report a realistic NTP "precision" value to userland. 1999-09-06 21:54:17 +00:00
ross dc7ca6a110 Don't get confused when pci function != 0. 1999-09-02 22:04:41 +00:00
sommerfeld 0ec90c839f resync supported mii phy's with GENERIC 1999-09-01 03:10:04 +00:00
thorpej b99d7572d6 Add some missing usb glue. 1999-09-01 00:05:01 +00:00
thorpej c068ef8152 Add `umass'. 1999-08-29 16:55:48 +00:00
ross 52a638cbe3 Fix minor type () bug. Fall thru correctly when the minor type is not known. 1999-08-23 22:29:41 +00:00
simonb 3c185af5fd Include <sys/endian.h> after defining whether where are little- or
big-endian.  i386, pc532 and vax still include <machine/byte_swap.h>
and define macros for the {n,h}to{h,n}*() functions.  mips also
defines some endian-independent assembly-code aliases for unaligned
memory accesses.
1999-08-21 05:53:50 +00:00
simonb 06a92524c2 Include <sys/bswap.h> for function prototypes. i386, pc532 and vax
still include <machine/byte_swap.h> and define macros for some of
the bswap*() functions.
1999-08-21 05:39:51 +00:00
mjacob 9ed023d94e remove LIMITMEM code because it does not work anyway anymore 1999-08-19 21:31:43 +00:00
cgd b18820272a add bootxx_lfs 1999-08-18 21:34:24 +00:00
cgd a97b5505e4 add lfs support 1999-08-18 21:34:11 +00:00
cgd 82729b7302 add a makefile for an LFS primary 1999-08-18 20:02:39 +00:00
cgd 30d5d8a1e3 mention that putstr.c and putulong.c might want to be included when debugging 1999-08-18 20:01:06 +00:00
cgd b28ae57077 add a gross putulong() function which can be useful for debugging.
It's not normally included.
1999-08-18 20:00:27 +00:00
thorpej 0f7db9c21c Now that we have read/write spin locks, use them for the pmap_main_lock. 1999-08-17 18:48:22 +00:00
augustss db574ba708 Add umodem device. 1999-08-16 22:27:08 +00:00
thorpej 95755c54bb Pull in <machine/alpha_cpu.h>. 1999-08-16 06:24:07 +00:00
simonb 299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
thorpej f06d918d30 Protect userland from the vast majority of this file. 1999-08-15 18:32:51 +00:00
ross 4ed22602e7 In pmap_page_protect(), don't (try to) use the pv_entry_t we just
freed in order to find the pmap to unlock.
1999-08-14 06:19:49 +00:00
thorpej 6be04b7f5c Move cpu_info and related info into <machine/cpu.h>, and implement the
other MP API components discussed on tech-smp.
1999-08-10 23:35:43 +00:00
thorpej 28fb7c1eb8 Define cpu_number() as discussed on tech-smp. 1999-08-10 21:08:05 +00:00
thorpej b701be7c86 Use atomic operations to manipulate the SSIR, and fix a problem introduced
with the spllowersoftclock() changes where more interrupts than necessary
were blocked while software interrupts were being processed.
1999-08-10 18:53:03 +00:00
ross 70fad30289 In the kludges-on-top-of-kludges dept, print SWITCHING TO SERIAL CONSOLE
(but iff we started on the framebuffer) so the would-be installer doesn't
think everything just locked up.
1999-08-08 01:44:57 +00:00
ross c85f77e109 ifndef NEW_SCC_DRIVER, tell sccattach() if we are on a fb or serial cons 1999-08-08 01:40:20 +00:00
drochner f6f48ed7e7 clean up error handling in TC graphics console attachment: all functions
return 0 on success and an errno on failure
1999-08-07 12:58:27 +00:00
thorpej 333c98b6e2 Add the AdvanSys SCSI boards. 1999-08-07 07:40:40 +00:00
thorpej eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
jdolecek 836c862c38 add file-system NTFS, commented out and marked as experimental 1999-08-05 15:51:36 +00:00
nisimura cb6ed03a59 - Replace device node names of zskbd/zsms into lkkbd/vsms, respectively.
No functionality was changed at this moment.
- Apply recent changes in GENERIC to TCWSCONS.
1999-08-04 07:17:50 +00:00
nisimura 50eca69f4e - A minimal patch work to make TCWSCONS useful with sfb/zskbd. 1999-08-03 05:30:56 +00:00
ross 02140cb46f Fix the 16-bytes-of-death bug by generating specific-EOI cycles during
sio_intr_setup().
1999-07-30 20:33:43 +00:00
augustss f641c4b3b6 Make two wsmux pseudo devices and add mux locators. 1999-07-29 19:36:58 +00:00
augustss 3652732791 Add wsmux device.
(Also add lots of missing chrtoblktbl[] entries.)
1999-07-29 19:14:35 +00:00
augustss a7cd454b1d It's time to be COMPAT_14. 1999-07-29 10:37:12 +00:00
thorpej 0f0a99bb48 Make sure that pmap == pmap_kernel() when skipping pager mappings. 1999-07-28 23:23:46 +00:00
thorpej c1ee8f0a8c Prepend `cpu_' to the machine-dependent atomic locking primitivies. 1999-07-27 21:45:39 +00:00
cgd f886376518 be more efficient when doing the SYSTEM_LD_TAIL for -g kernels: don't
copy them just to strip them, use strip -o.
1999-07-26 05:20:44 +00:00
ross 4d11d63612 Fix off-by-one comparison. 1999-07-12 07:37:14 +00:00
ross a8000e244c New signature for console_restart(). 1999-07-11 22:39:21 +00:00
ross 0f9e004fe3 Rewrite of console_restart() with constructed trapframe.
Extract various state elements from the per-cpu-slot in hwrpb.
1999-07-11 22:37:12 +00:00
ross f9e083d969 * Set up a trapframe before calling console_restart(), and just pass it the
frame instead of a selection from the saved state.
* new macros:   bfalse reg, dst		/* "beq" */
		btrue reg, dst		/* "bne" */
1999-07-11 22:35:28 +00:00
ross 6eb6441a68 * Big rototill: cleanup, reorganize, redo some things...
* New features:
	+ traceback for threads (i.e., pids):  db>trace/t 0t<pid>
	+ traceback over console restart (halt and SRM continue)
	+ print ipl in trapframes when it's known and it changed
	+ print emulation and system call entry name (!) if proc is known
	   --- syscall (240, netbsd.sys_nanosleep) ---
1999-07-11 22:28:15 +00:00
thorpej 0945bf58b0 Add examples for including the kernel crypto bits from either crypto-us
or crypto-intl, commented out, with instructions to use only one, and
adjust the prefix as necessary.
1999-07-09 18:55:33 +00:00
mrg ecdad0ec33 clean up a bit after jason :)
- fix emitrules() like emitfiles() to deal with the prefix (otherwise it
  would attempt to find the file in the normal base for the NORMAL_C rule).
- add emitincludes() which adds include directives for each prefix to the
  $INCLUDES variable in the makefile.
- add %INCLUDES to each Makefile.arch to deal with the above.

this makes "prefix" actually work in a usable manner, and now i can move
on to fixing compiler warnings (errors) in the ESP code. :)
1999-07-09 09:52:55 +00:00
thorpej 3ebbe095e0 Change the pmap_extract() interface to:
boolean_t pmap_extract(pmap_t, vaddr_t, paddr_t *);
This makes it possible for the pmap to map physical address 0.
1999-07-08 18:05:21 +00:00
thorpej 7b3258b6a7 Make the kthread API a bit more friendly to loadable kernel modules. 1999-07-06 21:44:09 +00:00
thorpej 43e7ebad4c Const poison local printf() prototype. 1999-07-01 20:11:39 +00:00
itojun 5effafcaa6 kernel configuration for IPv6/IPsec. should be in GENERIC in the future.
(source code will be committed soon)
1999-07-01 07:00:12 +00:00
ross ced3118f58 * sprintf -> snprintf
* add a few alpha_mb() ops as called for by folklore and rumour
1999-06-29 17:10:57 +00:00
ross cf1ca54803 Minor Tsunami-related changes. 1999-06-29 07:22:25 +00:00
ross 6068f64d34 * If the cpu_model string contains some form of MHz , don't print
the rpb field also.
* Add dot_conv(), hex format conversion for long hex digit strings.
1999-06-29 07:21:30 +00:00
ross 10f1f2d81f Prototype dot_conv(), new routine in machdep.c that formats an alpha
long like this: e081.8000.8000.0004
1999-06-29 07:18:23 +00:00
ross 724273c3c0 System support for ev6 (21264) systems. 1999-06-29 07:08:53 +00:00
ross b0947ec27d Turn on EV6 bits: Tsunami and system type 6600. 1999-06-29 07:04:15 +00:00
ross 3714f3754f Turn on dec_6600_init, "DEC_6600". 1999-06-29 06:50:41 +00:00
ross 0f707bdb06 Identify the various ev6 pass numbers.
Also print the raw pass number rpb value as, say, `21264-4', like SRM does.
1999-06-29 06:49:36 +00:00
ross 7a27e79bff Support for EV6 Tsunami core logic and system type 6600.
This covers most or all of the presently-available 21264 systems.
1999-06-29 06:46:46 +00:00
itojun 427639cdce - Call ip6intr if INET6 is defined.
- remove "need-flag" for mac68k esp driver, as it is not used in anywhere
  and conflicts with IPsec ESP header.

This should be the only MD change in IPv6 support, except kernel config file.
Very sorry if you have any compilation problem with it (I believe it is okay).
If your favorite arch is not included in here, please add a
call to ip6intr() from softintr handle.
1999-06-28 08:20:40 +00:00
christos dfa695b9a7 Add missing phy's 1999-06-27 22:35:56 +00:00
christos ce110dd283 Add missing phy's. Increase miniroot size 1999-06-27 22:35:43 +00:00
christos 4440b677e2 add vr* at pci?, sort 1999-06-27 15:58:18 +00:00
thorpej c52d839a6e Nuke some code ripe for garbage-collection. 1999-06-26 03:15:54 +00:00
thorpej 43ddb951ea Whitespace police. 1999-06-18 18:11:56 +00:00
thorpej 471cb34fb2 Fix a harmless typo. 1999-06-18 18:08:52 +00:00
cgd 7c02d93c04 nuke current definitions provided by __BUS_SPACE_COMPAT_OLDDEFS.
I'll do what I can to make new ones soon.  8-)
1999-06-18 04:49:24 +00:00
thorpej 0288ffb53a pmap_change_wiring() -> pmap_unwire(). 1999-06-17 19:23:20 +00:00
thorpej f5a527bb4e Remove pmap_pageable(); no pmap implements it, and it is not really useful,
because pmap_enter()/pmap_change_wiring() (soon to be pmap_unwire())
communicate the information in greater detail.
1999-06-17 18:21:21 +00:00
cgd e33c6c47a2 set bb_flags to zero; who knows what they were (on disk) previously,
and SRM is finicky about what values it will allow.
1999-06-14 23:55:29 +00:00
cgd b6e1d0f85a set bb_flags to 0. Though not strictly necessary (because of an earlier
memset()), this is nice for source-level consistency.
1999-06-14 23:52:25 +00:00
thorpej 2c35c7bd03 Only declare block major numbers for devices which can be the root device. 1999-06-07 20:31:27 +00:00
thorpej d76e7b8c6d Don't pass a nam2blk around at all; just have setroot() and friends reference
dev_name2blk[] directly.  Addresses PR #7622 (ITOH Yasufumi), although
in a different way.
1999-06-07 20:16:08 +00:00
dante a775803f91 Add adv* entry under ISA devices 1999-06-06 17:57:23 +00:00
ross a1c15a355d In PMAP_ISACTIVE(), check curproc->p_vmspace before using it; this macro
is called early in startup, long before p_vmspace is set to &vmspace0.
1999-05-31 20:49:00 +00:00
ross 4313734913 After some banging and bashing, commit Jason's new ddb traceback code. 1999-05-31 20:42:15 +00:00
ross 604d4df11e Convert to traceback-friendly temporary labels. 1999-05-31 20:40:23 +00:00
ross ffc59b8bad Be less drastic when running strip(1) on DEBUG=-g kernels. 1999-05-31 18:54:49 +00:00
ross 6b3d12f44a Calculate what sp would have been and save it in otherwise-unused
FRAME_SP slot if entering ddb.
1999-05-31 06:41:39 +00:00
ross d3df2008f1 Fix generation of locore.s dependencies. 1999-05-31 02:46:17 +00:00
thorpej a2d06a4721 Generally update the comment above the vmapbuf() implementations. 1999-05-26 22:07:36 +00:00
thorpej 2580d306ab Change the vm_map's "entries_pageable" member to a r/o flags member, which
has PAGEABLE and INTRSAFE flags.  PAGEABLE now really means "pageable",
not "allocate vm_map_entry's from non-static pool", so update all map
creations to reflect that.  INTRSAFE maps are maps that are used in
interrupt context (e.g. kmem_map, mb_map), and thus use the static
map entry pool (XXX as does kernel_map, for now).  This will eventually
change now these maps are locked, as well.
1999-05-26 19:16:28 +00:00
cgd 5dd4815be9 uh, get the port name consistently correct (NetBSD/alpha, not NetBSD/Alpha) 1999-05-26 06:22:03 +00:00
thorpej 32de988d29 No longer need to pmap_emulate_reference() in cpu_fork() or cpu_swapin(),
since uvm_fault_wire() does the right thing with access_type.
1999-05-26 00:37:40 +00:00
thorpej 5832084eaf bus_dmamem_map() maps DMA safe memory, which is usually one or more
managed pages, into KVA space.  Since the pages are managed, we should
use pmap_enter(), not pmap_kenter_pa().

Also, when entering the mappings, enter with an access_type of
VM_PROT_READ | VM_PROT_WRITE.  We do this for a couple of reasons:

	(1) On systems that have H/W mod/ref attributes, the hardware
	    may not be able to track mod/ref done by a bus master.

	(2) On systems that have to do mod/ref emulation, this prevents
	    a mod/ref page fault from potentially happening while in an
	    interrupt context, which can be problematic.

This latter change is fairly important if we ever want to be able to
transfer DMA-safe memory pages to anonymous memory objects; we will need
to know that the pages are modified, or else data could be lost!

Note that while the pages are unowned (i.e. "just DMA-safe memory pages"),
they won't consume any swap resources, as the mappings are wired, and
the pages aren't on the active or inactive queues.
1999-05-25 23:14:03 +00:00
thorpej 986c3eca39 Fix some major locking protocol issues related to pmap_kremove() having
to deal with PG_PVLIST mappings; it no longer has to.  Add some DIAGNOSTIC
checks for inconsistent use of pmap_enter/pmap_kremove.
1999-05-25 20:32:29 +00:00
thorpej 5dec34efed The kernel pmap can be accessed (and locked!) while in an interrupt
context, so we must block interrupts which may cause memory allocation
before asserting the kernel pmap's lock.  Put this all in PMAP_LOCK()
and PMAP_UNLOCK() macros to make it easier.
1999-05-24 20:11:58 +00:00
thorpej 8c2d5c6fd3 Let the caller decide what to do if pmap_physpage_alloc() fails. 1999-05-24 01:35:54 +00:00
thorpej c1eb28c237 Make the list of all pmaps LRU-ordered, and update a comment regarding
locking.
1999-05-23 22:37:02 +00:00
thorpej 2102d5a17e Save ourselves some work in some pv list traversal functions; keep a pointer
to the PTE that maps the page in the pv_entry so that we don't have to
compute it from the pmap/va.
1999-05-23 17:49:07 +00:00
thorpej 5d48eed96a Implement pv_entry stealing for the case when a pool page cannot be
allocated for one.
1999-05-23 16:54:43 +00:00
thorpej 66324de865 Use the pool allocator for pv_entry structures. Set a (patchable/config'able)
low water mark on the pool, so we have some chance of crawling along in
extreme memory shortages.
1999-05-21 23:07:59 +00:00
thorpej a07ba7d1c1 Update the calls to allocsys(). 1999-05-21 00:09:09 +00:00
lukem e4a87aa1a9 * convert to using MI allocsys(). most ports were using an MD allocsys(),
although a couple still used the old pre-4.4-lite (?) mechanism.
* use format_bytes() to format the various printf()s that print out memory sizes
1999-05-20 08:21:42 +00:00
thorpej f98d358a1f Rework layer 2 protocol input routines. Instead of calling e.g. ether_input()
directly, call the function pointer (*if_input)(ifp, m).  The input routine
expects the packet header to be at the head of the packet, and will adjust
as necessary.  Privatize the layer 2 input and output routines, allowing
*_ifattach() to set them up as appropriate.
1999-05-18 23:52:51 +00:00
thorpej 9410ed17c1 Count new resident and wired pages in pmap_kenter*(). 1999-05-17 16:22:57 +00:00
thorpej 7e68ddd393 Update the comments above vmapbuf() and vunmapbuf() to reflect reality. 1999-05-16 22:24:16 +00:00
thorpej c10a926030 Allow the caller to specify a stack for the child process. If NULL,
the child inherits the stack pointer from the parent (traditional
behavior).  Like the signal stack, the stack area is secified as
a low address and a size; machine-dependent code accounts for stack
direction.

This is required for clone(2).
1999-05-13 21:58:32 +00:00
cgd e9da918f1b add some more bits, mostly stubs 1999-05-11 00:04:52 +00:00
cgd b0f5f854e4 have to take care to have a valid SP value in the unaligned fixup and
opdec (emulation) handlers.
1999-05-10 01:27:28 +00:00
cgd 9b9842a28b handle unaligned ldwu/stw instructions. While there, fix a bug in the
unaligned access handler and clean it up some.  Add support for emulating
the BWX instructions (ld{b,w}u, st{b,w}, sext{b,w}), which user software
can expect to be emulated.  (Thanks, Alpha Architecture!)
1999-05-09 19:43:58 +00:00
cgd 75f1157922 convert to DEC-style register names (but not yet done for
the internal PALcode instruction format structure).
1999-05-09 19:40:00 +00:00
cgd 79c181f2e2 convert to DEC-style register names. 1999-05-09 19:39:13 +00:00
cgd c8cf931f56 convert to DEC-style register names. the attempt to use function-based
register names was confusing, and could not _be_ correct in some cases.
Also, add a couple of 'generic' instruction formats which should be used
when decoding instructions before the specific format is known.
1999-05-09 19:38:59 +00:00
drochner fe310dd299 include <lib/libkern/libkern.h> for intoa()/inet_ntoa() 1999-05-07 16:19:27 +00:00
christos c596c324e3 Define __builtin_*() for lint 1999-05-03 16:30:31 +00:00
cgd 34fde29505 update comment re: COMPAT_OSF1 1999-04-30 23:34:08 +00:00
cgd f6b3b14ce3 enable COMPAT_OSF1 1999-04-30 23:33:41 +00:00
cgd ff48595e8b processes would have vm->vm_ssize screwed up when they faulted
data regions higher than USRSTACK.
1999-04-30 20:21:57 +00:00
cgd 1a3537df95 OSF/1 locore-ish bits. right now just sigcode 1999-04-30 05:58:10 +00:00
cgd 04f53f0b03 gross hack for SIGFPE under OSF/1, until ross makes SW completion go 1999-04-30 05:47:53 +00:00
ross c5a82dd848 * New MI man page for fp{set,get}{round,sticky,mask}(3).
* Implement fpgetsticky() for alpha.
* Direct fpsetsticky() and fp{get,set}mask() into alpha kernel via sysarch(2).
* Define new sysarch(2) stub for above and install and distribute sysarch.h
for alpha.  (The fpcr IS user mode r/w, but for reasons beyond the scope
of a commit message kernel calls are needed.) And much kernel Magick is
required before these do anything, but this way programs compiled under
1.4 will DTRT on future snapshots and releases.
1999-04-30 00:58:30 +00:00
ross 7288a55336 Use a different initial FPCR, mainly to suppress the ieee inexact trap. 1999-04-29 03:02:20 +00:00
ross 0847df9065 #ifdef _KERNEL, define the machine FPCR bits and a rounding mode macro 1999-04-29 02:55:50 +00:00
ross aa1e5724b9 WSEMUL_SUN -> WSEMUL_VT100 1999-04-29 01:28:40 +00:00
cgd 7b8e7abdd6 use osf1_exec_ecoff_hook() 1999-04-27 02:33:35 +00:00
cgd 6f2f5becb6 Alpha ECOFF object type definitions 1999-04-27 02:32:33 +00:00
ross f868468aaa Never used, and work-in-progress uses a different header. 1999-04-25 20:15:06 +00:00
simonb 5d8b1ef3e4 g/c REAL_CLISTS. 1999-04-25 02:56:26 +00:00
ross 28ef22871e Copy isdn4bsd cdevsw hooks from i386 conf.c. 1999-04-24 17:01:15 +00:00
cgd 575e9f8dfd support emulation-specified errno mapping tables 1999-04-23 05:43:02 +00:00
ross be000bc016 Revert 1/2 of previous change. INSECURE is still OK for alpha. 1999-04-20 21:43:03 +00:00
thorpej f7b0fea081 After reviewing the Green Book, BPT traps do indeed leave the PC pointing
to the instruction _after_ the `call_pal bpt' instruction.
1999-04-20 21:30:15 +00:00
thorpej 375b3fa699 Prototype alpha_debug(), and add some definitions for KGDB. 1999-04-20 21:23:56 +00:00
thorpej 62d09f4f93 Move the inclusion of <machine/bus.h> to within a _KERNEL section. 1999-04-20 21:23:09 +00:00
thorpej 869951571d - Clean up ddb_trap() somewhat, and handle exceptions that happen while we're
in DDB (e.g. if a bad pointer was dereferenced; the debugger will recover).
- Change a comment to indicate that we are on the debugger stack when we get
  to ddb_trap().
- Fix possible buglet in computation of the branch target in db_branch_taken().
1999-04-20 21:19:48 +00:00
thorpej 701edb8db8 - Revert previous, and do debugger entry if kernel BUGCHK or BPT traps
happen.  If the debugger doesn't handle the trap, arrange things so the
  debugger won't be called again before we panic.
- Before panic'ing, give the debugger a chance to field the trap, and
  if the debugger has handled things, allow the kernel to continue running,
  like the i386 port does.
1999-04-20 21:16:59 +00:00
thorpej a12dedc3ea - Revert previous change to XentIF(), now that we're going to enter the
debugger differently.
- Pull in debugger glue if DDB is configured.

And one unrelated change, while I was here: Don't create a fake trapframe
for main(); it hasn't been used by main() for quite some time, and panic
if main() returns, because that's not supposed to happen now.
1999-04-20 21:11:59 +00:00
thorpej 1b2eac076f Add a common debugger entry point, alpha_debug(), which performs various
tasks (i.e. switches to the debug stack) and then invokes the appropriate
debugger (DDB or eventually KGDB).
1999-04-20 21:09:49 +00:00
thorpej 9d78593b30 Back out previous; we're going to dispatch to the debugger differently. 1999-04-20 21:08:23 +00:00
ross 702267a538 options INSECURE, like i386
pckbc* -> pckbc0, like i386
1999-04-20 06:16:35 +00:00
thorpej f30375cda0 Dispatch to the debugger from the Intruction Fault trap vector directly,
rather than doing it from trap().  This so we can switch to a temporary
stack for the debugger (in a forthcoming commit).
1999-04-19 23:24:14 +00:00
thorpej d24359e5c8 Define BPT and BUGCHK Intruction Fault codes. 1999-04-19 23:22:19 +00:00
drochner 7694cc18a5 wsconsio.h is gone 1999-04-17 13:00:04 +00:00
thorpej 3b29e1e158 Clean up the Rawhide interrupt code some more:
- Actually display the kn300 irq, not the MCPCIA irq, in the interrupt
  string.  Also, don't bother displaying device/pin on strays, since
  it doesn't play will with shared interrupts that would happen due to
  a PCI-PCI bridge.
- Shave a few more cycles out of the interrupt dispatch routine.
1999-04-16 21:29:47 +00:00
ross 74de38f9a9 Really say goodbye to old wscons. 1999-04-16 07:24:13 +00:00
thorpej d38cab08e5 Add SGMAP stuff for Window 2, and rename Window 0's SGMAP stuff to indicate
its use.
1999-04-16 02:18:07 +00:00
thorpej 1ddebc8444 Fix a silly bug present since rev 1.1; the direct-mapped window is
supposed to be Window 1, but a cut'n'paste error made it stomp over
Window 0, thus breaking ISA DMA.  Fix this.  (Confirmed to work with
floppy driver.)

While I'm here, do something I've been meaning to do for a while: change
Window 1 from a 1G at 2G to a 2G at 2G direct-mapped window, and add
a Window 2 of 1G at 1G SGMAP-mapped.  Chain Window 2 to Window 1, and
use it as a fall-back for PCI DMA if the system has more than 2G of RAM.
1999-04-15 23:47:52 +00:00
thorpej 31c4e50d3a - Change the "savunit[]" and "savirqs[]" arrays to ints, rather than chars.
The access is more efficient this way (and this was done in the interrupt
  dispatch code, so some cycles are actually shaved), and gcc gets annoyed
  when chars are used as array subscripts.
- Adjust for the fixed Rawhide console initialization.
- When mapping a PCI interrupt, don't always map device 1 to IRQ 16.  Device
  1 is only the internal 53c810 on MID 5, and is an invalid device number
  on any other MID.
- Adjust for change mcpcia_config/mcpcia_softc structures.
- Nuke the kludgy linked list of mcpcia_softc structures.  Instead, just
  use savunit[v] to index into mcpcia_cd.cd_devs[] to find the MCPCIA
  which has the stray interrupt.
- Some other minor cosmetic cleanup.
1999-04-15 22:37:25 +00:00
thorpej 592cdd4bda Adjust for new register access arguments, and make one slight cosmetic
change.
1999-04-15 22:32:21 +00:00
thorpej f2368c1301 CHIP_EX_MALLOC_SAFE() now must pay attention in class. 1999-04-15 22:31:16 +00:00
thorpej 279f30928f Add support for a single statically-allocated MCPCIA configuration structure,
which holds state of the MCPCIA to which the console is attached.

- All MCPCIA info is now stored in the mcpcia_config structure; the
  mcpcia_softc only contains a struct device and a pointer to one of these.
- If attaching the console MCPCIA, use the static configuration, else allocate
  the substructure.
- Rename mcpcia_init() to mcpcia_init0(), and make it take a "mallocsafe"
  argument.
- Implement a new mcpcia_init(), which looks for the MCPCIA which has the
  EISA bridge attached.  Initialize this MCPCIA as the console MCPCIA (the
  console on the Rawhide is only allowed on this MCPCIA; firmware rule).
- Eliminate the kludgy linked listed of mcpcia_softcs.  Just use mcpcia_cd
  to find all configured instances.

Separate bug fix: Actually clear the MCPCIA error mask after probing for
PCI (and ISA) devices, don't just clear it twice in mcpcia_init0().

Some other slight cleanup.
1999-04-15 22:27:40 +00:00
thorpej 9af474a62c - Add a comment explaining why we probe for MCPCIAs in the shuffled
MID order.
- Export the shuffled MID order; other files now need it.
- Don't derive the GID from the unit number of the mcbus.  A user could
  render his kernel non-bootable by using a different unit number in the
  kernel config file.  We (and the hardware) only support one MCBUS, so
  simply use instance 0.  Note that this will need to be adjusted if there
  are even any multiple-MCBUS systems.
1999-04-15 22:19:52 +00:00
thorpej 9a4a0a3c81 DEC_KN300 no longer uses PROM console. 1999-04-15 22:15:38 +00:00
thorpej 1287bb8599 Always call the platform's cons_init routine (note, it may not do anything,
but it's a very handy place to put console-related debugging code in,
even if we're still using the PROM console).
1999-04-15 22:15:05 +00:00
thorpej f3314e93e8 Add an empty dec_kn8ae_cons_init(). 1999-04-15 22:13:41 +00:00
thorpej 02aa04c89e Massive cleanup of the AlphaServer 4100 console initialization code.
Instead of using the PROM console until autoconfiguration is complete (at
which time we called dec_kn300_cons_init() directly!), make this work like
basically all of the other systems which have PCI attached consoles.  That
is, initialize the PCI chipset which holds the console early, and perform
console initialization at the correct time.

This should make both PCI and ISA display consoles with PC keyboards work
(i.e. the deskside workstation version of the Rawhide).
1999-04-15 22:11:57 +00:00
thorpej 0df038ccb1 - Use the CTB_TURBOSLOT_* macros from rpb.h.
- Don't assume bus/slot == ISA display.  Instead, test for TYPE_ISA.
- Some cosmetic (whitespace, mostly) cleanup.
1999-04-15 22:06:47 +00:00
thorpej f03f59a5b8 Back out the change to swap Lev1map on MP systems that use the PROM console.
Basically, we have to completely nuke the _PMAP_USES_PROM_CONSOLE code from
orbit before MP is going to properly work.
1999-04-15 21:21:25 +00:00
thorpej e8e6061642 Slight braino in previous. 1999-04-14 23:55:35 +00:00
thorpej 25a0e78bf3 Add macros to decode the `turboslot' member of the Console Terminal Block. 1999-04-14 23:28:31 +00:00
pk b13e5d1469 Quote "AS IS" as in the majority of Carnegy Mellon notices. 1999-04-12 20:38:17 +00:00
chs f455dd6596 add a `flags' argument to uvm_pagealloc_strat().
define a flag UVM_PGA_USERESERVE to allow non-kernel object
allocations to use pages from the reserve.
use the new flag for allocations in pmap modules.
1999-04-11 04:04:04 +00:00
cgd 050a43f655 start on a glorified system-examination console program. 1999-04-11 03:38:51 +00:00
cgd 7f28b25d23 add support for 'standalone programs', like kernels but not the kernel. 1999-04-11 03:36:21 +00:00
cgd 13fcfc2aeb only conditionally set BINDIR to /usr/mdec 1999-04-11 02:51:21 +00:00
cgd 6d0fadbd19 be more consistent about use of 'cputype'. e.g. it's in a header, don't
bother 'externing' it everywhere!
1999-04-10 01:21:36 +00:00
cgd f262e02775 constify bootprog_*, move their definitions into common.h, and have
the generated vers.c include common.h to check against definitions.
1999-04-09 17:50:15 +00:00
thorpej e468d4c8d9 Fix a bug in TBI optimization uncovered by the "access_type" changes. Thanks
to Bernd Ernesti for providing crash dumps to Charles Hannum who tracked
it down.
1999-04-09 00:38:10 +00:00
cgd 587e1ba75e save 4.3 bytes on the date string! 4 == day of week plus space,
.3 == a space on days of the month 1-9.
1999-04-07 06:30:34 +00:00
pk c40eb1cd97 Fix a pasto in copyright text which has been procreating like rabbits.. 1999-04-06 20:09:18 +00:00
pk 23c3e1a4a1 Fix garbled words in copyright statement. 1999-04-06 19:26:32 +00:00
cgd ff54a19cef build/install this binary as bootxx.old, so that users won't get the
idea that they should be using it.  (no point in renaming the whole
directory since it should be dead soon enough.)
1999-04-06 18:43:18 +00:00
cgd 1fddfb80a5 consistency in boot message printouts 1999-04-05 22:03:56 +00:00
cgd 54b5d8e275 always -D NETBSD_VERS 1999-04-05 22:03:48 +00:00
cgd ba10f0ca12 now that boot.c does the bootstrap name with a -D, the newvers scripts
are all the same, so eliminate the redundancy.  also, use mrg's
"Version:" trick to find the version rather than using the RCS ID.
(I must have been having a ... bad day.)  Also, bump boot and netboot
versions for all the changes that have been happening lately.
1999-04-05 06:56:23 +00:00
cgd d4e15df542 don't get the name from newvers, get it from a bootstrap-specific -D
in the Makefile.  also, print the banner before we do things that
might cause us to print error messages.
1999-04-05 06:42:14 +00:00
cgd d430800515 GC all support except contiguous block mode. the new installboot
takes care of it all better.
1999-04-05 05:48:12 +00:00
cgd f8eb5f4b98 trim off unnecessary bits 1999-04-05 05:07:04 +00:00
cgd b774b1837d fix disk write size check 1999-04-05 05:01:44 +00:00
cgd ebca60d395 come a little closer to compiling with warnings turned on 1999-04-05 04:39:42 +00:00
cgd ae79d52642 i was fooling myself to believe that these would build with all warnings 1999-04-05 04:38:27 +00:00
cgd f8fcd4d2be -I goes in CPPFLAGS, not CFLAGS 1999-04-05 03:42:50 +00:00
cgd bf165cb8fc install bootxx_cd9660 and bootxx_ffs 1999-04-05 03:37:28 +00:00
cgd 6603c44a84 reorganize Makefiles so that warning flags aren't accidentally omitted,
and so that all programs and boot blocks are built.
1999-04-05 03:35:24 +00:00
cgd a50cfa8576 add a new from-scratch (actually, from mkbootimage, but that's close
enough) implementation of installboot(8) which installs the new file
system specific boot blocks.
1999-04-05 03:07:37 +00:00
cgd 180d6f8b19 Moved to sys/arch/alpha/stand/installboot.old/installboot.c,v 1999-04-05 03:02:07 +00:00
cgd b76e58f09c Moved from sys/arch/alpha/stand/installboot/installboot.c,v 1999-04-05 03:02:06 +00:00
cgd 80eba52649 Moved to sys/arch/alpha/stand/installboot.old/extern.h,v 1999-04-05 03:02:05 +00:00
cgd acb2102a7c Moved from sys/arch/alpha/stand/installboot/extern.h,v 1999-04-05 03:02:04 +00:00
cgd 5549a89389 Moved to sys/arch/alpha/stand/installboot.old/cd9660.c,v 1999-04-05 03:02:03 +00:00
cgd 2e3c73533f Moved from sys/arch/alpha/stand/installboot/cd9660.c,v 1999-04-05 03:02:02 +00:00
cgd 84d60a245d Moved to sys/arch/alpha/stand/installboot.old/Makefile,v 1999-04-05 03:02:01 +00:00
cgd 5863b697a0 Moved from sys/arch/alpha/stand/installboot/Makefile,v 1999-04-05 03:02:00 +00:00
cgd 6ab8a12347 clean up, use disklabel.h boot block checksum macro, exit with
EXIT_SUCCESS and EXIT_FAILURE rather than 0 and 1.
1999-04-05 02:56:33 +00:00
cgd eb5c725722 clean up for compiler warning flags 1999-04-05 02:55:38 +00:00
cgd 7a2f0695dd clean up slightly, do a little #define trick to make checksumming
the boot block a little easier/more 'clean', and provide a macro to
checksum the boot block.
1999-04-05 02:45:47 +00:00
cgd 4cbbc316f2 add ustarboot, a ustar-capable unified bootstrap intended to be
mkbootimage'd and slapped on the front of a tar file.
1999-04-02 09:13:27 +00:00
cgd e16ad7a3e4 this should have been gc'd with the disk->blkdev changes 1999-04-02 08:50:45 +00:00
cgd b676fcfeca add mkbootimage, a program to make a bootable image (i.e. prepend a boot
block, pad to a block boundary) from a console program (i.e. a boot
block, firmware upgrade executable, etc.)
1999-04-02 08:40:23 +00:00
ross 8969ff9e1e Fix typo in FILE_FORMAT_CPPFLAGS. 1999-04-02 07:55:06 +00:00
cgd bfa2f241f4 use 'struct boot_block' from disklabel.h 1999-04-02 07:34:49 +00:00
cgd 5d472dba93 define 'struct boot_block' which is the alpha (SRM) boot block 1999-04-02 07:32:33 +00:00
cgd bfd7402544 use booted_dev_fd() and booted_dev_close() 1999-04-02 03:50:47 +00:00
cgd bacc33029f build the filesystem-specific primaries 1999-04-02 03:45:12 +00:00
cgd 60fb889b92 makefiles for some filesystem-using primary boot blocks. much as
i hate to say it, these still contain bugs that can't easily be
addressed yet.
1999-04-02 03:38:20 +00:00
cgd 6db093b04a puts -> putstr 1999-04-02 03:35:54 +00:00
cgd 3b5c2ed522 a makefile template for filesystem-using primary boot blocks 1999-04-02 03:34:09 +00:00
cgd 47acf988d7 add a template for a filesystem-using primary boot block, just like
'boot' is a template for secondary and unified boot blocks.
1999-04-02 03:24:53 +00:00
cgd 1fe5f90d85 add a common putstr() function which just puts()'s the chars in
its argument string.  implement a broken version of panic() in terms
of it, for cases where we need panic() but can't affort printf().
1999-04-02 03:23:49 +00:00
cgd e1b1b6b39b update for booted_dev and disk->blkdev changes. 1999-04-02 03:20:00 +00:00
cgd f0bdf50326 abstract the prom device open/close into a separate module, which
provides the correct functions for primary, secondary, and unified
boot blocks.  actually behave correctly (e.g. expect correct arguments,
perform correct operations) depending on which you are.  also
some minor cleanup.
1999-04-02 03:19:08 +00:00
cgd 39ea91226c move the boot/disk.* code to common/blkdev.*, and gut it. The previous
guts were actually functionally equivalent to the current guts, but were
much larger, filled with bugs, and indeed poked around at the disklabel
when some of those bugs prevented them from ever using the disklabel!
1999-04-02 03:17:28 +00:00
cgd 7c4cd2bb56 unrevert the changes made last night, now that 'installboot' has
had a few bugs fixed that let the problem slip in, and since bootxx's
Makefile now goes out of its way to satisfy installboot's undocumented
and totally unreasonable assumptions about the bootxx file it's operating
on.  No point in fixing the assumptions, because sooner rather than later
this incarnation of installboot is going to die.
1999-04-02 03:11:57 +00:00
cgd 701c007366 correctly calculate the space left for block addresses, and avoid
assuming that there's always going to be space for the whole boot
block info struct.  (the assumption would cause a malloc'd region
to be overrun, if it proved false.)
1999-04-02 02:47:45 +00:00
ross 9c323a2d8b Revert recent changes, which either don't work, or can't be built
successfully by ordinary mortals.
1999-04-01 11:08:39 +00:00
thorpej 967b8c433c Don't call configure() from cpu_startup(). 1999-04-01 00:17:45 +00:00
cgd bd44d9c286 as pointed out by simonb, since we've moved to ELF __main() calls
aren't emittid anymore.
1999-03-31 16:12:51 +00:00
mycroft 83cb600015 Enable rnd. 1999-03-31 14:29:33 +00:00
cgd 801906b363 GC; unused 1999-03-31 06:37:13 +00:00
cgd be6a1d529a separate defns for primary and unified boot blocks 1999-03-31 06:28:41 +00:00
cgd 77a9cb81ff implement NO_GETCHAR, to remove getchar(), and NO_PUTCHAR_HALT to remove
the check in putchar() for character input (specifically control-c, which
causes a halt).
1999-03-31 03:34:21 +00:00
cgd c5fa912232 no point in passing &ret to test_getchar(); nobody cares! also, no
point in doing the check-for-abort functionality twice in putchar()
(once with a call to test_getchar(), once open coded).
1999-03-31 03:22:57 +00:00
cgd 98f67b8238 In putchar(), don't open-code two calls to the prom puts routine. Instead,
call a helper function (putonechar()).  Savings: 64 bytes.  Cha-ching!
1999-03-31 03:10:00 +00:00
cgd 3665d82d1a GC cpu_number() and turn alpha_pal_imb() into inline assembler. 1999-03-31 03:04:21 +00:00
cgd 51a85dabbb rename the C main() function to main_(). this avoids gcc's implicit
call to __main(), and therefore saves the size of the call and the
  size of a stub implementation of __main().
in the primary boot block, don't bother saving/restoring the argument
  passed in from the caller.  There is no such argument (that we care
  about, at least) to the primary.  (for secondary, it's the firmware
  FD being used.)
1999-03-31 03:03:01 +00:00
cgd 4a209e30f8 Compile with -Os (optimize for size).
Clean up the "Region 1" related definitions, and define load addresses,
  max load size, and max total size for as many boot block types as we can.
  (types = unified, primary, secondary).  We can't always define all
  values for all boot blocks, though.
Make CPP flags selection less gross.
Use objcopy rather than headersize (yay, evil gets a stake to the heart!).
Use a little shell script to verify that the sizes of the boot blocks are OK.
Do not compile too much more of libsa than we actually have to.
1999-03-31 02:52:11 +00:00
mycroft d05df6042f Add mpu at isapnp, currently commented out. 1999-03-29 06:16:34 +00:00
mycroft e3c8daf920 Panic if access_type has bits not in prot. 1999-03-29 05:31:24 +00:00
drochner 31a77e61b3 Leave out display console related bits if wscons is not compiled in.
Should fix link error reported by Kevin <kev@drule.org>.
1999-03-28 13:48:40 +00:00
drochner a17279574e alpha uses the mi wscons; remove the old bits 1999-03-27 17:36:30 +00:00
ross 5bc91073ce Bug fix for the bug fix. Be sure to prom_close() in bootxx and boot, but not
in netboot, and not in diskclose(), but after trying all kernelnames[].
1999-03-27 09:01:27 +00:00
thorpej b69d0d9e89 Pay attention to "access_type" in pmap_enter(). 1999-03-27 02:48:32 +00:00
mycroft 9c6b797796 Changes for modified pmap_enter() API:
* Map the message buffer with access_type = VM_PROT_READ|VM_PROT_WRITE `just
  because'.
* Map the file system buffers with access_type = VM_PROT_READ|VM_PROT_WRITE to
  avoid possible problems with pagemove().
* Do not use VM_PROT_EXEC with either of the above.
* Map pages for /dev/mem with access_type = prot.  Also, DO NOT use
  pmap_kenter() for this, as we DO NOT want to lose modification information.
* Map pages in dumpsys() with VM_PROT_READ.
* Map pages in m68k mappedcopyin()/mappedcopyout() and writeback() with
  access_type = prot.
* For now, bus_dma*(), pmap_map(), vmapbuf(), and similar functions still use
  access_type = 0.  This should probably be revisited.
1999-03-26 23:41:25 +00:00
ross 6ee909b24f Fix bug found by Bernd "Veego" Ernesti: close the console disk channel. 1999-03-26 20:53:12 +00:00
thorpej 567cda0537 Don't bother allocating mb_map on these systems. Mbuf clusters are
allocated from a pool, and the MIPS and Alpha use KSEG to map pool
pages.  So, mb_map wasn't actually being used.  Saves around 4MB of
kernel virtual address space in a typical configuration.

Garbage-collect the related VM_MBUF_SIZE constant.
1999-03-26 00:15:04 +00:00
mrg ca5f9685bb clean up kernel/config files files for machVM lossage. 1999-03-24 06:06:09 +00:00
mrg d2397ac5f7 completely remove Mach VM support. all that is left is the all the
header files as UVM still uses (most of) these.
1999-03-24 05:50:49 +00:00
drochner 76fa1751fe Add a macro to check for sufficient pointer alignment in bus.h context,
"BUS_SPACE_ALIGNED_POINTER()".
Equal to the param.h "ALIGNED_POINTER()" normally, but obeys additional
requirements of the bus_space_xxx_n() macros. (BUS_SPACE_DEBUG)
1999-03-23 21:29:03 +00:00
ross be177a7fd4 PCI: +bha
+en
	+ex
	+fxp
	+le
	+pcscp
MII:	+exphy
EISA:	+ahb
	+uha
1999-03-22 09:19:57 +00:00
ross 60fe60deaa Enable fuword(9), fuiword(9). 1999-03-22 09:17:11 +00:00
mycroft df7eadf2d6 More PnP/audio goo. Need an Alpha joystick driver. B-) 1999-03-22 07:55:14 +00:00
mycroft 8e621ce2ee Add MIDI and sequencer devices. They seem to work, even. 1999-03-22 07:52:56 +00:00
thorpej a77ccfe460 Garbage-collect. 1999-03-20 01:40:25 +00:00
cgd 10af862bf7 move isa/isa_machdep.h to include/isa_machdep.h. (can't do it via
repository copy because alpha already had an include/isa_machdep.h in
the attic.)
1999-03-19 05:04:42 +00:00
cgd 8e85aac1ce move pci/pci_machdep.h to include/pci_machdep.h. (can't do it via
repository copy because alpha already had an include/pci_machdep.h in
the attic.)
1999-03-19 03:40:46 +00:00
cgd 08eb14f874 Moved to arch/alpha/include/isapnp_machdep.h,v 1999-03-19 03:14:06 +00:00
cgd 0d0fd78b4e Moved from arch/alpha/isa/isapnp_machdep.h,v 1999-03-19 03:14:05 +00:00
cgd e962a59308 move tc/tc_machdep.h to include/tc_machdep.h. (can't do it via
repository copy because alpha already had an include/tc_machdep.h in
the attic.)
1999-03-19 03:12:31 +00:00
cgd 88590a9cd1 move eisa/eisa_machdep.h to include/eisa_machdep.h. (can't do it via
repository copy because alpha already had an include/eisa_machdep.h in
the attic.)
1999-03-19 02:59:49 +00:00
chs ab7269f62a if uvm_fault() fails with KERN_RESOURCE_SHORTAGE, send a SIGKILL
and print a message about it.  this will be used to recover from
out-of-swap conditions.
1999-03-18 04:56:01 +00:00
drochner 04df246f03 identify ST_DEC_6600 (EV6) - as unsupported :-( 1999-03-17 19:00:01 +00:00
sommerfe bc533621ed defopt MINIROOTSIZE 1999-03-17 18:59:21 +00:00
drochner 597bc445b1 add ST_DEC_6600, clean up some comments 1999-03-17 18:58:51 +00:00
ross 1ae12eef5a g/c proto 1999-03-17 18:28:11 +00:00
ross f10b320472 XXX rm ioasicprint() & ioasic_submatch() because of <dev/tc/ioasic_subr.c> XXX 1999-03-17 17:50:06 +00:00
nisimura 1990f5b094 - Make compilable with 32bit long integer system. 1999-03-15 05:28:07 +00:00