Commit Graph

1098 Commits

Author SHA1 Message Date
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
tsutsui 882785d057 Cast pa values to u_long in DEBUG printfs for _MIPS_PADDR_T_64BIT ports.
XXX should use unsigned long long format?
2001-11-04 14:07:13 +00:00
chs fa6e18a029 in pmap_extract(), detect unmapped users addresses too. 2001-11-01 07:37:36 +00:00
thorpej e8ee04475d - Add a new vnode flag VEXECMAP, which indicates that a vnode has
executable mappings.  Stop overloading VTEXT for this purpose (VTEXT
  also has another meaning).
- Rename vn_marktext() to vn_markexec(), and use it when executable
  mappings of a vnode are established.
- In places where we want to set VTEXT, set it in v_flag directly, rather
  than making a function call to do this (it no longer makes sense to
  use a function call, since we no longer overload VTEXT with VEXECMAP's
  meaning).

VEXECMAP suggested by Chuq Silvers.
2001-10-30 15:32:01 +00:00
shin 4843675231 fix virtual alias problem in pmap_copy_page().
to eliminate virtual alias, source page should also be flushed.
fixes PR/13587.
2001-10-27 05:44:45 +00:00
shin e003f33738 remove " in assignment of ENDIAN.
fixes mipseb link breakage.
2001-10-26 08:25:54 +00:00
jmc 6d536163de Change defaults for kernel compiles. Default all to USETOOLS?=no and have
the etc Makefile override that by putting USETOOLS into $.MAKEOVERRIDES
This way the default for kernel compiles is still to use the installed
toolchain instead of depending on $TOOLDIR. $TOOLDIR can be used by
simply adding USETOOLS=yes to the command line as usual.

Adjust each ports template to set the default no setting and also pull in
bsd.own.mk if they weren't already to ensure they'll build correctly
with the new toolchain setup.
2001-10-26 06:45:33 +00:00
thorpej 90a2bc2cf7 For MIPS kernel Makefiles, don't set ENDIAN in std.${MACHINE}. Instead,
explicitly set MACHINE_ARCH to the appropriate thing.  Makefile.mips will
then set all of the internal variables it needs to accordingly.
2001-10-23 20:40:00 +00:00
thorpej 2c5ebcddfb Use MACHINE, not TARGET_MACHINE. 2001-10-23 18:57:32 +00:00
uch d8c8db85ef R5900 support.
COP0_SYNC
	In R5900 mtc0, tlbr, tlbp, tlbwi, tlbwr must be followed by sync.p.
	if defined MIPS3_5900, COP0_SYNC is defined as sync.p. else nothing.
 IPL_ICU_MASK
	mask interrupt directly ICU instead of SR.IM.
	I've added this feature to support software interrupt for R5900.
	and this option may be useful for platform which has cascaded ICU.
2001-10-16 16:31:32 +00:00
simonb 6048ce9247 Use a separate variable (${KERNLDSCRIPT}) for the name of the kernel
ld script, so it can be used in other places.
2001-10-08 10:14:20 +00:00
simonb 4471b94432 This Makefile.inc is used for building LKMS - add the standard MIPS
kernel compile flags as well as "-mlong-calls" so that calls from the
LKM in KSEG2 work to the kernel in KSEG0.

MIPS LKMs now build and can be loaded with the right Magick command line
args to modload(8).  Changes to modload coming...

Thanks to Chris Demetriou for pointing out the -mlong-calls gcc option
that had been staring me in the face all along.
2001-10-05 15:36:46 +00:00
simonb 1f8636506e Use ".-include" instead of the ".if exists(...) ..." dance. 2001-10-05 15:14:18 +00:00
simonb bc2ec5e553 Use a single ldscript instead of separate scripts for either endianness;
use command line parameters to ld(1) instead to set the endian format.
Clean up some endian decisions in mips/conf/Makefile.mips.
Wrap some long lines.
2001-10-05 05:03:27 +00:00
manu 2d16421460 Moved COMPAT_LINUX config stuff from arch/sgimips to arch/mips, so that it's
available on all Mips ports.
2001-09-23 19:45:41 +00:00
manu 151b90c898 Added Linux emulation support to Mips port 2001-09-22 21:29:20 +00:00
jdolecek ef8abe0767 Make the setregs hook emulation-specific, rather than executable
format specific.
Struct emul has a e_setregs hook back, which points to emulation-specific
setregs function. es_setregs of struct execsw now only points to
optional executable-specific setup function (this is only used for
ECOFF).
2001-09-18 19:36:32 +00:00
jdolecek a0a75493d8 only define the cpu_exec_ecoff_*() stuff #ifdef EXEC_ECOFF 2001-09-17 17:43:06 +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
chs 7d353e82b0 - in PMAP_IS_ACTIVE(), the kernel pmap is always active, and we don't
need to check for curproc being non-NULL since none of the pmap
   interfaces which are legal to use in interrupt handlers use this macro.
 - use the hit op when flushing the cache in pmap_kremove().
 - avoid trusting the optimizer in pmap_clear_reference().
 - fix pmap_clear_modify() to reset the mod-bit emulation so we can
   detect further modifications to the page, also flushing the cache
   for any mappings which might have dirty lines.
2001-09-09 19:48:12 +00:00
simonb c3c682fc46 Oops, <sys/sched.h> isn't asm safe, move inside an "#ifndef LOCORE" block. 2001-09-04 09:23:27 +00:00
simonb 62fb390c64 May as well include <mips/cpuregs.h> in <mips/cpu.h> once rather than
in every MIPS port's <machine/cpu.h>.
2001-09-04 06:23:15 +00:00
simonb 214f5366ea Centralise struct cpu_info declaration and related info to <mips/cpu.h>. 2001-09-04 06:19:21 +00:00
chs 8677b0ddf4 rearrange pmap_kenter_pa() to map unmanaged pages uncached as well.
this is apparently needed on the arc port.
slight optimization in pmap_kremove().
2001-09-01 17:08:19 +00:00
simonb bbe2823aee ANSIfy, KNF. 2001-08-27 06:18:08 +00:00
chs a026d7bc78 handle unmanaged pages correctly in pmap_remove_pv(),
fixes crashes when exiting X.
2001-08-26 06:03:11 +00:00
chs c489e9bff4 add missing pmap_update(). 2001-08-19 18:09:20 +00:00
simonb 11362870f4 Reorder some function prototypes more logically. 2001-08-18 04:13:28 +00:00
simonb 02f580ae38 Fix lint problem introduced in last change - if `lint' is defined,
#define away __alignof__.  Still produces some warnings, but at least
they're not fatal anymore.

Problem noted by Rafal Boni in private mail.
2001-08-18 03:27:02 +00:00
simonb 0667c562f6 Describe the widths of various coprocessor 0 registers (for mips1,
mips3, mips32 and mips64).
2001-08-17 07:53:33 +00:00
simonb dd6c57e790 Fix for single-byte mbufs. 2001-08-17 07:21:07 +00:00
simonb b2b2f7ccfa Fix va_arg() problem when adjusting argument pointer when a structure is
passed which is larger than an int but has int alignment.  As well as
fixing the described problem, this is the same way it is handled in the
Irix and Ultrix header files.

Problem and suggested solution by Uros Prestor in port-mips mailling
list.
2001-08-17 07:15:16 +00:00
simonb 28a25d9058 _Never_ make a cosmetic change to a comment without test-compiling... 2001-08-15 14:27:00 +00:00
simonb e77212ece8 Add some MIPS, Alchemy and SiByte CPU PRIDs (from oss.sgi.com). 2001-08-15 03:01:37 +00:00
simonb d1cb410de4 Add Alchemy and SiByte company IDs (from oss.sgi.com). 2001-08-15 02:45:08 +00:00
simonb 4c76cec1d3 Remove parameter names from function prototypes. 2001-08-15 02:43:34 +00:00
soda 7e7514b7f1 OP_BLTZAL was defined twice. 2001-08-13 18:48:48 +00:00
chs be706f969f in vunmapbuf(), call pmap_remove() explicitly since uvm_km_free_wakeup()
will soon no longer do it for us.
2001-08-04 04:28:49 +00:00
chs f6a81a1ac7 remove the uncached idle-loop page zeroing.
(to be replaced by a version that uses the cache...)
2001-08-04 04:26:48 +00:00
chs 873e926c7b remove remaining spl calls, they're not needed.
remove some checks for impossible conditions.
in pmap_enter(), only call pmap_remove() to remove an existing mapping
if there actually is an existing mapping.

in pmap_remove_pv(), don't flush the MIPS1 cache when removing the last mapping.
this was added in rev 1.97, to avoid stale data being left in the cache
when the page is zeroed bypassing the cache in pmap_zero_page_uncached().
we've since found that bypassing the cache for idle-loop page zeroing
doesn't work very well anyway, so we don't do that anymore.
so now we can remove the extra cache-flush.
remove pmap_zero_page_uncached() while I'm thinking of it.

various other cleanup.
2001-08-04 04:25:37 +00:00
chs fb5f7652b6 fix think-o in pmap_kenter_pa(). 2001-07-31 05:29:24 +00:00
chs e2de9310c3 fix pmap_extract() to handle unmapped kernel addresses. 2001-07-28 17:18:59 +00:00
rafal e9ad38e77d Fix bug in mips3_proc_trampoline: SR wasn't disabled on entry, allowing an
interrupt to sneak in after EXL had been set; the interrupt EPC was stale
as PC isn't saved if EXL is set, causing the eret to return to the wrong
place and leading to kernel-mode TLB misses on user addresses.  The bug
was discovered by the japanese NetBSD/*mips folks and the same fix was
found independently by shinohara-san (shin@netbsd.org).
2001-07-24 23:13:33 +00:00
oster fd5247de51 By adding a well-placed space or two, 'make depend' no longer loses
due to a directory name like 'arc.current' messing up a sed substitution.
2001-07-19 01:46:15 +00:00
simonb 19014d376c Modernise data and stack size limits. 2001-07-18 04:15:55 +00:00
takemura a0b378689f Suppress warning message:
warning: duplicate script for target "fp.o" ignored
And delete verbose ifs.
2001-07-15 06:38:07 +00:00
simonb 5d17649545 bcopy -> memcpy 2001-07-09 01:43:26 +00:00
simonb c23e6dcb90 b{cmp,copy,zero} -> mem{cmp,cpy,set}
Also remove some unnecessary argument casts.
2001-07-07 14:20:59 +00:00
thorpej 93c03c9726 - Implement a real pmap_kenter_pa()/pmap_kremove().
- Use pools for pmap structures and pv_entry structures.
- Remove a bunch of splvm()/splx(), no longer needed now that
  pmap_kenter_pa() and pmap_kremove() are as they should be.

Mostly from Chuck Silvers.
2001-06-26 00:31:32 +00:00
thorpej 1111f1d461 Add some macros to decode the BONITO revision register. 2001-06-25 20:15:03 +00:00