fredette
08068ecc5d
Don't unmap the PROM's first four physical/virtual pages
...
inside pmap_bootstrap, instead we will wait until we have
installed our vector table.
2001-06-27 03:41:27 +00:00
fredette
d5598f2f68
Made these files part of the sun68k common code.
2001-06-27 03:32:49 +00:00
fredette
39fb6a6f16
Now netintr and sun2_find_prom_map have prototypes in
...
the common sun68k code. Added prototypes for g0_entry
and g4_entry so that prom_abort() can use them.
2001-06-27 03:31:42 +00:00
fredette
7a083fffc2
Don't set up the g0 and g4 handlers here, now prom_abort()
...
does this. Include the common m68k 16-bit aligned copy routines.
2001-06-27 03:25:31 +00:00
fredette
4d85da3f79
Moved much softint and bus_space/bus_dma code
...
to the common sun68k code.
2001-06-27 03:16:02 +00:00
fredette
ee7503cf71
Converted to use the new bus-specific attach args.
2001-06-27 03:00:45 +00:00
fredette
a50332b3e7
Converted to use the new bus-specific attach args,
...
and the bus_space_peek_N functions.
2001-06-27 02:59:26 +00:00
wiz
f3f6c5b675
accessible' only has one
a'.
2001-06-19 12:52:20 +00:00
christos
0f380fac15
Add an e_trapsignal member to struct emul, so that emulated processes can
...
send the appropriate signal depending on the trap type.
2001-06-18 02:00:48 +00:00
fredette
6000674775
Now unmap the PROM's pages only after we have
...
installed our own vector table.
2001-06-15 00:32:38 +00:00
thorpej
8eb3b954f1
Don't need to prototype child_return() here, it's in <sys/proc.h>.
2001-06-14 22:56:55 +00:00
fredette
1a4779d8a4
Now get the prototypes from the common sun68k/sun68k/control.h.
2001-06-14 16:36:46 +00:00
fredette
7ab5601058
Since physical memory below 0x2000 isn't mapped anywhere
...
for now, return EFAULT when /dev/mem tries to read it.
Other physical memory not managed by the pmap system is
mapped at the same virtual addresses. Now that we
understand how VME PTEs are constructed, give mmapping
a VME bus a better chance of working..
2001-06-14 16:32:45 +00:00
fredette
8f6cff260d
Now uses the common sun68k bus_space/bus_dma
...
and autoconf code.
2001-06-14 15:54:18 +00:00
fredette
70ba9292d4
Now use the bus_space_peek_N function to probe for
...
the device, and common sun68k_find_prom_map function to
find a PROM mapping for a device.
2001-06-14 15:20:46 +00:00
fredette
9c1d420baf
This file has been moved to sys/dev/vme.
2001-06-14 15:15:15 +00:00
fredette
15b02e5ba0
Added a function, prom_sd_target, to translate a PROM
...
sd unit number into a SCSI target. Now only set up our
g0 and g4 handlers inside prom_abort(), so we're not
normally running with them.
2001-06-14 13:21:39 +00:00
fredette
edad0f956c
Under _LKM, now undefine KERNBASE for declaring it.
...
Not sure if this is correct, but the real question
is whether 68000 LKMs are even possible.
2001-06-14 13:18:54 +00:00
fredette
54f88e2668
Corrected the value of DVMA_OBIO_SLAVE_BASE; obio
...
devices can see the entire CPU address space.
2001-06-14 13:17:04 +00:00
fredette
01e5507e7e
Now simply include the real header under arch/sun68k.
2001-06-14 13:16:03 +00:00
fredette
000fa36842
Moved the definition of romVectorPtr here from mon.h.
...
Prototype prom_sd_target.
2001-06-14 13:15:21 +00:00
fredette
9e52c15c31
Now simply include the real header under arch/sun68k.
2001-06-14 13:12:50 +00:00
fredette
af6051568c
Removed. These files can be found under arch/sun68k now.
2001-06-14 13:10:20 +00:00
fredette
8d1b187a4c
Fixed pte_print to display the correct names
...
for VME device pages.
2001-06-11 21:35:59 +00:00
fredette
6e5f704918
Now use hand-defined macros instead of relying
...
on structure layout to find registers. Added
a VME attachment.
2001-06-11 21:33:47 +00:00
wiz
40ac848024
Fix various misspellings of compatible/compatibility.
2001-06-11 01:50:48 +00:00
fredette
cca6e28421
Added comments and fixed some macros now that I correctly
...
understand how to address the sun2 VME bus in the VM hardware.
2001-06-08 18:00:51 +00:00
chs
821ec03ed9
replace vm_map{,_entry}_t with struct vm_map{,_entry} *.
2001-06-02 18:09:08 +00:00
lukem
d84d2c6c85
add missing #include "opt_kgdb.h"
2001-05-30 15:24:23 +00:00
mrg
67afbd6270
use _KERNEL_OPT
2001-05-30 11:57:16 +00:00
mrg
3783ca5d30
define _KERNEL_OPT as well as _KERNEL. we will use this in the future to
...
get kernel "opt_foo.h" headers, rather than _KERNEL && !_LKM.
2001-05-29 02:20:20 +00:00
chs
11a9651c8f
replace vm_page_t with struct vm_page *.
2001-05-26 21:27:10 +00:00
chs
118ddca24a
replace {simple_,}lock{_data,}_t with struct {simple,}lock {,*}.
2001-05-26 16:32:40 +00:00
fredette
0c48999192
Rewrote a variable constraint to make gcc 2.95 happy.
2001-05-14 20:39:52 +00:00
fredette
c5feae5dbf
Now always define PGSHIFT. Thanks to the ELF move, note the new
...
larger msgbuf size and different KERNBASE.
2001-05-14 20:35:58 +00:00
fredette
1ef476f4a4
As a side-effect of the ELF conversion, the msgbuf
...
can now be 8K large. Removed more 68881 code that
is only useful if you have the real silicon, which
the 68010 never will.
2001-05-14 15:36:42 +00:00
fredette
9ec520c479
Now, instead of swapping in and out the PROM's segment zero,
...
swap in and out the mappings for virtual pages zero through three,
which are what the PROM really uses. This is tied to the
move to ELF and the low memory usage changes.
2001-05-14 15:12:39 +00:00
fredette
b49df54c83
One bonus of moving to ELF is that the boot loader on the sun2
...
now loads the kernel into physical memory at the linked address.
So we link the kernel a little lower virtually, but the bootloader
actually will load it higher in physical memory than before.
This allows us to quadruple the size of the msgbuf to 8K, and
we also shuffle around tmp_vpages and the temporary stack.
2001-05-14 15:07:23 +00:00
fredette
d36a2c2284
Made changes to support ELF. Highlights include:
...
To find the kernel symbol table, instead of expecting
the old a.out struct exec from locore.s, use the
ELF headers found after the kernel text.
2001-05-14 15:00:28 +00:00
fredette
f7c1abe426
Many changes to support ELF. Highlights include:
...
Added % to all register names. The boot loader now
loads us exactly where we're linked, so no PIC or
remapping funny business. Removed more 68881 code
that is only needed with the real silicon, which
a 68010 will never have.
2001-05-14 14:44:11 +00:00
fredette
66c27dfc2e
Removed, cleaning up (no-)FPU support.
2001-05-08 21:39:24 +00:00
fredette
bdf32dea4f
Turned all lea/jsr combinations back into jbsrs,
...
as they were originally.
2001-05-07 21:48:24 +00:00
fredette
a0456abb5e
Added some kernel configurations.
2001-05-03 15:39:48 +00:00
fredette
11e470d830
Now define MBIO_SIZE and MBMEM_SIZE in header files,
...
so they can eventually be used by the bootblocks.
2001-05-03 03:13:03 +00:00
thorpej
cf67ac7122
Per discussion w/ chuck and chuck, restructure the md page stuff
...
to use a structure called "vm_page_md", and use __HAVE_VM_PAGE_MD
and __HAVE_PMAP_PHYSSEG.
2001-05-01 02:19:13 +00:00
thorpej
2b27ac7a99
Add a VM_MDPAGE_MEMBERS macro that defines pmap-specific data for
...
each vm_page structure. Add a VM_MDPAGE_INIT() macro to init this
data when pages are initialized by UVM. These macros are mandatory,
but ports may #define them to nothing if they are not needed/used.
This deprecates struct pmap_physseg. As a transitional measure,
allow a port to #define PMAP_PHYSSEG so that it can continue to
use it until its pmap is converted to use VM_MDPAGE_MEMBERS.
Use all this stuff to eliminate a lot of extra work in the Alpha
pmap module (it's smaller and faster now). Changes to other pmap
modules will follow.
2001-04-29 22:44:31 +00:00
bouyer
937a7a3ed9
Pull up the thorpej_scsipi branch to main branch.
...
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.
Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
2001-04-25 17:53:04 +00:00
thorpej
fe664428c8
Garbage-collect pmap_page_index().
2001-04-25 17:35:00 +00:00
fredette
de878b5521
Added these required headers.
2001-04-24 14:42:32 +00:00
thorpej
1c3a62e066
Sprinkle pmap_update() calls after calls to:
...
- pmap_enter()
- pmap_remove()
- pmap_protect()
- pmap_kenter_pa()
- pmap_kremove()
as described in pmap(9).
These calls are relatively conservative. It may be possible to
optimize these a little more.
2001-04-24 04:30:50 +00:00
thorpej
55044638aa
Remove pmap_kenter_pgs(). It was never really adopted by
...
anything, and the interface itself wasn't as flexible as
callers would have probably liked.
2001-04-22 23:42:11 +00:00
thorpej
69abdbf60c
Undo a misguided previous change to the pmap_update() API.
2001-04-22 23:19:26 +00:00
fredette
8a5ee3ff29
Added.
2001-04-22 21:00:27 +00:00
thorpej
4738622712
Give pmap_update() an argument (a pmap_t) so that it knows which
...
pmap it should be updating.
2001-04-22 00:33:59 +00:00
thorpej
7f10ba88b1
#define away pmap_update() in <machine/pmap.h> so that no function
...
call overhead is incurred as we start sprinkling pmap_update() calls
throughout the source tree (no pmaps currently defer operations, but
we are adding the infrastructure to allow them to do so).
2001-04-21 23:51:14 +00:00
fredette
c1d17391f5
Added support for the sc SCSI controller on mbmem.
2001-04-18 15:09:47 +00:00
fredette
02db82623f
Trimmed off some options that are unnecessary for now,
...
and some that don't work. Added some more comments,
commented out some 2/50 device entries.
2001-04-18 15:08:59 +00:00
fredette
db8595f14f
Much bus_dma work. When destroying a map, unload it if it's
...
loaded. Added more comments. Fixed the perspective of a 24-bit
device from the original sun4 code to match the sun2. For now,
we don't double-map pages into DVMA space by hand, we're back
to using pmap_enter. Be more paranoid about saving and
restoring the MMU user context.
2001-04-18 03:45:10 +00:00
fredette
026720119b
Added support for the Sun SC scsi controller.
2001-04-18 03:38:38 +00:00
fredette
451d8d47e1
Added support for creating a bus_dma tag for the mbmem bus.
2001-04-18 03:34:54 +00:00
fredette
5f19315baa
Now define IPL_BIO.
2001-04-18 03:30:14 +00:00
fredette
68230340aa
Fixed a bug in db_write_text where on exit we would bash
...
a PTE in whatever user context happened to be set on
entry.
2001-04-18 03:19:21 +00:00
kleink
f06533a1ee
Add definitions of C99 integer format conversion macros.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 17:13:04 +00:00
kleink
739cb75837
Add definitions of C99 specified-width integer type limits.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-15 15:29:02 +00:00
kleink
a7c20e5788
Add definitions of C99 integer constant macros.
2001-04-14 22:38:33 +00:00
kleink
7affdab52e
Add definitions of C99 minimum-width and greatest-width integer types.
...
XXX Fastest minimum-width integer types haven't been decided upon yet.
2001-04-14 12:19:49 +00:00
thorpej
bf2dcec4f5
Remove the use of splimp() from the NetBSD kernel. splnet()
...
and only splnet() is allowed for the protection of data structures
used by network devices.
2001-04-13 23:29:55 +00:00
fredette
b27eda4ead
Added.
2001-04-10 12:46:26 +00:00
fredette
1dfde059ab
Use fb_setsize_eeprom to do some intialization of the
...
fb structure.
2001-04-10 12:44:12 +00:00
fredette
bb09d2bc78
Fixed a bug where we were trying to map the board RAM
...
using the physical address of the board registers.
2001-04-10 12:42:51 +00:00
fredette
ca414a50ad
In prom_init, when making our local copy of the bootparams,
...
be sure to calculate the shift in terms of chars, not struct
bootparams, and don't shift undefined arguments.
2001-04-10 12:40:53 +00:00
fredette
8efc1dcff9
Fixed has_context to return true on the kernel pmap,
...
which always has context zero. This was causing panics
under DIAGNOSTIC.
2001-04-10 12:39:56 +00:00
fredette
857e8fbc6b
The mainbus doesn't define a device name in the attach args
...
after attaching the special busses, so just match when it
isn't, instead of calling strcmp with it.
2001-04-10 12:37:49 +00:00
fredette
c6871b7720
Make softintr_handler return one, not zero, to properly
...
claim the interrupt. Added special bus_space_probe
handling to sun2_bus_map.
2001-04-10 12:33:09 +00:00
fredette
af0a9202ce
Under DIAGNOSTIC, disabled a test that was using an
...
instruction not available on the 68010. Also removed
more old sun3 cache-related code.
2001-04-10 12:29:10 +00:00
fredette
c4973c2333
In fpu_probe, now be sure to return FPU_NONE. Returning
...
FPU_UNKNOWN was causing confusion in cpu_switch.
2001-04-10 12:27:40 +00:00
fredette
0cb40c9174
Define a very small UBC_NWINS to keep UBC from eating all kernel VM.
2001-04-10 12:24:05 +00:00
fredette
0050ddd2b2
Be paranoid, #undef PAGER_MAP_SIZE before defining it.
2001-04-10 12:23:14 +00:00
fredette
666b4cf417
A successful compile is near.
2001-04-06 17:17:58 +00:00
fredette
ec984a04ad
Added.
2001-04-06 15:05:55 +00:00
fredette
3ff14b7ac5
vm/vm.h -> uvm/uvm_extern.h
...
Cleaned up definitions of cputype and mmutype.
mon.h -> promlib.h, and use all of the new prom_
functions instead of the old mon_ functions.
Removed all of the old mon_ capturing code to
promlib.c.
2001-04-06 14:59:09 +00:00
fredette
e3edb8d20c
Gratuitous comment changes.
2001-04-06 14:52:56 +00:00
fredette
6529ec2635
Now include machine/promlib.h instead of machine/mon.h, and
...
use the new prom_ functions instead of the old mon_ functions.
Added the internal _pmap_extract_pmeg function, and removed
some old Sun3 cache-related code.
2001-04-06 14:52:19 +00:00
fredette
353ad332f0
Added some support for the old-school 'g0' and 'g4' monitor
...
hooks, and removed some old Sun3 cache and interrupt-register
related code.
2001-04-06 14:36:08 +00:00
fredette
20293ce870
Added.
2001-04-06 13:13:01 +00:00
fredette
d8d78f2801
Added a prototype for the internal function _pmap_extract_pmeg,
...
used by the bus_dma implementation when double-mapping pages
by hand.
Now define PMAP_OBMEM for completeness.
2001-04-06 13:12:06 +00:00
fredette
874e89c74d
Added an internal bus_space flag to find and use PROM mappings.
...
Added an internal bus_dma flag to mark when a map has been
loaded by double-mapping pages by hand, outside of the pmap.
Added more prototypes for our bus_dma implementation.
2001-04-06 13:09:10 +00:00
fredette
85c6ec3b50
Now use the proper DVMA map size depending on what
...
machine type we're on.
Removed all prototypes, since we're going bus_dma.
2001-04-06 13:03:14 +00:00
fredette
cce60f68dc
Added.
2001-03-29 21:07:56 +00:00
fredette
fb96b4d88c
Added.
2001-03-29 04:58:52 +00:00
fredette
22a64b5a3e
Added.
2001-03-29 04:35:09 +00:00
fredette
fbd8636feb
Added.
2001-03-29 04:16:21 +00:00
fredette
da500dc6be
Removed some sun3 references.
2001-03-29 04:07:54 +00:00
fredette
6095b6e2ff
Added.
2001-03-29 03:24:19 +00:00
fredette
2deceb396c
Brought up-to-date with revision 1.124 of the Sun3 pmap.
2001-03-28 14:15:11 +00:00
fredette
a8cd6c5401
Added.
2001-03-28 13:47:58 +00:00