RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Building a KISS 68030 Computer (some suggestions)
Building a KISS 68030 Computer [message #6203] Tue, 02 April 2019 08:20 Go to next message
denis2342 is currently offline  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:

/forum/index.php?t=getfile&id=1310&private=0

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:

/forum/index.php?t=getfile&id=1311&private=0

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 #6204 is a reply to message #6203] Tue, 02 April 2019 12:00 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
Denis,

You get the 5 gold stars for the most complete testing of the KISS-68030, and updating (hacking ;-) -- way beyond me.

I'm surprised the 50/24mhz memory/cpu oscillator combo did not work. I've had success with 50/25mhz, but there may be phase feedback on the power supply lines which helps it. The parts in the memory controller (e.g., 74F195A) operate with very slim (1-2ns) timing margins.

Yes, the NS32202 is slow. The MF/PIC board was originally used for the Mini-68008 board.

A faster way to transfer files, if you run a Linux system is to move the CF card to a USB 2.0/3.0 card slot and copy directly. The EXT2 file systems are big/little endian compatible. Interesting that you had little trouble with the 4 X 1.8432mhz (7.37) to work.

Omitting 4 w.s. jumper option for I/O was a compromise to save board real-estate.

--John

Re: Building a KISS 68030 Computer [message #6205 is a reply to message #6203] Tue, 02 April 2019 12:06 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
Two more comments from me.

a. Have you tried 66/33mhz mem/cpu osc combo?
b. OOPS, you are using a hard disk. No wonder you need faster UART!! Most of us have used CF cards. AFAIK, you are the only one using a hard drive on the system. An oldie?

--John
Re: Building a KISS 68030 Computer [message #6206 is a reply to message #6205] Tue, 02 April 2019 16:00 Go to previous messageGo to next message
denis2342 is currently offline  denis2342
Messages: 23
Registered: February 2017
Junior Member
jcoffman wrote on Tue, 02 April 2019 21:06
Two more comments from me.

a. Have you tried 66/33mhz mem/cpu osc combo?
b. OOPS, you are using a hard disk. No wonder you need faster UART!! Most of us have used CF cards. AFAIK, you are the only one using a hard drive on the system. An oldie?

--John
question a:
Ok, tried again now and had some luck with 50MHz for memory. I updated the table.

question b:
my compact flash adapter is still on its way from china to me. But I like old spinning rust. It gives acoustical feedback. I just added the LED to have optical feedback too.

I have questions too!

I saw there is some disasm code in the bios, but how do I get to it?

Now some more suggestions for the BIOS:

1. Would be nice if there were some way to reset/restart from the prompt.
2. also a way to start the memcheck from the prompt.
3. the detection of the 16c750 is broken. I quote the datasheet: A write to FCR bit 5 is protected by setting the line control register (LCR) bit 7 = 1.

I had no luck to build the bios myself. tried gcc 5.4 and 8.2. Don't want to downgrade to 4.

Denis
Re: Building a KISS 68030 Computer [message #6207 is a reply to message #6206] Tue, 02 April 2019 22:23 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
RE: disasm

There are 2 versions of the BIOS, a Debug version and a RETAIL version. The disassembler is part of the debugger, which is not loaded in the RETAIL version. The Debug bios is built: 'make RETAIL=0', and the distributed version is built: 'make RETAIL=1'. See the makefile.

RE: restart from prompt

The Reset switch is just too simple a solution; remember what "KISS" stands for in engineering parlance. An external reset switch wired to the backplane connector is a real convenience.


RE: memcheck from prompt

If memory is failing, you may never get to the prompt. The double hit on the Reset switch is failsafe.


RE: 16C750 detection

I noticed this problem in the detection algorithm on another system. That one is fixed, but the corrected algorithm just has not been backed into the BIOS's that need updating.


RE: BIOS build

Use Will's tarball of the gcc-4.1.1 cross development suite (for AMD64). The makefile expects certain names, and the suite located in /usr/cross/m68k-elf/...

CP/M-68 must also be customized to KISS or Mini, just as the BIOS (10.2) has some compile-time minor differences.

--John



Re: Building a KISS 68030 Computer [message #6233 is a reply to message #6203] Tue, 09 April 2019 11:11 Go to previous messageGo to next message
denis2342 is currently offline  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 #6261 is a reply to message #6203] Fri, 19 April 2019 16:58 Go to previous messageGo to next message
denis2342 is currently offline  denis2342
Messages: 23
Registered: February 2017
Junior Member
Update:

After changing a lot of the 244,245,240 chips with 74FCT versions and also a lot of simple LS chips with ALS ones I could switch from 4 WS to 2WS for the MF-PIC Board.

The three cards (CPU, MF-PIC and USB-FIFO) now need a little less than 6W overall. I have a lot more ALS chips on the way to me, so this will further decrease.

The preinstalled OpenSSH version 7.2p1 did crash for me. So I downloaded the just released OpenSSH 8.0p1 and build it native on the KISS board in more than 10 hours and it works just fine.

Denis
Re: Building a KISS 68030 Computer [message #6262 is a reply to message #6261] Fri, 19 April 2019 21:14 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
Denis,

Good to know another OS is operating on the KISS-68030. The 68030, IMHO, is one of the best designed chips of its era.

--John
Re: Building a KISS 68030 Computer [message #9333 is a reply to message #6233] Sun, 31 October 2021 20:09 Go to previous messageGo to next message
berzerkula is currently offline  berzerkula
Messages: 21
Registered: May 2020
Location: Arkansas, USA
Junior Member
denis2342 wrote on Tue, 09 April 2019 11:11
New progress report:

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
Denis,

Do you have any more info about the busio user land tool and the ppp daemon? I have assembled the USB-FIFO board and am thinking of writing character device driver for the kernel. Would like to use it for PPP, as well. Also have a second MF-PIC board I can assemble, too.

William


You feel a whole lot more like you do now than you did when you used to.
Re: Building a KISS 68030 Computer [message #10333 is a reply to message #9333] Sat, 06 May 2023 05:44 Go to previous messageGo to next message
denis2342 is currently offline  denis2342
Messages: 23
Registered: February 2017
Junior Member
A character device would be really cool and would really speed things up because the data doesn't need to travel from kernel to userland and back.

you use it this way:

./busio 0xffff0000 pppd notty passive
  • Attachment: busio
    (Size: 8.44KB, Downloaded 168 times)
  • Attachment: busio.c
    (Size: 3.91KB, Downloaded 154 times)

[Updated on: Wed, 10 May 2023 00:30]

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 Go to previous messageGo to next message
will is currently offline  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

Re: Building a KISS 68030 Computer [message #10447 is a reply to message #10370] Thu, 28 September 2023 09:09 Go to previous messageGo to next message
denis2342 is currently offline  denis2342
Messages: 23
Registered: February 2017
Junior Member
hi will,

any updates of your work?
Re: Building a KISS 68030 Computer [message #10448 is a reply to message #10447] Thu, 28 September 2023 14:36 Go to previous message
will is currently offline  will
Messages: 213
Registered: October 2015
Senior Member
Hey! No big updates, sadly. I've been busy working instead on GogoBoot which is a 68K ROM boot loader with ethernet support. I have an ECB ethernet design nearly ready. The software is already tested and proven working on my 68040 Q40 machine.

I will definitely share my linux 6.2 work. When I last worked on it I determined that the VGA3 card's memory mapped interface is not reliable enough so I will need to rewrite the console driver to exclusively use I/O port access. Once that is working, and the NE2000 driver tested with real hardware, it should be ready! Happy to share work-in-progress patches if you drop me an email.
Previous Topic: Diagnostic "Hat" for Z80 and 6502 in solderless breadboard
Next Topic: Simple 68020


Current Time: Tue Jul 15 12:53:22 PDT 2025

Total time taken to generate the page: 0.00806 seconds