Commit Graph

119 Commits

Author SHA1 Message Date
bjh21 54edd2d848 Define BOOT_ELF32. Don't define ELFSIZE. 2001-10-31 17:59:38 +00:00
bjh21 82b2265851 Add loadfile_machdep.h, which has been missing since I committed boot26. 2001-10-31 17:58:54 +00:00
bjh21 9eca213216 Since arm26 uses ELF, set MACHINE_ARCH to "arm". 2001-10-21 14:19:34 +00:00
bjh21 34666c7150 Set POOL_SUBPAGE to 4096, in a bid to improve memory efficiency. 2001-10-07 12:45:03 +00:00
bjh21 6b3d54743f Install <machine/pte.h>. 2001-10-06 20:30:02 +00:00
bjh21 5321796010 Add a minimal bus_space_mmap which always fails. The MEMC can only map DRAM
into the user's address space -- I/O devices can only ever be got at by the
kernel.
2001-09-11 11:38:59 +00:00
bjh21 c30b958988 Add fiq_installhandler(), so the current FIQ owner can change what handler
they've got installed without relinquishing the FIQ.
2001-09-10 23:17:48 +00:00
matt 7ce6450eac Add a merged <pcb.h> for arm26/arm32. 2001-09-03 19:20:27 +00:00
simonb 023bdd2bf2 Use comments around the token after a #endif. 2001-08-31 04:44:54 +00:00
bjh21 6825e7d5ea Garbage-collect pcb_onfault_lj, since it's unused and doesn't exist on
arm32 ports.
2001-08-26 14:15:07 +00:00
bjh21 9c45cae8df Make cmos_read() and cmos_write() globally visible, and make the instance
they operate on implicit.  Also, stop abusing cf_unit, and remove a vast
swathe of unused code.
2001-08-26 12:24:24 +00:00
bjh21 7da5d70599 Add fiq_on() and fiq_off(), to enable and disable FIQs at the CPU.
Call fiq_off() from start() and fiq_on() from cpu_configure(), so we're certain
not to get any FIQs during autoconfiguration.
2001-08-25 17:55:24 +00:00
bjh21 35228f775a Two related changes:
Make splhigh disable IRQs at the CPU rather than at the IOC.  This has the
potential to be faster, and more importantly ensures that splhigh() blocks
FIQ downgrades.

Have a variable which indicates that a FIQ downgrade is required, and ensure
that the IOC "force IRQ" bit is turned on in this case.  This ensures that
FIQ downgrades don't get lost if something happens to be fiddling with the
interrupt mask at the wrong moment.
2001-08-21 22:47:17 +00:00
bjh21 9aa4896361 More FIQ support. This gives me enough to handle FIQs, and to downgrade them
to IRQs as necessary.  All these interfaces are subject to change in the light
of experience.
2001-08-20 23:08:10 +00:00
bjh21 9d345bfc35 New header file for FIQ-related definitions.
Currently just contains the FIQ numbers, until I decide on an API.
2001-08-13 22:59:40 +00:00
bjh21 bd6d4d6b77 Use <arm/param.h> to get shared definitions. 2001-08-07 22:26:56 +00:00
bjh21 1ede42fe57 Add <machine/sysarch.h> to go with sysarch(). 2001-07-28 19:14:00 +00:00
bjh21 f3b9fa04ed Only declare kernel objects ifdef _KERNEL. 2001-07-28 12:53:06 +00:00
bjh21 b8a09ee766 Add dummy "podloader" functions on arm32, and move their declarations to the MI
header file.  This should allow MI drivers to use the podloader functions,
though obviously they'll have to be able to cope if podulebus_initloader()
fails.
2001-07-04 13:58:04 +00:00
thorpej 8eb3b954f1 Don't need to prototype child_return() here, it's in <sys/proc.h>. 2001-06-14 22:56:55 +00:00
bjh21 ca5de264b4 Change the structure of a bus_space_handle_t in a desperate bid to avoid using
function pointers.  It now contains two base addresses, one for 8-bit
transfers and one for 16-bit transfers.  This should make it possible for me
to handle the Castle EtherSCSI card, which uses and address line to select
transfer width to the i82595.
2001-06-12 20:16:22 +00:00
bjh21 0c870e10e0 Convert bus_space_{read,write}_multi_1() into macros, since they're just
wrappers round {read,write}_multi_1() anyway.
2001-06-02 21:31:02 +00:00
bjh21 73bc600e40 Use _LOCORE to recognize assembler in the kernel, not ASSEMBLER (which doesn't
get set).
2001-05-13 13:47:23 +00:00
bjh21 2af5062ab7 Add <machine/bootconfig.h> on arm26, and add an <arm/bootconfig.h> for it to
include (since all the contents are MI).
2001-05-13 13:46:23 +00:00
bjh21 e08b3af21d Add stub <machine/cpufunc.h> for arm26. 2001-05-06 18:25:27 +00:00
bjh21 3fc08cf178 Implement pmap_resident_count() and pmap_wired_count() properly. 2001-05-05 14:20:05 +00:00
bjh21 8afb876f73 Make the common <arm/profile.h> work on arm26 and arm32, choosing whether
to munge R15 or not at runtime.  Also make it work with both ELF and a.out.
2001-05-04 00:11:15 +00:00
thorpej cf67ac7122 Per discussion w/ chuck and chuck, restructure the md page stuff
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
bjh21 a6b4c8d3da Strip the PSR bits off values of R15 before passing them to _mcount(). This
makes call-graph profiling actually work (hooray!).
2001-04-30 23:41:11 +00:00
bjh21 e5b19b546c Add two functions, int_off_save() and int_restore(), for mcount to use to
disable interrupts without getting into a loop or screwing up irq_handler().
Also use them.
2001-04-30 19:57:10 +00:00
thorpej 2b27ac7a99 Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
each vm_page structure.  Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM.  These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.

This deprecates struct pmap_physseg.  As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.

Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now).  Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
bjh21 271fb855ce Arrange to restore R14 on return from __mcount, so that profiled assembler
routines will work.  We could put this in _PROF_PROLOGUE, but this seems
lighter-weight and possibly cleaner.
2001-04-26 22:09:57 +00:00
thorpej a60e816e7a Provide a pmap_resident_count() that simply expands to 0. 2001-04-25 18:03:19 +00:00
bjh21 05d087e7c7 Remove definitions of CLKF_*. They're defined in <arm/cpu.h> now. 2001-04-24 18:15:44 +00:00
bjh21 074987f4a3 Ensure that we have some idea what a label_t is, even in userland. 2001-04-16 17:30:32 +00:00
kleink f06533a1ee Add definitions of C99 integer format conversion macros.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink 739cb75837 Add definitions of C99 specified-width integer type limits.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink cdcf9f46c5 Add definitions of C99 integer constant macros.
Tidy Makefiles up a little.
2001-04-14 22:46:19 +00:00
kleink a7c20e5788 Add definitions of C99 integer constant macros. 2001-04-14 22:38:33 +00:00
kleink 7affdab52e Add definitions of C99 minimum-width and greatest-width integer types.
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej bf2dcec4f5 Remove the use of splimp() from the NetBSD kernel. splnet()
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
bjh21 ac01781de7 Make UBC_WINSHIFT a constant. 2001-04-13 12:40:16 +00:00
bjh21 5677634e50 Small comment correction. 2001-03-28 13:04:57 +00:00
bjh21 2714607c72 Add podulebus_shift_tag, which generates a bus_space_tag_t with a specified
address shift (stride).  This is necessary because many podules have standard
chips with odd address-bus wiring to allow for using LDM for
bus_space_*_multi_*().
2001-03-24 00:10:42 +00:00
bjh21 de59def2f2 Remove spurious #define mod_base. 2001-03-20 23:29:07 +00:00
bjh21 86d6442c28 Move machine-dependent podulebus headers to <machine/podulebus_machdep.h>.
<dev/podulebus/podulebus.h> is the canonical file to include, and includes
<machine/podulebus_machdep.h>.
<arch/${MACHINE}/poudulebus/podulebus.h> remains for backward compatibility.
2001-03-20 22:59:39 +00:00
chs c40daf0aed change uvm_winsize to uvm_winshift so that we can avoid division
by a non-constant value.
2001-03-19 00:29:03 +00:00
bjh21 b1475781a2 Make arm26 implementation of DDB slightly less gratuitously different from the
ARM one.  Also update for recent undefined-instruction handler changes.
2001-03-11 16:31:05 +00:00
bjh21 c6c5fda4be Use <arm/undefined.h> 2001-03-11 16:14:36 +00:00
bjh21 f6c36838ae Use the same undefined-instuction handler on both arm26 and arm32. The handler
is derived mostly from the arm32 version, but with a check for an obscure ARM2
bug thrown in.

arm26 fpu and cpu drivers use the new interface for catching undefined
instructions.
2001-03-08 21:30:35 +00:00