( mainboard and
First kernel booting on DraCo as well as Amiga:
@(#)NetBSD 1.1B (DRINSTALL) #5: Mon May 13 20:01:23 MET DST 1996
All of the 68060 and DraCo support are now in the master cvs tree.
- 1996 May 7
- NetBSD-DraCo compiled its own kernel and runs it:
NetBSD 1.1B (DRACO) #292: Wed May 8 10:54:59 MET DST 1996
- 1996 May 7
Kernel #290 has a workaround activated, which circumvents the
documented store-load-shortcut bug in early CPU mask revisions.
gcc works now even on my machine.
- 1996 May 5
Kernel #280 has the floating point bug fixed.
- 1996 May 3
@(#)NetBSD 1.1B (DRACO) #277: Fri May 3 14:31:58 MET DST 1996
went multiuser today. There are some small glitches in the floating point
support/context switch code: FP using programs get killed sometimes. But
I was able to newfs / and /usr, get the base11 distribution with ftp (via
ARCnet), Extract() it and Configure() the machine, then reboot the installed
- 1996 Apr 26
@(#)NetBSD 1.1B (DRACO) #261: Fri Apr 26 14:01:39 MET DST 1996
As of today, copyback caching works... (will say, is switched off
for the appropriate pages only).
- 1996 Apr 06
NetBSD 1.1B (DRACO) #204: Sat Apr 6 17:42:46 MET DST 1996
booted this morning into single user mode. Actually, I cheated: I had
to generally switch off copyback caching... I didn't find all places
yet where the kernel modifies page tables through copyback cached
mappings. I was, however, able to execute a lot of programs from the
inst-11.fs miniroot I tried, including
dd, ifconfig, route.
df didn't work: it uses
floating point computations.
don't work either: they use 32/64bit multiplication.
- 1996 Feb 11
A modified NetBSD/Amiga - Kernel booted Sunday evening (1996 Feb 11) up
to the point where it paniced because exec'ing init failed.
- 1996 Jan 22
A modified NetBSD/Amiga - Kernel booted last night (1996 Jan 22 0145
MET) beyond the early console initialization, printed the Kernel
Copyright Message and a log of the memory segment discovery onto the
console and crashed (actually, ran to the Debugger prompt) with a
nice, console-readable register dump due to a bus error (probably when
accessing some Amiga hardware not available on a DraCo). No more
background color code debugging! Yeah!
- sometimes, SCSI interrupts seem to be lost.
- sometimes, the key release gets lost.
( mainboard support )
We just pretend the DraCo is an Amiga with a strange motherboard. Its
local bus looks to the software like a Z3 bus after AmigaOS has
booted; as we get the autoconfig lists from the OS even when bootblock
booting, we have no problem with that. The bootloader needs a bit of
special case code for the memory, which is merged (to AmigaOS) into a
continuous chunk of code using the MMU.
Status and plans
- Modify the bootloader to recognize a DraCo and its custom chip
revision level, and find its memory. [done & tested]
- Hack the Kernel to survive early console initialization so that
textual debugging output is available. [done & tested]
- In this process, assign kernel virtual memory pages to DraCo
mainboard hardware [done & tested]
- write the reboot code for the DraCo [done & tested]
- adapt/write device drivers:
- Altais graphics board: From the programmers view, this is a
Retina BLT Z3 with a changed product id and the ability to create
vertical blank interrupts. We just need to recognize the new product
id. [done & text mode tested]
- On-board SCSI interface: Just another instance of siop. We just
need to write a short frontend. [done; tested]
- Modify CIA clock.c to use ciaa on DraCo's, and to not use the
64bit division assembler instruction which is not available on the
M68060. [done ; seems to work.]
- On-board keyboard hardware [first version done; tested]
- On-board battery backed clock [read-only version done]
- On-board timer, for the newer DraCo's which don't have any 8520
- On-board multi-i/o chip (serial, parallel, floppy):
I've implemented a minimal <machine/bus.h> for the Amiga port, and
a "supio" bus (a logical direct bus with one locator, the "port").
The "drsupio" driver attaches to the mainbus, and provices an instance
of the supio, attaching two coms, one lpt and one fdc at the PC
"standard" port numbers.
Currently, only com_supio is implemented.
The Xamiga server has been enhanced to decode serial mouse events
- make the Amiga onboard mouse interface a real device driver, instead
of a pseudo-device, so that mixed Amiga/DraCo kernels are possible.
- Add 68060 support to the kernel, so that
paging and floating point stuff and unimplemented integer instructions
can work. This can be done after (part of) the device drivers have
been written, as the kernel itself does not page.
- Integrate the floating point emulation code, so that the
DraCos can work.
( support )
- make sure to enable:
- superscalar dispatch [done]
- branch target cache [done]
- store buffer
- tell the kernel to modify page tables/segment tables through cache
inhibited pages. [seems to finally be done and running.]
- bus error handler needs a special case for the M68060 [done]
- add branch target cache flushing at appropriate places [done]
- change context switch code to support new floating point context
format and to not use
fmovem fpiar/fpsr/fpcr any more. [mostly
- add unimplemented integer instruction handler from Motorola's 060SP
- add unimplemented floating point instruction & effective
address handler , and general floating point support software from
Motorola's 060SP [done]
- change drivers to not use
movep on the M68060
[first version done for if_bah.c, which was the only one]
- tell gcc how to create 68060-optimized code [preliminary version
done by jtc.
--- mille grazie]
$NetBSD: NetBSD-DraCo-M68060.html,v 1.4 2010/03/21 19:00:29 dsieger Exp $