chris
37fb92dcab
Remove unused entries from the pcb. This is with a long term view of merging the arm26 and arm32 pcb's.
2001-08-27 11:39:43 +00:00
matt
edc83ba7f4
Add xscale cpufuncs (using the sa110 ones when they are identical).
2001-08-27 00:00:27 +00:00
matt
e8f317bba8
Add xscale cpu functions
2001-08-26 19:41:57 +00:00
matt
4e642cc5fd
Add i80312 register definitions (just registers for now).
2001-08-26 19:25:47 +00:00
matt
08f4bcddf3
files file for xscale (i80312 aka iopxs)
2001-08-26 19:19:09 +00:00
bjh21
ed5e27cc44
Increase the size of a jmp_buf when using ELF, since this will be our last
...
chance to do so for a while. We don't use the extra space yet, but VFP
support is likely to need it.
2001-08-25 14:45:59 +00:00
chris
140252be2b
Arm has a vac, so we must use pmap_enter/remove for vmapbuf rather than k* versions, otherwise we may not be doing the right caching thing.
2001-08-20 21:52:09 +00:00
wiz
d375535396
Fix typo in comment (suceed).
2001-08-20 11:49:11 +00:00
matt
4bc8190b62
Change local offset/label for irqhandlers to Lirqhandlers. Because in
...
ELF _C_LABEL(irqhandlers) == irqhandlers so we were getting self-referential
pointer which causes the IRQ to fall on itself. [With this change the
netwinder kernel can now be *ELF* and boots to multiuser]
2001-08-19 07:29:26 +00:00
jdolecek
c495131fe3
Move _insque()/_remque() to libkern. Once remaining uses would
...
be converted to <sys/queue.h> macros, _insque()/_remque() would be eliminated
altogether.
2001-08-12 08:35:31 +00:00
chris
0b0518e0dd
Fix compile without DIAGNOSTICs enabled
2001-08-11 14:47:56 +00:00
chris
191de4d242
Checking a whole host of pmap changes:
...
Improved locking (not that we actually use it on a uniprocessor, but one day :)
Removed unneeded splvm's
tweaked pmap_clean_page code to only flush the cache if the page is mapped in the current pmap (based on diff from richard E)
Adopted pv entry allocation mechanism from i386.
Laid framework for returning ptp's when we've finished with them rather than holding onto them till the process exits.
ptp's are now allocated with a uvm object for the pmap, means that we can walk a list to free them off in pmap_release, until they get freed off by pmap_remove.
Also implemented a page zeroing function when the processor is idling. Note that hpcarm may wish to disable this.
I believe this code to be stable, if anyone has any problems please shout up.
2001-08-11 13:20:19 +00:00
chris
c5de587666
Make use of pmap_kenter instead of pmap_enter for kernel buffers.
2001-08-11 13:00:48 +00:00
chris
163b9983d7
Add arm_trunc_page, similair to trunc_page but using a hardcoded PGOFSET.
2001-08-11 12:59:45 +00:00
chris
6cca1c3f58
Update to make use of a proper kenter implementation for vmapbuf and vunmapbuf.
2001-08-11 12:57:25 +00:00
chris
6e43d02452
Patch in Richard E's changes to bcopy page, the loop doesn't need unrolling as much as it currently is due to the overhead of the load/stores taking most of the time. (profiling shows minimal time difference)
2001-08-11 12:44:42 +00:00
bjh21
4dd0161267
Use STACKALIGN rather than &=~7.
2001-08-07 22:56:09 +00:00
bjh21
8fa03d16ac
Add macros to hide the details of stack-pointer alignment.
2001-08-07 22:54:00 +00:00
bjh21
bd6d4d6b77
Use <arm/param.h> to get shared definitions.
2001-08-07 22:26:56 +00:00
bjh21
f37b49755f
When delivering a signal, ensure that the stack is 8-byte-aligned.
2001-08-06 22:32:23 +00:00
chris
9522cf08d4
Share procfs_machdep.c across arm.
2001-08-05 13:09:45 +00:00
matt
9509e734a3
Force size_t formats/arge to be (u_long). I'd use 'z' for this but gcc
...
2.95.3
2001-08-05 05:07:27 +00:00
rjs
faf8b4c913
Update from hpcarm with changes to probe routine and test for chip ID.
2001-08-01 14:02:58 +00:00
matt
03b77c0534
Add a CPU_XSCALE defopt (for eventual support).
2001-07-31 17:00:24 +00:00
rjs
6b65fea380
Remove unused hpc includes.
2001-07-30 16:23:09 +00:00
rjs
9013c85405
Update from hpcarm to remove iPAQ egpio code.
2001-07-30 16:20:06 +00:00
rjs
51bc7258f8
Update from hpcarm with MCP base definition.
2001-07-30 16:08:42 +00:00
rjs
c79059dd3f
Update from hpcarm to remove iPAQ and Jornada specific #defines.
2001-07-30 15:58:56 +00:00
rjs
b85ae98e65
Update from hpcarm with MCP register definition.
2001-07-30 12:19:04 +00:00
rjs
495d108bd3
Update from hpcarm with cookie change.
2001-07-30 10:55:49 +00:00
rjs
9b65c24aa5
Remove unused LCD definitions.
2001-07-30 10:50:59 +00:00
rjs
1304d2220e
Mirror removal from hpcarm.
2001-07-30 10:48:31 +00:00
rjs
499d1068e8
Update from hpcarm.
2001-07-30 10:46:08 +00:00
rjs
e35b542831
Mirror removal from hpcarm.
2001-07-30 10:33:59 +00:00
rjs
730b1a57ac
Copy from hpcarm.
2001-07-30 10:17:21 +00:00
chris
fa4e4d9668
Rework the pmap_release code to not have to walk the ptpt, it now uses a uvm_object to track the allocated vm_pages, this means it can free off the entries in the uvm_object.
...
Testing shows that it's about 5% faster on the make configure step for gmake.
2001-07-29 12:45:27 +00:00
chris
89415a32e2
PR 13581
...
Add empty pmap.h and vmparam.h to make userland happier.
2001-07-29 09:50:07 +00:00
chris
af16732a3a
Fix for PR 13580.
...
Make sysarch include sys/stdint.h so it picks up the a definition of uintptr_t.
2001-07-29 08:37:56 +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
chris
4a126d9937
finish moving common arm32 bits out into arm/arm32.
2001-07-28 15:08:10 +00:00
chris
27f96e8440
Move the generic arm32 files into arm/arm32 from arm32/arm32, tested kernel builds on cats and riscpc.
2001-07-28 13:28:03 +00:00
chris
9c823196e0
Change -x into -X for linking, it makes traces more meaningful.
2001-07-28 13:24:24 +00:00
chris
37dc65af43
bzero->memset
2001-07-28 12:29:58 +00:00
matt
36dc943f75
Change ARM-ELF to LP64 friendly types.
2001-07-28 07:42:28 +00:00
matt
384a403ca5
Make sync_icache_args use more standard types.
2001-07-23 17:04:27 +00:00
takemura
64b6b76a21
You must set 'HPCFB_SWAP_*' if bytes are stored in reverse order, i.e.
...
little endian like order, however, usage of 'HPCFB_SWAP_*' was widely
misunderstood because it reminded you of 'RI_BSWAP' in raster operation.
Please note that 'RI_BSWAP' indicate that frame buffer byte order is different
from natural order of system while 'HPCFB_REVORDER_*' is independent of
system byte order.
2001-07-22 09:56:39 +00:00
thorpej
babefc5331
Add BUS_DMA_READ and BUS_DMA_WRITE flags, that hint the back-end
...
at dmamap load time that the mapping will be used for a unidirectional
transfer of the specified direction.
2001-07-19 15:32:10 +00:00
rjs
c1539a6ba2
Add Jazelle mode flag.
2001-07-18 16:31:17 +00:00
matt
bb9bd28fa8
Change way PIC stuff is emitted for ELF to be more flexible.
2001-07-16 05:43:32 +00:00
matt
59ce75e3e7
Need to emit PLT magic for PIC ELF files.
2001-07-16 05:42:50 +00:00
matt
7a4fca28c6
Add a GOTSYM which emits the right stuff to GOT symbols under ELF and/or
...
a.out.
2001-07-14 18:24:41 +00:00
matt
497b990687
Clarify when/where MACHINE & MACHINE_ARCH are defined. Add default
...
user-visible definitions.
2001-07-14 07:31:31 +00:00
matt
24a2b394aa
Make <sysarch.h> valid for all arm platforms. Adjust/remove port-specific
...
includes as required.
2001-07-14 00:23:09 +00:00
matt
c5e61ec6d5
Move user-visible MBUF constant here. Define MAXPHYS. Include DEV_BSIZE
2001-07-13 19:43:15 +00:00
matt
d09cef0906
Gah!. Use the variable name (LINKENTRY).
2001-07-12 07:02:00 +00:00
matt
2d9f71a0d9
Fix a few things for NetWinder. NetWinder needs to override the
...
std entry point so add a hook for that. Also pick up the port
specific .inc file from the right directory.
2001-07-12 06:25:07 +00:00
bjh21
ea353a48e1
Purge CPU_ARM7500. Thanks to Reinoud's work, it's no longer needed.
2001-07-10 20:43:57 +00:00
reinoud
8ca7d6ec9c
Initial commit for merging A7000/NC with the RISCPC in order to get _one_
...
bootable GENERAL kernel for the 3 machines.
This is done by integrating the ARM7500 in a better way. In various places
the IOMD ID is checked and action is taken at runtime compared to
compiletime.
The small piece of assembler that is changed now uses the flag
`arm7500_ioc_found' that is set up by iomd.c at startup. When this chip
isnt found at startup it will skip reading the ARM7500 extended IRQ
registers and wont clear them either.
The next step will be getting the mode-definition files to the bootloader.
Currently they are compiled in.
2001-07-09 21:46:19 +00:00
reinoud
1f5b07de6a
Changed the variable within the ARM6 late abort section from cpu_ctrl to
...
cpuctrl ...
2001-07-09 19:51:14 +00:00
rjs
72c860d841
Initial copy of SA11x0 support from hpcarm.
2001-07-08 23:37:52 +00:00
rjs
35dc2ba462
Initial copy of SA11x0 support from hpcarm.
2001-07-08 23:20:04 +00:00
chs
b86053cc53
clean up pmap_k{enter_pa,remove}():
...
a page is allowed to be mapped normally when k-mapped.
use UVM_PGA_ZERO to get zeroed pages rather than zeroing here.
2001-07-08 19:44:43 +00:00
chris
4c32798eb8
Implement proper versions of kenter_pa and kremove, I've based them on versions provided by Richard E.
2001-07-06 20:15:13 +00:00
chris
b8ceed365f
Improve the vac_me_harder function, it is now slightly faster, however pmap_enter_pv is also now slightly slower, so they appear to balance out.
...
Note that I've some ideas in the works on how to improve the pv handling, so the slow down is short term only.
Also added non-advertising licence and copyright to myself and richard.
2001-06-25 23:22:38 +00:00
chris
407440a6b3
Add a pmap_map_ptes function to map another process page table entries into the current pmap (similair to pmap_pte) but this allows multiple use of it, rather than repeated calls of pmap_pte for pte, map_ptes returns a pointer to the va where the entries were mapped so it can be reused ptes can be found by indexing into it.
...
Update some of the functions that use pmap_pte to pmap_map_ptes.
Note that there's a dummy macro for pmap_unmap_ptes, this is because at some point locking will be needed, so we need to be able to unlock them.
Performance gain seems to be minimal, however long term it should help improve things.
This is similair to the i386 pmap_map_ptes, however it's based on a version from Richard Earnshaw.
2001-06-24 23:21:04 +00:00
chs
908aa6ff3d
remove "machine vmstat" command, since "show uvmexp" does the same thing.
2001-06-24 07:32:20 +00:00
bjh21
690f56e57a
Add a common <arm/param.h>, containing those few things that are obviously
...
common across all ARM systems.
2001-06-23 13:25:19 +00:00
bjh21
3622d4e282
Add <arm/endian.h> and remove the cats, dnard and netwinder versions, since
...
they're all the same (a redirect to <sys/endian.h>).
2001-06-23 12:20:27 +00:00
chris
c3b7efe5d3
GC a couple of unused entries in the pmap struct
2001-06-22 09:12:11 +00:00
chris
cca2bd293b
Use a pool to store pmap structs.
2001-06-22 09:09:42 +00:00
chris
7383fda9e0
Remove defopt EBSA285.
...
Move the files from footbridge that are cats specific.
Remove EBSA285 kernel as people should be able to use the generic cats kernel for EBSA285 systems.
2001-06-20 22:14:32 +00:00
wiz
ac951736bc
`response', not `responce'
2001-06-19 13:45:52 +00:00
wiz
f3f6c5b675
`accessible' only has one `a'.
2001-06-19 12:52:20 +00:00
bjh21
cb36bacea5
Merge arm32/dev/bus_space_notimpl.S and hpcarm/hpcarm/bus_space_notimpl.S
...
into arm/arm/bus_space_notimpl.S. They were identical anyway.
This file has no excuse for being in assembler, but I'll leave that for another
day.
2001-06-18 22:26:15 +00:00
bjh21
80c5d7ab99
Move <arm/arm32/bus.h> to <arm/bus.h>, since it looks like it's going to be
...
necessary on arm26 as well.
2001-06-18 21:37:32 +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
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
fa3621e3be
Move netwinder_machdep.c to files.netwinder. Eliminate opt_netwinder.h and
...
use #ifdef netwinder insead. XXX ebsa285_machdep.c should move to the cats
directory and files.cats
2001-06-12 17:10:25 +00:00
chris
1825c7b68a
Move defopt FOOTBRIDGE to where it really should be in files.footbridge, which is where I should have left it.
2001-06-11 22:25:09 +00:00
matt
95be56d2e1
Only include dependency on include-dirs if the include directory doesn't
...
exist.
2001-06-11 17:50:34 +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
chris
b0a79f686c
Typo police: 28285 -> 21285
...
Also garbage collect the old kernel VM map defines for footbridge.
2001-06-09 10:44:10 +00:00
chris
af8ce95972
Move the footbridge dir out of arm32 into arm.
2001-06-09 10:29:11 +00:00
chris
75d8b9d463
Checkin fix to ARM7TDMI support. As per patch from John Fremlin to
...
port-arm32.
2001-06-07 21:07:22 +00:00
bjh21
95fe4db7e3
Replace arm/arm32/db_trace.c and arm26/arm26/db_trace.c with a unified version
...
in arm/arm. This version is based on the arm26 version, and includes dumping
the contents of stack frames, with automatic determination of the save code
pointer offset.
2001-06-05 09:25:05 +00:00
bjh21
261bd8f8ac
Add get_pc_str_offset(), which returns the offset between the address of an
...
instruction that stores the program counter and the value of PC that's stored.
This can vary between ARM implementations, but is guaranteed to be constant on
a given one.
2001-06-05 09:19:32 +00:00
chris
878db7cfb8
Add support for ARM7TDMI, as provided in a patch from John Fremlin to port-arm32.
...
Shouldn't effect any currently in tree ports.
2001-06-03 18:32:33 +00:00
bjh21
e1fdb3abbf
Rather than duplicating the LDM/STM/LDC/STC fixup code between
...
early_abort_fixup() and late_abort_fixup(), have the latter tail-call the
former. This saves another 200 bytes, and I've found my ARM710a card now, so
I've even tested it.
2001-06-03 13:38:14 +00:00
bjh21
3c88c46567
In {early,late}_abort_fixup(), return ABORT_FIXUP_FAILED, rather than
...
panic'ing, if we hit an instruction we can't fix up. This saves 250-odd bytes
of code, and should allow the caller to print a more useful message.
2001-06-02 22:30:07 +00:00
bjh21
f594a52dae
late_abort_fixup: Get the indentation right!
2001-06-02 22:08:11 +00:00
bjh21
54a986d7fc
Replace arm6_dataabt_fixup() and arm7_dataabt_fixup() with early_abort_fixup()
...
and late_abort_fixup(), based on the abort model in use, rather than the CPU
type. This cleans up the code and makes it smaller. Only tested on an
ARM6 -- I can't find my ARM710a card right now.
2001-06-02 21:03:32 +00:00
bjh21
7089595665
Initial cpufunc operations for ARM3. Not actually used yet.
2001-06-02 19:01:03 +00:00
bjh21
c81d426dcf
Save R14 (in a proper stack frame) around {read,write}_multi_1, since page
...
faults can corrupt it on arm26.
2001-06-02 11:15:56 +00:00
bjh21
ac0d39dfe8
Add write_multi_1().
2001-06-02 10:44:56 +00:00
mrg
67afbd6270
use _KERNEL_OPT
2001-05-30 11:57:16 +00:00
bjh21
f15491e9d3
Move the declarations of blockio.S functions from katelib.h to a new, exciting
...
<arm/blockio.h>. katelib.h includes it for compatibility.
2001-05-30 00:16:36 +00:00
bjh21
d51c27dfa8
Add read_multi_1() which does what it says fairly fast.
2001-05-30 00:14:09 +00:00
bjh21
7d9a4dbad7
Move blockio.S from sys/arch/arm32/arm32 to sys/arch/arm/arm, since I want to
...
start using it on arm26.
hpcarm gets to keep its own version, since it's not identical and I haven't
got an hpcarm box to test.
2001-05-29 23:03:20 +00:00
chs
e44e9dec8a
replace vm_page_t with struct vm_page *.
2001-05-26 21:27:02 +00:00
chs
118ddca24a
replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
2001-05-26 16:32:40 +00:00
chris
cbf8e0eb95
Add a files.footbridge for inclusion by cats and netwinder. This is to make moving of the footbridge dir easier (when it eventually moves from arm32)
...
Also remove EBSA285 defopt from the netwinder file as the netwinder isn't an eval board.
2001-05-23 21:21:42 +00:00
chris
8901caf8ff
Create an asm based version of in4_cksum based on the sparc version.
...
Also don't compute psuedo header for nxt == 0
2001-05-23 19:33:48 +00:00
bjh21
330163a77f
Include opt_cputypes.h, since we use CPU_*.
2001-05-13 14:41:56 +00:00
bjh21
b9ded015f4
strstr() is no longer used in the kernel. G/C it.
2001-05-13 14:17:36 +00:00
bjh21
e2b24925d1
Use get_bootconf_option() to find boot options, rather than home-grown
...
strstr()-based hacks.
2001-05-13 13:53:08 +00:00
bjh21
0ea71ec5ea
Make use of a.out or ELF symbols dependent on the compile-time definition of
...
__ELF__.
2001-05-13 13:51:08 +00:00
bjh21
e8fd2642a9
Don't include parse_cpu_options() unless we're going to use it. This fixes
...
a warning on arm26.
2001-05-13 13:50:01 +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
61044be691
Move get_bootconf_option() into a new file, sys/arch/arm/arm/bootconfig.c,
...
since it's in no way machine-dependent. It's not really ARM-specific either,
but I don't think it's useful enough to be made part of the MI kernel.
2001-05-13 13:44:33 +00:00
bjh21
6d4648fa03
Move "defopt PMAP_DEBUG" into files.arm, since it's used by code in arch/arm.
2001-05-06 18:31:14 +00:00
bjh21
f9087c439b
Move cpufunc stuff from arm32/arm32 to arm/arm. The only change involved is
...
to add recognition of the SA-1100 and SA-1110 for compatibility with hpcarm
(which is now using this code as well).
2001-05-06 18:01:42 +00:00
simonb
6a511e05e2
Be consistent with limit constants:
...
- use "U" suffix for unsigned constants
- use "L" suffix for long constants
- use "UL" suffix for unsigned long constants
- use hexadecimal instead of decimal
Fixes build problems with vi (now that warnings/errors are enabled) on
mips, powerpc and arm platforms.
2001-05-04 15:12:32 +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
bjh21
262c7835b0
In an ELF kernel, don't try to find an a.out symbol table.
2001-05-02 19:10:29 +00:00
kleink
fe3c9ceaf7
* Move definitions of exact-width integer types from <machine/types.h>
...
to <sys/types.h> and <sys/stdint.h>.
* Add a new C99 <stdint.h> header, which provides integer types of
explicit width, related limits and integer constant macros.
* Extend <inttypes.h> to provide <stdint.h> definitions and format
macros for printf() and scanf().
* Add C99 strtoimax() and strtoumax() functions.
* Use the latter within scanf().
* Add C99 %j, %t and %z printf()/scanf() conversions for
intmax_t, pointer-type and size_t arguments.
2001-04-28 15:41:28 +00:00
bjh21
3a7710b605
Add ELF version of _PROF_PROLOGUE.
2001-04-26 23:20:02 +00:00
kleink
99054d7a6c
Add definitions for C99 fastest minimum-width integer types.
2001-04-26 16:25:19 +00:00
thorpej
fe664428c8
Garbage-collect pmap_page_index().
2001-04-25 17:35:00 +00:00
bjh21
63692f5771
Rather large overhaul. Mostly cosmetic, but also:
...
Provide PROC_PC on arm26.
Provide working CLKF_INTR on arm26.
Make setsoftast a macro everywhere.
2001-04-24 18:20:21 +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
thorpej
55044638aa
Remove pmap_kenter_pgs(). It was never really adopted by
...
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej
69abdbf60c
Undo a misguided previous change to the pmap_update() API.
2001-04-22 23:19:26 +00:00
thorpej
4738622712
Give pmap_update() an argument (a pmap_t) so that it knows which
...
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej
82065e8a0b
Update the comment for pmap_update().
2001-04-21 17:13:12 +00:00
bjh21
630f137a5e
Multiple-inclusion protection.
2001-04-21 15:47:32 +00:00
toshii
61ff48a82e
In pmap_allocpagedir(), check if uvm_km_zalloc of ptpt is successful,
...
and handle alloc failure case.
2001-04-20 18:11:53 +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
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
kleink
9133b51cd8
Replace the 'unsigned __COMPILER_INT64__' construct with a new name,
...
__COMPILER_UINT64__, to be supplied - if such a case is made, it shouldn't
be assumed that the unsigned type-specifier may be applied to it.
2001-04-12 22:01:18 +00:00
reinoud
d2b84b36d2
Removing an old unused include
2001-04-04 21:40:20 +00:00
toshii
dfddb1e107
Increase spl_masks[] size by one and set the extra element to 0.
...
irq_entry accesses here.
2001-03-31 12:22:37 +00:00
bjh21
bfc2063e69
Create an ARM2-specific undefined-instruction handler which deals with the
...
undef/SWI bug and handles emulating SWP.
Untested bacuse my ARM2 machine isn't currently set up.
2001-03-17 18:12:09 +00:00
chs
ac3bc537bd
eliminate the KERN_* error codes in favor of the traditional E* codes.
...
the mapping is:
KERN_SUCCESS 0
KERN_INVALID_ADDRESS EFAULT
KERN_PROTECTION_FAILURE EACCES
KERN_NO_SPACE ENOMEM
KERN_INVALID_ARGUMENT EINVAL
KERN_FAILURE various, mostly turn into KASSERTs
KERN_RESOURCE_SHORTAGE ENOMEM
KERN_NOT_RECEIVER <unused>
KERN_NO_ACCESS <unused>
KERN_PAGES_LOCKED <unused>
2001-03-15 06:10:32 +00:00
toshii
300d398485
Move references to arm/arm/disksubr*.c from files.arm to
...
files.{arm26,arm32,dnard}.
2001-03-14 14:39:45 +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
c72a18bddc
Separate out the SIGTRAP (gdb breakpoint) generator from undefinedinstruction()
...
so it's no longer a special case.
2001-03-13 20:22:02 +00:00
bjh21
ce5529eabf
Change undefined instruction handler to use a linked list for each
...
co-processor. This is necessary so we can have several handlers for
CP0 (used as a catch-all for non-CP instructions).
Handlers are now removed using remove_coproc_handler(), rather than by calling
install_coproc_handler() with a NULL handler.
Because install_coproc_handler() can now allocate memory, there's a version
for use at boot time that doesn't.
2001-03-11 16:18:39 +00:00
bjh21
4624a1247e
Make this suitable for use on arm26 as well.
2001-03-11 16:02:21 +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
f61ad8fa80
G/C more unused elements of struct _cpu.
2001-03-11 00:14:56 +00:00
bjh21
d005972168
"needs-flag" for cpu is no longer needed.
2001-03-11 00:11:05 +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
c24be229f5
Don't allow the I and F (IRQ and FIQ disable) flags to be set in the PSR
...
by sigreturn. This prevents user processes disabling interrupts by messing
with their signal context.
2001-03-10 20:08:55 +00:00
rearnsha
bf5e18af99
Add param.h to INCS.
2001-03-10 18:32:25 +00:00
bjh21
0bcb071684
Correct CPU_ID_ISOLD() and CPU_ID_IS7().
2001-03-10 16:19:59 +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
thorpej
2c4c690f14
Add the BUS_DMA_STREAMING flag.
2001-03-07 22:42:16 +00:00
bjh21
4ada0ac792
Create cpufunc_null_fixup() to replace all the CPU-specific abort-fixup
...
routines that did nothing.
2001-03-06 22:29:13 +00:00
matt
b7cd0eeaac
Move arm32/arm32/ast.c to arm/arm32/ast.c
2001-03-06 07:52:35 +00:00
bjh21
3ec18a1616
General prettification (mostly comments).
2001-03-05 23:29:32 +00:00
bjh21
78eae7d026
ANSIfy.
2001-03-05 23:14:22 +00:00
bjh21
83b8de43dd
Move undefined.c from sys/arch/{arm32/arm32,hpcarm/hpcarm} to sys/arch/arm/arm
...
in preparation for making it usable on arm26 as well.
2001-03-05 23:06:14 +00:00
bjh21
25ec015449
Merge setregs() from sys/arch/arm32/arm32/machdep.c,
...
sys/arch/hpcarm/hpcarm/machdep.c and sys/arch/arm26/arm26/vm_machdep.c
into sys/arch/arm/arm/arm_machdep.c.
2001-03-04 23:25:00 +00:00
matt
d6fc837c17
more vm_offset_t/vm_size_t -> {p,v}{addr,size}_t changes
...
move pmap_* declarations to pmap.h. fix conflicts this
exposed (e.g different definitions for pmap_bootstrap).
2001-03-04 19:05:55 +00:00
bjh21
0618726202
ANSIfy while I'm here.
2001-03-04 15:40:17 +00:00
bjh21
496829a88b
Make compat_13_sys_sigreturn() work on arm26, and move it from
...
arch/arm/arm32/compat_13_machdep.c to arch/arm/arm/compat_13_machdep.c.
2001-03-04 15:27:03 +00:00
bjh21
aa34be4532
Make "options ARMFPE" work again.
...
Mostly due to Richard Earnshaw.
2001-03-04 14:32:12 +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
matt
93c0e77b0f
Only define MACHINE & MACHINE_ARCH in port-dependent param.h.
...
Everything else (since it's common) is from <arm/arm32/param.h>
2001-03-04 08:28:51 +00:00
matt
58438fb425
Move compat_13_machdep.c, strstr.c, copystr.S, bcopyinout.S, and
...
bcopy_page.S to arm/arm32 and remove port-local copies.
2001-03-04 08:25:38 +00:00
matt
4679f9115c
Convert some vm_size_t to vsize_t/psize_t. Change vaddr_t to paddr_t
...
where appropriate.
2001-03-04 07:30:19 +00:00
matt
f97f725bc9
Remove OFW hooks. Allow ports to add there own hooks via
...
ARM_EXTRA_DB_COMMANDS.
2001-03-04 05:40:03 +00:00
matt
4a5fdbf390
disksubr*.c are now shared. Start moving files from ../../arm32/arm32
2001-03-04 05:17:41 +00:00
matt
8655276e9a
Move these from arm32/arm32
2001-03-04 05:11:41 +00:00
matt
4e6f220e99
Move these from arm32/arm32
2001-03-04 05:08:43 +00:00
matt
7d33ba27bf
Move from arm32/arm32. s/vm_offset_t/vaddr_t/g
2001-03-04 05:08:09 +00:00
matt
79efd2285e
These are same between arm32 & arm26.
2001-03-04 05:06:51 +00:00
matt
6755bfc8c1
s/vm_offset_t/vaddr_t/g
2001-03-04 04:15:58 +00:00
matt
7af4578cfc
s/vm_offset_t/vaddr_t/g
2001-03-04 03:40:58 +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
c25aec3d9f
PCB convergence, part the first:
...
Move the pointer to the current user trapframe from struct mdproc to struct
pcb (as on arm26). Only tested by compiling kernels on arm32 and
hpcarm (dnard seems to be incomplete anyway). Someone should try running one.
2001-02-28 18:15:42 +00:00
bjh21
b4e78a4e60
Large overhaul for arm26 compatibility. This file is now even more of a mess
...
than it was.
2001-02-28 00:17:18 +00:00
bjh21
748ec610af
opt_armfpe.h isn't arm32-specific any more.
2001-02-27 17:57:55 +00:00
bjh21
4b483d7606
Move "options ARMFPE" to files.arm, so generic ARM files can use it.
2001-02-27 17:56:31 +00:00
bjh21
088fe8f336
<arm/armreg.h> isn't arm26-specific any more.
2001-02-27 17:42:16 +00:00
bjh21
22260fa7fd
Tidy up ARM7500 restrictions.
...
Also insist on precisely one of PROG32 and PROG26's being turned on.
2001-02-27 17:35:49 +00:00
reinoud
5b52fda1e6
cpu_number() macro has no args
2001-02-27 16:00:27 +00:00
reinoud
639dd9ffea
Rollback of patch ... there was a bug in the proc.h
2001-02-27 15:39:57 +00:00
bjh21
807ebaec96
Stop using #ifdef arm32, since future NetBSD/arm ports are likely
...
not to provide it.
For things which are historical oddities of NetBSD/arm26, use #ifndef arm26.
For things which are inherently dependent on the size of program space in use,
use #ifdef PROG32 (and include opt_progmode.h).
2001-02-27 14:11:30 +00:00
bjh21
00b8524181
KNF
2001-02-27 14:00:24 +00:00
reinoud
38fb2a9227
Due to changes in ../sys/proc.h ``cpu_wait(p)'' is now a function due to the
...
prototype defined it in ... added it to arm/vm_machdep.c since all ARM machines
are still single processor anyway
2001-02-27 00:16:48 +00:00
bjh21
6584a7e79d
This file doesn't need <machine/cpus.h>.
2001-02-26 16:33:10 +00:00
bjh21
5a5316cafe
Nothing in this file needs <sys/param.h>, so stop including it.
2001-02-26 16:04:22 +00:00
bjh21
51a131dac3
The cpu_local and cpu_cd elements of struct _cpu were utterly unused. Remove
...
them.
2001-02-26 14:52:11 +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
reinoud
bb5b27eed9
Putting the param.h back into the arm32 resp. hpcarm include directories
2001-02-26 00:08:41 +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
bdc357ddfa
Guess a CPU ID for the ARM700 as well.
2001-02-25 19:10:28 +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
bjh21
9dcb8e583c
Add possible CPU ID for ARM7500 (based on arm/cpu.h).
...
Add macros to distinguish the three formats of CPU ID.
2001-02-25 17:49:34 +00:00
bjh21
740551d1d1
Add PROG32 and PROG26 options.
...
These are intended to indicate what size of program space is in use, and hence
how to get at the PSR bits. They're currently set automatically by the CPU
type options.
2001-02-25 17:23:11 +00:00
bjh21
716d92bdc2
COPY_SIGCODE is never referenced in the kernel, and the comment attached to it
...
is out of date. Assume it's obsolete and g/c it.
2001-02-25 17:04:54 +00:00
bjh21
6f2aa0d0ba
Allow "cpu" to have children. In the long term, this may be the best way to
...
handle co-processors. In the short term, it's a necessary hack to get arm26
kernels to configure.
2001-02-25 15:31:39 +00:00
reinoud
142f62c206
Moved the mainbus files to the arm/conf/file.arm from the arm32 and the
...
hpcarm/conf/files.hpcarm
2001-02-24 21:43:01 +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
toshii
f46f7e3e62
Make hpcarm kernel compile again.
2001-02-24 09:58:43 +00:00
ichiro
d3ce44c170
some include files added newly write into Makefile.
2001-02-24 07:24:36 +00:00
bjh21
6b7ad3aa3e
__HAVE_NWSCONS and __HAVE_DEVICE_REGISTER are MACHINE-dependent.
2001-02-23 22:02:43 +00:00
reinoud
c1f753f9b4
Big patch for merging common include files of the new hpcarm tree and the old arm32
...
tree into the new arm substree. All moved files are relinked with a stub that included
the file from the new location; this might be done better later.
2001-02-23 21:23:45 +00:00
bjh21
352dfb6c36
Update to support VFP formats. Also a half-hearted attempt at armeb support.
...
Note that I'm using __VFP_FP__ to indicate compilation with VFP-format
floating-point data. There doesn't (currently) seem to be a standard define
for this purpose. __VFP_FP__ was suggested by Richard Earnshaw.
2001-02-21 17:43:50 +00:00
bjh21
887895c344
Add CPU_ID_CPU_MASK. Different, but (I hope) more useful definition than
...
arm32 currently uses.
2001-02-21 17:41:58 +00:00
bjh21
32a800e5c0
Install <arm/endian_machdep.h>.
2001-02-17 14:57:08 +00:00
bjh21
8b601afaf3
Re-introduce <arm/endian_machdep.h>, this time using GCC's idea of the target
...
endianness.
2001-02-17 14:55:44 +00:00
bjh21
9b6de1da90
Move cpu_coredump() from arm32/arm32/vm_machdep.c to arm/arm/vm_machdep_arm.c.
...
Also ANSIfy it and use it on arm26.
2001-02-13 22:54:25 +00:00
simonb
e07c392eed
Fix typo in header filename.
2001-02-13 14:11:30 +00:00
bjh21
284047a2b2
Move sendsig() and sys___sigreturn14() from arm26/arm26/vm_machdep.c and
...
arm32/arm32/machdep.c into arm/arm/sig_machdep.c, merging and ANSIfying in
the process.
The code is based on the arm32 version, so I don't think anything should break
there.
2001-02-13 13:19:52 +00:00
bjh21
a4e55e0f13
Shared ARM ptrace(2) implementation. Mostly the same as the arm32
...
version, but with some #ifdefs for arm26.
Also, don't define PT_STEP, since we don't implement it. This should
reduce code size a little.
2001-02-11 17:03:04 +00:00
bjh21
9826a76781
Common <arm/reg.h> (and hence common struct reg) for ARM.
...
This is theoretically backward-incompatible on arm26, but GDB doesn't work there
yet anyway.
2001-02-11 14:51:55 +00:00
bjh21
1178bf4219
Initial potentially sharable <arm/armreg.h>. Used by all arm26 code.
2001-01-22 22:10:39 +00:00
bjh21
8805bd8b56
Unify arm26 and arm32 trapframe structures. The unified trapframe is the same
...
shape as the old arm32 one, but there are a few #defines to keep arm26 code
happy. Anything that depends on the precise shape of the trapframe,
and especially on being able to treat it as an array of registers, has been
updated.
2001-01-20 17:14:19 +00:00
bjh21
2c20803b63
Add extra constants defined by ARM ELF revision B01.
2001-01-18 23:50:50 +00:00
bjh21
48f4b0ea72
Tidy up some comments.
2001-01-18 21:54:28 +00:00
bjh21
2c89ce7e74
Add <arm/frame.h>, for shared stack frame structures. Currently, only sigframes
...
are common.
2001-01-18 21:48:25 +00:00
bjh21
6b017eaa04
Add ARMv5 instructions: BLX, CLZ, BKPT, MCR2, MRC2, CDP2, LDC2, STC2.
...
Also correct a comment.
2001-01-18 21:41:09 +00:00
bjh21
e1e042445c
A bit of extra discussion based on the latest ARM ARM.
2001-01-18 20:42:03 +00:00
bjh21
8df387473f
Move <machine/signal.h> into shared directory.
2001-01-13 17:02:36 +00:00
bjh21
70d40a123c
Make db_disasm_interface const.
2001-01-13 16:53:27 +00:00
bjh21
f52101bc64
Make all the disasm_interface_t arguments const, thus allowing us to
...
allocate them statically in the text segment. Do so for disassemble().
2001-01-13 16:52:01 +00:00
bjh21
792b8500bc
ANSIfy, un-__Pify, and in the case of disassem.c, add an RCSID.
2001-01-13 16:44:25 +00:00
bjh21
78c0ba909e
Separate out sigcode into its own file, since it's shared by arm26 and arm32.
2001-01-13 00:06:50 +00:00
bjh21
e4cacac41c
Storing four-byte pointers to two-character strings is silly. All the
...
auxilliary tables used by the disassembler are now char[][].
The main table still uses pointers because:
- the longest instruction name, "imbrange" is >7 characters long, which would
make the field length wasteful.
- GCC spots that most of the formats are shared and makes them pointers to the
same string, so turning them into char[8] would be counter-productive.
2001-01-12 23:33:07 +00:00
bjh21
ca0f6df99d
Move all the nasty big tables into the text segment. This isn't much use in
...
the kernel at present, but maybe one day when we have a ROMmable kernel...
2001-01-12 22:44:08 +00:00
bjh21
cdae07e857
Correct comments (the code does support LDF, STF, LDC, STC).
...
Support BX (for completeness).
Correct spelling of SWP.
2001-01-12 22:19:15 +00:00
bjh21
e9bb2a7916
Correct immediate constant handling: bits [11:8] are a rotation, not a shift.
...
Also add support for the "P" modifier to TEQ, TST, CMP and CMN, and don't
bother displaying the "S" bit for these instructions.
Together, these correct the disassembly of 0xe33ff3c2 (an instruction in
arm26 irq_handler() from "teqs r15, #0x08000000" to "teqp r15, 0x08000003".
2001-01-12 21:56:18 +00:00
bjh21
d6928b5422
Prototypes for disassemble_readword() and disassemble_printaddr().
2001-01-12 21:35:48 +00:00
bjh21
a5ef6e1f81
Move db_disasm.c into sys/arch/arm/arm. Use arm26 version, since it should
...
generate smaller compiled code.
2001-01-12 21:31:51 +00:00
bjh21
a4047bf10c
Move the generic ARM disassembler from arm32/arm32 to arm/arm.
2001-01-12 13:43:11 +00:00
bjh21
6fa98146d5
Start merging actual code in arm32 and arm26:
...
arm32/arm32/in_cksum_arm32.c -> arm/arm/in_cksum_arm.c
Also move specification of other checksum stuff to files.arm, even though we
use the MI code for that.
2001-01-11 23:27:26 +00:00
bjh21
5159a10d97
Share <machine/elf_machdep.h> between arm26 and arm32.
2001-01-11 22:28:06 +00:00
bjh21
dc037466f5
Install all the headers (arm32 does).
2001-01-11 21:05:03 +00:00
bjh21
1add2fd369
Remove <arm/endian_machdep.h>, since we might get a big-endian ARM port
...
some time.
2001-01-11 21:03:10 +00:00
bjh21
0cc28d54b1
... this one's utterly pointless though.
2001-01-10 19:05:46 +00:00
bjh21
29de7da78b
Header files which don't differ between arm32 and arm26 and can thus be
...
shared.
2001-01-10 19:02:05 +00:00
bjh21
9e0af76a89
Empty file to keep config happy.
2001-01-10 18:33:47 +00:00
bjh21
f4774e6659
Skeleton ARM include infrastructure.
2001-01-10 18:23:02 +00:00