Commit Graph

33279 Commits

Author SHA1 Message Date
thorpej
354bc052d9 Use the register prefix in the ELF case in _PROF_PROLOGUE. 2002-10-02 00:23:29 +00:00
bjh21
92c36acca6 Report the hardware version in case anyone's interested (I was). 2002-10-01 22:52:22 +00:00
bjh21
cef90c2dc7 Constify ide_versions. 2002-10-01 22:38:56 +00:00
bjh21
b828507087 constify various string tables. 2002-10-01 22:33:10 +00:00
bjh21
7e08b73e47 Use CFATTACH_DECL(). 2002-10-01 22:23:52 +00:00
bjh21
8b39ec99a9 Add a shutdown hook which puts the Hydra back into its post-reset state,
largely to ensure that we don't leave the slave CPUs running when we go
back to RISC OS.
2002-10-01 22:18:00 +00:00
bjh21
b585e1d57a Remove a spurious ']' from the CFATTACH_DECL invokation. 2002-10-01 22:11:14 +00:00
thorpej
a942508291 Use CFATTACH_DECL(). 2002-10-01 21:36:00 +00:00
thorpej
217c799fe7 Use CFATTACH_DECL(). 2002-10-01 21:24:43 +00:00
reinoud
4d64d47a1f Remove old unused cruft 2002-10-01 21:16:15 +00:00
scw
c4efa0ddba Change IPL_SOFTNET to 3. 2002-10-01 21:07:31 +00:00
scw
0e3aa70138 Count all soft interrupt events per level, rather than just
the first one per call to softintr_dispatch().
2002-10-01 21:04:59 +00:00
scw
92c80efadc Fix a soft interrupt botch which prevented softints being dispatched
on exit from regular h/w interrupts.
2002-10-01 20:41:52 +00:00
provos
d94186ee91 more trailing \r cleanup; pointed out by wiz 2002-10-01 20:41:22 +00:00
fvdl
6b7332c86b The local APIC registers are defined for 32bit access only, so don't
use movzbl on them.
2002-10-01 19:36:51 +00:00
fvdl
bb7657559b Don't use pool(9) for TLB shootdown queue elements. Recent pool
changes made the usage here clash with the pool code, and the
pool code is overkill for this case (fixed number of elements,
always NOWAIT).

Use a simple static freelist allocator instead (pv_list-like).
2002-10-01 19:36:06 +00:00
thorpej
3b6eef8108 Use CFATTACH_DECL(). 2002-10-01 19:24:47 +00:00
thorpej
ad2758f375 Use CFATTACH_DECL(). 2002-10-01 19:18:57 +00:00
matt
be5fafec51 ANSI'fy the inline functions. 2002-10-01 19:08:51 +00:00
thorpej
c1077f220d Use CFATTACH_DECL(). 2002-10-01 18:57:48 +00:00
thorpej
34c3944c08 Use CFATTACH_DECL(). 2002-10-01 18:40:06 +00:00
scw
2ce95435ad One of the last pieces of the SH5 pmap jigsaw; detect and deal with
operand cache synonyms and paradoxes for shared mappings:

 - Writable mappings are cache-inhibited if the underlying physical
   page is mapped at two or more *different* VAs.

   This means that read-only mappings at different VAs are still
   cacheable. While this could lead to operand cache synonyms, it
   won't cause data loss. At worst, we'd have the same read-only
   data in several cache-lines.

 - If a new cache-inhibited mapping is added for a page which has
   existing cacheable mappings, all the existing mappings must be
   made cache-inhibited.

 - Conversely, if a new cacheable mapping is added for a page which
   has existing cache-inhibited mappings, the new mapping must also
   be made cache-ibhibited.

 - When a mapping is removed, see if we can upgrade any of the
   underlying physical page's remaining mappings to cacheable.

TODO: Deal with operand cache aliases (if necessary).
2002-10-01 15:01:48 +00:00
fvdl
1aca7be70a Add cpu0 at mainbus0 2002-10-01 13:29:03 +00:00
fvdl
26ab868e68 Merge Bill Sommerfeld's i386 MP branch. This code has some known
caveats, but works quite well in a lot of MP cases, and all
UP cases that I have tested. Parts of this will hopefully be
reworked in the not-too-distant future.
2002-10-01 12:56:36 +00:00
aymeric
f835a6ae04 . treat a stream of framing errors as a single break
. trigger ddb upon receiving a break if we are the console
2002-10-01 12:17:09 +00:00
reinoud
7ba11c51fd Fix some small range checks and why weren't we writing the palette in when
we're asked to set the VIDC in a given state! :-D ahum... these are fixed
now. The top palette entry wasn't set.
2002-10-01 12:09:49 +00:00
bsh
10bb2aff03 add board type for Intel PXA2[15]0 and Samsung S3C2800 based boards. 2002-10-01 11:02:27 +00:00
abs
ef14d0e624 Enable PPP_* options for ppp 2002-10-01 09:52:10 +00:00
abs
cd05e3d894 Enable ppp 2002-10-01 09:37:11 +00:00
scw
9d94c9899c Check if an interrupt is already claimed _after_ locating the
right interrupt handle.
2002-10-01 07:58:54 +00:00
scw
1e4acb4d20 Another temporary fix until I write a bootloader: run the kernel
through dbsym(8).
2002-10-01 07:56:45 +00:00
scw
5a512e6285 Flesh out bus_dmamap_sync(). 2002-10-01 07:55:17 +00:00
scw
02301c13c5 Add a #define for the SH5's cacheline size. 2002-10-01 07:50:36 +00:00
scw
a5ea619bef In pmap_extract() deal with KVAs in KSEG0 (which can be passed by the
bus_dma(9) code) instead of panicing.
2002-10-01 07:49:46 +00:00
thorpej
82af7d52d4 Use CFATTACH_DECL(). 2002-10-01 05:32:42 +00:00
thorpej
fa165ee3fd Use CFATTACH_DECL(). 2002-10-01 05:18:59 +00:00
thorpej
b7e3052e30 Use CFATTACH_DECL(). 2002-10-01 05:01:37 +00:00
thorpej
6bc733245c Missed one use of CFATTACH_DECL(). 2002-10-01 04:59:10 +00:00
thorpej
a84e1f7f8f Use CFATTACH_DECL(). 2002-10-01 04:43:01 +00:00
thorpej
f59e5352f2 Use CFATTACH_DECL(). 2002-10-01 04:21:32 +00:00
thorpej
d1c37db940 Use CFATTACH_DECL(). 2002-10-01 03:10:12 +00:00
thorpej
c4cbfcf060 Use CFATTACH_DECL(). 2002-10-01 02:54:11 +00:00
thorpej
d652bdcafe Use CFATTACH_DECL(). 2002-10-01 02:49:56 +00:00
thorpej
4ed249cc6f Remove unecessary extern decl of ade_ca. 2002-10-01 01:40:32 +00:00
bjh21
b59e2e1320 Beginnings of support for the Simtec Hydra multiprocessor board.
So far, the Hydra is detected and initialised, and each slave CPU is
spun up briefly to check that it works.
2002-09-30 23:22:05 +00:00
thorpej
1a6b241b1d Add a config_init() function to initialize the config data structures.
Normally this is called by configure(), but some ports (amiga, atari,
x68k) need to do this early because of how they find the console.
2002-09-30 17:36:31 +00:00
abs
ae80876d99 #include "kbd.h" for NKBD and only override cn_isconsole to check cn_hw if set.
Fixes compilation without kbd.
2002-09-30 09:43:13 +00:00
wiz
b1c7ac0e6d "definitions" has lots of 'i's, but that's not reason to leave one out. 2002-09-29 23:23:56 +00:00
martin
f0d8fa7f7d Fix typo: set _asi depending on requested endianess, not _sasi (the streaming
accessors take care of this themselfs). Fixes 32-bit kernels on PCI machines.

Problem found by Takeshi Nakayama in PR port-sparc64/18459, fix from
Mathew Green.
2002-09-29 20:56:40 +00:00
thorpej
50d060cc52 Record stack growth, done inline to avoid another function call on
every user page fault.

XXX Should make uvm_grow() an inline.
2002-09-29 16:49:45 +00:00
wiz
683554e2fd Fix strangeness introduced in v1.4:
-       panic("panic(\"Mem error interrupt\");");
+       panic("Mem error interrupt");
2002-09-29 15:11:14 +00:00
bsh
5880df1648 avoid warning when NAPM==0 2002-09-29 13:16:22 +00:00
martin
7c1bc900ef Indentation nit. 2002-09-29 09:07:45 +00:00
isaki
2a8a7954f2 const-ify ia_name. It makes intio.c compilable. 2002-09-29 05:17:04 +00:00
chs
50403f5ce2 remove some vestigial FPU and cache code that's not need on ultrasparcs.
misc tidiness.
2002-09-29 04:12:02 +00:00
chs
70d1ddac15 avoid reading %pil in splx() if !SPLDEBUG.
misc tidiness.
2002-09-29 04:06:20 +00:00
chs
bbbc558e52 enable DHCP netbooting support. 2002-09-29 04:03:37 +00:00
martin
f525cb862b Fix broken timeval comparison.
Reported by Takeshi Nakayama in PR sparc64/18453, but fixed a bit
differently.
2002-09-28 20:56:05 +00:00
martin
7965adf3bb Set the PCI latency timer for bus master devices.
Slightly different to the patch suggested by Takeshi Nakayama in PR 18451
(idea from FreeBSD).

Additional input from Jason Thorpe: do not hard code the bus frequency,
instead get it from OpenFirmware.
2002-09-28 20:23:53 +00:00
dbj
3aef72ec67 add options APPLE_UFS
This enables Apple UFS support added by PR #17345
2002-09-28 20:22:33 +00:00
dbj
82e9fcf2f3 add options APPLE_UFS, from PR #17345
add uninorth pci controller, from PR #18427
2002-09-28 20:22:32 +00:00
dbj
6bf135b907 add options APPLE_UFS
This enables Apple UFS support added by PR #17345
2002-09-28 20:22:32 +00:00
martin
cf4564afb0 Add entries for various USB character devices.
From Takeshi Nakayama in PR 18450.
2002-09-28 19:46:46 +00:00
scw
7a61cafd1e After the kernel is built, run it through objcopy to change the LMA
of the loadable sections to correspond to the physical address of
RAM in the Cayman. This is so sh5gdb uploads the image to the correct
place. (Should've done this ages ago instead of manually running a
script...)

This can be removed when I get a native bootloader written.
2002-09-28 18:35:38 +00:00
chris
cae76053ba Thought I'd checked this in a while back, cats does not need byte_swap.h.
That was me misunderstanding the build system.  (the Makefile change slipped
in as version 1.15)
2002-09-28 15:56:33 +00:00
chris
d0879e89ef cats and netwinder can share a common footbridge_intr.h file, so install and
share a common file.
2002-09-28 15:53:03 +00:00
thorpej
8f6cdec6af Make _C_LABEL() pay attention to __NO_LEADING_UNDERSCORES__. 2002-09-28 15:50:37 +00:00
chris
4c5586750b Enable the use of a seperate statclock.
Currently statclock runs at 64hz, maybe it should be faster or slower, I did
try it being the same as hz, but that just made it look like we spent 10% of
time handling interrupts, rather than the 3% that this gives.

Also fix the IPL_LEVELS for netwinder.
2002-09-28 15:44:29 +00:00
scw
d26f394149 Add audio(4). 2002-09-28 13:13:23 +00:00
scw
a7be636d26 Rename the SH5 PCI attachment to "sh5pci" instead of abusing the "pcibus"
config definition. The new config world order is more picky about such things.
2002-09-28 13:08:22 +00:00
scw
3e955d2331 PCI is pretty much done. 2002-09-28 13:06:49 +00:00
scw
94b4198ec9 Bump the scif console priority to CN_REMOTE for now. 2002-09-28 13:03:22 +00:00
scw
f5138efc2e Fix things so the com(4) probe in consinit() works. 2002-09-28 12:50:27 +00:00
scw
5868dbcbf6 Make this work following the gehenna_devsw merge. 2002-09-28 12:49:17 +00:00
scw
1c9cfe70b6 Const'ify the cfattach structure. 2002-09-28 11:18:01 +00:00
scw
251ba05b3f Support for the SH5 on-chip PCI bridge, and support for its deployment
in the Cayman board.
2002-09-28 11:16:36 +00:00
scw
171b08b4b9 Set the new process' FPSCR.DN bit so that denormalised FP numbers are
quietly flushed to zero before they're used.

While this isn't perfect, it seems to mimic the behaviour on i386 at least.
2002-09-28 11:11:01 +00:00
scw
3d776f64cf These hackish changes have been sitting around for a while. Commit
them so they don't get lost. This driver will be overhauled later
on anyway to make it shareable between sh[3-5].
2002-09-28 11:08:13 +00:00
scw
02787a17bc Wrap some expensive sanity checks in "ifdef PORTMASTER". 2002-09-28 11:04:26 +00:00
scw
4d809d551d The FP status register is 32-bits wide, so don't use register_t in
the various state frames.
2002-09-28 11:03:08 +00:00
scw
58931592a1 Honour BUS_DMA_COHERENT flag in bus_dmamem_map(), and g/c some dead code.
XXX: Still need to flesh out bus_dmamap_sync().
2002-09-28 10:57:44 +00:00
scw
05e55efada - Add pmap_page_is_cacheable() to allow the bus_dma code to query the
cacheable attribute of a mapping.
- Honour PMAP_NC in pmap_enter() using NOCACHE, instead of DEVICE.
- No longer need to re-fetch the ptel in pmap_pa_unmap_kva() as
  syncing the cache no longer risks causing a TLB miss.
2002-09-28 10:53:57 +00:00
scw
902d684338 - Add BUS_SPACE_MAP_PREFETCHABLE
- Re-define bus_size_t and bus_addr_t to be u_int32_t.
  While this may well lose for future silicon with NEFFBITS > 32, the
  original u_long was a waste on current designs (especially for _LP64).
2002-09-28 10:49:10 +00:00
scw
e168d3e25c SH5's on-chip PCI bridge is attached as "pcibus", not "pchb". 2002-09-28 10:44:40 +00:00
scw
9c10dff0fb Print the intevt code in hex. 2002-09-28 10:43:36 +00:00
scw
e578ac6fc3 Slight tweak to the linker emulation name now that I'm using ld(1)
from binutils-current.

Bump compiler optimisation to -O1.
2002-09-28 10:42:54 +00:00
chris
c3354b9779 Interrupt 19 does actually do something:
19	PMCSR written by host
(all to do with power management)
2002-09-28 10:34:02 +00:00
chris
85fe6200b5 We have 9 IPL levels, not 8. 2002-09-28 10:23:26 +00:00
ragge
780401f935 Add common routines to talk with the CPMBX, from Hugh Graham (hugh@openbsd.org)
This makes halt/reboot work correctly on a bunch of machines.
2002-09-28 09:53:07 +00:00
thorpej
543bc9a286 The native compiler defines __NO_LEADING_UNDERSCORES__, so key off
that to determine if __LEADING_UNDERSCORE is necessary.
2002-09-28 02:27:03 +00:00
dbj
818445e944 recognize FS_APPLEUFS partitions
part of PR #17345
2002-09-28 01:17:09 +00:00
jdolecek
7c22835649 add stubs for bus_space_read_stream_4()/bus_space_write_stream_4(),
defined similarily to other bus_space_*_4() as panic()
2002-09-27 21:08:34 +00:00
thorpej
f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
thorpej
9a711d6985 Declare all cfattach structures const. 2002-09-27 20:29:02 +00:00
jdolecek
1fdcf94f68 no more autoconf.h 2002-09-27 20:10:32 +00:00
jdolecek
2405f564a2 constify, should fix warning for mainbus.c 2002-09-27 20:06:44 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +00:00
martin
2c7b00b18f Add SYMTAB_SPACE option to make DDB actually useable. 2002-09-27 10:08:19 +00:00
augustss
99680e22b9 Add pci device. 2002-09-27 09:48:38 +00:00
augustss
e3a6ac4328 Install temporary page fault handler while doing PCI config read and
write since these can generate MCHK for missing devices.
2002-09-27 09:46:01 +00:00
thorpej
6c88de3b53 Introduce a new routine, config_match(), which invokes the
cfattach->ca_match function in behalf of the caller.  Use it
rather than invoking cfattach->ca_match directly.
2002-09-27 03:17:40 +00:00
thorpej
d1ad2ac4f2 Rather than referencing the cfdriver directly in the cfdata entries,
instead use a string naming the driver.  The cfdriver is then looked
up in a list which is built at run-time.
2002-09-27 02:24:06 +00:00
thorpej
bb34bc8caa When in a match routine, the cfdata we're passed always references
our own cfdriver, so don't bother comparing the names, since they
will always match.
2002-09-27 02:16:28 +00:00
wrstuden
470e4ff3ac Remove vestiges of the syncicache() call originally in powerpc/ofwboot
before rev 1.4. This change makes OF 2.4 machines actually boot, and
it works fine on my OF 2.01 machine. No reports of failures on other
archs.

I expect this change is fine as the original code flushed the just-loaded
ofwboot out of the cache, conditionalized on FIRMWORKSBUGS. In rev.
1.4, the code got in-lined, and changed to actually flush low memory
out of the cache. Since machines kept booting, I expect the firmware
was really flushing the binary out of the cache, so we're fine.
2002-09-27 00:32:17 +00:00
thorpej
eaaed308cf Compare driver name, don't check against zstty_cd. 2002-09-26 20:51:44 +00:00
thorpej
c75e60ed75 Get the pointer to the driver name early, rather than constantly
deferencing the cfdriver pointer.
2002-09-26 20:45:42 +00:00
thorpej
6c87786450 G/c external reference to ibus_cd. 2002-09-26 20:36:51 +00:00
thorpej
958db4d3b7 No need to check that parent's cfdriver is ioasic_cd. 2002-09-26 20:36:14 +00:00
thorpej
98f612ef11 No need to check that that parent's cfdriver is ibus_cd. 2002-09-26 20:33:25 +00:00
thorpej
7f33c64040 Get the pointer to the driver name early, rather than constantly
deferencing the cfdriver pointer.
2002-09-26 20:30:50 +00:00
thorpej
c12a2960bb In sysfpgamatch(), the expression "cf->cf_driver == &sysfpga_cd" is
always true, so just return the constant 1.
2002-09-26 20:25:41 +00:00
thorpej
3280b330bb Get the pointer to the driver name early, rather than constantly
deferencing the cfdriver pointer.
2002-09-26 20:18:24 +00:00
thorpej
88b0700853 Const poison. 2002-09-26 20:02:47 +00:00
thorpej
89dd8c023c Get the pointer to the driver name early, rather than always dereferencing
the cfdriver pointer.
2002-09-26 19:04:59 +00:00
thorpej
274c086b22 Remove <sys/map.h> 2002-09-26 18:54:30 +00:00
martin
8b125f54cb Remove include of <sys/map.h>, since it's gone now (and wasn't used
here anyway).
2002-09-26 08:49:34 +00:00
grant
8dca22997c ep0 at isa? -> ep* (ala GENERIC), so ep instances during install are
consistent with GENERIC.
2002-09-26 07:30:17 +00:00
matt
b6b04cb00c In mftb(), make sure we say we are clobbering cr0. 2002-09-26 01:13:32 +00:00
thorpej
71404bb533 Don't include <sys/map.h>. 2002-09-25 22:21:01 +00:00
thorpej
dc5c7db69d Don't use rmaps; use extent maps. 2002-09-25 21:58:39 +00:00
thorpej
d3f6afbf48 Don't use rmaps; use extent maps instead. 2002-09-25 21:25:39 +00:00
thorpej
233188a90d Set extio_ex_malloc_safe at the end of cpu_startup(). 2002-09-25 20:05:26 +00:00
thorpej
da13a0afc7 Replace resource map usage with extent maps. 2002-09-25 19:30:22 +00:00
cgd
e4cb5327e8 For ISA intrs 0-15, use string of the form "isa intr NN", rather than
just "isa intr".  Having vmstat -i show multiple "isa intr" lines w/
different counts is less than desirable.  Reviewed by thorpej.
2002-09-25 17:05:26 +00:00
martti
81e8d78cd4 Add one space between "#option" and "<tab>IPFILTER_DEFAULT_BLOCK" 2002-09-25 11:49:48 +00:00
pooka
d623a21172 iwic@pci 2002-09-24 22:07:46 +00:00
uwe
b2d1377685 Drop vga at pci that has no chance of working anyway. Add commented out igsfb at pci.
Add wscons pseudo devices and some more wscons options.
2002-09-24 18:27:55 +00:00
thorpej
787cbc6921 Fix some const warnings. 2002-09-24 18:14:35 +00:00
thorpej
c4058929fe Fix some const warnings. 2002-09-24 17:18:45 +00:00
provos
5eeb6241c7 enable systrace. approved by itojun and perry 2002-09-24 14:47:56 +00:00
ad
002a769a08 Remove the TCWSCONS config now that zstty can do flow control on IOASIC
machines.
2002-09-24 13:30:39 +00:00
shin
74f9891db4 'options USERCONF' is already in TX3912. 2002-09-24 11:16:37 +00:00
jdolecek
7fe050c591 add options QUOTA; pointed out by Mattias Karlsson
also move options NFSSERVER after options SOFTDEP
2002-09-24 09:34:39 +00:00
ad
5baa2bf49a Zero fill the newly allocated zs_chanstate. 2002-09-24 07:06:08 +00:00
ad
176dcfaf3d On pmax, drop into DDB on break. 2002-09-24 06:19:09 +00:00
gmcgarry
627c1b14f8 Back-out previous. 2002-09-23 21:35:42 +00:00
isaki
6300240677 It was a sample config file, so there is no need to maintain anymore.
Requested by minoura@netbsd.org
2002-09-23 07:09:54 +00:00
simonb
4e3613273b Remove breaks after returns, unreachable returns and returns after
returns(!).
2002-09-23 05:51:10 +00:00
scw
9393fbe941 Belated commit of code to calculate the delay constant used by delay(). 2002-09-22 20:57:23 +00:00
scw
f9c02a8bd0 An initial NetBSD/sh5 TODO list. 2002-09-22 20:54:33 +00:00
scw
d942ee4018 - Setup the cpu-specific cache manipulation function pointers.
- Add sh5_nmi_clear().
2002-09-22 20:52:12 +00:00
scw
f1780fd0ae Add sysfpga_nmi_clear(). This resets the NMI one-shot in Cayman's
System FPGA chip.
2002-09-22 20:51:09 +00:00
scw
f9a4918dc0 INT1 Select is at offset 0x72, not 0x71. 2002-09-22 20:49:27 +00:00
scw
84b2ccee63 Add sh5_nmi_clear(), a board-specific hook for clearing the NMI one-shot. 2002-09-22 20:48:09 +00:00
scw
aab9041eea In validate_kipt(), cacheable TLB entries are now legal. 2002-09-22 20:46:32 +00:00
scw
badd3d5d65 Performance tweak to the copy_page/zero_page asm code.
Allocate/Prefetch one cache-line ahead of the one we're about to deal with.

This reduces the chances of the cpu stalling while waiting for the cache
to flush a dirty line in order to satisfy the Allocate/Prefetch request.
2002-09-22 20:45:31 +00:00
scw
5a529aa332 - Add a /e option to db_stack_trace_print() which dumps the saved
registers in any trap/interrupt exception frame found.

- Slight tweak to more accurately detect the correct call-site when
  looking for a function's prologue.
2002-09-22 20:31:18 +00:00
simonb
63096043b3 Use "#define\t" instead of "#define ". 2002-09-22 08:30:56 +00:00
chs
f01058c887 rename the existing pmap_remove_all() here to pmap_page_remove()
(ala the x86 pmap) to avoid conflicting with the new pmap interface
function of the same name.
2002-09-22 07:56:57 +00:00
chs
c081614ea2 it really helps to get the stub right before cutting + pasting it 27 times.
alas, I did not.  doh.
2002-09-22 07:53:39 +00:00
chs
f54a093e81 many improvements:
- use struct vm_page_md for attaching pv entries to struct vm_page
 - change pseg_set()'s return value to indicate whether the spare page
   was used as an L2 or L3 PTP.
 - use a pool for pv entries instead of malloc().
 - put PTPs on a list attached to the pmap so we can free them
   more efficiently (by just walking the list) in pmap_destroy().
 - use the new pmap_remove_all() interface to avoid flushing the cache and TLB
   for each pmap_remove() that's done as we are tearing down an address space.
 - in pmap_enter(), handle replacing an existing mapping more efficiently
   than just calling pmap_remove() on it.  also, skip flushing the
   TSB and TLB if there was no previous mapping, since there can't be
   anything we need to flush.  also, preload the TSB if we're pre-setting
   the mod/ref bits.
 - allocate hardware contexts like the MIPS pmap:
   allocate them all sequentially without reuse, then once we run out
   just invalidate all user TLB entries and flush the entire L1 dcache.
 - fix pmap_extract() for the case where the va is not page-aligned and
   nothing is mapped there.
 - fix calculation of TSB size.  it was comparing physmem (which is
   in units of pages) to constants that only make sense if they are
   in units of bytes.
 - avoid sleeping in pmap_enter(), instead let the caller do it.
 - use pmap_kenter_pa() instead of pmap_enter() where appropriate.
 - remove code to handle impossible cases in various functions.
 - tweak asm code to pipeline a little better.
 - remove many unnecessary spls and membars.
 - lots of code cleanup.
 - no doubt other stuff that I've forgotten.

the result of all this is that a fork+exit microbenchmark is 34% faster
and a fork+exec+exit microbenchmark is 28% faster.
2002-09-22 07:19:43 +00:00
chs
55e1f79335 add pmap_remove_all() hook (empty on most platforms so far). 2002-09-22 07:17:08 +00:00
gmcgarry
adc9fb5f5b MD component of the new cpu_switch() interface. Introduces nextrunqueue(),
cpu_idle() and new cpu_switch() to replace the old cpu_switch()
which did the lot.  Runs leaner without overly blocking interrupts.

Includes cleanup of the RAS code to make use of callee-saved registers.

Benchmarks on DX4 @ 100MHz reveal a slight performance improvement
but probably not statistically signficant.  More TBD to verify this.

Changes passed a pounding on Athlon @ 1GHz too.
2002-09-22 06:51:10 +00:00
simonb
eb4524608c Only need to define __HAVE_MD_RUNQUEUE once here... 2002-09-22 05:56:32 +00:00
gmcgarry
5a06fee353 Add UVM_PAGE_IDLE_ZERO. 2002-09-22 05:48:46 +00:00
gmcgarry
45d41256f3 Update for cpu_switch() prototype change. No functional change. 2002-09-22 05:40:35 +00:00
gmcgarry
7fe2ef36b9 Update for cpu_switch() prototype changes. No functional change. 2002-09-22 05:39:24 +00:00
mycroft
f40651a8e2 Remove redundant declaration of ether_ntoa() so this builds again. 2002-09-22 05:38:30 +00:00
gmcgarry
dca80f08fd Add __HAVE_MD_RUNQUEUE flag for MD code to override MI run queue primitives. 2002-09-22 04:11:32 +00:00
dbj
53ce9bee47 explicitly set booted_partition to 0, rather than
rely on default value.  It should actually be extracted
from the bootpath instead, but that involves translating
from apple partition map entries to netbsd disklabel entries.
2002-09-22 03:21:44 +00:00
dbj
ca0ad7da63 undo an accidentally committed change that was
included in move of bootpath alias expansion
2002-09-22 03:10:14 +00:00
dbj
9343810eed move bootpath alias expansion from initppc() into canonicalize_bootpath() 2002-09-22 03:04:31 +00:00
manu
80ee637534 - Introduce a e_fault field in struct proc to provide emulation specific
memory fault handler. IRIX uses irix_vm_fault, and all other emulation
use NULL, which means to use uvm_fault.

- While we are there, explicitely set to NULL the uninitialized fields in
struct emul: e_fault and e_sysctl on most ports

- e_fault is used by the trap handler, for now only on mips. In order to avoid
intrusive modifications in UVM, the function pointed by e_fault does not
has exactly the same protoype as uvm_fault:
int uvm_fault __P((struct vm_map *, vaddr_t, vm_fault_t, vm_prot_t));
int e_fault __P((struct proc *, vaddr_t, vm_fault_t, vm_prot_t));

- In IRIX share groups, all the VM space is shared, except one page.
This bounds us to have different VM spaces and synchronize modifications
to the VM space accross share group members. We need an IRIX specific hook
to the page fault handler in order to propagate VM space modifications
caused by page faults.
2002-09-21 21:14:54 +00:00
mycroft
b1ce597546 Ignore bus exception errors here.
XXX I'm not sure exactly why this is necessary...
2002-09-21 19:49:47 +00:00
mycroft
f822116056 FFS would help... 2002-09-21 16:51:54 +00:00
mycroft
48132121ca Fix the device name for ptc so ptys actually work again. 2002-09-21 16:38:50 +00:00
mycroft
80eaffef1b Force synchronous negotiation off even if the target initiates it, by setting
minsync to 0.  It may be possible to make this work, but I don't know how.
2002-09-21 16:18:30 +00:00
mycroft
e4b5a96a09 Enable SCSI target devices, and explicitly disable wide negotiation for esp. 2002-09-21 16:17:46 +00:00
perry
87a452620b change a tab to a space so commenting elansc isn't as ugly 2002-09-21 15:24:29 +00:00
petrov
e2107815a0 Use /options instead of /chosen to find out where console is.
(found by Rafal Boni).
2002-09-21 09:29:33 +00:00
chs
eaa116beda tidy a bit. 2002-09-21 01:18:40 +00:00
chs
481bfd199b don't install a couple headers that are of no use in userland. 2002-09-21 01:17:44 +00:00
chs
1135d1326e remove protos for non-existant functions. 2002-09-21 01:16:59 +00:00
nathanw
2cab03d64a In the fault handler, record growth of the stack, so that core dumps
actually contain the entire stack.
2002-09-21 00:29:04 +00:00
kanaoka
c9aa0785fe Add support for "Intel 82801DB LPC".
kern/18348: From Andreas Wrede <andreas@planix.com>.
2002-09-20 14:52:39 +00:00
martti
3b553bac54 Added (commented out) IPFILTER_DEFAULT_BLOCK. 2002-09-20 10:39:48 +00:00
wrstuden
4f7aaad83c Re-add own alloc(). Recent issues with kernels randomly dying on boot
are related to using libsa's alloc(). Problems go away with this alloc().

The problem is that the libsa alloc() assumes we can grab memory off
the end of the program. That assumption doesn't work for us. It's
much better to use the alloc() we were using as it calls OF_claim()
to get memory.
2002-09-20 03:20:24 +00:00
ragge
5e6a28c57c Adopt to boot block change; check for LUN on SCSI disks also. 2002-09-19 17:41:58 +00:00
ragge
a5beda58fa Remove the (today) unneccessary boot unit number conversions for rom-booted
disks. This allows for booting from different LUNs on SCSI disks.
2002-09-19 17:41:21 +00:00
manu
e2da53c091 More definitions to get apmd building (but it is not functionnal yet) 2002-09-19 16:52:00 +00:00
scw
e5b9e76f43 Start the search for a function's prologue by using the current PC - 4.
This ensures we start from the actual call site, not the return address.
The latter may actually be in the next consecutive function if the current
function has the __noreturn__ attribute and the alignment is Just Right.
2002-09-19 15:47:33 +00:00
scw
c87975f571 - Tweak the output format slightly to show the frame address first.
- When dealing with an exception frame, we might as well print some
   useful details while we're passing through.
2002-09-19 13:04:02 +00:00
wiz
ef50e53177 Fix typo in comment. 2002-09-19 12:00:11 +00:00
scw
87048d2661 Don't check the callers expected stack base against the saved frame
pointer, in case the caller grew its stack dynamically.

Also beef up the checks to catch cases where the call stack passes
through the exception handling code in locore. In this case, the
frame pointer and program counter are in the trapframe/intrframe.
2002-09-19 11:25:13 +00:00
ragge
b3abfee038 Do not include <sys/clist.h>, it's not used in NetBSD at all. 2002-09-19 10:37:59 +00:00
scw
910c7664b3 Finally add full stack trace support by grovelling function prologues to
determine the call stack. (I was sick of doing this manually)
2002-09-19 10:05:25 +00:00
scw
47e178df57 Move opcode_t typedef into db_machdep.h. 2002-09-19 10:03:11 +00:00
grant
1bc4761baa remove USERCONF, as it is already in GENERIC32. 2002-09-19 08:10:44 +00:00
grant
8ec07beba4 remove USERCONF and PIPE_SOCKETPAIR, as these are already in GENERIC32. 2002-09-19 07:13:58 +00:00
manu
7f8a47f4a1 - missing bits of apm
- KNF
2002-09-18 19:54:47 +00:00
ad
4202c1f405 - The VSXXX is an 8-bit device, not 7.
- Obey ls->dz_line in dzputc(), since dzms uses it.
- Remove an odd "circular" reference that doesn't appear to be useful.
2002-09-18 18:36:52 +00:00
abs
65aee44fd2 We are so tight for memory here we cannot afford USERCONF. 2002-09-18 11:29:42 +00:00
lukem
3ea2e21f82 enable USERCONF by default; it's small and extremely useful to have available. 2002-09-18 02:43:53 +00:00
thorpej
cf0393ac12 Add support for restartable atomic sequences. Rearragne the tail
of cpu_switch() slightly so we can reenable interrupts a little
earlier.
2002-09-18 02:35:08 +00:00
lukem
789c0e4589 these files are managed elsewhere, and are just bitrotting here; remove them. 2002-09-18 02:34:53 +00:00
lukem
6ef0105b93 regen for: enable USERCONF 2002-09-18 02:20:50 +00:00
lukem
b31e856d42 enable USERCONF 2002-09-18 02:19:19 +00:00
lukem
9ec54c7baa regen for: enable USERCONF 2002-09-18 02:16:01 +00:00
lukem
b07e6c87c0 enable USERCONF 2002-09-18 02:15:09 +00:00
chs
c76a265365 add the options for all the FirePower models.
add the "openfirm" device, since we're got openfirmware.
2002-09-18 01:55:02 +00:00