Commit Graph

287 Commits

Author SHA1 Message Date
thorpej 1dff12252d Remove old pmap support for platforms which have fully switched over. 2003-05-03 03:29:06 +00:00
thorpej 4eeee795e8 Eliminate PTE_BASE and the PT-PT completely in the ARM32_PMAP_NEW case.
Also in the ARM32_PMAP_NEW case, reclaim the USPACE-bytes of wasted space
at the top of the user address that hasn't been needed for a very very
long time.
2003-05-02 23:22:33 +00:00
thorpej 7de2c299a2 Don't define APTE_BASE if ARM32_PMAP_NEW is defined; the new pmap
doesn't use it.
2003-04-28 01:34:28 +00:00
chris c164d29b0b Add support for ARM32_PMAP_NEW. also make it the default for all cats
kernels.
2003-04-26 17:35:57 +00:00
ragge d8c8fa8111 Add pseudo-device ksyms. 2003-04-26 14:10:04 +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
christos b9f9db3ca2 Bye Bye UCONSOLE 2003-04-10 22:06:51 +00:00
thorpej cc2c493bc4 Use PAGE_SIZE rather than NBPG. 2003-04-02 07:35:54 +00:00
thorpej 61f1732f44 Use PAGE_SIZE rather than NBPG. 2003-04-01 23:54:11 +00:00
chris 0a11ce171f Increase the INSTALL kernel's memory disk by 200k, in advance of some
additions to the ramdisk.
2003-03-23 12:44:25 +00:00
perseant eab869e1c0 Make BRIDGE_IPF an option, and document it. Add it (commented) to GENERIC.
Let brconfig tell whether the bridge is using the ipfilter hook, or not.
2003-02-27 19:22:36 +00:00
augustss 519f8f3d30 Add uax(4) (and url(4) in some cases). 2003-02-16 17:35:13 +00:00
thorpej 23bc250391 Merge the nathanw_sa branch. 2003-01-17 21:55:23 +00:00
lukem 4bb41ae2f2 Rework how KERNOBJDIR functions; now it's always determined with
cd ${KERNSRCDIR}/${KERNARCHDIR}/compile && ${PRINTOBJDIR}
This is far simpler than the previous system, and more robust with
objdirs built via BSDOBJDIR.

The previous method of finding KERNOBJDIR when using BSDOBJDIR by
referencing _SRC_TOP_OBJ_ from another directory was extremely
fragile due to the depth first tree walk by <bsd.subdir.mk>, and
the caching of _SRC_TOP_OBJ_ (with MAKEOVERRIDES) which would be
empty on the *first* pass to create fresh objdirs.

This change requires adding sys/arch/*/compile/Makefile to create
the objdir in that directory, and descending into arch/*/compile
from arch/*/Makefile.  Remove the now-unnecessary .keep_me files
whilst here.

Per lengthy discussion with Andrew Brown.
2003-01-06 17:40:18 +00:00
thorpej 81c6d35e2b Remove obsolete MACHINE_ARCH -> arm32 2003-01-03 02:40:57 +00:00
thorpej c2e9de7319 Don't define -D${MACHINE} in Makefile.arm. Instead, let platforms
that care define it themselves.  Note that evbarm NO LONGER defines
-D${MACHINE}.
2003-01-03 02:34:48 +00:00
thorpej b179f9cf73 Use the generic irq_dispatch.S 2003-01-03 00:55:59 +00:00
thorpej 1132348b98 Use aprint_normal() for cfprint routines. 2003-01-01 01:24:19 +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
wiz e78e668887 Fix typo (responsiness -> responsiveness). 2002-11-22 12:20:58 +00:00
chris a7be705a3c Take the newly added kern.ldscript for handling ELF->a.out from jason, and
apply to the cats kernel build. Seems to work happily for me.
2002-11-21 02:05:08 +00:00
chris 61578bc307 Checkin new interrupt handling code for the footbridge.
This is based upon Jason's work on xscale.

Most of the interrupt handling code is now written in C using an asm stub to
call into the C code.

spl* now only updates a software mask, and does not update the hardware,
this should be much faster.

The new code works well on cats, it's untested on netwinder, but should work.

The code implements generic soft interrupts.

More work is still required to bring the isa interrupt handling code upto
scratch currently all isa interrupts are handled at IPL_BIO on the footbridge.
This may cause isa interrupts to be handled later than they should be.
I plan to fix this in the near future.
2002-11-03 21:43:29 +00:00
tsutsui 48d369009d Echo dbsym command. 2002-10-29 14:33:32 +00:00
tsutsui d0b20addb4 Add fmv and ne at isapnp, which are also working on cats. 2002-10-27 17:57:13 +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
chris 02debbc8ab Add comment explaining what DDB_KEYCODE does. It should probably be renamed
to DDB_BREAK_CHAR to match the com driver at some point, although even that
isn't used everywhere.
2002-10-25 00:08:43 +00:00
chris aa7f00f3de netwinder and cats can share irqhandler.h, so move (and rename) into the
footbridge dir, and share it.
2002-10-22 20:15:25 +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
junyoung e4b7588c28 Add NEW_BUFQ_STRATEGY (disabled by default). 2002-10-18 15:11:08 +00:00
elric 5ab71e20b0 Added commented out cgd(4)s to GENERIC configs. 2002-10-14 18:39:22 +00:00
chris 603917a2c7 Merge isa_machdep.c from netwinder and cats into footbridge/isa (where it
joins other machdep files)
Saves maintaining multiple copies of the same thing, the only differences
were:
IRQ line used on the footbridge (made that a define in include/isa_machdep.h)
name of a dma_ranges variable contained arch name, so just made it generic.
2002-10-12 11:53:38 +00:00
chris 0efb927aa4 As GENERIC grows, so does the needed symbol table space, bump it to
380000 from 370000.
2002-10-10 00:05:54 +00:00
provos 2f7a0aaac8 add SYSTRACE; approved perry. 2002-10-06 02:11:54 +00:00
chs 89fab1629e cats has full protos. 2002-10-05 17:12:51 +00:00
chris 50e43712d9 Add commented out WSDISPLAY_CHARFUNCS. Using it enables wsmoused support. 2002-10-05 10:42:23 +00:00
rearnsha 16930e9cb8 Hmm, fix some bogosity in my previous attempt to fix some bogosity:-)
Keep SYMTAB_SPACE (but clean it up).
Restore iophy PHYs.
2002-10-04 17:14:48 +00:00
rearnsha 16c4b46282 Revert previous change. GENERIC already has an sb* at isapnp? 2002-10-02 20:33:44 +00:00
thorpej c5e91d447d Use CFATTACH_DECL(). 2002-10-02 04:55:47 +00:00
chris cae76053ba Thought I'd checked this in a while back, cats does not need byte_swap.h.
That was me misunderstanding the build system.  (the Makefile change slipped
in as version 1.15)
2002-09-28 15:56:33 +00:00
chris d0879e89ef cats and netwinder can share a common footbridge_intr.h file, so install and
share a common file.
2002-09-28 15:53:03 +00:00
chris 4c5586750b Enable the use of a seperate statclock.
Currently statclock runs at 64hz, maybe it should be faster or slower, I did
try it being the same as hz, but that just made it look like we spent 10% of
time handling interrupts, rather than the 3% that this gives.

Also fix the IPL_LEVELS for netwinder.
2002-09-28 15:44:29 +00:00
chris 85fe6200b5 We have 9 IPL levels, not 8. 2002-09-28 10:23:26 +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
martti 81e8d78cd4 Add one space between "#option" and "<tab>IPFILTER_DEFAULT_BLOCK" 2002-09-25 11:49:48 +00:00
martti 3b553bac54 Added (commented out) IPFILTER_DEFAULT_BLOCK. 2002-09-20 10:39:48 +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
nathanw 48a1b3aab1 Pull in a newer list of mii/phy drivers. 2002-09-05 19:53:15 +00:00
chris e660a1b7e6 Add byte_swap.h for cats, this creates the /usr/include/machine/byte_swap.h 2002-08-26 13:35:16 +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 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 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 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
thorpej 79af00bddb Move the calls to uvm_page_physload() out of pmap_bootstrap() and
into platform-specific initialization code, giving platform-specific
code control over which free list a given chunk of memory gets put
onto.

Changes are essentially mechanical.  Test compiled for all ARM
platforms, test booted on Intel IQ80321 and Shark.

Discussed some time ago on port-arm.
2002-07-31 00:20:51 +00:00
thorpej d3aa5664b7 Move the uvm_setpagesize() call to platform-dependent code in preparation
for other changes to pmap_bootstrap().
2002-07-30 16:16:38 +00:00
abs eb73becae2 Ensure all INSTALL config files consistantly include PIPE_SOCKETPAIR,
MALLOC_NOINLINE, and VNODE_OP_NOINLINE. The exceptions are when they
include another config files that already defines the options, or if
they are for an embedded board, just define a few extra options, and
do not already define PIPE_SOCKETPAIR.
2002-07-05 13:40:10 +00:00
tsutsui cb383cb5db Define MSGBUFSIZE here only if it's not specified by options(4). 2002-06-28 17:40:20 +00:00
chris 5f8eb07bb7 Back out last change, following jason's advice, it's lsof that's actually
broken not the headers.
2002-06-22 20:39:18 +00:00
chris 6052d38107 Allow userland to see machine/vmparam.h. This allows ntop to compile, as it uses the struct uvm from uvm.h, which need the VM_NFREELIST definition.
Of course this does mean that ntop could potentially be platform specific, ie different versions for cats, acorn32 etc as struct uvm maybe a different size, but running on the same cpu architecture.
2002-06-22 10:15:30 +00:00
lukem fde6ae6f04 Enable "pseudo-device clockctl" in all kernels, except
installation related kernels (INSTALL* and RAMDISK*).
This enables rc.conf(5) $ntpd_chroot to be used "out of the box"
2002-06-17 05:14:02 +00:00
chris c153374b37 dmesg from cats booting can be bigger than 4k, so enlarge it to 8k. 2002-06-07 20:56:43 +00:00
chris 56deade0b7 Make INSTALL smaller, so it fits in 4MB, removed:
USB (controller and devices)
INET6
tlp, swap it with de, as tlp still has issues on cats.
2002-05-14 19:44:57 +00:00
atatat d1b3852365 Add the INCLUDE_CONFIG_FILE option to all config files. In config
files that are generic (ie, GENERIC, GENERICSBC, GENERIC32, ALL, or
ALPHA), it is uncommented.
2002-04-25 15:06:20 +00:00
mycroft 558b4fb278 Switch from de to tlp by default. 2002-04-17 02:22:41 +00:00
thorpej eedd94475c * Move the mii_bitbang attribute into dev/mii/files.mii
* Pull in dev/mii/files.mii from conf/files, rather than playing
  the magic "files include order" dance in N machine-dependent
  configuration definitions.
2002-04-16 20:50:16 +00:00
skrll 6024d2c603 Nuke pmsi 2002-04-15 12:52:28 +00:00
thorpej 32a0860797 Centralize ARM CPU configuration information by adding a new header
file, <arm/cpuconf.h>, which pulls in "opt_cputypes.h" and then defines
the following:
* CPU_NTYPES -- now many CPU types are configured into the kernel.  What
  you really want to know is "== 1" or "> 1".
* Defines ARM_ARCH_2, ARM_ARCH_3, ARM_ARCH_4, ARM_ARCH_5, depending
  on which ARM architecture versions are configured (based on CPU_*
  options).  Also defines ARM_NARCH to determins how many architecture
  versions are configured.
* Defines ARM_MMU_MEMC, ARM_MMU_GENERIC, ARM_MMU_XSCALE depending on
  which classes of ARM MMUs are configured into the kernel, and ARM_NMMUS
  to determine how many MMU classes are configured.

Remove the needless inclusion of "opt_cputypes.h" in several places.
Convert remaining users to <arm/cpuconf.h>.
2002-04-12 18:50:29 +00:00
gmcgarry 6e066ba77a Add commented-out USERCONF option. Mainly useful for install media
and can be optionally enabled based on miniroot and ramdisk size
requirements.
2002-04-12 08:10:45 +00:00
skrll ac60400580 The results of my cats NWDO hacking.
This was tested using a custom INSTALL kernel. The current one is >4Mb
which the cats firmware can't currently boot. We need to decide what
needs to be removed from INSTALL.
2002-04-11 16:33:58 +00:00
thorpej e52d5c4ec1 Remove FOOTBRIDGE. 2002-04-10 20:13:54 +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
skrll d859e37a42 Remove trailing whitespace. 2002-04-04 16:04:22 +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
chris c247fe1261 cats has enough kvm space to use the default pager_map size. 2002-03-24 20:15:59 +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 bf1bc7a9f5 Define KERNEL_TEXT_BASE, APTE_BASE, and KERNEL_VM_BASE in terms of
KERNEL_BASE.
2002-03-23 02:30:29 +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
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
sommerfeld 3406f0a3dd The "gif*" tunnelling interface does everything ipip does.
Move usage example from ipip.4 to gif.4
Excise ipip and stitch up the scars.
2002-03-04 13:24:06 +00:00
simonb 64c7743a05 Don't "extern int cold;" - this is in <sys/kernel.h>. 2002-03-04 02:19:07 +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
skrll 25133dd770 Pass the VA for kernel_ptpt as the VA to pmap_map_entry 2002-02-22 17:11:59 +00:00
skrll 7590561ee1 Make sure the kernel_pt_table has the right physical to virtual address
mapping.
2002-02-22 15:57:38 +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
skrll e187e66235 Remove a whole load of non-CATS stuff. 2002-02-20 22:32:10 +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
skrll 9e98a7e93d Enable ep* at pci here also. 2002-02-16 15:47:10 +00:00
skrll 1857cb5f00 Enable ep* at pci?
OK'd by Chris Gilbert <chris@netbsd.org>
2002-02-12 09:11:45 +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
wiz 3cc2ef9997 Update description for icsphy. 2002-02-10 17:36:52 +00:00
chris 882addcbd3 Fix a potential boot failure, we need to make sure that the pt's used for the kernel mapping are contiguous otherwise map_chunk etc could overwrite the L1 table. 2002-02-10 13:19:27 +00:00
chris a73dabb4b1 Following the demise of arch/arm32 update cats, and restore the isa files to a more sane location.
Also fix build break on GENERIC cats kernel, seems that conf.h should have been including arm/conf.h.

This completes the removal of arch/arm32.
2002-02-10 12:26:00 +00:00
chris 851adbbffd Change reference from arm32 to cats in printf, pointed out by wiz. 2002-02-10 11:31:47 +00:00
tsutsui 16ef83d9ba Use MI md_root.c. CATS port does not support fdc (yet) anyway. 2002-02-10 10:41:34 +00:00
tsutsui 8393f637ec Remove unused defflags. 2002-02-10 10:37:52 +00:00
chris 0a162278aa Move the arm32/pci files into the cats dir. AFAIK these files are only used by cats. 2002-02-09 12:14:01 +00:00
chris 2ba81d8c9c Update elf2aout to cope with infile and outfile being the same.
Make the cats a.out kernel be called netbsd.  This means that make install installs the correct kernel
2002-02-09 11:53:58 +00:00
thorpej c9a1155bcf Adjust for new location of elf2aout.sh, and echo the command before
executing it (like we do for other commands).
2002-02-06 19:59:01 +00:00
chris ffd3311a48 LINKADDRESS != LOADADDRESS, so fix that typo.
Also move the elf2aout conversion to be last in the build sequence, this means that strip is run on the elf kernel.
Also have dbsym run on the kernel, this should allow us to have symbols in the kernel.
This now means kernels boot and run, and can also have ddb symbols.
2002-02-06 00:55:56 +00:00
jdolecek f32b3f4f89 Reduce the massive code duplication regarding joy(4). Split it into
MI and MD parts, and make ISA/ISAPNP/PCI joy(4) attachments MI.
2002-02-02 18:37:38 +00:00
chris ec20568993 If TOOLDIR is not set just use the standard objdump and size commands. Also check that there is a netbsd file. chmod the output netbsd file, and display the size info for it. 2002-01-31 21:50:06 +00:00
chris e1348c3690 Initial mechanism for building a working cats kernel with ELF compiler. Note that the shell script needs work, currently it assumes TOOLDIR is valid, if it's not it should probably just try using objdump and size. So some work still to do, but you can cross compile cats kernels now. 2002-01-31 10:37:41 +00:00
chris 4253f3bbfc Set LOOSE_PROTOTYPES to no for cats. This means cats now uses stricter prototype checking. 2002-01-31 09:53: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
chris fc6b067849 Update/remove prototypes. 2002-01-22 19:14:48 +00:00
chris e05c355470 Following on from similair change by Jason for xscale, pass the l1 page table into the map_chunk function so it can try to map the kernel in sections. 2002-01-19 18:51:58 +00:00
chris c3abf9a50c Make GENERIC cats kernel boot again. By allocating a 2nd second level page table for the kernel and stack space we can now have to 8MB of kernel and stacks (if the kernel ever gets really bloated might need to add a 3rd!)
Also update the funcs in arm32_machdep.c that create the entries so that on cats they expect the 2 pagetables to be contiguous, note this means that for now cats is special cased in lots of funcs.  I'll tidy this up to something a bit more sane soon, to avoid the multitude of #ifndef cats that I had to sprinkle in.
2002-01-12 13:37:55 +00:00
chris 8dd3ca5994 Finish up the changes to get LOOSE_PROTOTYPES working for cats.
Note that this leaves a few inconsistencies (no more than we already had though) eg initarm is now prototyped in arm32/machdep.h, however only cats currently makes use of that header.
2002-01-07 22:58:07 +00:00
augustss b53ea42bf0 Update for new uhidev device attachment. 2001-12-28 17:37:01 +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
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
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
chris 6bcb608ef3 Reintroduce these header files so that cats kernels can build. Fallout from Jason reverting the includes stuff. 2001-12-07 23:09:32 +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 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 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 2b74082b7b End the "new ARM includes strategy" experiment. The new strategy
broke too many assumptions makde by other parts of the source tree,
and the strategy and how it was supposed to work was never discussed
on tech-userlevel, nor was it applied consistently (to all ARM ports
and to other ports which have common MACHINE_ARCH code, such as MIPS,
m68k, powerpc).

Verified to complete a full "make build" on cats, dnard, evbarm,
and netwinder.
2001-11-25 15:55:53 +00:00
thorpej 372f11b657 The ARM, Ltd. floating point emulator has moved to arch/arm. 2001-11-24 01:43:20 +00:00
thorpej fc019be5fd Use <arm/undefined.h> instead of <machine/undefined.h>. 2001-11-23 21:18:29 +00:00
thorpej 5101f01dff Move even more constants into the shared 32-bit vmparam.h header.
Cleanup elsewhere will have to be done before we can sanitize this
header any further.
2001-11-23 18:16:10 +00:00
thorpej 15c76e3c84 - Move more contents of various <machine/vmparam.h> files into
<arm/arm32/vmparam.h> (mostly the stuff that's tied to the pmap
  implementation).
- Since the MMU definitions in pte.h are specific to ARM processors
  that support 32-bit mode, move pte.h to <arm/arm32/pte.h>.
- Make the Netwinder startup file build again (use PT_B|PT_C, rather
  than PT_CACHEABLE, since the latter expands to a variable these days).
2001-11-23 17:39:03 +00:00
thorpej 0ec8fbad4d Extra whitespace removal. 2001-11-23 17:29:00 +00:00
thorpej fec02f1259 No need to pull in <machine/pte.h> directly. 2001-11-23 17:23:40 +00:00
atatat 2bf2c362fb The bridge(4) pseudo-device no longer requires the port to
__HAVE_GENERIC_SOFT_INTERRUPTS, so add it back to all GENERIC configs.
2001-11-23 05:00:22 +00:00
thorpej 5278f1771c Remove kerndebug.h from non-Shark code (it's a Shark-specific header
file, and probably should be done away with anyway).
2001-11-22 19:19:48 +00:00
thorpej b393d0d3f7 Kill <machine/katelib.h>. Any place that still uses it should just
reference <arm/arm32/katelib.h> until such time as all use of this
file has been purged from the face of the earth.
2001-11-22 18:34:30 +00:00
thorpej 67fd41ddbf Add 26-bit and 32-bit types.h files, which indicate the programming
model in use for a given platform (__PROG26 vs __PROG32), then pulls
in <arm/types.h>.  Change each ARM port to pull in <arm/arm26/types.h>
or <arm/arm32/types.h> as appropriate.  Change all references to PROG26
and PROG32 to __PROG26 and __PROG32.  Eliminate the opt_progmode.h
header file.
2001-11-22 17:59:57 +00:00
lukem 03aef4723c cleanup:
options SPACE TAB
	makeoptions TAB
	psuedo-device TAB
	remove trailing whitespace
	replace multiple spaces -> tabs
	options "FOO" -> options FOO
	options "FOO=bar" -> options FOO=bar
	options "FOO=\"bar\"" -> options FOO="\"bar\""
2001-11-20 12:56:17 +00:00
soren 662f877587 MAXSLP is defined to be a machine-independent scheduling parameter,
so move it into sys/param.h.
2001-11-15 18:06:11 +00:00
augustss c5477b70aa The wsmux pseudo device does not need a count anymore. 2001-11-13 17:54:46 +00:00
thorpej 4ffa983428 Pull in common 32-bit ARM VM parameters. 2001-11-11 16:44:15 +00:00
thorpej 147b1bdc1c Add some rudimentary support for ELF symbols in DDB on the ARM ports.
On platforms which load the kernel sans symbols directly from firmware
(possibly in e.g. S-Record format), call ddb_init() with empty arguments,
so that it will search any compiled in SYMTAB_SPACE.  On all other platforms,
if __ELF__, also call ddb_init() with empty arguments until ELF bootloaders
which pass symbol information are ready.
2001-11-09 07:21:37 +00:00
thorpej 47514a31be Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
2001-11-09 06:52:23 +00:00
thorpej 3130a93ac8 Remove unnecessary prototypes for zero_page_read{only,write}(). 2001-11-09 00:34:34 +00:00
matt ec78dd0fce Add missing devices (IOP,MLX,MLY,LD), PCI, stub AGP, ... 2001-09-16 17:40:40 +00:00