Commit Graph

480 Commits

Author SHA1 Message Date
chs
4c1a2f36f8 fix pmap_changebit() to look for the bit in the page attrs
in addition to any PTEs.  fixes PR 14220.
2001-10-13 18:28:10 +00:00
mycroft
2668b4d43f Unlike most other platforms, PowerPC uses a 1:1 mapping for d_mmap and
pmap_phys_address()...
2001-09-30 01:23:47 +00:00
mycroft
49c87d1447 /dev/mem was severely broken. If you tried to access outside managed memory,
it would go into an infinite loop.  Instead, allow such I/O.

Also, implement mmap(2) for /dev/mem.
2001-09-29 23:36:54 +00:00
wiz
4c99916337 va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).

Improved by comments from enami and christos -- thanks!

Heimdal/krb4/KAME changes already fed back, rest to follow.

Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +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
chs
1661137341 it's perfectly legal for pmap_extract() on the kernel pmap to not find
anything mapped there, even though it never used to happen.  with today's
other changes it happens a lot now, so remove the debug check for it.
2001-09-16 05:40:46 +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
8402e4d93f Fix a missing restore interrupt. disable interrupts around pvo_enter in
pmap_kenter.  Shouldn't be needed but ...
2001-09-09 04:35:22 +00:00
matt
04bdd02c1a Make pmap_pte_insert STATIC so it will show up in DEBUG kernel with DDB
traces.
2001-08-30 22:06:44 +00:00
matt
4a580ee45e Make sure to restore SR 0 since returning from a syscall is actually
one way of doing a process context switch.
2001-08-30 22:00:48 +00:00
matt
a140263932 Add new 7450 SPRs 2001-08-30 21:55:27 +00:00
matt
50b056bc3a Teach db_trace that some low addresses are ok to trace. 2001-08-30 21:44:58 +00:00
briggs
89829e4825 defines for OPENPIC_ICR / serial mode. 2001-08-30 03:08:52 +00:00
briggs
0ea9d87eb1 Create an opt_openpic.h and add both OPENPIC and OPENPIC_SERIAL_MODE to it. 2001-08-30 03:08:22 +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
simonb
7ec91f6656 Include ${THISPPC}/conf/Makefile.${TARGET_MACHINE}.inc if it exists (ala
mips' Makefile.mips).
2001-08-26 10:59:26 +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
d98bf76f56 Fix bootstrap loss of memory. Fix pmap_activate problem. Revamp debug
messages.
2001-08-22 22:17:57 +00:00
matt
076780a19c Include the 7410/7450 hid definitions 2001-08-22 21:05:25 +00:00
wiz
c52d355d71 "wierd" is weird. 2001-08-20 12:20:01 +00:00
chs
c489e9bff4 add missing pmap_update(). 2001-08-19 18:09:20 +00:00
simonb
e807a5f821 Fix typo, noted by UCHIYAMA Yasushi in private mail. 2001-08-14 04:32:56 +00:00
tsutsui
17f8dae7c0 This file is no longer used. (moved to ofppc/soft_spl.c) 2001-08-09 16:08:34 +00:00
matt
f3011c96b4 Fix thinko. Do the mask before the divide. 2001-08-08 21:09:58 +00:00
chs
ea127ad258 use pmap_k* in pagemove(), ie. for buffer cache pages.
in vunmapbuf(), call pmap_kremove() explicitly since uvm_km_free_wakeup()
will soon no longer do it for us.
2001-08-04 07:42:07 +00:00
wiz
035b63a542 auxilliary -> auxiliary 2001-07-26 22:53:13 +00:00
wiz
611461bc5e memcpy -> memmove. Noted by Tsubai Masanari. 2001-07-22 13:21:04 +00:00
wiz
0ef3731e14 Replace memcpy's of obviously overlapping regions with memmove.
Noted by Izumi Tsutsui.
2001-07-22 13:08:09 +00:00
wiz
c5a6be17f4 bcopy -> memcpy, bzero -> memset, bcmp -> memcmp.
Reviewed by Matt Thomas, ok'd by Tsubai Masanari.
2001-07-22 11:29:44 +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
toshii
4866f1a22b Fix typo. s/extention/extension/ 2001-07-05 08:38:24 +00:00
matt
454a630dbd Print both the lower and upper dbat register when printing dbat registers. 2001-06-30 02:03:16 +00:00
matt
39fa08a172 Reset segment registers 1-7 upon entry to kernel (via trap or interrupts)
so that the bat spill code won't run into spurious valid user pages and
treat them as kernel pages.  Restore segment registers 1-7 upon return to
user mode from either a trap or interrupt.   XXX  eventually do all 16 SRs
2001-06-30 01:24:13 +00:00
matt
7c5977ea4f Fix a spurious debug printf.
Fix pmap_procwr to not check a NULL pvo.  (Duh!)
Reformat pmap_print_mmuregs.  Actually *fill in* the dbat registers.
2001-06-30 01:21:24 +00:00
matt
03ff023c76 Onfault needs to be done even from interrupts so restore that. Default
to EFAULT for the error.
2001-06-28 21:27:47 +00:00
matt
6ca9622494 Add pmap_interrupt_* to pmap_*map_pa. Remove interrupt toggling from
pmap_pte_spill.  Fix pmap_protect.  Macroize mfsrin instruction.
2001-06-28 20:35:21 +00:00
matt
78c7d18804 Turn on PMAP_MAP_POOLPAGE 2001-06-28 20:31:37 +00:00
matt
fdb7751e9c Update for thorepj's UVM changes. Don't even try to call uvm_fault or do
pcb_onfault recovery while in interrupt mode.  Just die.  Print out error
returned from uvm_fault (-1 for interrupts).
2001-06-28 18:33:39 +00:00
matt
87a64549c4 Change a bcopy to a structure copy. 2001-06-28 15:23:39 +00:00
matt
6bad4f04a0 Record any stack growth. This fixes a serious problem with core dumps.
Without this change, coredumps will only contain one page of stack
regardless of how many pages of stack the process actually has.
2001-06-26 13:00:18 +00:00
simonb
f285587c4e Fix typo in emac0 base address. 2001-06-25 01:49:15 +00:00
simonb
78cdef0bfc Move on-chip 405GP devices to powerpc/ibm4xx/dev. 2001-06-24 02:13:37 +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
7effaaaa7c Disable interrupts when dealing with pvo lists. clean up some things.
Keep track of executable ness of pages.  Of sync icache executable pages.
2001-06-23 03:17:32 +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
e25aa0ea82 Use pmap_kenter_pa instead of pmap_enter for phys_map 2001-06-23 03:10:59 +00:00
matt
5d30ec2c7e Use SPR_xxx for the *MISS HASH CMP, etc. 2001-06-23 02:36:14 +00:00