Commit Graph

53920 Commits

Author SHA1 Message Date
thorpej a180cee23b Pool deals fairly well with physical memory shortage, but it doesn't
deal with shortages of the VM maps where the backing pages are mapped
(usually kmem_map).  Try to deal with this:

* Group all information about the backend allocator for a pool in a
  separate structure.  The pool references this structure, rather than
  the individual fields.
* Change the pool_init() API accordingly, and adjust all callers.
* Link all pools using the same backend allocator on a list.
* The backend allocator is responsible for waiting for physical memory
  to become available, but will still fail if it cannot callocate KVA
  space for the pages.  If this happens, carefully drain all pools using
  the same backend allocator, so that some KVA space can be freed.
* Change pool_reclaim() to indicate if it actually succeeded in freeing
  some pages, and use that information to make draining easier and more
  efficient.
* Get rid of PR_URGENT.  There was only one use of it, and it could be
  dealt with by the caller.

From art@openbsd.org.
2002-03-08 20:48:27 +00:00
kent ad276dda9e free_all_endpoints(): Fix a problem with disabled device. 2002-03-08 17:24:06 +00:00
uch dc55dc2c73 remove unneeded code and files. 2002-03-08 13:22:11 +00:00
uch babf2e5892 cpu_swapout() moved to cpu.h 2002-03-08 13:12:10 +00:00
ad dbd8140c1f PR 15552: don't explode if the board fails to respond during initalization. 2002-03-08 11:37:04 +00:00
chs 759dc33636 make this compile without DDB. 2002-03-08 06:03:50 +00:00
thorpej 4c3cc0bfe3 Fix printf format on LP64. 2002-03-08 02:30:54 +00:00
simonb abf4139889 Include libkern.h for strcmp() prototype. 2002-03-08 01:36:34 +00:00
bjh21 dcdd6be3c3 Correct definitions of various control register bits. 2002-03-07 23:16:44 +00:00
bjh21 08f3639e04 Add a comment explaining why I use -ffixed-r14 (though actually I'm not sure
it's necessary).
Add -mshort-load-words, since that's safe on all arm26 systems.
2002-03-07 23:15:23 +00:00
christos 833f408cd1 stupid void pointers... tl_init() needs struct ifnet *... 2002-03-07 21:42:20 +00:00
thorpej 26b2d2217b If the bootstrapping process didn't actually use any KVA space, don't
reserve size of 0 in kernel_map.

From OpenBSD.
2002-03-07 20:15:32 +00:00
thorpej 069a559c65 Remove some files that no longer exist. 2002-03-07 19:34:37 +00:00
matt 7053887d27 Change LABELOFFSET to 0 to be compatible most other MBR using ports. 2002-03-07 19:15:46 +00:00
simonb 4fecd5ec85 Add an entry for evbmips.
Add an RCSid to the top of the file.
2002-03-07 14:48:23 +00:00
simonb 31e40c8ce1 A port to the MIPS Malta evaluation board. Currently supports the
MIPS32 4Kc CPU board, with support for the MIPS64 5Kc and the QED RM5261
CPU boards to follow.

The cs4281 audio hasn't been tested, there are some interrupt problems
with onboard the pciide, but all other on-board peripherals work.

The evbmips port will support more MIPS evaluation boards in the future.
2002-03-07 14:43:56 +00:00
kent c329c38eef Sampling rate and mono-stereo conversion described in
http://mail-index.netbsd.org/tech-kern/2002/03/04/0005.html

auconv.c: Add conversion functions

audio.c: Sample alignment, calling conversion functions, etc.

audio_if.h: Add four hw_* members to "struct audio_params"

audiovar.h: Add conversion buffers, etc.

auich and uaudio: Add conversion request code to *_set_params().
2002-03-07 14:37:02 +00:00
wiz 0f2823f594 Add commented out option OFB_ENABLE_CACHE (speeds up text display on
the console).
2002-03-07 13:10:12 +00:00
mjacob 1d228ae84c Disable RIO (reduced interrupt operation) for 2200 boards- it seemed like
it worked- but I ran into a case with a 2204 where commands were being lost
right and left. Best be safe.

For target mode, or things called if we call isp_handle_other response- note
that we might have dropped locks by changing the output pointer so we bail
from the loop. It's the responsibility of the entity dropping the lock to
make sure that we let the f/w know we've read thus far into the response
queue (else we begin processing the same entries again- blech!).
2002-03-07 00:14:04 +00:00
simonb ee374e2f14 Remove the -O0 workaround for nfs_bio.c - the in-tree toolchain builds
this properly.
2002-03-06 23:50:42 +00:00
mhitch d65798ca1d Add media support (such as it is), manual is all you get. 2002-03-06 22:07:39 +00:00
frueauf 089f361f5b Make this work after it got broken a year ago in r1.15 (pasto?):
In qeattach() sc->sc_rb.rb_dmabase needs to be set after the buffer got
loaded via bus_dmamem_map(), not before.

Fixes my own pr kern/15817.
2002-03-06 19:10:58 +00:00
jmcneill 9481b68d9a Fix another typo that I missed last time (foo -> ESA_foo) 2002-03-06 18:30:31 +00:00
jmcneill b9083c85dc Fix a few typos (foo -> ESA_foo). 2002-03-06 18:28:07 +00:00
tsutsui 98c71d1fdd Fix calculation of dma segment length
when the DVMA range is crossing the boundary.
Approved by eeh, and fixes port-sparc64/15200.
2002-03-06 17:12:51 +00:00
tsutsui 3fdc4d2b1d Set correct count in spifi_read_count(). 2002-03-06 16:50:34 +00:00
uch 39425a7420 fix bug of TMU0 interrupt priority level setting. (my previous commit broke it.) 2002-03-06 15:03:21 +00:00
uch a752b69bfa make this compile with DIAGNOSTIC 2002-03-06 15:02:04 +00:00
uch f35aa9c904 don't attach bivideo. 2002-03-06 15:01:05 +00:00
uch 3d0f70f7fc remove ite8181video's bivideo dependency. 2002-03-06 15:00:04 +00:00
dbj 5c7e9abe49 return EINPROGRESS instead of EINVAL when trying to read
the results of an AP scan that is not finished
2002-03-06 14:41:39 +00:00
tsutsui 3c8b0446fe Change type of dumpmag to u_int32_t since it is actually
a 32bit unsigned magic number.
As per discussion on tech-kern, and fixes port-sparc64/11949.
2002-03-06 13:10:18 +00:00
tsutsui c155b0375f Major overhaul of trm(4) driver:
- Change structures for each device to make them more suitable with
  our scsipi mid-layer.
- Use ADAPTER_REQ_SET_XFER_MODE callback.
- Cleanup misc functions/structures/style.

XXX Tagged queuieng support is disabled for now.
XXX Maybe we should have common library of the scsi protocol engine
XXX to share it among all other drivers..
2002-03-06 12:32:49 +00:00
chris 09b5f7b740 Mostly style changes to stop us directly referencing tqh_first, and use TAILQ_FIRST instead. Based on rev 1.130 of the i386 pmap.c. 2002-03-06 10:55:21 +00:00
simonb 1c904f9d33 Use MIPS_PHYS_TO_KSEG1 instead of cfe's PHYS_TO_K1 macro. 2002-03-06 09:32:04 +00:00
simonb 4025359daa cgd notes that we shouldn't use the CPU xtal for calculating wall-clock
time - but as yet we don't attach the RTC becuase it's on an SMbus.
One for later...
2002-03-06 08:02:12 +00:00
simonb 52bf6c669b Neaten slightly. 2002-03-06 07:51:02 +00:00
simonb 2bf916e97d Implement a clkread() function for microtime() using a multu/mfhi
sequence using the reciprocal of the delay divisor to perform the
division.
Set the cp0 compare register so that it doesn't trigger interrupts and
reset the cp0 count register in the hardclock interrupt handler.
2002-03-06 07:47:57 +00:00
simonb 86cb239e4f Add a "clkread" function to the systemsw. 2002-03-06 07:35:13 +00:00
simonb 465e846051 Calculate the reciprocal of the divisor delay. From the comments:
To implement a more accurate microtime using the CP0 COUNT
	register we need to divide that register by the number of
	cycles per MHz.  But...

	DIV and DIVU are expensive on MIPS (eg 75 clocks on the
	R4000).  MULT and MULTU are only 12 clocks on the same CPU.
	On the SB1 these appear to be 40-72 clocks for DIV/DIVU and 3
	clocks for MUL/MULTU.

	The strategy we use to to calculate the reciprical of cycles
	per MHz, scaled by 1<<32.  Then we can simply issue a MULTU
	and pluck of the HI register and have the results of the
	division.
2002-03-06 07:34:36 +00:00
simonb feb24029e7 Add the offset of ci_divisor_delay in struct cpu_info. 2002-03-06 07:32:15 +00:00
simonb 78c9211fca Add a field for the reciprocal of the divisor delay for use by microtime. 2002-03-06 07:31:38 +00:00
itohy 1990961dc9 Fix ADPCM playback/recording. 2002-03-06 07:12:02 +00:00
nathanw 3be9fbe42e Move #include <dev/sysmon/sysmonvar.h> inside #ifdef _KERNEL. 2002-03-06 06:37:17 +00:00
nathanw 2a72ef3147 Remove a variable that is unused after the previous ALTQ commit. 2002-03-06 05:33:05 +00:00
simonb be6459cce6 Use the divisor delay from curcpu() in the implementation of delay(). 2002-03-06 03:29:16 +00:00
simonb 8eb960909e Determine and display the CPU clock frequency from the "System
Identification and Revision Register", and set the frequency
related variables in curcpu info structure.
2002-03-06 03:27:34 +00:00
simonb 3fe666190f Wrap long line and remove a bogus XXX comment. 2002-03-06 03:25:09 +00:00
simonb f3e2fe6731 Add entry for sbmips. 2002-03-06 02:42:30 +00:00
simonb 4b7a128684 A basic port to the Broadcom/SiByte SB1250 evaluation board (the
"swarm").  Other SB-cpu boards will be supported by this port in
the future.

Includes support for on-chip ethernet and serial.  Many features
still missing - notably SMP, PCI/LDT and IDE.

This code is provided by the Broadband Processor Business Unit at
Broadcom Corp with minor updates by me.
2002-03-06 02:13:37 +00:00
simonb 2c68c156c5 Only include <sys/exec_ecoff.h> if EXEC_ECOFF is defined.
Note that ELF is mandatory.
2002-03-06 00:22:09 +00:00
simonb 3ab34324e9 Remove a few unneeded include files. 2002-03-06 00:05:06 +00:00
simonb 1b5ddfe411 Add support for the on-chip peripherals on the Broadcom SiByte SB1250 CPU
and support routines for the Broadcom CFE (Common Firmware Environment).

This code is provided by the Broadband Processor Business Unit at
Broadcom Corp with minor updates by me.
2002-03-05 23:46:40 +00:00
nathanw 3f0d660168 Make the debugging printfs compile:
- printf format checking doesn't like %x for pointers; use %p like we should.
 - LP64 fixes.
2002-03-05 23:28:58 +00:00
eeh 2f0ba3e1a2 More walnut-isms. 2002-03-05 22:02:25 +00:00
thorpej 84be4d4719 Fix size/padding of .data. From Nick. 2002-03-05 21:26:11 +00:00
briggs 257f8fe26f Add BAT_G for EUMB (incl. I/O) space. Per matt@netbsd.org's macppc change. 2002-03-05 19:06:38 +00:00
shiba 081fae3ddb Fix up a bug which PB150 shuts down when one boots up in progress.
PB150 will work with SCSI disk. But we cannot use an internal IDE
disk yet.

Reviewed by briggs
2002-03-05 17:39:25 +00:00
simonb 8b5599e7ce Remove HPCMIPS_FLUSHCACHE_XXX debug code. 2002-03-05 16:16:45 +00:00
simonb 0d0a449d80 mips/mips/fp.S is in mips/conf/files.mips now. 2002-03-05 16:16:03 +00:00
simonb 4c27f5f8f7 mips/mips/fp.S is in mips/conf/files.mips now. 2002-03-05 16:14:57 +00:00
simonb fd77e40b6b Provide a L2 cache configuration function. 2002-03-05 16:12:35 +00:00
simonb 713adcd0e8 Use new cache coherency attribute macro. 2002-03-05 16:11:57 +00:00
simonb f1dbc97679 Not used anymore. 2002-03-05 16:08:55 +00:00
simonb 811ee92532 Add support for MIPS32 and MIPS64 architectures:
- Build mips3/5900/32/64 support subroutines.
 - Move arch/mips/mips/fp.S to central location.
 - Move NOFPU to opt_cputype.h.
2002-03-05 16:08:00 +00:00
simonb f340c57568 Values related to the MIPS32/MIPS64 Privileged Resource Architecture
(from Broadcom Corp).
2002-03-05 16:07:10 +00:00
simonb 9ac7c86a0f Adjust for 5900 include file changes. 2002-03-05 16:06:04 +00:00
simonb 3f2f4c9bf6 r5900_vector_init() is in mips_machdep.c now. 2002-03-05 16:05:26 +00:00
simonb dd756c0ca5 Rename <mips/r5900/cpuregs.h> to <mips/r5900regs.h> and remove some
content no longer needed.
2002-03-05 16:04:57 +00:00
simonb fcdc111c1a Cosmestic changes (more like the mips3+ code). 2002-03-05 16:03:22 +00:00
simonb c5d34b4371 Remove the number of TLB entries for different rx39 CPUs - this info
is in the table in mips_machdep.c now.
2002-03-05 16:02:48 +00:00
simonb c6bcfb2589 Add support for MIPS32 and MIPS64 architectures:
- Move away from using CPUISMIPS3; use MIPS_HAS_R4K_MMU instead.
 - Bump the Sysmap size a little for large-memory machines.
XXX: still need work, especially in pmap_procwr().
2002-03-05 16:01:25 +00:00
simonb 0f9c00fc2e Add support for MIPS32 and MIPS64 architectures:
- Move away from using CPUISMIPS3; use MIPS_HAS_R4K_MMU instead.
 - ANSIfy.
2002-03-05 15:57:20 +00:00
simonb fa9c08ab16 Remove HPCMIPS_FLUSHCACHE_XXX debug code.
Remove old unused exception frame unwind code.
Change a MIPS3 check to a MIPS3_PLUS check.
ANSIfy.
2002-03-05 15:55:41 +00:00
simonb 278bfc1c02 Add support for MIPS32 and MIPS64 architectures:
- move away from using CPUISMIPS3; use MIPS_HAS_CLOCK instead.
2002-03-05 15:54:33 +00:00
simonb 351c1c16a6 Add support for MIPS32 and MIPS64 architectures:
- Use a table-driven CPU detection algorithm instead of multiple
   case statements.
 - Add MIPS32/64 feature detection using the architected CP0 registers
   (from Broadcom Corp).
 - Call MD mips_machdep_cache_config() function if
   __HAVE_MIPS_MACHDEP_CACHE_CONFIG is defined - used to set up the
   L2 cache on some ports.
2002-03-05 15:53:00 +00:00
simonb ba8e2e82e4 Add support for MIPS32 and MIPS64 architectures:
- Remove all mmu-related code that may use 32 register on mips32-style
   implementatios and move them to mipsX_subr.S - which is then included
   from mips{3,32,64,5900}_subr.S with various control defines enabled.
 - Remove local cache instruction flags
 - Add badaddr64 (from Broadcom Corp).
2002-03-05 15:50:59 +00:00
simonb 9ed4fd257f Change a MIPS3 check to a MIPS3_PLUS check.
XXX: I'm not 100% sure of the intent of this code - it would seem that
 it needs a run-time check of CPU ISA to be completely correct...
2002-03-05 15:48:31 +00:00
simonb d62813603c Check userland address and address alignent as two separate checks.
Fix for when mips_reg_t is 64-bits.
ANSIfy.
2002-03-05 15:46:51 +00:00
simonb fe86ad150e Change MIPS3 checks to MIPS3_PLUS checks (XXX - still bogus!). 2002-03-05 15:44:40 +00:00
simonb c9a3bd8900 Add support for MIPS32 and MIPS64 architectures:
- Move away from using CPUISMIPS3; use MIPS_HAS_R4K_MMU instead.
 - Add a command to dump cp0 state.
2002-03-05 15:43:25 +00:00
simonb 9b785c48f3 Cache ops for MIPS32/64 cpus. 2002-03-05 15:42:50 +00:00
simonb 0446046fde Add MIPS32/64 cache setup code (from Broadcom Corp). 2002-03-05 15:42:21 +00:00
simonb cae6e0e516 Prototypes for MIPS32/64 cache ops. 2002-03-05 15:41:48 +00:00
simonb 0ff59237ca Change a MIPS3 check to a MIPS3_PLUS check (XXX - still bogus!). 2002-03-05 15:41:14 +00:00
simonb 01422aae5c Add support for MIPS32 and MIPS64 architectures:
- move away from using CPUISMIPS3; use MIPS_HAS_CLOCK instead.
2002-03-05 15:40:10 +00:00
simonb 1d05db445d Add support for MIPS32 and MIPS64 architectures:
- Move away from using CPUISMIPS3; use MIPS_HAS_R4K_MMU instead.
2002-03-05 15:39:31 +00:00
simonb 934c4ba555 Add support for MIPS32 and MIPS64 architectures:
Remove the unused PSL_USERCLR and BASEPRI macros.
2002-03-05 15:38:33 +00:00
simonb b255c47737 Add support for MIPS32 and MIPS64 architectures:
Better cache coherency attribute macros (from Broadcom Corp).
2002-03-05 15:37:32 +00:00
simonb f38d391749 Add support for MIPS32 and MIPS64 architectures:
- Add mips32 and mips64 locore function prototypes.
 - Add mips3_lw_a64() and mips3_sw_a64() for access data at any
   64bit address (from Broadcom Corp).
 - Add Broadcom and Sandcraft CPU company ids.
2002-03-05 15:36:51 +00:00
simonb 2fab526863 Add support for MIPS32 and MIPS64 architectures:
- Add XKPHYS macros (from Broadcom Corp).
 - Add some r5900 register bit definitions.
 - Add extra exception vector addresses for mips32/mips64 and r5900.
 - Make the mips cp0 register definitions available from both asm and C.
 - Add some Alchemy and Sandcraft CPU ids.
 - Add r3000, tx39xx and r4x00 CPU revision ids.
 - Remove defines for the number of TLBs on some CPUs.
2002-03-05 15:35:22 +00:00
simonb 60fe625bd0 Add support for MIPS32 and MIPS64 architectures:
- Clean up (somewhat) mips1 vs mips3+ configuration.
   XXX:  this is still quite messy.
 - Add cpu frequency info to struct cpu_info.
 - ANSIfy.
2002-03-05 15:34:04 +00:00
simonb ef0fcacb94 ANSIfy. 2002-03-05 15:12:58 +00:00
simonb 8070cbd848 Add 4way 16/32-byte-line cache op primitives. 2002-03-05 14:32:26 +00:00
simonb e8e49d677b Don't explicitly depend locore_*.S and fp.S on assym.h - this is done
for all .S files in /sys/conf/Makefile.kern.inc.
2002-03-05 14:28:31 +00:00
simonb 7bd5992f7a Fix for when we have 64 bit registers enabled for userland (but still
using the o32 API).
2002-03-05 14:23:50 +00:00
simonb 4a931bedb8 KNF whitespace. 2002-03-05 14:21:32 +00:00
simonb 59f53aab95 The 64-bit safe, ILP32 o32 model is safe with the current stdarg
implementation.
2002-03-05 14:18:12 +00:00
simonb 836b7ec262 Include <machine/cdefs.h> to select 32/64bit APIs. 2002-03-05 14:17:16 +00:00
simonb b2fb45331b ANSIfy. 2002-03-05 14:08:43 +00:00