Commit Graph

224 Commits

Author SHA1 Message Date
jake
da5146baa0 Add page fault and high level tsb miss handlers. 2001-08-06 02:32:38 +00:00
jake
9ce2e78540 Handle switching switching mmu contexts and mapping the new primary tsb.
Rework some register usage and code placement.  Comment.
2001-08-06 02:31:30 +00:00
jake
2cab410023 Save the primary mmu context around calls to the prom, and install
nucleus context.  The prom runs at trap level 0, so there's no
implicit nucleus context and we have to force it.
2001-08-06 02:29:13 +00:00
jake
7502082306 Remove some debug code. 2001-08-06 02:27:59 +00:00
jake
b0d8e7b999 Handle managed and unmanaged mapping better. Allocate an vm object for
the tsb pages.
2001-08-06 02:27:34 +00:00
jake
84768d84fd Add trap handlers for dmmu faults from user mode, and for faults from
accessing user address space in kernel mode.
2001-08-06 02:26:04 +00:00
jake
1fc6cd3965 The kernel runs at a much lower address now. 2001-08-06 02:24:52 +00:00
jake
8a08e4a1c6 Fix macros for dealing with tte contexts.
Add tte bits for initializing tsbs and for specifying managed mappings.
2001-08-06 02:24:18 +00:00
jake
8117bcdd30 Oops. Last commit to tsb.h should have gone here.
Fix macros for eadling with tte contexts and add macros for sfsr fields.
2001-08-06 02:21:53 +00:00
jake
9059da7a9f Fix macros for setting and extracting the context field in ttes and
add macros for the fields in sfsr.
2001-08-06 02:20:36 +00:00
jake
89093137c8 Add a vm_object and page count to struct pmap for allocating tsb pages. 2001-08-06 02:19:52 +00:00
tmm
4463b32eb5 Sigh. Add two files needed for the sparc64 fp contect switching code
that were forgotten in the last commit.

Pointy hat to: 	tmm
2001-08-05 03:47:02 +00:00
tmm
91c3a007e5 Add floating point context switching code for sparc64.
Reviewed by:	jake
2001-08-04 18:55:15 +00:00
jake
424df267d7 Move some code related to managing pv entries from the pmap module to
the pv module.  It works now that vtophys for sttes works.
2001-08-03 01:27:15 +00:00
jake
524b50ae8e Fix a bug translating virtual translation table entry addresses to physical
addresses.  It helps to use the physical address that the virtual address
actually maps to (doh!).  Comment out some code that crashes.

Found independently by:	tmm
2001-08-03 01:21:24 +00:00
jake
97f76f62e0 Define proc0paddr. Call init_param() as early as possible. 2001-08-03 01:11:49 +00:00
jake
5b920477d4 Add an Elfhashelt type for sparc64. 2001-08-03 01:00:41 +00:00
jake
fb7edc502f Flesh out the sparc64 port considerably. This contains:
- mostly complete kernel pmap support, and tested but currently turned
  off userland pmap support
- low level assembly language trap, context switching and support code
- fully implemented atomic.h and supporting cpufunc.h
- some support for kernel debugging with ddb
- various header tweaks and filling out of machine dependent structures
2001-07-31 06:05:05 +00:00
jake
489876bc4d Add skeleton machine dependent headers and c files for a port of freebsd
to a new architecture.  This is the base of the sparc64 port, but contains
limited machine dependent code, and can be used a base for ports.  Included
are:
- standard machine dependent headers, tweaked for a 64 bit, big endian
  architecture, including empty versions of all the machine dependent
  structures
- a machine independent atomic.h, which can be used until a port has
  support for interrupts and the operations really need to be atomic
- stub versions of all the machine dependent functions, which panic
  when called and print out the name of the function that needs to
  be implemented.  functions which are normally in assembly files are
  not included, but this should reduce the number of different undefined
  references on the first few compiles from hundreds to 5 or 6
Given minimal startup code and console support it should be trivial to
make this compile and run the first few sysinits on almost any architecture.

Requested by:   alfred, imp, jhb
2001-07-31 05:45:16 +00:00
imp
973f322f80 Obrien created this directory, but I didn't cvs add cvsignore 2001-07-01 23:37:03 +00:00
imp
8555c6bb29 Don't need the .keep_me files. Obrien and I committed past each other.
Add 0-9 to the list of possible kernel names at matsushita-san's
suggestion.

Submitted by: Makoto MATSUSHITA-san <matusita@jp.FreeBSD.org>
2001-07-01 23:35:44 +00:00
obrien
27ba1143ff Grrr, this was added in the wrong place.
Have I mentioned before how much I hate remove CVS when adding directories???
Ask me about it (got 3 hours...)
2001-06-30 15:21:34 +00:00
obrien
401c637a19 Ensure sys/${MACHINE}/compile/FOO exists
Reviewed by: arch, imp, peter, and the USENIX terminal room secret kernel cabal
2001-06-30 15:16:29 +00:00
obrien
9758e66106 Ensure sys/${MACHINE}/compile/FOO exists
Reviewed by: arch, imp, peter and
  the USENIX terminal room secret kernel cabal
2001-06-30 07:12:34 +00:00