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: 11
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      64      1       1.94
32      60      1       1.88
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 477 times)
  • Attachment: IMG_4265.jpg
    (Size: 2.10MB, Downloaded 467 times)

[Updated on: Tue, 02 April 2019 15:44]

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: 299
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: 299
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: 11
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: 299
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: 11
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: 11
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 message
jcoffman is currently offline  jcoffman
Messages: 299
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
Previous Topic: Congrats to Sergey (VCF PNW)
Next Topic: MSX cartridges / pcbs


Current Time: Fri Feb 21 09:52:39 PST 2020

Total time taken to generate the page: 0.01100 seconds