NetBSD/sys/arch/cesfic
mhitch 9b0f085da1 68030 and 68040 processors consider the read portion of a read-modify-write
transfer as a write to ensure the memory is writable before starting any
transfer.  The fault status information does not reflect this in the 'read'
status bit (i.e. it shows up as a read access), so faults with a RMW access
to non-writable memory was not getting the correct protection.  The page would
be read-only and the instruction would fault over and over.

A specific example is when a process forks, and the child process attempts
to execute a RMW access to a data page, which is read-only because it's CoP
Copy-On-Write.

When checking if the page needs to be writablek, also check the locked transfer
and treat any locked transfer as a write.

68060 already handled this correctly, since it has separate read and write
fault bits, and both are set on a RMW access and the trap code was checking
the write status bit.

Fixes PR#36848.
2007-09-01 21:31:55 +00:00
..
cesfic 68030 and 68040 processors consider the read portion of a read-modify-write 2007-09-01 21:31:55 +00:00
compile
conf MI softintr(9)'fy. Untested. 2007-03-05 13:06:43 +00:00
dev MI softintr(9)'fy. Untested. 2007-03-05 13:06:43 +00:00
include Add ci_cpuid where it's missing. 2007-08-04 09:49:51 +00:00
Makefile
README merge ktrace-lwp. 2005-12-11 12:16:03 +00:00

README

$NetBSD: README,v 1.3 2005/12/11 12:17:04 christos Exp $

This is a port of NetBSD to the FIC8234 VME processor board, made by the
swiss company CES (Geneve). These boards are (or have been) popular in
high energy physics data acquisition (think of CERN!). See
http://www.ces.ch/Products/CPUs/FIC8234/FIC8234.html
for some technical data.

The highlights:
- MC68040 processor at 25 MHz (optional dual-processor)
- 8 or 32 MByte RAM
- 2 serial ports on Z85c30
- 79c900 (ILACC) ethernet
- 53c710 SCSI

The port is quite rudimentary at the moment. The kernel is started out of
a running OS-9 system. SCSI support is not present yet, so it only works
diskless with NFS (or ramdisk - not tested) root.
It is good enough for multiuser, self-hosting etc. however.

To start it:
- make OS image by "objcopy --output-target=binary netbsd <imagename>"
- load image to physical address 0x20100000 (RAM start + 1M)
- jump to 0x20100400

For questions and contributions, contact Matthias Drochner
(drochner@NetBSD.org).