clock.c * Removed definition of DELAY.
intr.c * Removed an unneeded $Id:....$
locore.s * Moved some of the low level initialization
code to machdep.c.
* Defined proc_trampoline.
* Changed sigcode to pass scp to SYS_sigreturn.
* Changed copyin/copyout/fu*/su* to take advantage
of the ns32532's dual address instructions.
* Recoded copyinstr/copyoutstr/copystr in assembler.
* Added a new and faster version of bzero.
This makes bzero.s unnecessary.
* Defined suswintr to make profiling work.
* Recoded cpu_switch modelled after the i386
version of cpu_switch.
* Added support for lazy fpu state restore to
cpu_switch.
* Recoded trap handling code to be more readable.
* Added experimental code for single cacheline
invalidation.
machdep.c * Copied over cpu_startup from i386/i386/machdep.c.
* Changed sys_sigreturn to take advantage of the
argument passed by the trampoline code.
* Changed boot to call doshutdownhooks and to store
machine state in case of a panic.
* Changed setregs to clear the fpu registers.
* Recoded low_level_init. It's now called init532.
* cpu_reset: New function, resets the machine.
trap.c * Pulled over from i386/i386/trap.c.
* Added support for lazy saved/restored fpu state.
vm_machdep.c * Removed kstack double mapping by pulling over alot
of code from i386/i386/vm_machdep.c.
* Added support for lazy saved/restored fpu state.
* Moved freeing of process resources from cpu_wait
to cpu_exit.
* Pulled over cpu_coredump, pagemove, vmapbuf and
vunmapbuf from i386/i386/vm_machdep.c.
pmap.c * Pulled over from i386/i386/pmap.c.
genassym.c * Removed old and unused definitions, added new ones.
sys_machdep.c * Moved sys_sysarch from machdep.c to sys_machdep.c.
process_machdep.c * Changed to work without ktack double mapping.
* Changed to work with lazy saved/restored fpu state.
Rename the ioctl asic register and slot macros from ASIC_<xxx> to
IOASIC_<xxx>, to be compatible with the machine-indpendent names in
sys/dev/tc/ioasicvar.h. The pmax code still uses
sys/arch/pmax/pmax/asic.h, as some of the registers and offsets
defined there are not yet defined in sys/dev/tc/ioasicvar.h.
Rename the ioctl asic base-address pointer from `asic_base' to `ioasic_base'.
independent TC support in sys/dev/tc/tc.c and sys/dev/tc/tcvar.h:
* Change the tc autoconfiguration tables to use a struct tc_attach_args
instead of the ad-hoc structure.
* Change all pmax device drivers to use a `struct confargs' that's
assignment-compatible with sys/dev/tc/tcvar.h `struct tcdev_attach_args'.
Devices that can be present on a TC or as ioctl asic/mainbus builtins
use the same `struct confargs'.
* Eliminate the `BUS_CVTADDR()' macros which the pmax port inherited from
an old, now-obsolete sys/arch/alpha snapshot.
* Update the comments and debugging code in interrupt handlers to
be consistent with the machine-independent TC support.
Other commits that overlap the same source files include: re-enabling
clock-tick interrupts earlier, and counting hardclock ticks for vmstat -i.
<sys/dkio.h> is in turn included by <sys/ioctl.h>, much like how
<sys/filio.h> and <sys/sockio.h> are handled. This minimizes changes to
existing sources which use the disk ioctls.
Define DIOCLOCK which is used to lock and unlock the pack.
independent TC support in sys/dev/tc/tc.c and sys/dev/tc/tcvar.h:
* Change the tc autoconfiguration tables to use a struct tc_attach_args
instead of the ad-hoc structure.
* Change all pmax device drivers to use a `struct confargs' that's
assignment-compatible with sys/dev/tc/tcvar.h `struct tcdev_attach_args'.
Devices that can be present on a TC or as ioctl asic/mainbus builtins
use the same `struct confargs'.
* Eliminate the `BUS_CVTADDR()' macros which the pmax port inherited from
an old, now-obsolete sys/arch/alpha snapshot.
* Update the comments and debugging code in interrupt handlers to
be consistent with the machine-independent TC support.
Other commits that overlap the same source files include: re-enabling
clock-tick interrupts earlier, and counting hardclock ticks for vmstat -i.
(1) remove the 'UNSUPP' keyword from the device list,
because it can't be reasonably used (becuase different
devices may be supported on different machines, for
good reason).
(2) enhance pci_devinfo so that class/subclass information
is optional (so pci_devinfo can be used by drivers that
match classes of devices, and want to look up the
devices' names easily).
(3) more known vendors and devices.
it's text or data; use the entry point instead (this solves some trouble
with ELF executables with strange permissions)
* Incorporate some fixes from r_friedl@informatik.uni-kl.de sent to
netbsd-bugs a while ago
Darren Reed <darrenr@vitruvius.arbld.unimelb.edu.au> in PR #1227.
This change is slightly different than the one submitted by Darren in
that the DIRECTED_BROADCAST compile-time option will behave like it used
to so that existing configurations utilizing it won't have to change.
- Better disklabel handling. While a disklabel isn't used
in the driver, some versions of the OpenPROM insist on
one being present in order to boot from floppy. These
changes provide a default label (in a way similar to how
the SCSI disk driver provides a default) so that a user
can more easily place the label on the disk.
- Fix semi-bug in bootpath handling. It appears as if the
bootpath can appear in a couple of formats: "/fd@0,0", which
is what bootpath_fake() creates on v0 proms and may be
passed by some v2 proms, and "/fd0" which is what the
v2 prom on my SS2 passes. We now handle both formats.
- Use a mountroot hook to eject the floppy and wait for
the user to insert a filesystem floppy if we're the boot/root
device.
size of the resulting loader. The read_inode() function now returns the
result of the strategy function instead of success in all cases (ufs.c).
Fixes pr#1817
zero since xycmatch no longer sets it). [if you call mapiodev()
with a zero size it will reuse the KVA it returns, swiping the device
out from under you!]
- make xyc->iopbase point in the kernels DVMA space rather than at the
normal malloc'd KVA. this isn't compatable with sun4m [doesn't
have a kernel DVMA space] and will need to be changed later (XXX).
- move disk_attach() to before reading the disk label as per Jason.
otherwise we are reading into an unallocated buffer (oops!)
zero since xdcmatch no longer sets it). [if you call mapiodev()
with a zero size it will reuse the KVA it returns, swiping the device
out from under you!]
- make xdc->iopbase point in the kernels DVMA space rather than at the
normal malloc'd KVA. this isn't compatable with sun4m [doesn't
have a kernel DVMA space] and will need to be changed later (XXX).
- move disk_attach() to before reading the disk label as per Jason.
otherwise we are reading into an unallocated buffer (oops!)
device address (bus_tmp, bus_map, and mapiodev now do this for us).
also, we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in xycmatch).
device address (bus_tmp, bus_map, and mapiodev now do this for us).
also, we handle all our mappings, so don't have obio.c do any for us
(i.e. don't set ra->ra_len in xdcmatch).
- controller calls scsi_done() with error XS_TIMEOUT
- scsi_done() calls sddone()
- sddone() calls disk_unbusy()
- scsi_done() calls controller to retry command (missing the
call to disk_busy())
- controller calls scsi_done()
- scsi_done() calls sddone()
- sddone() calls disk_busy(), which panics because of the imbalance.
Bug noticed by Leo Weppleman, who also suggested this fix; pass an additional
boolean argument ("complete") to the device's "done" routine, with a
value of `0' passed from the previous call to "done", and add an additional
call to "done" when the xfer resources are freed.
and thus probed the wrong address on the 4/300 (but it worked because
it was probing the esp0 registers!).
now that bus_tmp() adds the offset in for us [as of obio 1.19] i
discoved that a byte access to the dma registers is not allowed.
so, i've change probeget to use a word access.
page boundaries:
- change bus_tmp() to include the offset from the start of page in the
returned KVA [rather than forcing each driver to add it back in
individually]
- changed bus_map() to include the offset from the start of page in the
the returned value if a mapping is found in the PROM's KVA area
- clarified a few comments