Commit Graph

32852 Commits

Author SHA1 Message Date
scw
7af71ec12b Some tidying up, and a fix for an event counter array overrun
which was responsible for corrupting the kernel IPT.
2002-09-07 20:43:32 +00:00
tsutsui
bf49a76d3b Call setcontext{4,4m}() directly when we already know the CPU type.
(inspired by OpenBSD)
2002-09-07 18:51:05 +00:00
matt
45e5f68016 Allow MAXPHYS to be overriden. Increase the default MSGBUFSIZE to 2 pages. 2002-09-06 19:26:26 +00:00
gehenna
70c867953d make this compile with _LKM. 2002-09-06 17:36:19 +00:00
scw
b5ad0bee9e Numerous fixes, and some more debug instrumentation.
NetBSD/sh5 now reaches multi-user, although there is still
an occasional wedging problem after a wee while of running.
2002-09-06 16:20:48 +00:00
scw
e7281ceb93 - When casting void * to register_t, go via intptr_t instead of uintptr_t
so the register is correctly sign-extended.

 - Some comment fixes.

 - Restore the FP state from the sigcontext if FP regs were saved.

 - Fix up r0 for the benefit of the syscall stub.
2002-09-06 15:48:51 +00:00
scw
3644ff25b2 Small optimisation and tweak to copy{,in,out}str() to make them
work as advertised for corner cases.
2002-09-06 15:41:07 +00:00
scw
ed033ad71d Restore the branch-target registers from the correct place... 2002-09-06 15:39:16 +00:00
scw
905138641a Add the User Status Register to db_regs[]. 2002-09-06 15:37:14 +00:00
scw
690813872b Account for the clock interrupt itself in CLKF_INTR(). 2002-09-06 15:36:16 +00:00
scw
12968d78e9 Double-precision FP regs use a single register_t, despite the FP number
being a multiple of two. Correct for this in the _JB_DR macro.
2002-09-06 15:35:41 +00:00
gehenna
77a6b82b27 Merge the gehenna-devsw branch into the trunk.
This merge changes the device switch tables from static array to
dynamically generated by config(8).

- All device switches is defined as a constant structure in device drivers.

- The new grammer ``device-major'' is introduced to ``files''.

	device-major <prefix> char <num> [block <num>] [<rules>]

- All device major numbers must be listed up in port dependent majors.<arch>
  by using this grammer.

- Added the new naming convention.
  The name of the device switch must be <prefix>_[bc]devsw for auto-generation
  of device switch tables.

- The backward compatibility of loading block/character device
  switch by LKM framework is broken. This is necessary to convert
  from block/character device major to device name in runtime and vice versa.

- The restriction to assign device major by LKM is completely removed.
  We don't need to reserve LKM entries for dynamic loading of device switch.

- In compile time, device major numbers list is packed into the kernel and
  the LKM framework will refer it to assign device major number dynamically.
2002-09-06 13:18:43 +00:00
jdolecek
8b77a9070a put an explicit .MAIN target before the .if make() condition; apparently
.MAIN must be defined for the implicit target rule to kick in
this fixes compilation with call like 'make', i.e. without specified target

another option would be to move the .if make() condition after config(8)
generated goo, since config(8) implicitly generates a .MAIN: directive too,
but the MD .if make() really belongs into (7) misc settings section IMHO
2002-09-06 06:16:57 +00:00
nathanw
48a1b3aab1 Pull in a newer list of mii/phy drivers. 2002-09-05 19:53:15 +00:00
jdolecek
b7632e6c3f actually define sti device, to make 'config GENERIC' at least finish 2002-09-05 19:39:46 +00:00
jdolecek
7403e3d736 put back NetBSD RCS Id removed in rev 1.6 2002-09-05 19:23:11 +00:00
jdolecek
8839507f5b whitespace fix past __KERNEL_RCSID() 2002-09-05 18:34:00 +00:00
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