Commit Graph

290 Commits

Author SHA1 Message Date
bsh ee778f8dfa config staff for Lubbock 2002-12-18 04:56:52 +00:00
ichiro d24191b40d delete unneed pmap for LED and Clock 2002-12-08 13:22:31 +00:00
ichiro 5a1cd5fee6 add NAPPI_MD config file 2002-12-02 14:26:52 +00:00
ichiro 05413e5da4 move location of pmap_debug() 2002-12-02 14:25:38 +00:00
lukem 0635de35a3 Remove KDIR=, since SYS_INCLUDE=symlinks and KDIR are not supported any more. 2002-11-26 23:30:07 +00:00
bsh 0f0e8e927f Intel PXA2X0 based and Samsung S3C2XX0 based boards. 2002-11-20 18:15:43 +00:00
bsh e0716c9b55 add an EVBARM_BOARDTYPE constant for Samsung S3C2400X/2410X based
boards.  (not supported yet)
2002-11-20 18:14:08 +00:00
bsh 6c6460f721 add three boards.
lubbock  (PXA250, Xscale)
	g4250ebx (PXA250, Xscale)
	SMDK2800 (S3C2800, ARM920T)
2002-11-20 18:10:37 +00:00
bsh 4b28b301bb SMDK2800 is an evaluation board for Samsung S3C2800 CPU. 2002-11-20 18:06:25 +00:00
bsh fbfb5f619c template of ldscript for some evbarm kernels.
@KERNEL_BASE_PHYS@ and @KERNEL_BASE_VIRT@ are replaced by values
defined in Makefile.evbarm.inc.
2002-11-20 18:04:55 +00:00
thorpej 6b533da5a5 Let the "link_set*" input sections be orphans again, now that
ld has been modifed to workd with them in the presence of
explicit LMAs.
2002-11-20 07:16:08 +00:00
thorpej 598200cca0 Explicitly gather "link_set*" sections into .text (after .rodata).
This is necessary because unless we do so, since we do not pass -Ttext ...
to the linker, the "link_set*" sections end up at VMA 0.
2002-11-15 19:29:22 +00:00
jdolecek c82ab2eb79 now that mem_no is emitted by config(8), there is no reason to keep
copy of more or less identical iskmemdev() for every arch; move the function
to spec_vnop.c, and g/c machine-dependant copies
2002-10-26 13:50:17 +00:00
jdolecek e0cc03a09b merge kqueue branch into -current
kqueue provides a stateful and efficient event notification framework
currently supported events include socket, file, directory, fifo,
pipe, tty and device changes, and monitoring of processes and signals

kqueue is supported by all writable filesystems in NetBSD tree
(with exception of Coda) and all device drivers supporting poll(2)

based on work done by Jonathan Lemon for FreeBSD
initial NetBSD port done by Luke Mewburn and Jason Thorpe
2002-10-23 09:10:23 +00:00
bsh 7b6639153c make atomic_{set,clear}_bit() inline for arm32 ports, and
add <machine/atomic.h> for them.
2002-10-19 12:22:33 +00:00
bjh21 d599df9587 Continue the " - . - 8" purge. Specifically:
add	rd, pc, #foo - . - 8		->	adr	rd, foo
ldr	rd, [pc, #foo - . - 8]		->	ldr	rd, foo

Also, when saving the return address for a function pointer call, use
"mov lr, pc" just before the call unless the return address is somewhere
other than just after the call site.

Finally, a few obvious little micro-optimisations like using LDR directly
rather than ADR followed by LDR, and loading directly into PC rather than
bouncing via R0.
2002-10-14 22:32:50 +00:00
thorpej aa3c369db0 Make this compile with strict prototypes. 2002-10-09 00:06:57 +00:00
thorpej 855eefa351 Clean up some bad interaction between the spl inlining stuff and
strict-prototypes.
2002-10-09 00:03:42 +00:00
thorpej 950670fa77 Fix a typo. 2002-10-08 17:39:17 +00:00
thorpej 70cc64f942 Make this compile with strict prototypes. 2002-10-06 17:13:58 +00:00
thorpej 1a5a7fe7b7 Use indirect configuration for on-board devices (i.e. those things
attached to "obio") on the IQ80310 and IQ80321.  It makes more sense
to do it this way for this type of system (the goal being to encapsulate
as much information about the board as possible into one file).
2002-10-03 20:14:58 +00:00
thorpej cea0a147b4 Add macros to convert an "IRQ" number to its respective XINT3/XINT0 bit. 2002-10-03 20:11:42 +00:00
thorpej dd14964387 Fix script-o. 2002-10-03 01:29:30 +00:00
thorpej c5e91d447d Use CFATTACH_DECL(). 2002-10-02 04:55:47 +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
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
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
lukem 3ea2e21f82 enable USERCONF by default; it's small and extremely useful to have available. 2002-09-18 02:43:53 +00:00
thorpej c0691fd89d Back out previous; it breaks binary compatibility between platforms
in the same MACHINE_ARCH.
2002-09-14 15:54:00 +00:00
mycroft e9a1e15d7e Move some #defines out of _KERNEL. 2002-09-14 12:58:37 +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
thorpej d9374670ba Put PERFCTRS under "Development and Debugging options". 2002-08-29 02:25:22 +00:00
thorpej 12f448527a Don't need SOSEND_LOAN here anymore. 2002-08-29 02:22:46 +00:00
thorpej 77a6866508 Enable caching on kernel and user page tables. This saves having
to do uncached memory access during VM operations (which can be
quite expensive on some CPUs).

We currently write-back PTEs as soon as they're modified; there is
some room for optimization (to write them back in larger chunks).
For PTEs in the APTE space (i.e. PTEs for pmaps that describe another
process's address space), PTEs must also be evicted from the cache
complete (PTEs in PTE space will be evicted durint a context switch).
2002-08-24 02:16:30 +00:00
thorpej 6cc7c1c1ff * Add PTE_SYNC() and PTE_SYNC_RANGE() macros. These don't actually do
anything yet.
* Use PTE_SYNC() and PTE_SYNC_RANGE() in some obvious places, i.e.
  where vtopte() is used.
2002-08-22 01:13:53 +00:00
thorpej 5fddbbe3d5 Do cached memory access to L1 tables, making sure to write-back the
cache after any L1 table modifications.
2002-08-21 18:34:31 +00:00
briggs d2c9e5deb4 Disable coalesced writes on IOP310-based systems. 2002-08-20 02:34:04 +00:00
briggs d5135f0f8e We do not need HZ=512 here, for sure. 2002-08-18 04:12:42 +00:00
thorpej a7d44c2503 Use separate function pointers for dmamap_sync pre- vs post- operations.
Change the bus_dmamap_sync() macro to test the ops argument against pre-
and post- constants.  The compiler will optimize out dead code because
of the constants.  Since post- operations are not needed on ARM (except
for ISA bounce buffers), this eliminate a large number of function calls
which are noops, each of which cost at least 6 cycles just in the call
and return overhead (not to mention whatever other useless work the
compiler decides to do in the callee).
2002-08-17 20:46:26 +00:00
briggs c7ee5cd55e Compile properly without DIAGNOSTIC defined. 2002-08-17 19:19:57 +00:00
briggs 126f6cf9bc Add a new option EVBARM_BOARDTYPE to differentiate between different
evbarm ports.  Inline _splraise/_spllower/splx for i80321 and iq80310
for more performance.
2002-08-17 16:42:20 +00:00
thorpej eeebe88acf Don't need to frob CPSR in _splraise(). 2002-08-14 19:47:18 +00:00
briggs 0b956d0b8b Implement pmc(9) -- An interface to hardware performance monitoring
counters.  These counters do not exist on all CPUs, but where they
do exist, can be used for counting events such as dcache misses that
would otherwise be difficult or impossible to instrument by code
inspection or hardware simulation.

pmc(9) is meant to be a general interface.  Initially, the Intel XScale
counters are the only ones supported.
2002-08-07 05:14:47 +00:00
thorpej c67cc2a5b8 Add iopaau, swdmover (commented out), and dmoverio. 2002-08-07 03:41:43 +00:00
thorpej d6003ab996 Use -mcpu=xscale. 2002-08-07 03:40:01 +00:00
thorpej 22e32aa941 #if 0 the stray interrupt messages -- we tend to get them "a lot"
during normal activity on some IOP310-based designs.
2002-08-04 17:52:46 +00:00
thorpej dce4476374 Overhaul how DMA ranges work in the ARM bus_dma implementation.
A new "arm32_dma_range" structure now describes a DMA window, with
a system address base, bus address base, and length.  In addition to
providing info about which memory regions are legal for DMA, the new
structure provides address translation support, as well.

As before, if a tag does not list any ranges, then all addresses are
considered valid, and no DMA address translation is performed.

This allows us to remove a large chunk of code which was duplicated and
tweaked slightly (to do the address translation) from the stock ARM
bus_dma in the XScale IOP and ARM Integrator ports.

Test compiled on all ARM platforms, test booted on Intel IQ80321 and Shark.
2002-07-31 17:34:23 +00:00