Commit Graph

52 Commits

Author SHA1 Message Date
wiz
d20841bb64 Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
pk
70f20a1217 Replace the traditional buffer memory management -- based on fixed per buffer
virtual memory reservation and a private pool of memory pages -- by a scheme
based on memory pools.

This allows better utilization of memory because buffers can now be allocated
with a granularity finer than the system's native page size (useful for
filesystems with e.g. 1k or 2k fragment sizes).  It also avoids fragmentation
of virtual to physical memory mappings (due to the former fixed virtual
address reservation) resulting in better utilization of MMU resources on some
platforms.  Finally, the scheme is more flexible by allowing run-time decisions
on the amount of memory to be used for buffers.

On the other hand, the effectiveness of the LRU queue for buffer recycling
may be somewhat reduced compared to the traditional method since, due to the
nature of the pool based memory allocation, the actual least recently used
buffer may release its memory to a pool different from the one needed by a
newly allocated buffer. However, this effect will kick in only if the
system is under memory pressure.
2003-12-30 12:33:13 +00:00
simonb
f85a32fc57 Set the CPU frequency parameters from YAMON if available, and fall back
to the timer/RTC based calibration loops otherwise.
2003-10-27 23:47:00 +00:00
simonb
cbe1f08c71 Remove useless call to consinit(). 2003-10-27 18:36:26 +00:00
simonb
a35e8c4a16 Cast through (void *) to appease gcc3.
XXX1 - why does this "type-punned pointer" warning only affect little-
       endian MIPS and not big-endian MIPS?!
XXX2 - too much duplicated code.
2003-09-26 16:00:28 +00:00
agc
aad01611e7 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22364, verified by myself.
2003-08-07 16:26:28 +00:00
lukem
141727280b __KERNEL_RCSID() 2003-07-15 01:31:38 +00:00
fvdl
7dd7f8baa2 Handle 64bit DMA addresses on PCI for platforms that can (currently only
enabled on amd64). Add a dmat64 field to various PCI attach structures,
and pass it down where needed. Implement a simple new function called
pci_dma64_available(pa) to test if 64bit DMA addresses may be used.
This returns 1 iff _PCI_HAVE_DMA64 is defined in <machine/pci_machdep.h>,
and there is more than 4G of memory.
2003-06-15 23:08:53 +00:00
thorpej
0eff671820 Also pass a type argument to comcnattach() and com_kgdb_attach().
comspeed() (and thus cominit()) may need this information.
2003-06-14 17:01:06 +00:00
tsutsui
71ef8e5915 Use common mips/softintr.c for softintr(9) on evbmips.
Ok'ed by simonb.
2003-05-25 14:08:19 +00:00
ragge
69a66687f8 Call ksyms_init() instead of ddb_init() in case of
NKSYMS || defined(DDB) || defined(LKM)
2003-04-26 11:05:05 +00:00
thorpej
fd53a1c386 Use PAGE_SIZE rather than NBPG. 2003-04-02 03:51:33 +00:00
thorpej
23bc250391 Merge the nathanw_sa branch. 2003-01-17 21:55:23 +00:00
thorpej
1132348b98 Use aprint_normal() for cfprint routines. 2003-01-01 01:24:19 +00:00
simonb
ae1eaadf08 Fix a typo in the PCI map array (no functionality changes in practice). 2002-12-06 05:46:47 +00:00
simonb
8ae9336efc Keep the knowledge of the H/W interrupt 5 event counter local to
interrupt.c.  This change also unmasked the fact that the Alchemy
boards did not initialise this counter.
2002-11-10 15:21:51 +00:00
thorpej
0c1efadb23 Include <sys/param.h> so that we get the defn of NULL. 2002-10-03 01:57:24 +00:00
thorpej
bd5bb4652b Add trailing ; to CFATTACH_DECL 2002-10-02 15:45:10 +00:00
thorpej
c5e91d447d Use CFATTACH_DECL(). 2002-10-02 04:55:47 +00:00
thorpej
f59e5352f2 Use CFATTACH_DECL(). 2002-10-01 04:21:32 +00:00
thorpej
c4cbfcf060 Use CFATTACH_DECL(). 2002-10-01 02:54:11 +00:00
thorpej
9a711d6985 Declare all cfattach structures const. 2002-09-27 20:29:02 +00:00
provos
0f09ed48a5 remove trailing \n in panic(). approved perry. 2002-09-27 15:35:29 +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
simonb
e2125ae174 Share disksubr.c across all evbmips "ports" (it was identical). 2002-09-09 06:40:40 +00:00
simonb
221f834ea3 Remove some unused code. 2002-09-09 06:36:39 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
simonb
284c3f4875 It's the gt64120, not the gt62140. 2002-08-29 08:02:35 +00:00
thorpej
139cdc3125 Make nbuf, nswbuf, and bufpages unsigned. Make all operations on these
variables unsigned, and update places where their values are printed.
2002-08-25 20:21:33 +00:00
simonb
d67404d97e Fix tyop. 2002-08-05 01:15:22 +00:00
gmcgarry
3647e0d293 Merge cpu_sysctl() for all mips ports, based on powerpc and m68k precedent.
For now, only pmax implements CPU_BOOTED_KERNEL.  Need to revisit.
2002-08-04 01:41:23 +00:00
simonb
34b375c0dd Add kttcp, sysmon and broadcom/sibyte devices. 2002-07-31 03:42:54 +00:00
simonb
3f8c0bc7c5 Move the soft interrupts IPL masks from port-specific code to
board-specific code.
Change a u_long to a uint32_t in the timer calibration routines.
2002-07-29 16:21:03 +00:00
simonb
13c96f8103 Split out the {b,c}dev to a separate file, which many devices declared
conditionally so that other eval boards (say without PCI support) can
share the basic "conf.c".
2002-07-26 03:23:04 +00:00
thorpej
3912e469dd Rename cdev_systrace_init() to cdev_clonemisc_init(), so it can
be properly used by any misc. cloning device.  While here, correct
a comment to indicate that "open" is the only entry point and that
everything else is handled with fileops.
2002-07-19 16:38:14 +00:00
simonb
0e084cea1c Add a comment; fix white-space niggle. 2002-07-12 00:40:00 +00:00
simonb
bb0c5d7d98 Don't need to include <sys/malloc.h>, <machine/locore.h> or
<uvm/uvm_extern.h> here.
2002-07-12 00:27:18 +00:00
simonb
85c8470e73 Fix a typo in a comment. 2002-07-12 00:23:04 +00:00
christos
3b50728cf4 MD systrace gluons. 2002-06-17 16:32:57 +00:00
simonb
9cc65a96d0 3 ports are now using the reciprocal count divisor code now, move it
to <mips/cpu.h>, and add MIPS_SET_CI_RECIPRICAL and MIPS_COUNT_TO_MHZ
macros to use it.
2002-06-04 05:42:41 +00:00
thorpej
204183c0fa * Add "pcitag_t *pba_bridgetag" to pci_attach_args. This is set to
NULL for root PCI busses.  For busses behind a bridge, it points to
  a persistent copy of the bridge's pcitag_t.  This can be very useful
  for machine-dependent PCI bus enumeration code.
* Implement a machine-dependent pci_enumerate_bus() for sparc64 which
  uses OFW device nodes to enumerate the bus.  When a PCI bus that is
  behind a bridge is attached, pci_attach_hook() allocates a new PCI
  chipset tag for the new bus and sets it's "curnode" to the OFW node
  of the bridge.  This is used as a starting point when enumerating
  that bus.  Root busses get the OFW node of the host bridge (psycho).
* Garbage-collect "ofpci" and "ofppb" from the sparc64 port.
2002-05-16 01:01:28 +00:00
simonb
c833e8820c Remove a few more magic numbers. 2002-04-09 03:40:16 +00:00
simonb
73aae80caf - Calibrate the timer before the first call to delay.
- Don't use a magic number for the com port address.
2002-04-09 03:38:28 +00:00
simonb
40edbdfb37 - Call mips_vector_init() before setting up the serial console, but
after setting up the prom-based console.  If more than one cpu class
  is enabled, the wbflush() handler (needed indirectly by com.c) won't
  be set up.
- Purge some old pmax mcclock-based code.
- Remove a '#if 1/#endif' pair.
2002-04-08 14:11:32 +00:00
simonb
769775ceb4 Make clock/time handling more accurate:
- Use the CPU count register for more accurate microtime (from
   sbmips) and delay (based on an evbmips delay function) functions.
 - Schedule the next hardclock interrupt more accurately (from
   an sgimips patch by Rafal Boni).  Clock drift on one board is
   now ~7ppm instead of ~330ppm.
 - Purge old pmax-based mcclock code.
 - Correctly round off some clock-derived variable calculations.
XXX: Some of this code should be migrated to sys/arch/mips.
2002-04-08 14:08:25 +00:00
simonb
2184ed8531 Convert evbmips to use mips/mips/bus_space_alignstride_chipdep.c. 2002-03-23 14:33:35 +00:00
simonb
00e905ce64 Use <mips/isa_machdep.h> and <mips/pci_machdep.h>. 2002-03-18 10:10:14 +00:00
simonb
9690c2293e Convert to use <mips/bus_*.h>. 2002-03-18 01:21:11 +00:00
martin
94881fb123 Rename ISDN devices, per discussion on tech-kern. The network devices
become ippp (ISDN ppp) and irip (ISDN raw IP). The character device now
are called: /dev/isdn (isdnd <-> kernel communication), /dev/isdnctl (dialing
and other control), /dev/isdntrc* (tracing), /dev/isdnbchan* (raw B channel
access, i.e. for user land PPP) and /dev/isdntel* (telephone devices, i.e.
for answering machines).
2002-03-16 16:55:51 +00:00