Building a KISS 68030 Computer [message #6203] |
Tue, 02 April 2019 08:20  |
denis2342
Messages: 23 Registered: February 2017
|
Junior Member |
|
|
Hi
In the last weeks I finally finished building my KISS 68030 Computer. The last problem I had was unstable memory. I did try with all sorts of memory and cpu crystal oscillator speeds, but nothing helped.
Then I ordered 74F195A and finally it worked. I let it run for days for several thousand passes with 256MB of memory and no error at all.
Then I download the linux package from will. But sadly the wrong version. It had the zip archive from 2016-02-21. That had bootrom and kernel not in sync. This was fixed with a mail to Will.
Now I have package from 2016-04-20. After that the kernel loaded, but not far. Could not read back values written to the interrupt controller. I did not thought of changing the wait states for the mf-pic because it already loaded the kernel without problems, so I wrote another mail to Will. I changed the IO wait states from 3 to 5 and voila, I got a login prompt. How exciting.
To optimise the performance I played again with the oscillator speeds of CPU and RAM.
Here are the results:
CPU RAM WS. ratio
16 64 0 4
20 64 0 3.2
16 50 0 3.125
20 60 0 3.0
22 66 0 3.0
22 64 0 2.9
24 66 1 2.75 WS0 very unstable
22 60 0 2.72
24 64 1 2.66
25 66 1 2.64
25 64 1 2.56
24 60 1 2.5
32 66 1 2.06
25 50 1 2.0
30 60 1 2.0
32 64 1 2.0
33 66 1 2.0 (my default running setup since using 74FCT257)
33 64 1 1.94
32 60 1 1.88
36 66 2 1.83 (this works but I can only start it with a cold board, then runs linux for hours)
33 60 1 1.82
So the fastest CPU with zero wait states is 22MHz and the fastest CPU with 1 wait states is 33MHz.
I noticed that with a 30MHz CPU crystal I could run with 3 IO wait states. But I wanted to run with 33MHz. So I removed the jumper for 5 IO wait states and soldered a wire so that I have 4 wait states which is not possible with the jumper. This would be a nice addition if there is a board update. This increased the hard disk speed from 800 something to nearly 1000kB/sec.
The wire goes from U301 pin 10 to U404 pin 13.
Here is the wire soldered:

After moving some files to the linux side with zmodem (ah, good old times...) I decided this was too slow and I need to do something about it. First I thought about buying a OX16C950 UART which is capable of more than 115200 BAUD even with the 1.843200MHz MF-PIC crystal. But this chip was nowhere to find. So I bought a 7.372800MHz crystal and simply put it in. This worked to my surprise. I needed to change minicom to 460800 BAUD and got the kernel running. Ok, the time did run four times faster but it did run. The description of the NS32202 interrupt controller said it is only capable of 2.5MHz. Anyway, I changed the linux kernel with some hacking (Iam not capable of building it myself yet) and changed some values so that the linux kernel knows the new crystal speed. I also activated the divide-by-four prescaler for the NS32202. Now the time on linux runs normal again, everything looks right and my zmodem uploads are up to 24kB/sec. (from 9kB/sec before).
BTW, the 16C550 does not work well on the linux side. Somehow it has problems with the IRQ (Will, maybe your patch?). The 16C750 works fine though.
Here are the changes for the kernel:
pi@raspberrypi:~ $ cmp -l vmlinux vmlinux_x4 | gawk '{printf "%08X %02X %02X\n", $1, strtonum(0$2), strtonum(0$3)}'
0034E3FC 1C 70 change from 0x1c2000 (1843200) to 0x708000 (7372800)
0034E3FD 20 80 same
0034E5A8 40 00 activate prescaling
0034E5FC 48 08 activate prescaling
00359F06 1C 70
00359F07 20 80
00359FEC 1C 70
00359FED 20 80
To connect to the serial part of the MF-PIC I use a FTDI breakout board serial like John Coffmann used for his quad serial board. maybe it is possible to make 5 more holes to the mf-pic inside the max232 placement. maybe even six with the vcc hole through a jumper where you can configure if it has 5V or not. So someone could use a bluetooth serial which needs 5V.
I did it like this:

To see harddisk activity I soldered a LED to pin 39 of the IDE port (of course with a resistor). This would also be a nice addition to the board. I know the compact flash to IDE adapter has LEDs. But a harddisk has not and my IDE flash module neither.
Denis
-
Attachment: IMG_4263.jpg
(Size: 1.93MB, Downloaded 1738 times)
-
Attachment: IMG_4265.jpg
(Size: 2.10MB, Downloaded 1751 times)
[Updated on: Sat, 06 May 2023 05:46] Report message to a moderator
|
|
|
|
|
|
|
Re: Building a KISS 68030 Computer [message #6233 is a reply to message #6203] |
Tue, 09 April 2019 11:11   |
denis2342
Messages: 23 Registered: February 2017
|
Junior Member |
|
|
New progress report:
1. I was able to cross compile the 4.5 linux kernel with gcc 5.5, 6.5, 7.x and 8.2. Only for gcc 8 I needed to change some small things. Every kernel did boot and run. I switched to the kernel built with gcc 8.2 now.
2. I did add support for the TI16C550C to the linux source so this UART supports now AutoFlowEnable (AFE) and works with the slow 68030 KISS computer at 460800 BAUD (which is only possible if you change the mf-pic crystal to 7372800 Hertz and adapt the kernel). But for the KISS Board a 16C750 is highly recommended.
3. I updated the 10.2 Bios to repair the detection of the TI16C750 and also changed the order of detection so that AFE is activated for TI16C550C and TI16C750.
4. If I start the KISS board cold with a 36MHz Crystal and 2 DRAM Wait States it works at least for memory testing, even for a long time (more than 50 passes). But it has startup problems when the board is warm.
5. A friend of mine wrote a userland tool (busio) which reads and writes to the USB-FIFO board from Will. With this tool I have a ppp deamon running and get about 100KB/sec IP traffic. Pure writing or reading without anything else would be 1MB/sec with this board.
Denis
[Updated on: Wed, 10 April 2019 10:29] Report message to a moderator
|
|
|
|
|
|
|
Re: Building a KISS 68030 Computer [message #10370 is a reply to message #10333] |
Thu, 08 June 2023 14:05   |
 |
will
Messages: 213 Registered: October 2015
|
Senior Member |
|
|
Hey guys
I have a port of Linux 6.2 to KISS-68030. This was quite a bit of effort and required reworking/rewriting most of the drivers.
The IDE interfaces are now supported using the modern "libata" subsystem.
The RTC is now supported using the standard DS1302 driver and a custom SPI driver for the MF/PIC RTC interface.
I've written a (very basic!) character driver for the ECB USB-FIFO board. It could certainly be improved.
The VGA3 board is supported -- PS/2 keyboard, PS/2 mouse (untested!) and text mode video output. This driver is working but unfortunately hobbled by some limitations of the VGA3 hardware -- you can talk to it using either IO or memory mapped access, the former works great, the latter has some sort of timing issue. I plan to rework the driver with some mitigations, for example only using IO operations. It does work, however, and it is pretty great to have a proper keyboard and video interface directly on the KISS machine!
I also have a new userspace for the machine, based on buildroot, which is much faster than the Debian userspace. Sadly buildroot does not build a compiler etc so this is not the ultimate solution but it shows that a faster userspace is definitely possible.
I've been really busy with "real" work recently and consequently the (KISS) work has stalled, but if you're interested in a rough and ready copy of my working version please email me (will@sowerbutts.com) and I'll send you a note when I put it online.
Will
[Updated on: Thu, 08 June 2023 14:06] Report message to a moderator
|
|
|
|
|