matt
830666e31e
Clean the icache for pages when they are entered as executable and before
...
they were either not mapped at all or mapped as non-executable. Round
memory regions in pmap_bootstrap.
2002-04-03 00:12:07 +00:00
kleink
032762e1e9
On the 601, construct the CPU counter value from the RTC[UL] registers.
2002-03-26 21:50:39 +00:00
matt
12810ed37d
Use size_t in prototype (so this will be LP64 clean for PPC64 someday).
...
Calculate len separately for icache & dcache in case each has different
cacheline widths. Make the code for both loops the same except for the
dcbst/icbi. Deal with sizes >=2GB properly (like that'll happen but ...)
2002-03-26 21:20:24 +00:00
kleink
7e9d845469
* Add MPC601 versions of BAT_VA_MATCH_P() and BAT_VALID_P().
...
* Make the extern declaration of the battable array incomplete;
a given port might want to use a differently-sized definition to
support the 601 BAT implementation, where blocks map up to 8M only.
2002-03-25 21:35:45 +00:00
eeh
de5252061e
Use properties to pass around board-specific information rather than a
...
structure.
2002-03-15 20:59:23 +00:00
eeh
a3833eb1c6
Add this file.
2002-03-13 23:59:58 +00:00
eeh
2277f9518e
Delete this file. It's only relevent to 405gp.
2002-03-13 23:09:52 +00:00
eeh
2b55b12b59
405gp-specific DCRs.
2002-03-13 23:09:11 +00:00
eeh
ba8ac60043
pmap improvements:
...
Remove the cache flush routines that have been moved to cpu.c
Make sure we clear out the unused PA bits in the TTE which causes breakage
on some MMU models.
2002-03-13 00:47:58 +00:00
eeh
4b971968ac
Add cache_info to cpu_info which provides details about D$ and I$
...
sizes and line sizes. This is needed for cache flusing, clearing
memory, and several other operations. This information is accessible
from userland through a new CPU_CACHEINFO sysctl.
2002-03-13 00:38:13 +00:00
chs
bd2a5f591d
switch all mpc6xx powerpc ports to NEWPMAP by default.
...
the old pmap is still available with the OLDPMAP option.
2002-03-09 23:35:56 +00:00
nathanw
3be9fbe42e
Move #include <dev/sysmon/sysmonvar.h> inside #ifdef _KERNEL.
2002-03-06 06:37:17 +00:00
kleink
8a79f029ad
VRSAVE is SPR 256, not 238.
2002-03-04 13:37:42 +00:00
nathanw
1eeb28024d
Add sysmon data structures to struct cpu_info.
2002-03-03 07:09:09 +00:00
matt
997374a8dd
Add MPC7455
2002-03-03 06:47:25 +00:00
nathanw
5d5aeaa547
Add bit definitions for the MMCR's, and event numbers for the events
...
that are common to the G3 and G4.
2002-03-03 06:38:31 +00:00
nathanw
7a92615001
Correct the SPR numbers of PMC3 and PMC4.
...
SIA wasn't retconned, but the SPR number was wrong. Re-add it, and add
USIA.
2002-03-03 05:32:37 +00:00
nathanw
c2b8ec655a
Delete the retconned SIAR SPR.
2002-03-03 05:17:48 +00:00
nathanw
ee2cbbfe4a
Add MPC7xx/7xxx performance monitor control registers (MMCR0-2, UMMCR0-2).
2002-03-03 05:15:44 +00:00
nathanw
28b2a20fb9
Add bit definitions for the MPC750 thermal management registers.
2002-03-03 04:31:53 +00:00
kleink
4a513728e8
Add end-of-comment missing in previous.
2002-03-02 21:36:27 +00:00
kleink
dc0a08feaa
Note that Guarded bit is not implemented on the 601.
2002-03-02 15:07:35 +00:00
simonb
4324f37586
Use "#define<tab>".
2002-02-28 03:17:23 +00:00
kleink
543f1e7a2d
Handle the 601's Run Mode/Trace Exception as well.
2002-02-22 13:51:40 +00:00
simonb
2d8577fb83
Clean up some rampant code duplication wrt ieee number handling:
...
- Add alignment-safe double and float unions.
- Use the above for the __infinity and __nan constants on all
architectures that use the standard ieee754 representation of
those constants.
- Add a single copy of various ieee754 math functions (frexp, isinf,
isnan, ldexp and modf) that had numerous duplicates among the
arch-specific directories.
- Use the above functions on all architectures where the generic C
versions where used. Architectures that had local assembly
routines are untouched (for those functions only).
2002-02-19 13:08:12 +00:00
kleink
11402be7a5
Header for the 601's I/O Controller Interface Address Translation
...
segment register format.
2002-02-09 17:44:40 +00:00
briggs
9827f27b9f
Update from thorpej:
...
* Define type and size of _mcount stub to make PIC code happy.
* Rename mcount to __mcount to get it out of the user namespace.
2002-02-07 05:13:35 +00:00
kleink
69e30815cf
Add a printf bitmask for HID0.
2002-02-06 19:59:30 +00:00
kleink
cd6a8bc27c
Add MPC601 MQ and RTCU/RTCL SPRs.
2002-02-05 19:49:17 +00:00
dbj
0ac4681659
add support for kgdb over zs
2002-01-06 00:35:10 +00:00
dbj
1b65d8fd30
fix single stepping and continuing from breakpoints in ddb
2001-12-27 10:32:23 +00:00
briggs
25e9f1f519
Provide basic bus_space_mmap(). Noted by self and in PR port-powerpc/14873.
...
This at least allows the compile to complete. There are still Issues with
vga_pci.c's assumptions about a PC-ish environment.
2001-12-10 20:30:21 +00:00
thorpej
51535d4bf5
Add support for dumping ELF-cormat core files.
2001-12-09 23:05:56 +00:00
chs
f0d9c43220
fix macppc MULTIPROCESSOR compilation.
2001-12-05 05:02:10 +00:00
thorpej
fbd78c8e3c
Add PVR processor type fields for IBM 405GP and IBM 405L.
2001-12-02 20:11:49 +00:00
simonb
163e969b09
Include bit definitions for the Debug Status Register; from Artem Belevich
...
at Riverstone Networks.
2001-10-29 02:02:19 +00:00
simonb
d7357337e0
Fix typo, noted by Artem Belevich.
2001-10-21 15:09:36 +00:00
chs
62b6d75cc8
implement pmap_wired_count().
2001-09-23 08:12:59 +00:00
wiz
456dff6cb8
Spell 'occurred' with two 'r's.
2001-09-16 16:34:23 +00:00
eeh
93b54eb36a
Implement pmap_growkernel().
2001-09-11 04:35:43 +00:00
chris
0e7661f023
Update pmap_update to now take the updated pmap as an argument.
...
This will allow improvements to the pmaps so that they can more easily defer expensive operations, eg tlb/cache flush, til the last possible moment.
Currently this is a no-op on most platforms, so they should see no difference.
Reviewed by Jason.
2001-09-10 21:19:08 +00:00
matt
a140263932
Add new 7450 SPRs
2001-08-30 21:55:27 +00:00
briggs
89829e4825
defines for OPENPIC_ICR / serial mode.
2001-08-30 03:08:52 +00:00
simonb
352f878e45
Gah, fix a number of channel status/select bitfields.
2001-08-29 23:32:21 +00:00
matt
dfbb14ad68
__syncicache needs to be exports to userspace as well as the kernel.
2001-08-28 03:03:43 +00:00
matt
550ffff41b
Make all powerpc ports use a common Makefile.powerpc (except walnut)
...
Enforce -Wmissing-prototypes -Wstrict-prototypes for all ppc ports.
Split out macppc cpu support and make common to mpc6xx ports. Make
other mpc6xx ports use it. Add evcnts for mpc6xx traps.
2001-08-26 02:47:33 +00:00
matt
076780a19c
Include the 7410/7450 hid definitions
2001-08-22 21:05:25 +00:00
simonb
e807a5f821
Fix typo, noted by UCHIYAMA Yasushi in private mail.
2001-08-14 04:32:56 +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
matt
78c7d18804
Turn on PMAP_MAP_POOLPAGE
2001-06-28 20:31:37 +00:00
simonb
f285587c4e
Fix typo in emac0 base address.
2001-06-25 01:49:15 +00:00
simonb
8980655597
Move 405GP registers, addresses and other info to ibm405gp.h. Leave only
...
board-specific addresses and other info in walnut.h.
2001-06-24 01:13:11 +00:00
matt
dde0daca06
Use __asm __volatile. Use _POWERPC_SPR_H_
...
Add PTE_RO/PTE_RW for old pmap.
2001-06-23 03:16:11 +00:00
matt
41d73006f1
DMISS/DCMP/HASH1/HASH2/IMISS/ICMP/RPA are also valid on the MPC6XX
...
(specially the 603 and maybe the 601)
2001-06-22 00:01:25 +00:00
matt
756d684c5a
Rename/enumerate the PTE protection bits to their real purposes.
2001-06-21 18:03:37 +00:00
briggs
279833d138
Build for kgdb as well as for ddb (mutually exclusive).
2001-06-20 02:40:14 +00:00
simonb
97b16e911f
Move the DSISR SPR bit definitions from <powerpc/mpc6xx/pte.h> to
...
<powerpc/spr.h>. Remove unused ISI/SRR1 bit definitions.
2001-06-19 07:14:23 +00:00
matt
c7c7dab8f1
Stop overloading unused bits in the pte. Use the low 12bits of the vaddr
...
instead to store them. Add a macro to fetch the vaddr without them.
Make all variables/routines prefixed with pmap_
Cleanup & fix some of the vsid bitmap usage.
Cleanup DEBUG printfs. Add some more checks to pmap_pvo_to_pte.
2001-06-15 18:26:06 +00:00
simonb
18b2f7e6a1
Add a port to IBM's PPC405GP Reference Board (the "walnut")
...
by Eduardo Horvath and Simon Burge of Wasabi Systems.
IBM 4xx series CPU features:
- New pmap and revised trap handler.
- Support on-chip timers, PCI controller, UARTs
- Framework for on-chip ethernet and watchdog timer.
General PowerPC features:
- Add in-kernel PPC floating point emulation
- New in{,4}_cksum that is between 1.5 and 5 times faster than the
old version depending on CPU type.
General changes:
- Kernel support for generic dbsym-style symbols.
2001-06-13 06:01:44 +00:00
tsubai
713feac239
Include powerpc/mpc6xx/{bat.h,pte.h} if PPC_MPC6XX is defined.
2001-06-12 17:20:50 +00:00
tsubai
fafb5d4bc3
Make the new pmap optional. Use the old (stable!) pmap by default.
2001-06-10 11:01:26 +00:00
briggs
a2b115fa4c
Up the default # of NMBCLUSTERS to 2048 (GATEWAY) & 1024 (non-GATEWAY)
...
from 512/256.
2001-06-10 02:28:57 +00:00
matt
75a27eccff
Rename pte_spill to pmap_pte_spill. Fix pmap_clear_{referenced,modify}
...
to return the previous state of the bit. Make it compile under
-Wmissing-prototypes -Wall. Change around some debug stuff.
2001-06-08 00:16:24 +00:00
matt
e38a49d835
Include a common bus.h and bus_dma.c that powerpc ports can use
...
if they so choose.
2001-06-06 17:37:37 +00:00
matt
938edd5b75
Introduce a new & faster pmap for the MPC6xx (60x, 7xx, 7xxx) PPC CPUs.
...
Move MPC6xx dependent header files to powerpc/include/mpc6xx/
2001-06-06 17:36:01 +00:00
tsubai
1a891f65d4
One more gcc-2.95 issue.
2001-05-31 09:19:25 +00:00
tsubai
ba87a6d444
Add gcc-2.95 version.
2001-05-30 20:37:48 +00:00
tsubai
2eae10adb5
Inline bswap{16,32} when the argument is constant.
2001-05-30 13:08:34 +00:00
mrg
67afbd6270
use _KERNEL_OPT
2001-05-30 11:57:16 +00:00
matt
e2148768dc
Change _MACHINE_PIO_H to _POWERPC_PIO_H
2001-05-27 20:59:15 +00:00
simonb
96a430ba30
If _SOFT_FLOAT is defined, pull floating point va_args from the GPR
...
area and not the FPR area (by having the double argument type test
always fail).
Fixes problems using <stdarg.h> with -msoft-float.
2001-05-16 15:41:03 +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
soren
945b972563
PPC machine type tags haven't been used for a while.
2001-05-03 13:11:24 +00:00
martin
77a926d775
Avoid nesting structure declarations, where the nested structur is used at
...
the global level later. Besides stylistic matters, this actually breaks C++
programs (indirectly) using this header.
2001-04-30 15:30:39 +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
kleink
99054d7a6c
Add definitions for C99 fastest minimum-width integer types.
2001-04-26 16:25:19 +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
7f10ba88b1
#define away pmap_update() in <machine/pmap.h> so that no function
...
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +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
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
tsubai
ce8902b7fe
Merge my MP tree. At this point, Daystar dual 604 card (i.e. Power Macintosh
...
9500/180MP and 9600/200MP) runs at least into single-user mode, possibly
multi-user mode (not stable yet).
2001-03-22 04:11:46 +00:00
matt
7e5ee89ff3
Nuke vm_offset_t, vm_size_t from powerpc.
2001-03-04 03:25:34 +00:00
wiz
08ca85d04d
De-lint. Reviewed by christos.
2001-02-09 15:54:18 +00:00
tsutsui
93a1c84cac
Add pio.h to INCS.
2001-02-07 12:43:52 +00:00
briggs
2f624f78d6
Share a single pio.h instead of having 4 nearly-identical copies.
2001-02-05 19:33:54 +00:00
briggs
e96035c57c
Tsubai has convinced me that openpic_init() should remain machine-dependant
...
as the details might differ between archs, and passing the various options
leads to some clutter.
2001-02-05 19:22:23 +00:00
briggs
522ec180e9
Build with -Wall -Wetc.
2001-02-04 17:38:10 +00:00
briggs
044caccfff
Split OpenPIC support into powerpc so ports only need minimal custom
...
configuration. openpic_init() now takes a single argument that is the
base of the OpenPIC register space.
2001-02-02 06:11:52 +00:00
takemura
c5fd828440
replace 'long long' with int64_t to compile stand alone program with
...
compiler other than GCC.
2001-01-03 10:08:55 +00:00
itojun
efa2b7073c
make mbstate_t bigger (32 -> 128 bytes).
...
XXX if you have libc after citrus locale import, please recompile libc,
and your applications that use mbstate_t (rather rare). really sorry
for the mess.
2000-12-26 10:35:28 +00:00
itojun
823498203f
populate _BSD_MBSTATE_T_. add warning regarding to rune_t.
2000-12-21 06:03:47 +00:00
matt
f80f1b8624
Preliminary AltiVec support.
2000-11-25 03:03:35 +00:00
matt
1420862fba
Add comments and AltiVec reg state.
2000-11-23 02:35:10 +00:00
tsubai
11b48d8a4d
Thermal Management Interrupt is available on 750, too.
2000-11-20 15:16:04 +00:00
matt
95a8447ccf
Add G4 specific exceptions (include AltiVec).
2000-11-19 20:48:20 +00:00