Commit Graph

32835 Commits

Author SHA1 Message Date
scw
45eb1758c0 Clean this up somewhat, and correct some bad offsets. 2002-09-05 09:53:17 +00:00
erh
5a02e1abe2 Adjust the check for what segments should go on the low priority free list.
If a segment starts exactly at 16M don't try to split it because that causes
the code to try to call uvm_page_physload with a zero length segment.
(kern/17199)
2002-09-05 02:43:00 +00:00
scw
570420748b Need opt_kernel_ipt.h here. 2002-09-04 15:31:06 +00:00
scw
dd3511071d Mondo pmap fixes, including a bunch of DEBUG stuff.
This still needs a bunch of work, but is good enough to get
us to single-user mode.

To paraphrase a quote from Short Circuit: "NetBSD/sh5 is alive!".
2002-09-04 15:30:12 +00:00
scw
94d1813039 Don't inlcude "opt_kernel_ipt.h" here.
Move KERNEL_IPT_SIZE inside _KERNEL check.
2002-09-04 15:26:29 +00:00
scw
ad5e71606f Don't claim we can support a stat clock at this time; I still need to
sort out some clocking issues.
2002-09-04 15:18:14 +00:00
scw
4b8905020d - #define the physical start of RAM.
- Set up a Panic Stack,
 - Don't pre-map the sysfpga at this time.
 - Calculate the CPU speed only if SH5_CPU_SPEED isn't defined.
 - On a related note, make the CPU speed probing code more accurate.
 - Print the CPU speed at startup.
 - Force RB_SINGLE for now, at least until I get a bootloader written.
2002-09-04 15:14:46 +00:00
scw
e94347123e Set SMC_FLAGS_32BIT_READ flag before calling the MI code. 2002-09-04 14:55:42 +00:00
scw
c5c693afff Oops, free bus space via uvm_km_free() instead of pmap_kremove(). 2002-09-04 14:39:56 +00:00
scw
7f0cd9b561 Some bug fixes:
- in _EXCEPTION_EXIT, copy the current ASID to the pre-exception
    context before we switch.
  - fix the pteg hash generation code and EPN masking in the tlb
    miss handler.

Sprinkle some DIAGNOSTIC checks.
2002-09-04 14:37:53 +00:00
scw
8f18047310 Fix a couple of bugs:
- a && which should have been a &
 - advance the PC to the next insn before dealing with a syscall (trapa)

Sprinkle some DEBUG/DIAGNOSTIC code.
2002-09-04 14:34:01 +00:00
scw
5496168b35 In setregs(), set SF_FLAGS_CALLEE_SAVED in the new process' trapframe
to ensure the callee-saved set will be restored when we switch to it.
(It doesn't actually matter to the new process; it just inherits some
crud in those registers from the kernel if we don't set the bit).

Also ensure the strings pointer in r7 is sign-extended.
2002-09-04 14:13:28 +00:00
scw
99355049c8 Zap a couple of bugs caused by finger-trouble during initial development. 2002-09-04 14:04:28 +00:00
scw
e6913f183b Ditch the 2*sizeof(void *) padding when setting up the child's kernel stack. 2002-09-04 14:02:47 +00:00
scw
348a751bf7 A bunch of fixes/simplifications to copyin/out and friends.
XXX: These are still the interim, unoptimised versions.
2002-09-04 14:01:24 +00:00
scw
adaa2cbf20 Don't bother setting SR.BL before double-checking a TLB entry. It's
sufficient just to set SR.IMASK to 0xf (which also allows single-
stepping through the code).
2002-09-04 13:58:36 +00:00
scw
987c8cb69b When tracking movi/shori, don't discard the upper 32-bits before
printing in ILP32 mode. They still contain useful information.
2002-09-04 13:56:09 +00:00
chris
a4e86e6cd5 Found the issue with the kinetic bootloader.
Seems that we assume that the dram blocks are sorted, and that the first/lowest address is also where the kernel is.

If the above is not true, then we're on a kinetic (probably should make a better way to indicate this)  So search for all dram blocks < with starting addr lower than the first block and remove them.

Currently there's minimal performance gain (which is odd as the SDRAM is meant to be faster, I'm wondering if we need to prod some hidden registers to set timing information.

Note that I still get 16MB/s compared with 7MB/s on RiscStation and 93MB/s on my cats.  I'm thinking that something else is seriously nasty on acorn32.
2002-09-03 23:00:40 +00:00
augustss
2c1216208f Replace mr with gtp device. 2002-09-03 18:55:47 +00:00
thorpej
c9dafdb84c Increase the default stack limit to 2M (from 512K on sparc and 1M
on sparc64).
2002-09-03 16:24:35 +00:00
chs
5a29cadda3 add back some cache flushes that are actually necessary.
any time we remove all access to a given virtual page,
we must invalidate the (write-through) L1 dcache.
pmap_remove() still had it, but pmap_kremove(), pmap_clear_reference()
and pmap_page_protect(VM_PROT_NONE) didn't and needed it.
fixes PR 18040.
2002-09-03 05:08:21 +00:00
scw
57ec33c922 s/==/!=/ when checking for counter wrap-around. 2002-09-02 20:04:25 +00:00
scw
f9ab2f4618 g/c a bit of DEBUG code which crept into the last commit. 2002-09-02 14:03:22 +00:00
scw
c3eb6d5b68 Add a function which dumps the machine state following a nested
critical section fault.

Also, in the regular trap() handler, use &proc0 if curproc is NULL.
2002-09-02 14:02:03 +00:00
scw
693ffb8185 Catch the case where a synchronous exception occurs during the critical
section of another exception. This is likely to happen if the kernel
stack is misaligned, has dropped off the bottom of the PCB, or has
otherwise gone into orbit.

In this case, switch to a safe stack, save as much of the machine
state as possible and dump it to the console.
2002-09-02 14:00:25 +00:00
scw
f9fe8e4707 Go to splhigh() before enterring ddb(9). 2002-09-02 13:55:03 +00:00
aymeric
4bbf4d2f6f remove one comment; warp some lines. 2002-09-02 12:54:40 +00:00
leo
449ee49a3d Decrease the vertical frequency. 2002-09-02 12:14:34 +00:00
leo
45501e0df2 Regen. 2002-09-02 12:13:35 +00:00
leo
89532d8b32 Introduce NO_PHYS_NETWORK as a define in the FALCON kernel. This define is
used to turn off the vlan, bridge and pppoe pseudo devices and the NETATALK
protocol.
2002-09-02 12:10:46 +00:00
aymeric
84ccd9ee4b call grfcc_probe() and viewprobe(), even when we are not the console.
This fixes a panic when using a serial console and wsconscfg.
(The monitors list wouldn't be initialized in grfabs.c)
2002-09-02 11:09:48 +00:00
scw
2a7a3cc2f8 In the _EXCEPTION_EXIT macro, don't use r24 until we've finished
accessing the kernel stack, since a TLB miss on the kernel stack
will result in r24 being trashed.
Also clear the ES_CRITICAL flag just before returning to the
previous context.
2002-09-02 08:41:56 +00:00
jdolecek
ed2badbd21 make vers.c depend on ${SOURCES} and remove .PHONY tag for it, so that it
would only be regenerated if any of the input files changed
2002-09-02 07:33:11 +00:00
manu
9d459610ba When the serial port was not checked in hpcboot on hpcarm, writing to
/dev/ttyS0 crashed the kernel. This is because sacom_filltx uses some
uninitialized static variables. Pulling the salues from softc instead
fixes the problem (this is what was done before the drver was moved
from /sys/arch/hpcarm to /sys/arch/arm, anyway).
2002-09-02 05:27:39 +00:00
scw
b02c328efd Track adjacent movi/shori instructions with the same destination register
so we can print the accumulated value.

Print symbols, if possible, when decoding "pta" branch targets, and
"movi"/"shori" accumulated values.
2002-09-01 22:39:56 +00:00
scw
f387921c31 Move registers r10-r13 over to the Caller-saved set, at least as far
as intrframe and trapframe are concerned.

According to the ABI, only the low 32-bits of these registers are
guaranteed to be preserved by the callee. Therefore, we need to
preserve all 64-bits of them in the interrupt trampoline.
2002-09-01 11:40:54 +00:00
takemura
e00064b3e0 Fixed again. Rev 1.7 was incomplete and this device did't work for long time. 2002-09-01 10:45:38 +00:00
scw
75c81c5275 Blah, some of the larger operands could overflow the "opstr" buffer.
Bump the size of all of them to be on the safe side.
2002-09-01 10:07:25 +00:00
scw
d73a178b6b Output a new-line character after disassembling the opcode. 2002-09-01 09:18:52 +00:00
scw
5938c04bbe Yay, single-step now works.
Also do a wee bit tidying up.
2002-09-01 09:01:33 +00:00
scw
1398cd2898 Verify that the lowest 4 bits of the opcode are zero before disassembling.
According to the docs, opcode 0x6ff4fff0 is gauranteed to generate
a RESINST exception on all implementations, so disassemble it as "illegal".
2002-09-01 09:00:35 +00:00
scw
4c7d945594 A full SHmedia disassembler for ddb(9).
ToDo:
 - Symbol support (can't test as yet, due to lack of symbols),
 - Take notice of adjacent "movi/shori" instructions in order to display
   the resulting 32/64-bit value, with symbol lookup if possible.
2002-08-31 22:21:39 +00:00
scw
63fee282ed Always panic in the default/dopanic case, even if kdb_trap() returns. 2002-08-31 09:41:05 +00:00
scw
9c10dc5c22 If DEBUG is defined, enable Cayman's NMI button. 2002-08-31 09:30:02 +00:00
scw
da6c509ffa Pick a better T_NMI code. The previous one clashed with T_AST|T_USER. 2002-08-31 09:25:53 +00:00
scw
c2aa4b74c8 Don't use "Branch Likely" for the NMI case. 2002-08-31 09:25:24 +00:00
scw
9a6575c7df Add T_NMI. 2002-08-31 09:12:59 +00:00
scw
d7dbb0862d Deal with NMIs by jumping through the normal trap() code path.
At the very least, this will dump the machine state. At best,
we get into ddb().

This provides a useful way to regain control using an NMI button
if the cpu decides to spin at a high ipl.
2002-08-31 09:11:56 +00:00
scw
17746914f0 Small simplification to the splx() code path when dealing with soft
interrupts, and fix a couple of nits in the generic soft interrupt code.

Soft interrupts now work.
2002-08-31 08:42:00 +00:00
thorpej
212cb9f78d Add machine-dependent bits of RAS for arm32. 2002-08-31 03:07:32 +00:00