RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

Home » RBC Forums » General Discussion » Linux on KISS-68030 single board computer
Linux on KISS-68030 single board computer [message #349] Sun, 21 February 2016 14:30 Go to previous message
will is currently offline  will
Messages: 213
Registered: October 2015
Senior Member
Hello everyone!

I am pleased to announce my first release of Linux for the KISS-68030!

I've made a slightly rambling video to show the board and demonstrate it working: https://www.youtube.com/watch?v=MYpMOBaohbw

Not sure how the group feels about the video format - I think it's a good way to properly demonstrate a system which others may not have access to. Feedback is welcomed -- and I'd love to see videos from other SBC and S-100 builders!

Current status:

  • ROM supports loading COFF, ELF executables from FAT filesystem
  • Linux has been ported to the machine and I have written drivers for all of the hardware
  • System appears to be very stable
  • System is self-hosting; the ROM and the Linux kernel can both be built on the machine itself.


Required hardware:

  • Power supply (I used my bench power supply set to 5V 2A)
  • ECB backplane
  • KISS-68030 CPU board
  • MF/PIC I/O board (you must first apply the 2015-09-22 update to connect IDE IRQ to NS32202 IRQ9)
  • 8GB CompactFlash card and IDE adapter (possibly a regular hard disk will work also)


I have uploaded a ZIP file (331MB) which contains:

  • Boot ROM image
  • Patch against Linux 4.4.1 source code
  • README file with further instructions
  • CompactFlash card disk image: This includes a boot filesystem and a current Debian Linux root filesystem with a bunch of standard tools. This has gcc and the other tools required to rebuild the kernel and ROM from the source code (also included).


I think at this stage the Linux support for this board is complete, pending hardware additions! My next objective is to connect the machine to a TCP/IP network. I think the simplest way to achieve this will be to add another UART for a PPP serial link. Initially I will use a second MF/PIC board with some modifications, essentially omitting the NS32202 and DS1302 and re-routing the interrupts. I am waiting for the PCB and components to arrive so I can start work on that. John is also working on a quad-UART board design which will be a better solution when it becomes available.

Copy of the README file follows. Share and enjoy!

Debian Linux for KISS-68030

To make this work:

 - configure your MF-PIC at a base address of 0x40 (which is the standard
   setting). 

 - fit as much RAM as possible. I suspect 16MB is the minimum required to boot
   to multiuser.

 - fast CPU recommended.

 - get an 8GB or larger Compact Flash card, and write the disk image to it:
     bunzip -dc 2016-02-20-kiss68030-hddimage.dd.bz2 | dd bs=1M of=/dev/sdX 
   where /dev/sdX is the name of your CF card (note: the whole card, not a
   partition on it, ie /dev/sde instead of /dev/sde1). The Compact Flash 
   card contains:
    - First partition (128MB): A FAT format filesystem, used by the boot ROM. 
    - Second partition (about 7GB): An ext4 format filesystem, used by Linux.
    - Third partition (1GB): Swap space for Linux. Try to avoid using this!

 - Connect the CF card to the IDE port on the MF-PIC.

 - write "kissbios.rom" to your ROM chip -- I have padded the file to 512KB to
   make this easier, however only the first 46KB is actually used so you could
   use a smaller flash ROM chip if you need to (this is untested)

 - set your terminal to 115200 baud, 8 bit data, no parity, 1 stop bit, and
   enable RTS/CTS hardware flow control.

 - power on the system. On the first boot you will want to run Setup by
   pressing "s" immediately on power-on. Enable IDE Board Type 1 ("Parallel
   Port") at Base port address 44 hex. Then on rebooting the system it should
   run the ROM. This should detect the CF card, find "boot.cmd" on it, and boot
   it automatically after 1--2 seconds. 
   
 - Linux should boot and after about 10 minutes you should be able to log in with
   username "root", password "root".

 - Useful tricks:
     rz, sz     -- Z-Modem file transfer through console
     screen     -- Run multiple sessions on one terminal (read the man page)
     flash030   -- Reprogram the flash ROM in-system
     nice       -- Run a program with reduced CPU priority

 - When you're finished, type "halt".

Source code and build environment:

 - Source code for the Linux kernel, boot ROM and flash030 is all in the /root/
   directory on the Linux filesystem. The filesystem image includes all the
   tools to build these on the KISS-68030 system itself, or you can
   cross-compile on a faster machine.

Notes on the ROM:

 - It is only really useful with a CF card present.

 - If a file named "boot.cmd" is present it will be used as a list of commands
   to automatically boot the system.

 - If "boot.cmd" is not present the system will drop to the ROM command line
   rather than automatically booting.

 - Pressing "x" or "s" quickly after reset will drop to the command line or
   enter setup, respectively. Note that any other key will skip the delay and
   automatically boot immediately.

 - At the ROM command line:

   - If you have multiple disks, 0:, 1:, 2:, 3: etc will switch between them

   - "cd" will change directory

   - "ls" or "dir" will list the directory.

   - typing a file name will try to load it as a program: 
   
     - COFF or ELF executables are supported. A single argument of "u" or "s"
       will cause the program to run in user or supervisor mode, respectively:
       "myprog.elf u"

     - Linux kernels are supported. Arguments are passed to the kernel verbatim,
       with the exception of "initrd=<filename>" which can be given to load an
       initrd image into memory for the kernel:
       "vmlinux.elf initrd=initrd.img console=ttyS0,115200n8r init=/bin/bash"

     - Any other arbitrary file can be loaded by giving the load-address as
       address (in hex):
       "myprog.bin 1000"

   - "execute <addr> [u|s]" will jump to a given address in user or supervisor
     mode.

   - "writemem <addr> <byte...>" will write to a given address in memory. You
     can use "wm" as a shorthand.

   - "dump <addr> <count>" will dump the contents of the specified region of
     memory in hex and ASCII. You can use "dm" as a shorthand.

[Updated on: Thu, 25 February 2016 11:27]

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message icon1.gif
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: SBC-85 PCB wanted in Europe
Next Topic: Stock of new IC's to clear


Current Time: Sun Apr 20 19:35:18 PDT 2025

Total time taken to generate the page: 0.00662 seconds