Commit Graph

38 Commits

Author SHA1 Message Date
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
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 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 1b20a04772 * Split pte_cache_mode into pte_l1_s_cache_mode, pte_l2_l_cache_mode,
and pte_l2_s_cache_mode.  The cache-meaningful bits are different
  for these descriptor types on some processor models.
* Add pte_*_cache_mask, corresponding to each above, which has a mask
  of the cache-meangful bits, and define those for generic and XScale
  MMU classes.  Note, the L2_S_CACHE_MASK_xscale definition requires
  use of the Extended Small Page L2 descriptor (the "X" bit overlaps
  with AP bits otherwise).
2002-04-09 22:37:00 +00:00
thorpej 388879eeaf Use pte_cache_mode instead of PT_CACHEABLE. 2002-04-05 03:42:39 +00:00
thorpej aa1563948c * arm_byte_to_page() -> arm_btop()
* arm_page_to_byte() -> arm_ptob()
2002-03-24 03:37:18 +00:00
thorpej 2488d00e5f KERNEL_SPACE_START -> KERNEL_BASE 2002-03-23 19:38:30 +00:00
chris e3a3a9f56f Make some of the arm32 files build with LOOSE_PROTOTYPES not set in the makefile. Turned up a few mismatched functions. Note that this isn't all of the arm32 files. Aim will be to get arm32 kernels built with LOOSE_PROTOTYPES not set. 2002-01-05 22:41:46 +00:00
thorpej fc019be5fd Use <arm/undefined.h> instead of <machine/undefined.h>. 2001-11-23 21:18:29 +00:00
thorpej fec02f1259 No need to pull in <machine/pte.h> directly. 2001-11-23 17:23:40 +00:00
chris 0e7661f023 Update pmap_update to now take the updated pmap as an argument.
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.

Currently this is a no-op on most platforms, so they should see no difference.

Reviewed by Jason.
2001-09-10 21:19:08 +00:00
reinoud 7bace466ad Initial commitment of the bus_space_mmap() functions as proposed by Jason R
Thorpe as an extension to the bus_space(9) API.

Only the mainbus has a working mmap... iomd, podulebus and isa dont have
one yet. Its trivial to add the iomd and isa's memory part but am a bit
hessistant to add it without knowing its implications by heart.

Podulebus might be implemented in 32 bits EASI but otherwise its not really
transparent since there is AFAIK no function to explicitly read one byte or
so .. or is this implemented in a higher level ?

ARM26 and arch/arm32/dnard (Shark) kernels compile and RiscPC and Shark
kernels are tested and function OK.

Implications of other ARM systems like hpcarm and ebarm are propably
minimal or solved trivially.
2001-09-10 02:20:19 +00:00
chris 9f04d8d670 A couple of tidy ups to pmap:
pmap_t -> struct pmap * in pmap.c and pmap.h
kernel_pmap -> pmap_kernel() everywhere.

Compiled and booted on riscpc and cats.
2001-07-28 18:12:43 +00:00
nathanw 0adcac34e5 That's supposed to be <machine/io.h> in the XXX'd #ifdef, not a repeat
of <machine/bus.h>.
2001-06-13 17:52:43 +00:00
matt d87a9f23c3 Add common Makefile for arm ports. Only include (for now) machine/io.h
if arm32 is defined.  io.h is RISCPC specific and isn't needed for other
ports.
2001-06-11 17:44:38 +00:00
thorpej 1c3a62e066 Sprinkle pmap_update() calls after calls to:
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).

These calls are relatively conservative.  It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
matt 1a5fe5b583 Split cpu from mainbus so that cpu can attached to other buses (like ofbus). 2001-04-20 18:08:48 +00:00
rearnsha 50e1e30747 Put back that old (not) unused include file. But only include it
when ARMFPE is defined.  Since that is the only time we use it.
2001-04-18 20:27:33 +00:00
reinoud d2b84b36d2 Removing an old unused include 2001-04-04 21:40:20 +00:00
bjh21 c3c5158d00 Change the value of tf_pc in undefined-instruction handlers on arm32. It now
always points to the undefined instruction in question.  It's up to the
handler to advance it to the next instruction if it wants execution to
continue there.  This is how things have always worked on arm26.
2001-03-13 23:56:48 +00:00
bjh21 ce3ad2275b Update FPU detection to use remove_coproc_handler(). 2001-03-13 23:51:48 +00:00
bjh21 5f8b55f7c3 Pass a softc pointer around everywhere, and use it when we need the name of
the device.

Don't pretend that fpe0 and fpu0 exist as devices (they don't).

G/C a few items related to /dev/cpu* support.
2001-03-11 15:05:43 +00:00
bjh21 ca5024c3a1 Add code to point out to the user if their CPU isn't supported, and to
suggest what kernel options to use to get it to work.
2001-03-10 21:27:06 +00:00
bjh21 b362a4bef3 Change the meaning of cpu_class. It now has one value for each core we
support, which corresponds to one for each CPU_* option, or one for each
cpufunc structure.

Also remove some more residual code for the support of multiple and non-ARM
CPUs.
2001-03-10 20:15:46 +00:00
bjh21 ab8e9aaefd Add CPU ID for ARM7500FE (determined empirically from two I've got here). 2001-03-04 14:26:26 +00:00
bjh21 40333cf8fd Kill cpu_host and cpu_flags: they weren't having any practical effect. 2001-03-03 21:34:00 +00:00
bjh21 c32dba2092 Remove support for /dev/cpu*. This code has never done anything useful anyway. 2001-03-03 18:04:34 +00:00
bjh21 2a91058dd3 Remove spurious declaration of initialise_fpe(). 2001-03-03 17:49:58 +00:00
bjh21 2029721f3f NCPU will always be 1 if this file is being compiled at all, so don't bother
checking it.
2001-03-03 17:46:31 +00:00
bjh21 f578e88d0f Re-design identify_arm_cpu() to use a table of CPU types. This also makes
it easy for it to identify lots of CPU types, so have it do that too.
2001-03-03 17:09:25 +00:00
bjh21 5b15e666a1 ARM7100 -> ARM710A, following information from reinoud. 2001-03-01 23:45:56 +00:00
bjh21 2ff5d800ab Fix up indentation, and remove a spurious set of braces. Should be no
semantic change from the last revision.
2001-02-26 14:01:58 +00:00
bjh21 03737e3e40 fpe-sp, and the associated "options FPE", was deleted in 1997. G/C references
to it.
2001-02-26 13:45:07 +00:00
bjh21 3fb058011a Move arm32 ports over to using <arm/armreg.h>, so <cpu.h> mostly contains
NetBSD-specific definitions.

This also entails some changes to the way CPU identification is done.  I hope
I've got it right.
2001-02-25 21:31:13 +00:00
bjh21 c7c73cbe90 The cpu_type element of struct _cpu was only used in identify_arm_cpu().
Make it a local variable.
2001-02-25 18:40:26 +00:00
reinoud 086a93939c Part 2 of merge.... the dissapearance of mainbus from arm32 and hpcarm;
these parts were a 100% the same and i've included the extensions made by
hpcarm in the tree.
Checked for occurence of MD parts; none found.
2001-02-24 19:38:01 +00:00