Commit Graph

180 Commits

Author SHA1 Message Date
bjh21 3a33a1deec Jason claims that nothing tests for RISCPC any more. Make it so. 2002-04-11 17:31:23 +00:00
thorpej bfe71d0a4b vm_offset_t -> vaddr_t,paddr_t 2002-04-10 22:30:44 +00:00
thorpej 59d47eeb79 Remove "options RISCPC"; nothing tests for it anymore. 2002-04-10 20:10:08 +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 aee5994fce Use abstract names for the protection and PTE type bits in
L1 and L2 descriptors.  This will allow us to support different
PTE layouts that enable the use of extensions on different
processor models.
2002-04-09 19:37:14 +00:00
thorpej 991426d348 * Rewrite the 32-bit ARM pte.h based on the ARM architecture manual.
Significant cleanup, here, including better PTE bit names.
* Add XScale PTE extensions (ECC enable, write-allocate cache mode).
* Mechanical changes everywhere else to update for new pte.h.  While
  doing this, two bugs (as a result of typos) were fixed in

	arm/arm32/bus_dma.c
	evbarm/integrator/int_bus_dma.c
2002-04-05 16:58:01 +00:00
thorpej 20b1bb2655 Clean up handling of the vector page on 32-bit ARM systems:
* Don't refer to VA 0, instead refer to a new variable: vector_page
* Delete the old zero_page_*() functions, replacing them with a new
  one: vector_page_setprot().
* When manipulating vector page mappings in user pmaps, only do so if
  the vector page is below KERNEL_BASE (if it's above KERNEL_BASE, the
  vector page is mapped by the kernel pmap).
* Add a new function, arm32_vector_init(), which takes the virtual
  address of the vector page (which MUST be valid when the function
  is called) and a bitmask of vectors the kernel is going to take
  over, and performs all vector page initialization, including setting
  the V bit in the CPU Control register ("relocate vectors to high
  address"), if necessary.
2002-04-03 23:33:26 +00:00
lukem d213d804f7 Rename MEMORY_DISK_SIZE (formerly MINIROOTSIZE) to MEMORY_DISK_ROOT_SIZE,
which was suggested by Izumi Tsutsui <tsutsui@ceres.dti.ne.jp> as
being more consistent with what it's controlling...
2002-04-02 05:30:34 +00:00
thorpej dbe6d8291b * Fix use of pmap_curmaxkvaddr.
* Use the PTP hint in the pmap.
2002-03-25 04:51:19 +00:00
reinoud a24660e86c Fix detection of ARM 610 processors in the bootloader. NetBSD/acorn32 now
runs on ARM 610's again !!
2002-03-24 21:59:48 +00:00
thorpej 5ffc15a083 Use vtopte() instead of pmap_pte(). 2002-03-24 18:12:54 +00:00
thorpej 110e2a57ff * Change all uses of KERNEL_SPACE_START to KERNEL_BASE.
* Delete now unused KERNEL_SPACE_START.
2002-03-23 02:53:59 +00:00
thorpej e5acae884b Define KERNEL_TEXT_BASE, APTE_BASE, and KERNEL_VM_BASE in terms
of KERNEL_BASE.
2002-03-23 02:28:42 +00:00
thorpej 0ba36d6f6f * Rename PROCESS_PAGE_TBLS_BASE -> PTE_BASE
* Rename ALT_PAGE_TBLS_BASE -> APTE_BASE
* Garbage-collect PAGE_TABLE_SPACE_START
2002-03-23 02:22:56 +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
reinoud 4320b4ffba Remove the in practice unused font stuff to save space 2002-03-12 12:52:11 +00:00
lukem cd19d52695 * rename MINIROOTSIZE to MEMORY_DISK_SIZE, so that all md(4) options
are now consistently named
* fold opt_mdsize.h into opt_md.h
2002-03-10 19:56:37 +00:00
lukem 710f40a884 * rename MEMORY_DISK_SIZE to OLD_MEMORY_DISK_SIZE; as far as I can
tell nothing in the acorn32 port was using this version of
  MEMORY_DISK_SIZE but I've left the code here incase the portmaster
  wants it.
* rename MINIROOTSIZE to MEMORY_DISK_SIZE, so that all md(4) options
  are consistently named
* fold opt_mdsize.h into opt_md.h
2002-03-10 19:53:25 +00:00
bjh21 a42e17ae9a __RCSID -> __KERNEL_RCSID 2002-03-10 15:47:43 +00:00
reinoud 6d18a99125 Fix port-acorn32/15850: machdep.booted_kernel on acorn32 is incorrect.
This has been on my TODO list for some time and i found it time to fix it
since its pretty simple to do.

The patch checks if the kernel is booted from the `UnixFS' RISC OS filing
system (case unimportant) and if so interprets its name to get the unix
file name the kernel has. If it doesn't see this prefix it will asume its
just called `netbsd'
2002-03-10 01:28:19 +00:00
chris 1181e367e0 Implement pmap_growkernel for arm32 based ports.
Note that this has been compiled on some systems, cats, IQ80310, IPAQ, netwinder and shark (note that shark's build is currently broken due to other reasons), but only actually run on cats.
Shark doesn't make use of the functionality as I believe there has to be a correlation between OFW and the kernel tables so that calls into OFW work.
2002-03-03 11:22:58 +00:00
simonb 4324f37586 Use "#define<tab>". 2002-02-28 03:17:23 +00:00
christos 6b030ee036 - define other DEV_ constants that the local port uses.
- delete cdev_decl(mm) since <sys/conf.h> does it.
2002-02-27 01:19:03 +00:00
thorpej 9d157337f4 Fix the "va" argument to pmap_map_entry() when mapping kernel_ptpt. 2002-02-22 18:25:08 +00:00
thorpej bb84e85802 Change pmap_map_entry() to work like pmap_map_chunk(): take a pointer
to the L1 table and a virtual address, and no pointer to the L2 table.
The L2 table will be looked up by pmap_map_entry(), which will panic
if the there is no L2 table for the requested VA.

NOTE: IT IS EXTREMELY IMPORTANT THAT THE CORRECT VIRTUAL ADDRESS
BE PROVIDED TO pmap_map_entry()!  Notably, the code that mapped
the kernel L2 tables into the kernel PT mapping L2 table were not
passing actual virtual addresses, but rather offsets into the range
mapped by the L2 table.  I have fixed up all of these call sites,
and tested the resulting kernel on both an IQ80310 and a Shark.
Other portmasters should examine their pmap_map_entry() calls if
their new kernels fail.
2002-02-22 04:49:19 +00:00
thorpej 79738a99e9 Keep track of which kernel PTs are available during bootstrap,
and let pmap_map_chunk() lookup the correct one to use for the
current VA.  Eliminate the "l2table" argument to pmap_map_chunk().

Add a second L2 table for mapping kernel text/data/bss on the
IQ80310 (fixes booting kernels with ramdisks).
2002-02-21 21:58:00 +00:00
thorpej 15e0450397 Always pass the L1 table to pmap_map_chunk(). This allows pmap_map_chunk()
to perform some error checking.
2002-02-21 05:25:23 +00:00
thorpej 454e106a48 map_chunk() -> pmap_map_chunk(), and move it to pmap.c 2002-02-21 02:52:19 +00:00
thorpej 425011f621 map_pagetable() -> pmap_link_l2pt(), and move it to pmap.c 2002-02-20 20:41:15 +00:00
thorpej c44b9117f0 Collapse map_entry{,ro,nc}() into a single pmap_map_entry() that
takes a prot and a "cacheable" indicator.
2002-02-20 02:32:56 +00:00
thorpej 9c31f51c34 Rename map_section() to pmap_map_section(), move it to pmap.c, and give it
an extra argument (prot - specifies protection of the mapping).
2002-02-20 00:10:15 +00:00
bjh21 984f6cdf94 Revert my last change: GENERIC has more bogons than I'd hoped. 2002-02-18 20:55:55 +00:00
bjh21 ea3b1622e8 Internal prototypes for loads of functions.
Casts in calls to sc_setup_dma and sc_need_bump to match implementations.
__RCSID() while I'm here.
2002-02-18 19:57:09 +00:00
bjh21 c44fd75edb Add prototypes for function pointers in struct esc_softc. 2002-02-18 19:55:01 +00:00
bjh21 432b398217 Add internal prototypes for lots of functions.
Add __RCSID() while I'm here.
2002-02-18 19:22:14 +00:00
bjh21 23b31cf96e My acorn32 kernels now compile successfully without LOOSE_PROTOTYPES. 2002-02-18 16:34:13 +00:00
bjh21 468fff80ed Pull in <arm/arm32/machdep.h> for initarm() prototype.
Change signature of initarm() to match the prototype.
Add prototype for canonicalose_bootconfig().
__RCSID() while I'm here.
2002-02-18 13:53:29 +00:00
bjh21 03357551c5 Add a prototype for asc_dump().
Delete asc_dmaintr(): it's unused.
__RCSID().
2002-02-18 13:19:54 +00:00
bjh21 77046b2b48 Add prototype for sbicdumpstate().
Add in-core RCSID.
2002-02-18 13:15:15 +00:00
bjh21 8a8c12cfc9 Add prototypes for podulebusmatch(), podulebusattach(), podulebusprint(),
podulebussubmatch(), podulechunkdirectory() and podulesncan().
Fix argument types of podulebussubmatch().
Remove podloader_read_region(), since it's not used externally.
2002-02-18 13:11:07 +00:00
bjh21 943c65af59 Add prototype for stray_irqhandler(). 2002-02-17 23:58:35 +00:00
bjh21 490dd78bcc cons_decl(com), to get prototypes. 2002-02-17 23:53:18 +00:00
bjh21 8eb5175b46 Add __RCSID(). 2002-02-17 23:47:56 +00:00
bjh21 63dc353d42 Add prototypes for lpt_port_test() and lptprobe(). 2002-02-17 23:45:29 +00:00
reinoud 309c1facde Create a .zip file next to the .tar file special for those Acorn folks who
can download a free unzipper but dont have access to a .tar.gz file.
2002-02-15 21:49:40 +00:00
reinoud 6dc9bb6c37 Forgot to remove the include file for the COMPAT_OLD_BOOTLOADER option i
removed.
2002-02-12 19:21:36 +00:00
reinoud c68fc4c05d Get rid of the verbose flag ... this only clobbers the output. 2002-02-12 13:03:43 +00:00
thorpej cd98cbf7fb * For platforms which are already ELF, remove the definition of
MACHINE_ARCH since <arm/param.h> already sets it correctly to "arm".
* For platforms which are not yet ELF, defined MACHINE_ARCH to "arm32"
  if __ELF__ is not defined by the C preprocessor.
* In <arm/param.h>, clarify the rules about when MACHINE and
  MACHINE_ARCH are defined, and to what.  Also, for ELF platforms,
  int the non-_KERNEL case, force both MACHINE and MACHINE_ARCH to "arm",
  rather than allowing platform-specifc code to define either.
2002-02-12 06:58:18 +00:00
reinoud bff769a5fc The 4Mb sure was too little to boot the installation sets.... 2002-02-12 00:29:55 +00:00
reinoud 8a3a4890b3 Update the bootloader extraction program to be more friendly and to provide
a way to include the bootloader in the release structure

XXX it needs to honour DESTDIR one day
2002-02-11 22:12:22 +00:00
reinoud 9ca7566eb9 The COMPAT_OLD_BOOTLOADER flag can go now since BtRiscBSD is no longer
suported due to ELF transition.
2002-02-11 21:48:46 +00:00
reinoud 6dae5d0659 Cleanup the settype script and dont forget the `howto' files for UnixFS 2002-02-11 19:32:02 +00:00
reinoud f4bbd8d351 Remove old BtNetBSD.old bootloader... its obsolete and might be accidentaly
pulled in one time.
2002-02-11 19:02:37 +00:00
reinoud f80d729bf3 Commit of BtNetBSD version 0.99 : new bootconfig implemented in the
bootloader that also allows ELF symbols to be read correctly as well as
still having the posibility to boot older kernels with the `oldkernel'
option.

There is now support for upto 32 blocks of DRAM and a 16 blocks of VRAM.
Also preliminary support for specifying Mode Defintion Files (MDF) to the
kernel.
2002-02-11 19:00:07 +00:00
reinoud 11982f07b9 _important_ : the old BtRiscBSD compatibility has been put to rest... this
means that kernels from now on are not bootable by !BtRiscBSD but only with
!BtNetBSD.

Big initial commit for a new cleaned up and extended bootblock style. This
patch also allows ELF symbol tables to be read when the patches on the
bootloader are commit but will work fine with the older bootloader.

An extra option `oldkernel' will be provided in the newer bootloader to
pass out old style bootconfig's thus enabling old style kernels to load and
function.

Tested on a.out and ELF (preliminary) kernels with both older and new style
bootconfig blocks.
2002-02-11 18:47:36 +00:00
skrll 88279a037a We're not arm32 we're acorn32. 2002-02-11 08:28:16 +00:00
reinoud 4ec25a3335 Use `booted_kernel' instead of the `boot_file' variable. 2002-02-10 23:01:45 +00:00
reinoud 2082d60338 We don't need to include "footbridge.h" 2002-02-09 23:58:30 +00:00
reinoud 4ffbd975dc Oeps... boot_file was needed after all ... weird 2002-01-31 22:46:40 +00:00
reinoud c8f5e8e49c Initial `machdep.booted_kernel' support as a string flag on the boot
arguments since otherwise RiscOS file names must be parsed.
2002-01-31 21:01:40 +00:00
reinoud a2cea03cf2 Update and clean the config files to look more equal ... some non standard
configutations were not updated during time.
2002-01-30 14:01:33 +00:00
jdolecek 6d265bd894 add options PIPE_SOCKETPAIR to individual kernel configs
the option is commented out on everything but kernels I was able
to recognize as INSTALL-like or ones for small memory machines
2002-01-27 13:23:08 +00:00
thorpej 4e990d9ccb Overhaul of the ARM cache code. This is mostly a simplification
pass.  Rather than providing a whole slew of cache operations that
aren't ever used, distill them down to some useful primitives:

	icache_sync_all         Synchronize I-cache
	icache_sync_range       Synchronize I-cache range

	dcache_wbinv_all        Write-back and Invalidate D-cache
	dcache_wbinv_range      Write-back and Invalidate D-cache range
	dcache_inv_range        Invalidate D-cache range
	dcache_wb_range         Write-back D-cache range

	idcache_wbinv_all       Write-back and Invalidate D-cache,
				Invalidate I-cache
	idcache_wbinv_range     Write-back and Invalidate D-cache,
				Invalidate I-cache range

Note: This does not yet include an overhaul of the actual asm files
that implement the primitives.  Instead, we've provided a safe default
for each CPU type, and the individual CPU types can now be optimized
one at a time.
2002-01-25 19:19:22 +00:00
thorpej f5ee1b0539 Don't explicitly assign MACHINE_ARCH. 2002-01-25 17:22:35 +00:00
reinoud 6875bccf40 Cleanup kernel configuration file and add a generic INSTALL kernel. The
A7000 kernels are obsolete now the ARM7500 detection is integrated. The
NC's however are not completely supported and should in the near future be
bootable with GENERIC/INSTALL too.
2002-01-25 15:20:54 +00:00
oster 39b858e3bf Add new RF_* options for RAIDframe bits that are no longer built by default.
While we're here, enable RAIDframe (and RAID_AUTOCONFIG) by default for
architectures that I'm comfortable can deal with it being on by default.

Also: bump the number of 'raid' devices from 4 to 8, since 4 seems to
be insufficient in practise.
2002-01-19 18:45:06 +00:00
thorpej 75dfddd49d Use bpf_mtap(). 2002-01-16 05:56:54 +00:00
manu 9a870a5b82 updated chrtoblktbl[] 2002-01-12 12:23:48 +00:00
manu 833e540a34 Added clockctl 2002-01-12 12:09:51 +00:00
reinoud b8eb6adfa1 Make the MACHINE_ARCH overrideable by build.sh 2002-01-09 20:54:40 +00:00
bjh21 f2b2562dd8 Don't print arm700bugcount at shutdown. I'm planning to make it into
an evcnt, so users can get at it using vmstat if they care.
2002-01-07 21:40:59 +00:00
thorpej d9f543962d Acorn systems do not support the ISA bus; remove these files. 2002-01-06 20:29:42 +00:00
martin b506d6e135 Add PPPoE to all generic kernels that should be able to use it.
XXX TODO: do this for INSTALL kernels too, add sysinst support and make the
XXX needed binaries available on the ramdisk root fs.
2001-12-28 12:21:52 +00:00
cjep e76e91a051 Pull out csc Cumana SCSI II driver and note that it is not currently
working properly. This seems to have been the case for some time
(cf. PR #8924).
2001-12-22 23:17:35 +00:00
thorpej 014157862c * Share a common vector page between arm26 and arm32.
* Use a common set of exception handlers for all arm32 platforms.
* New FIQ framework based on discussions with Ben Harris, shared
  between arm26 and arm32.
2001-12-20 01:20:21 +00:00
reinoud 608b11c8f4 Minor bootloader update but most of all updated UnixFS disk selections so
now also other patitions are possible; The scripts `native/wd*' were all
broken !!! Guess Mark Brinicombe had some plans but forgot to subit them...
2001-12-16 20:54:29 +00:00
bjh21 b17e1abb0f Use the MI DP83905 support for media selection on those cards that use it. 2001-12-16 00:23:59 +00:00
bjh21 2ca506c0ca if_ne_pbus needs the "mx98905" attribute. 2001-12-15 23:48:38 +00:00
bjh21 7de3bbbbe3 Use the MX98905 bug workaround for EtherN and EtherI cards. 2001-12-15 20:30:06 +00:00
gmcgarry bdd225baa1 Add a blurb to the top of all GENERIC files. This serves three purposes:
- to clarify some terminology
- to clarify the intention of the GENERIC file
- to cross-reference some useful man pages
2001-12-14 05:34:45 +00:00
atatat b45c51b1fc Roll the rest of the ports over to the new MI kernel build machinery.
Any problems reported by testers have been fixed, and massive
cross-compiling of kernels has shown that any problems that remain
with actually building kernels are not related to this.
2001-12-09 05:00:40 +00:00
lukem ecb81c3f6d - convert usage of "defopt" to "defflag" where the relevant option does
not support a value (e.g., it's to be used as "options FOO" instead of
  "options FOO=xxx"). options that take a value were converted to
  defparam recently.
- minor whitespace & formatting cleanups
2001-11-28 10:21:10 +00:00
thorpej ce1401fe6e Use <machine/intr.h>, not <machine/irqhandler.h> 2001-11-27 00:53:11 +00:00
thorpej 8cd82ab7b7 Move interrupt-related stuff out of the generic 32-bit ARM genassym.cf
and into platform-specific genassym.cf files.
2001-11-27 00:15:58 +00:00
thorpej 2c47b0a10f Pasto in last. 2001-11-26 23:52:58 +00:00
thorpej ed112809c9 Allow port-specific Makefile fragments to specify a list of additional
genassym.cf fragments, if desired.
2001-11-26 23:44:58 +00:00
thorpej e0c4ce6999 Use <arm/arm32/psl.h> rather than <machine/psl.h>. 2001-11-26 20:43:46 +00:00
thorpej 87cab44e4e Delete <machine/psl.h> from the ARM ports. It's not a header that
we need to provide to MI code or to userland, and it's also not a
header that generic ARM code should be including directly.
2001-11-26 20:41:42 +00:00
thorpej 534b950d29 Move the interrupt-related file declarations into port-specific
config descriptions so that each port choose whether or not to
use it.
2001-11-26 20:33:43 +00:00
thorpej 1b71762f33 Move disklabel_acorn.h to <sys/disklabel_acorn.h>, much like we did
with disklabel_mbr.h.  More cleanup yet to come.
2001-11-25 16:22:47 +00:00
thorpej ccbcd042c1 Clean this up, don't install files that userland doens't need. 2001-11-24 03:54:52 +00:00
thorpej ce8333e910 This is a Shark-specific file; don't need it here. 2001-11-24 03:52:34 +00:00
thorpej fc2c469259 The ARM, Ltd. floating point emulator has moved to arch/arm. 2001-11-24 01:27:11 +00:00
thorpej ef9741def9 No need to install bootconfig.h 2001-11-24 00:57:43 +00:00
thorpej b8ed19b4ef No longer need <machine/undefined.h>. 2001-11-23 21:23:30 +00:00
thorpej fc019be5fd Use <arm/undefined.h> instead of <machine/undefined.h>. 2001-11-23 21:18:29 +00:00
thorpej 597c20c6d6 Don't need a <machine/profileio.h> on these platforms. 2001-11-23 20:56:27 +00:00
thorpej 0a824f32cb No longer need <machine/pte.h>. 2001-11-23 20:43:03 +00:00
thorpej a41a73c44a No longer need <machine/cpus.h> 2001-11-23 19:51:32 +00:00
thorpej 0ab1aedd0d No longer need <machine/cpufunc.h> 2001-11-23 19:40:45 +00:00