Commit Graph

4617 Commits

Author SHA1 Message Date
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
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
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
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
enami ef2b361222 Fix to work with objdir. 2000-09-05 05:05:16 +00:00
jdolecek 3fd457414e constify first arg to parseopts() 2000-08-31 07:21:46 +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
jhawk 2ea44b1dd4 install dosboot.com in the release(7) hierarchy. 2000-08-23 21:00:46 +00:00
thorpej 58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +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
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 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
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
thorpej b0dc085df7 Move the TSS selector out of the PCB and put it into mdproc. We
need to access this when we have the proclist locked for reading,
and thus cannot store it in the PCB (which may be swapped out).

As part of this, call pmap_activate() from cpu_switch() to switch
to the new address space, and refresh the PCB's copy of the LDT
selector from the pmap structure (see above paragraph).  We need
to do this for MP support anyhow.

Fixes a "panic: spinlock_switchcheck: CPU 0 has 1 spin locks" via
gdt_compact() reported by Nathan Williams.
2000-08-16 04:44:35 +00:00
ross 37262919a9 Edit adv0 comment to include "SCSI"; now 'grep -v -i SCSI GENERIC' works. 2000-08-15 20:09:26 +00:00
fvdl 534b45c853 Move identifycpu to a place where it gets called earlier in the process,
so that special setup functions needed for some CPUs will be run before
some things (like UVM) are inited.

Add vm_page_zero_enable = FALSE to the cyrix 6x86 case, as page zeroing
while idle causes problems.
2000-08-15 18:21:44 +00:00
christos cabafb6c60 cast to u_long before casting to u_int to appease lint. 2000-08-13 22:45:01 +00:00
augustss de0b1dd11d Go to splhigh() before calling power hooks and maintain this level
while suspended.  When waking up the power hooks are again called at
splhigh() and then the level is lowered.
This prevents interrupts from reaching a device before the power hook
has reinitialized it.
2000-08-13 22:26:27 +00:00
jdolecek 47b371580e make this usable as INSTALL-like kernel suitable for boot floppy
enable supported stuff, add also SCSI devices (only sd* and cd* uncommented)
2000-08-13 21:55:33 +00:00
jdolecek 40dc315f3b #if 0 bogus mca_intr_establish() added possibly mistakely
by cgd in rev. 1.2
2000-08-13 10:38:38 +00:00
itojun 85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
thorpej e207174eb0 Add functions to read EISA configuration data for MEM, IRQ, DMA, and IO.
XXX Just error stubs on the i386 right now -- someone needs to write
XXX EISA BIOS code for i386.
2000-08-11 00:43:18 +00:00
soda be6120309f add commented out PCIBIOS_INTR_GUESS 2000-08-10 21:33:17 +00:00
soda 834cceb3ae move PCIBIOS_INTR_FIXUP_FORCE, PCIBIOS_INTR_GUESS and PCIBIOS_IRQS_HINT
to opt_pcibios.h.
2000-08-10 21:21:02 +00:00
soda b63f6b5096 Add another option PCIBIOS_INTR_GUESS for no compatible ICU found case.
Under this option, if only one IRQ is available for the link,
we assumes that the IRQ is already connected, and configure
PCI Interrupt Configuration Register accordingly.
This is what Linux pcmcia-cs-3.1.19 does by default.

This fixes unconfigured pccbb interrupt problem of
Sharp Mebius MN-5500. It's interrupt router is ITExpress Inc. IT8330G.
(http://www.ite.com.tw/, vendor=0x1283, product=0x8330)
Problem reporeted by Kitagawa <sk@kiu.ac.jp> in
http://www.kaynet.or.jp/~kay/ml/netbsd-pcmcia/msg/msg00608.html
2000-08-10 21:18:27 +00:00
tv 8df356a34f %r, %n -> db_format_radix() 2000-08-09 20:09:25 +00:00
tv 29550fc608 kprintf -> printf format attribute 2000-08-09 16:34:25 +00:00
tshiozak 51a53de0d5 Preparation for the future introduction of multibyte locale.
- MB_LEN_MAX is increased to 32.
 - To ensure binary compatibility for old executables
   under multibyte locale, versioned setlocale is added.
 - __mb_len_cur definision is added in setlocale.c
   and enable it in stdlib.h .
   It is also important for multibyte locale stuffs,
   but I just forgot.
2000-08-08 22:31:13 +00:00
augustss 6ee3189cb6 Alphabetize. 2000-08-04 11:51:37 +00:00
enami bdd9be2dc3 Don't print newline here since it is supposed that more message is printed. 2000-08-04 04:52:37 +00:00
nathanw b3e0af3d32 Fix a problem uncovered by rev 1.5 of pcibios.c:
Avoid interpreting the upper 32 bits of 64-bit BARs as a 32-bit BAR.
Otherwise, the code would assume that the value 0 was incorrect and either:
(a) [on bus 0] "fix up" the address to some nonzero value, thus placing
    the decoded address range outside of 32-bit address space, or
(b) [elsewhere] completely disable the device.

The fact that this behaviour depends on the bus number of the device is
already XXX'd.

XXX: This will need revisiting if and when we ever want to handle a PCI bus
XXX: with more than 32 bits of address space on an i386.

The onboard Adaptec 7890 on my Dell Precision Workstation 410 works again.
2000-08-03 20:10:45 +00:00
soda 0cbe0d600f fix oversight introduced in previous my commmitment (revision 1.4),
pointed out by Michael Shalayeff <mickey@openbsd.org>.
2000-08-02 02:54:41 +00:00
augustss 37ae63598b Add midi at clcs. 2000-08-01 08:16:54 +00:00
uch ae581ace81 reserve AGP space to avoid resource conflict. 2000-08-01 05:23:59 +00:00
briggs 3f1e17a340 Define bus_space_*_stream_N functions as their non-stream counterparts. 2000-07-31 22:43:46 +00:00
simonb 1483e8c25e Fix "suggest parentheses around assignment ..." warning in normally
unused code segment.
2000-07-30 06:11:38 +00:00
jdolecek e25636b5da g/c RB_DFLTROOT
I've tried hard to find also various usage() messages and remove the
appropriate flag from there as well, hopefully all occurences are covered.
2000-07-29 20:06:27 +00:00
mrg cc41b6af8f remove COMPAT_AOUT option. 2000-07-27 14:34:06 +00:00
soda a86a9c61c4 better message from John Hawkinson <jhawk@MIT.EDU> 2000-07-22 17:43:36 +00:00
soda 36b85ab9c7 hexadecimal constant in "options" value doesn't need quotation. 2000-07-18 11:41:32 +00:00
soda 87b0dd6e6a make PCIBIOS_IRQS_HINT patchable. 2000-07-18 11:37:56 +00:00
soda 52e3dc4e56 use I386_PCI_INTERRUPT_LINE_NO_CONNECTION instead of magic number. 2000-07-18 11:24:09 +00:00
soda 663add1b20 use PCI_INTERRUPT_PIN_MAX and I386_PCI_INTERRUPT_LINE_NO_CONNECTION,
instead of magic number
2000-07-18 11:23:28 +00:00
soda 81858d7c01 - Use PCIBIOS_PRINTV().
- Use PCI_INTERRUPT_PIN_MAX and I386_PCI_INTERRUPT_LINE_NO_CONNECTION
   instead of magic number.

the Following changes are
{Modified with,Approved by} UCHIYAMA Yasushi <uch@netbsd.org>:

 - Do not touch a PIRQ router, if the PIRQ is already routed
   by the BIOS, or no appropriate IRQ is found for the PIRQ.
   The latter prevents a panic on the machine of Frank van der Linden.

 - Do not modify a PCI Interrupt Configuration register,
   if it is already set by the BIOS, even if it is inconsistent
   with the PCI IRQ routing table provided by the BIOS.
   (The PCI Interrupt Configuration register seems to be more reliable
    than the PCI IRQ routing table.)
   This is needed to prevent a incorrect header_fixup() caused
   by the incorrect PIR table on a Panasonic Let's Note AL-N2T516J5.

   Provide "options PCIBIOS_INTR_FIXUP_FORCE" to retain
   previous behavior, i.e. believe the PCI IRQ routing table
   and ignore the PCI Interrupt Configuration register.
   Although I'm not sure this is really needed.

 - Do not modify a PCI Interrupt Configuration register,
   if appropriate IRQ is not found for the link.

 - Move a pciintr_icu_getclink() call and a pciintr_icu_get_intr()
   call from pciintr_link_fixup() to pciintr_link_alloc(),
   and only allocate pciintr_link_map if those calls succeeded.
   This reduces number of calls of pciintr_icu_getclink(),
   and also avoid necessity to validate a clink value in
   ICU's {get,set}_{intr,trigger}() functions.
   The sanity checks are not removed yet, though.

 - Fix uninitialized usage of variable `bitmap' on stage 3
   of pciintr_link_fixup().

 - Remove a member variable `old_irq' from struct pciintr_link_map.

 - Always use 0x%02x for printf format of canonical link value.

 - Use DIAGNOSTIC instead of PCIINTR_DEBUG for really weird situation.
2000-07-18 11:22:36 +00:00
soda b01ab37ef6 use PCIBIOS_PRINTV() defined in pcibios.h, instead of homegrown DPRINTF(). 2000-07-18 11:18:04 +00:00
soda 698b2b1173 - define pcibiosverbose here, instead of each C source.
- use PIR_DEVFUNC_{DEVICE,FUNCTION}.
2000-07-18 11:15:25 +00:00
soda 0e8343265b - define PCIBIOS_PRINTV() as pcibiosverbose printf() here,
instead of DPRINTF() in each C source.
 - define PIR_DEVFUNC_{DEVICE,FUNCTION}
2000-07-18 11:14:06 +00:00
soda 2f9cb9c128 add several debug printf which can be enabled by PIIX_DEBUG. 2000-07-18 11:10:22 +00:00
soda 9a7e0d82ac - deal with FIRESTAR_PIR_SELECT_PIRQ case on set/get_trigger(),
to prevent a panic on a Panasonic Let's Note AL-N2T516J5.
 - add several debug printf which can be enabled by FIRESTARDEBUG.
 by UCHIYAMA Yasushi <uch@netbsd.org>

 - use I386_PCI_INTERRUPT_LINE_NO_CONNECTION instead of magic number.
2000-07-18 11:07:20 +00:00
soda b8a6bd6e11 add "#define I386_PCI_INTERRUPT_LINE_NO_CONNECTION 0xff" 2000-07-18 11:00:35 +00:00
minoura 71ccd6200d Add (but commented) COMPAT_PECOFF entry. 2000-07-17 14:37:53 +00:00
christos 480203ba75 change intptr_t and uintptr_t to long and unsigned long respectively. This
is a noop on 32 bit machines, but it makes lint quiet and it is more correct.
2000-07-16 02:18:11 +00:00
thorpej c0708e9ff1 Clean up bios_reg a little, and add support for accessing
the byte variants of the registers (e.g. %ah, %al, etc.).
2000-07-12 22:58:12 +00:00
jdolecek c8f528ad5e switch to MI newvers_stand.sh version info generator 2000-07-12 21:05:35 +00:00
jdolecek f6cf4e5f93 move struct sys_config from mca_machdep.c to mca_machdep.h
fix copyright (overlooked in original commit)
use bitmask_snprintf() instead of printf("...%b") (though that part is commented
	out anyway ATM)
2000-07-09 10:35:11 +00:00
mycroft 9ad7bd8d37 Increase the example DDB_HISTORY_SIZE. 2000-07-09 01:36:06 +00:00
mycroft 33090b8b89 Enable DDB history. 2000-07-09 01:35:52 +00:00
mycroft 4087b4e418 Do the interrupt fixup for all busses, not just bus 0.
This is necessary on some machines with multiple onboard PCI busses.
2000-07-09 00:42:47 +00:00
mycroft 0ef0f52d06 Turn on DDB history by default. 2000-07-09 00:41:24 +00:00
sommerfeld eb1939c85f printf format paranoia 2000-07-08 17:09:02 +00:00
sommerfeld 26b0bc1c2e printf format safety 2000-07-08 17:08:35 +00:00
jhawk d770f87fef Pullover rev 1.320 - rev 1.358 of GENERIC to IOPENER, and merge conflicts.
Add GENERIC rev in "from:" line to aid in future merging.
Major highlights include SOFTDEP, and, err, 4 blank lines.
2000-07-08 03:24:36 +00:00
jhawk 71f3f1c282 Pullup rev 1.233 - rev 1.358 of GENERIC to CARDBUS, and merge conflicts.
Add GENERIC rev in "from:" line to aid future merging.
Major highlights include COMPAT_14, COMPAT_AOUT, NTFS, OVERLAY,
SOFTDEP, INET6, IPSEC, pcic iosiz changes, cz, dpt, rtk (cardbus!),
awi, cnw, ray, wi, xi, joy, and gif.
2000-07-08 02:47:02 +00:00
jhawk c4f2dfb0b9 Enable "old partition ID" compatibility by default, just as in biosboot. 2000-07-06 03:39:53 +00:00
sommerfeld 502fc00210 Comment out EON ISO-over-ip tunneling pseudo-driver, and document as
broken/fragile.  Unlikely to be of much use, and confuses new users
when their system crashes when they, or their dhclient stumble over
it.  See kern/10500, kern/8994 for the gory details.
2000-07-05 04:07:22 +00:00
augustss 01d5ad3ab6 White-space improvements. 2000-07-03 01:17:35 +00:00
sommerfeld 56cc62bbec Return the full width of the counter here. 2000-07-02 21:05:14 +00:00
cgd a5c13f9ad4 Kwality control:
* put #includes of opt headers and headers to get protos used by
  net/netisr_dispatch.h in net/netisr.h (if !defined(_LOCORE)) (rather than
  in netisr_dispatch.h itself, and potentially nowhere, respectively).
* require netisr.h to be included before netisr_dispatch.h.
* minor additional cleanup of both netisr.h and netisr_dispatch.h.
* clean up uses to remove now-unnecessary header file inclusions, and
  local prototypes of the fns.
* convert netisr dispatch implementations which didn't use
  netisr_dispatch.h (pc532) to use it.
2000-07-02 04:40:33 +00:00
itojun d738f90fd7 raise MSIZE from 128 to 256.
- for sizeof(void *) == 8 arch, this is mandatory.  MHLEN is too small
  already (less than 80) and there are chances for unwanted packet loss due
  to m_pullup restriction.
- for other cases, the change should avoid allocating clusters in most cases
  (even when you have IPv4 IPsec tunnel, or IPv6 with moderate amount of
  extension header)

portmasters: if your arch chokes with the change (high memory usage or
whatever), please backout the change for your arch.
2000-06-30 17:55:11 +00:00
itojun d76ae83df8 add PULLDOWN_TEST for all the platforms.
XXX should be moved to somewhere else when stabilized
2000-06-30 17:10:15 +00:00
mrg b564830503 remove include of <vm/vm.h>. <vm/vm.h> -> <uvm/uvm_extern.h> 2000-06-29 08:44:03 +00:00
kleink bb2ed0f487 G/c _BSD_INTPTR_T_ and _BSD_UINTPTR_T_. 2000-06-27 05:53:22 +00:00
kleink 47b5c5e3b1 Resolve some formatting nits; add __intptr_t and __uintptr_t. 2000-06-27 04:58:51 +00:00
kleink e695f72a2e Add <machine/int_types.h>, which provides namespace-pure definitions
of exact-width integer types.
2000-06-26 15:42:16 +00:00
mrg 2f159a1bac remove/move more mach vm header files:
<vm/pglist.h> -> <uvm/uvm_pglist.h>
	<vm/vm_inherit.h> -> <uvm/uvm_inherit.h>
	<vm/vm_kern.h> -> into <uvm/uvm_extern.h>
	<vm/vm_object.h> -> nothing
	<vm/vm_pager.h> -> into <uvm/uvm_pager.h>

also includes a bunch of <vm/vm_page.h> include removals (due to redudancy
with <vm/vm.h>), and a scattering of other similar headers.
2000-06-26 14:20:25 +00:00
simonb 889c658b5b Change the kernel mmap interface so that the offset to map is an
"off_t" and the return value is a "paddr_t" to allow mappings
at offsets past 2^31 bytes.  Somewhat inspired by FreeBSD, which
only changed the offset to a "vm_offset_t".

Includes updates for the i386, pc532 and sh3 mmmmap from Jason Thorpe.
2000-06-26 04:55:19 +00:00
thorpej 7a0a177352 Put `sysmon' in the `lm' slot, and free the `viaenv' slot. 2000-06-24 00:38:21 +00:00
thorpej f82e306928 Add a clearing-house pseudo-device for system monitoring devices
such as the LM78 and VT82C686A (and eventually ACPI).  Multiple
sensor devices can be hooked registered with `sysmon', and eventually
sysmon will also handle hardware (and software) watchdog timers.

Convert the `lm' and `viaenv' drivers to the new interface.
2000-06-24 00:37:19 +00:00
kleink 133ea38323 Add a WEAK_ALIAS() macro. 2000-06-23 12:18:45 +00:00
fvdl 1ee7d22c0b Remove prefix construction for softdeps. Add SOFTDEP option to GENERIC. 2000-06-22 20:27:49 +00:00
matt 15511d1dcc Move COFF_LDPGSZ to ibcs2_machdep.h. Fix nmagic loader to deal with
subpage mappings.
2000-06-21 05:45:15 +00:00
cyber 099ead3895 increase size to allow for dhclient 2000-06-18 23:53:32 +00:00
castor 512723f616 Fix integer overflow in calculation of VM_MAX_KERNEL_BUF. 2000-06-18 18:29:04 +00:00
hubertf 80365fb67d Change comment: APM_POWER_PRINT _does_ print stats on the console. 2000-06-16 10:31:03 +00:00
thorpej 9424f6fe54 Update with reality. 2000-06-16 03:49:12 +00:00
thorpej ff36cd64b7 Rearrange the npx driver a little to allow for multiple attachments
and add a pnpbios atttachment for it.
2000-06-16 03:47:24 +00:00
abs 573c583527 If any config file here ever deserved NFS_BOOT_DHCP,NFS_BOOT_BOOTPARAM, it
would probably be DISKLESS. Make It So. Also retire UNDERWORLD as I'm no
longer at Dreamworks with those delightful old ex-NeXTStep P133s.
2000-06-15 18:16:10 +00:00
mycroft ba354a1800 Disable pmap_copy() for now. 2000-06-15 13:35:27 +00:00
thorpej 839042fb97 Don't have an xi in this machine. 2000-06-14 22:29:03 +00:00
veego 223d7455c7 Remove the obsolete config fragments for kernel crypto, because the IPsec
crypto code is now in the kernel source tree.
2000-06-14 22:02:13 +00:00
jhawk e4c99458f4 If comprobe1() fails, print a message. Otherwise one gets the xname
prepended to the next configure device, i.e.

com1lpt0: at pnpbios0 index 18 (PNP0401)
2000-06-14 15:15:43 +00:00
soren 824923164c Attach to CS4610 with CS4236 codec in, well, CS4236 compatibility mode. 2000-06-12 03:43:54 +00:00
mycroft 9884ae5ff6 Remove pcvt tentacles. 2000-06-11 02:41:10 +00:00
mycroft 6e7ce465e9 After almost 5 years, it is now time to decommission pcvt. Bon voyage. 2000-06-11 02:34:23 +00:00
augustss ead295db1b Alphabetize. 2000-06-11 00:21:01 +00:00
haya fb24119c70 Do not use memory space close to system memory (PR #10318). 2000-06-09 10:31:07 +00:00
soda 0f76c56f2d increase number of parameters of pckbc_cnattach(), since offset of command port
is not 4 (KBCMDP), but 1 on jazz based platforms of arc port.
2000-06-09 04:58:32 +00:00
cgd a11660da22 make spl-lowering functions return void. 2000-06-08 23:03:13 +00:00
fvdl b5cca46229 Make siop the default instead of ncr. The siop driver has proven to
be reliable, and, although it does not do tagged queueing yet, this
makes it a better choice.
2000-06-08 21:42:14 +00:00
jhawk 3c6d754bbb Rename "stack" to "stacktrace" and have "stack" call "stacktrace $ebp $eip"
(saves typing).

Use sizeof(long) instead of "4".
2000-06-08 14:42:11 +00:00
jhawk f9b0e0c4eb gdb script for backtracing an i386 kernel stack.
Useful when "where" in gdb fails to cross trap()s,
e.g. port-i386/10313
2000-06-08 03:15:40 +00:00
thorpej 733a6e059b Increase the miniroot size to 3072 (to match INSTALL and INSTALL_TINY).
This is needed due to TI-RPC being larger.
2000-06-07 19:29:45 +00:00
gmcgarry adb2efef6b Autonegotiation with xi driver is reported to work. Use it on the
install media.
2000-06-07 02:16:06 +00:00
soren a9aa2abf94 defopt SYSCALL_DEBUG. 2000-06-06 18:52:30 +00:00
haya d1421ab5ac Remove unnecessary function arguments. 2000-06-06 08:20:06 +00:00
haya c93ef01fbf Use entire extent region when PCIBIOS_ADDR_FIXUP is set. PCIBIOS
provides PCI-dedicated memory and io extent.
2000-06-06 08:17:37 +00:00
sommerfeld bbca3924cd Replace "timestamp" with "counter" in previous change, to avoid any
possible confusion that it has anything to do with accurate
measurement of time.

New names:
	__HAVE_CPU_COUNTER
	cpu_counter()
	cpu_hascounter()
2000-06-06 01:33:15 +00:00
jhawk c063b64a2b Do not clear msgbufenabled in dumpsys(). Dump messages will now go to
the message buffer. This can be invaluable in debugging if the dump
fails (assuming a persistant message buffer)
2000-06-05 23:44:55 +00:00
gmcgarry d0241b393f Replace references to xe with xi. Clarify description to avoid
confusion with the Xircom tlp-based cards.
2000-06-05 23:18:50 +00:00
sommerfeld bcf02ec8ff If rnd is configured into the kernel, do rnd(4) entropy collection
from devices connected to pckbc:
 - Do actual sample collection in pckbc.
 - Add rndsource_element_t to the slot data.
 - Change pckbc_set_inputhandler() to take an additional argument,
the name of the device, which is (eventually) passed into
rnd_attach_source() to identify the source.
 - Change callers of pckbc_set_inputhander() appropriately.
2000-06-05 22:20:54 +00:00
sommerfeld fae21c7be1 Let rnd(4) know how to read the (pentium and higher) cycle counter:
If __HAVE_CPU_TIMESTAMP is defined, <machine/rnd.h> exists and defines
two functions:
  1) 	u_int32_t cpu_timestamp(void);
returns the 32 low order bits of a reasonably high frequency counter.
  2)	int cpu_havetimestamp(void);
returns non-zero if cpu_timestamp() actually works.

The timestamp counter should run at a frequency greater than 1 MHz
(otherwise, microtime would be sufficient); other than that, the exact
frequency and origin of the counter are unspecified.
2000-06-05 21:15:22 +00:00
joda 9e1f399ada fix `#scsibus at siop?' line 2000-06-05 13:34:13 +00:00
gmcgarry 11382b8021 Add APM_ALLOW_BOGUS_SEGMENTS - allow the use of data segments which
are in unexpected locations.
2000-06-04 22:36:27 +00:00
mycroft 43a543fa88 Implement CLKF_INTR(), to count interrupt time separately. 2000-06-04 21:27:38 +00:00
cgd cffb580806 Implement the more flexiable `evcnt' interface as discussed (briefly) on
tech-kern and now documented in evcnt(9).
2000-06-04 19:14:14 +00:00
mycroft 9dcdff8f25 Add stubs for PE/COFF. 2000-06-04 16:26:11 +00:00
mycroft e9deffe0bf Move a bunch of the COFF definitions into exec_coff.h, so they can be used by
other code.   XXX Not tested on SH3 yet.
2000-06-04 16:23:59 +00:00
fvdl d1d025652d Revert previous change until the problem it has has been analyzed. 2000-06-03 17:33:25 +00:00
cgd 0b270a9dfb booted_partition, not booted_parition... 2000-06-02 22:09:02 +00:00
thorpej 42e4f5279b Rearrange the code that loads pages into the VM system somewhat, and
use the ACPI memory map if provided by the boot program.
2000-06-02 18:33:16 +00:00
thorpej 90ef824c6d Actually define the ACPI memory map entry (bi_memmap_entry). 2000-06-02 18:27:47 +00:00
thorpej 7f1c64b910 Enable the code that passes the ACPI memory map to the kernel. 2000-06-02 18:26:10 +00:00
thorpej 7a5ce477cb When allocating new PT pages during early bootstrap (i.e. before
pmap_init() has finished), make sure to zero them.
2000-06-02 17:46:37 +00:00
haya 7bb941e63d KNFied. 2000-06-02 08:41:13 +00:00
matt 33763f10cf Fix a missing cases of devpp -> booted_device, partp -> booted_parition 2000-06-01 17:42:59 +00:00
matt 251afc5218 fix compile problem. 2000-06-01 17:35:42 +00:00
matt 9169d99f2a Don't pass booted_* to findroot/getdevice, access them via the globals.
Also, make findroot static.  This eliminates unneeded clearing of them
and make their use consistent among the ports.
2000-06-01 15:38:20 +00:00
david 156fa3d59c Remove entry for non-existant driver that entered GENERIC in 1.289
and propagated to others when sync'd.
2000-06-01 04:24:00 +00:00
matt 7067d99bb7 Since booted_device/paration are globals, no need to init them to 0. 2000-06-01 04:16:37 +00:00
matt c9aff328d9 Make booted_device global (and booted_parition for consitency).
Eliminate it from header files and other extern definitions.
2000-06-01 00:49:49 +00:00
cgd 47449a63d2 kill __P in these files. (I had to look at them anyway with an eye for
adding some protos... and adding them with __P seems wrong, but mixing
__P and not __P in the same file seems wrong too, so...)
2000-06-01 00:04:50 +00:00
uch 53c8f0ac37 if defined PCIBIOS_ADDR_FIXUP, use more safety extent. 2000-05-31 16:39:56 +00:00
uch a99c8407ab don't destroy PCI bus space extent for rbus_machdep.c 2000-05-31 16:38:55 +00:00
mycroft d6f10e4b63 Use the frame pointer that matches the PC for the `trace/t' and panic (i.e.
have_addr==TRUE) cases.
2000-05-31 16:24:24 +00:00
thorpej 8c2d00aaeb Add a comment about needing to initialize p_cpu when multiple
processors are supported.
2000-05-31 05:09:14 +00:00
nisimura 0e80e9cd4b Minor comment adjustments. cpu_switch has an argument of struct proc *. 2000-05-31 01:46:15 +00:00
haya 03c4724943 Use rbus_new_root_share() instead of rbus_new_root_delegate(). 2000-05-30 09:26:19 +00:00
thorpej 2e7afc702d Update. 2000-05-28 21:49:02 +00:00
thorpej e51303c17e Mirror last change to GENERIC. 2000-05-28 21:48:52 +00:00
jhawk daa86a0be1 Add patchable "pnpbiosdebug" global if PNPBIOSDEBUG is compiled in,
and add PNPBIOSDEBUG_VALUE to initialize its value, defaulting to 1.
2000-05-28 21:46:04 +00:00
jhawk fb6d063b8c pnpbios from 1.344 didn't config. s/pnpbios0/pnpbios?/ 2000-05-28 21:12:00 +00:00
thorpej 4af4c47f80 Tidy up a little, improve PnP BIOS section. 2000-05-28 20:11:59 +00:00
thorpej b6c4eb81fd Massive cleanup and syncing with GENERIC 2000-05-28 20:10:29 +00:00
thorpej e03e9e8086 Rather than starting init and creating kthreads by forking and then
doing a cpu_set_kpc(), just pass the entry point and argument all
the way down the fork path starting with fork1().  In order to
avoid special-casing the normal fork in every cpu_fork(), MI code
passes down child_return() and the child process pointer explicitly.

This fixes a race condition on multiprocessor systems; a CPU could
grab the newly created processes (which has been placed on a run queue)
before cpu_set_kpc() would be performed.
2000-05-28 05:48:59 +00:00
tv ab415393d3 `ep' has `plug-and-play' support on all buses, including non-PnP ISA.
Attach ep* at isa instead of ep0, so we will autoconfigure all 3c5x9s.
2000-05-28 02:42:16 +00:00
mycroft 6a082e4797 Clear %ebp in the forked child, so we don't try to unwind past it. 2000-05-27 23:01:44 +00:00
sommerfeld 40339b39f9 Reduce use of curproc in several places:
- Change ktrace interface to pass in the current process, rather than
p->p_tracep, since the various ktr* function need curproc anyway.

 - Add curproc as a parameter to mi_switch() since all callers had it
handy anyway.

 - Add a second proc argument for inferior() since callers all had
curproc handy.

Also, miscellaneous cleanups in ktrace:

 - ktrace now always uses file-based, rather than vnode-based I/O
(simplifies, increases type safety); eliminate KTRFLAG_FD & KTRFAC_FD.
Do non-blocking I/O, and yield a finite number of times when receiving
EWOULDBLOCK before giving up.

 - move code duplicated between sys_fktrace and sys_ktrace into ktrace_common.

 - simplify interface to ktrwrite()
2000-05-27 00:40:29 +00:00
thorpej a7d0570e67 First sweep at scheduler state cleanup. Collect MI scheduler
state into global and per-CPU scheduler state:

	- Global state: sched_qs (run queues), sched_whichqs (bitmap
	  of non-empty run queues), sched_slpque (sleep queues).
	  NOTE: These may collectively move into a struct schedstate
	  at some point in the future.

	- Per-CPU state, struct schedstate_percpu: spc_runtime
	  (time process on this CPU started running), spc_flags
	  (replaces struct proc's p_schedflags), and
	  spc_curpriority (usrpri of processes on this CPU).

	- Every platform must now supply a struct cpu_info and
	  a curcpu() macro.  Simplify existing cpu_info declarations
	  where appropriate.

	- All references to per-CPU scheduler state now made through
	  curcpu().  NOTE: this will likely be adjusted in the future
	  after further changes to struct proc are made.

Tested on i386 and Alpha.  Changes are mostly mechanical, but apologies
in advance if it doesn't compile on a particular platform.
2000-05-26 21:19:19 +00:00
jdolecek 2649f518ec note in BIG WARNING LETTERS that MCA support is experimental and the
kernel should only be used for experimentation
comment out some stuff not present or used on my development machine
g/c ef
add (commented out) aha attachment
2000-05-26 20:59:07 +00:00
jhawk 8e44b27348 Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
2000-05-26 03:34:24 +00:00
thorpej 8964c35eca Introduce a new process state distinct from SRUN called SONPROC
which indicates that the process is actually running on a
processor.  Test against SONPROC as appropriate rather than
combinations of SRUN and curproc.  Update all context switch code
to properly set SONPROC when the process becomes the current
process on the CPU.
2000-05-26 00:36:42 +00:00
jhawk f3528d725d Interface change: db_printsym() takes a third argument, pr, a function
pointer indicating how to print the symbol. This allows db_printsym()
to called in places where db_printf() is not an appropriate output
function.

While straightforward, apologies in advance if I've introduced any minor
syntax errors; I was unable to test compilation this on all the affected
platforms.
2000-05-25 19:57:30 +00:00
mason af43639ded Fixed typo in ses comment - devies -> devices 2000-05-25 01:34:18 +00:00
thorpej 1140468205 Use preempt(), not an open-coded equivalent (which won't be
equivalent for long).
2000-05-24 16:48:33 +00:00
thorpej 920010ad8f Add SCSI Enclosure Services at cdev minor 74. 2000-05-22 16:58:20 +00:00
thorpej 78112e2541 Add `ses' (SCSI Enclosure Services) device. 2000-05-22 16:48:41 +00:00
perry 2a9fe3a4e7 Actually return the BIOS error code (if any) generated by the reads 2000-05-21 16:59:28 +00:00
jhawk 24396ea653 revert 1.21 (back to 1.20);
the problem was due to diskbuf[] getting pushed over a 64k
boundary, and has now been fixed (for the moment).
2000-05-21 16:33:12 +00:00
jhawk 07a3d660c5 This change courtesy of Charles Hannum <root@ihack.net>. This
addresses the problems seen by Jason Thorpe <thorpej@netbsd.org> and
Erik Berls <cyber@netbsd.org> necessitating rev 1.20 of
biosboot/main.c.

Move BOOTSEG from 0x100 to 0x1000.
Move heap from 0x10000 to 0x20000.

XXXXXXXX

This is a Kluge From Hell to allow boot blocks to grow a little larger
without diskbuf[] crossing a 64k boundary.
2000-05-21 16:29:14 +00:00
augustss bdc8c2f8f4 Alphabetize. 2000-05-20 21:34:48 +00:00
thorpej 4756ba9e32 #if 0 out the consdev command stuff -- with it, boot blocks don't
work, without it, they work fine.  Size issue?
2000-05-19 22:26:50 +00:00
veego 1cd1663317 Disable the viaenv driver and remove the siop entry which was added
in the last commit.
2000-05-19 10:23:36 +00:00
thorpej f636538446 NULL != 0 2000-05-19 04:34:39 +00:00
thorpej 56512515f8 Add Cyclades-Z serial. 2000-05-17 18:08:50 +00:00
thorpej 640a49f093 Add Cyclades-Z serial adapter at cdev minor 73. 2000-05-17 18:08:03 +00:00
uch b444da72bd Skip fixup phase when system BIOS setting were perfect.
don't write 0 to command register. (it is harmful).
2000-05-17 09:50:34 +00:00
thorpej 463931b3ba Nuke dk_establish() from orbit except from those ports which still use
it to determine the boot device: mvme68k, pc532, macppc, ofppc.  Those
platforms should be changed to use device_register().  In the mean time,
those ports defined __BROKEN_DK_ESTABLISH.
2000-05-16 05:45:44 +00:00
jhawk aa0007b5a5 In case of db_onpanic=0, still drop to ddb if the trap was from within
ddb.
i.e. "db> x/s 0x14" should return you to ddb when it faults, regardless
of the state of db_onpanic.
2000-05-15 20:16:48 +00:00
jhawk 2dc49a4780 Comment out XSERVER and XSERVER_DDB and move them to the pccons-specific
section. They are not used with wscons.
2000-05-14 04:36:09 +00:00
jdolecek 6572f303f4 remove now redundant comment regarding IBM_L40 define 2000-05-13 19:58:41 +00:00
jdolecek 950749ab6f add special bootblocks for IBM PS/2 - those machines need different gate A20
addressing
2000-05-13 19:58:01 +00:00
jhawk 187860f8fb Fix problem from 1.27, and more long-standing in the commented-out
-DSUPPORT_SERIAL options:

Only set -DSUPPORT_SERIAL=CONSDEV_PC for "biosboot" and "biosboot_resetvideo",
but not for biosboot_com0.
2000-05-13 19:03:19 +00:00
jhawk d4091aa02e Add support for on-the-fly switching of console devices interactively
from biosboot via the "consdev" command.
2000-05-13 05:31:00 +00:00
jhawk a72e1e9c59 Add support for on-the-fly switching of console devices interactively
from the i386 biosboot via the "consdev" command.
2000-05-13 05:25:20 +00:00
jhawk 1dac4cd666 Add support for on-the-fly switching of console devices interactively
from biosboot via the "consdev" command.

Move "Press return" printf() out of print_banner() so we can
print_banner() reasonably after switching devices.
2000-05-13 05:23:37 +00:00
thorpej 26f56b9cab Only use __builtin_va_alist_t if using GCC 2.96 or later. Fixes
pkg/10080, from Matthias Scheler.
2000-05-12 23:49:11 +00:00
bouyer 9c43539f8f The VIA Technologies VT82C686A SMBus Controller claims to be a PCI/ISA
bridge, ignore it. Should fix kern/10093 by Mark Dohring.
2000-05-12 20:31:22 +00:00
jhawk ed3acc8fbb zsr has acquired a wi card 2000-05-12 03:14:21 +00:00
drochner d5d280d015 -attach auxilary PCI buses at the 450NX chipset,
tested by hubertf in a small configuration (1 PXB - 2 PCI buses)
-being here, remove the per-VID/DID matching code which was commented
 out for a while
2000-05-11 16:44:14 +00:00
jdolecek 8fedbd8497 Add i386-specific part of MicroChannel Architecture bus support, as
found in some older IBM PS/2 machines.

This code is based upon work by Scott D. Telford, with some minor bits
in arch/i386/mca/mca_machdep.c taken from FreeBSD.

XXX this is still very experimental and development version; use at your
XXX own risk
2000-05-11 16:38:10 +00:00
jdolecek 6c1643be43 minor adjustment for compiling with IBM_L40 2000-05-11 16:11:54 +00:00
jdolecek 98beeaa61d add commented out CPPFLAGS+= -DIBM_L40 - needed for PS/2 bootblocks 2000-05-11 16:05:51 +00:00
jhawk 2d2ad4f3e8 fix cosmetic brain-oh in last; s/attachonly/matchonly/g 2000-05-11 15:26:23 +00:00
jhawk a2606dbe80 Address PR#10042: instead of getting the dynamic configuration
all the time (which crashes some vaios), get the static configuration,
and if config_search() finds a node, then do the dynamic configuration.
This seems to work fine on multiple vaios (which seem to crash
in different places...go figure).

Also, bring prototypes in-line with KNF and declare static as appropriate.

"#if 0" out pnpbios_getapmtable() and pnpbios_setnode() as they
are not called.

Fix printf()s to print out dv_xname.

Fix a comment typo.

Use manifest constants (PNP_CF_DEVCONF_DYNAMIC, etc.) in calls to
pnpbios_getnode() instead of hardcoded constants.
2000-05-11 05:54:49 +00:00
hubertf 9f48bba3ae Add "install" target, so "make install" after building the kernel
does something useful.  The target can be redefined by putting a
install-kernel-${MACHINE_NAME} target that fits your needs into
/etc/mk.conf.
2000-05-09 00:56:21 +00:00
thorpej 6a33c86623 HAVE_GCC28 -> HAVE_EGCS, and make it match gcc 2.9 as well. Also,
make the use of -Wno-uninitialized explicit, don't rely on a compiler
hack to do it for us.
2000-05-09 00:32:19 +00:00
hubertf 30be57ab7b Disable DDB_ONPANIC=0. A plain reboot in case of problems isn't really
helpful at install times, regarding diagnostics.
2000-05-09 00:28:22 +00:00
joda 89ef6f9a91 add viaenv template 2000-05-08 18:41:26 +00:00
thorpej d611fd596a Use vprintf() rather than the non-standard %: format. 2000-05-08 18:22:29 +00:00