Shop OBEX P1 Docs P2 Docs Learn Events
OMU on the pPropQL — Parallax Forums

OMU on the pPropQL

AleAle Posts: 2,363
edited 2009-08-11 08:27 in Propeller 1
Well,

as many may know I'm porting One Man Unix to the pPropQL. Actually only 2 boards exist so the audience is a bit limited. I also have to write the io and video to make the QL ROM run in these boards, but that is also a work in progress.

Hardware:
a 68008 processor
128k (minimum) SRAM
64/128k FLASH/EPROM
2 Propellers one for video and one for IO

I'm not planning to do more pPropQL board as they are because there is a lack of 68008 processors. But as I have some 68EC020 available they can be used (with a new PCB) instead, even in 8 bit mode (low cost/simplicity solution). If you want a board, ask for one of those.

I have a new board in the making, currently in production now with a 68EC020 but with 32 bit bus. If all goes well, it will be ready in two weeks. If anybody wants one let me know so I can launch a new series (I let only 2 be made). (Baggers I did not forget you).

This new board can also run uClinux if it is stripped enough. I has basically the same hardware as the other one but with more ram, a faster processor, a peripheral expansion bus, and programmable logic.
***

Now, the porting of OMU:

- As I do not know the availability of the original compiler and some missing include files, I'm using gcc targeted to m68k.
- Missing includes: I borrowed some (and modified) linux headers. This gave a bit of extra complications but well, you cannot have everything. They are mostly solved now.
- The kernel compiles but some device drivers not. To address this I rewrote a harddisk driver (to use a SD card) and have still to write a new tty, extra serial and rtc drivers. The original SCSI and floppy drivers were dropped. The ramdisk remains for now, it compiles.
- Binary interface. The original OMU used a kind of a.out format. We could either use some other (maybe the same, by chance) a.out format or directly elf. I think elf poses some extra overhead and complications unnecessary at this point.
- Disk format. It uses some sort of UDF, may or may not be compatible with any linux supported UDF. I'd leave it as it is because I want it to boot before I touch it too much.
- The original needed some 256k RAM, but I want it to work on 192k so pPropQL can be used. This board can be with small modifications be adapted to use 640k RAM albeit not contiguous (I think the lower 128k can be safely used for video and kernel and the rest for programs).
- The lack of (as of yet) a native compiler (some exist but it will be in the not so near future) compilation means cross-compilation. Linux works now, Mac OSX comes next, winblows at your own risk, as always.

Note: with 4MB in the 020 board, uClinux can be safely used. But there are little challenges in that path wink.gif.

Comments

  • BaggersBaggers Posts: 3,019
    edited 2009-05-07 09:20
    Cool news, look forward to you're next update [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • heaterheater Posts: 3,370
    edited 2009-05-07 11:15
    Oooo.. Linux and two Props. I'm drooling already.

    Did you manage to contact Steve Hosgood about OMU?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • AleAle Posts: 2,363
    edited 2009-05-07 11:20
    I did not even try smile.gif. If I encounter too much difficulties I'll. While I make progress I prefer not to bother him.

    heater: the props do not execute linux, they only do I/O. While they do have the horsepower they do not have the memory capabilities :-(. I hope they fix that for next prop !
  • BradCBradC Posts: 2,601
    edited 2009-05-07 11:52
    All I can do is drool! Well done indeed!

    I remember running mklinux on my 68020 Mac IIci years ago (I had the add-on MMU)... ucLinux looks like fun. I wonder if I can get the m68k Freepascal compiler to compile bstc ?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "VOOM"?!? Mate, this bird wouldn't "voom" if you put four million volts through it! 'E's bleedin' demised!
  • AleAle Posts: 2,363
    edited 2009-05-07 12:51
    BradC said...
    I wonder if I can get the m68k Freepascal compiler to compile bstc ?

    That would be very nice!
  • AleAle Posts: 2,363
    edited 2009-05-08 09:37
    Well, I got OMU to compile! smile.gif. It is 56kbytes using m68000 and -O2.

    There are plenty of warnings during compilations and lodas of redefined symbols and I need a useful simulator to test all this. That will be the next point: get it to run in a simulator.

    TODO:

    - Eliminate warnings and duplicated symbols
    - Implement some libc functions
    - Get the binary to start at 0x00_0400 instead of 0x8000_0000 :-(
    - Get it to run in a simulator
    Propeller tasks:
    - Implement the tty
    - Implement low-level SD access
    - Implement keyboard
    - Implement text video
    - Fun at 14:00 16:00 and 20:00 hs wink.gif

    If anyone wants to give it a try, let me know so I post the current source.
  • BradCBradC Posts: 2,601
    edited 2009-05-08 10:00
    Ale said...
    Well, I got OMU to compile! smile.gif. It is 56kbytes using m68000 and -O2.
    <SNIP>

    If anyone wants to give it a try, let me know so I post the current source.

    What would we run it on ???? [noparse];)[/noparse]

    .. oh and *well done*!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    "VOOM"?!? Mate, this bird wouldn't "voom" if you put four million volts through it! 'E's bleedin' demised!
  • AleAle Posts: 2,363
    edited 2009-05-08 10:47
    BradC said...
    What would we run it on ???? [noparse];)[/noparse]

    I think you are missing the point here smilewinkgrin.giflol.gif

    Why there is no simulator that suit my needs ? confused.gif, well let's write yet another simulator front end cool.gif
  • heaterheater Posts: 3,370
    edited 2009-05-08 12:46
    Ale. Hey I said Linux "and" two Props not "on". I'm not expecting miracles !

    I have mentioned from time to time how I'd like an ARM or such running Linux and a prop or two on a small board. This is just the thing.

    Good to here about OMU.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • AleAle Posts: 2,363
    edited 2009-05-08 13:26
    In the case of an ARM, the prop would only be needed for video as most ARMs have already enough to control serial, SD cards and so on. the 68ks are just bare processors. A coldfire in the other hand can provide some niceties (that would also be available in the ARM variants).
  • AleAle Posts: 2,363
    edited 2009-07-21 09:56
    I have been updating the wiki (on my sig) about the progress with the boards and OMU.

    I'm working of the propeller interface for SD card so I can finish the bootloader and the hardware device driver for OMU. The serial tty is going to be implemented using the video propeller and the keyboard. A serial port will also be implemented.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU
  • AleAle Posts: 2,363
    edited 2009-08-11 08:27
    Just a quick update for the ones (anyone?) following this:

    - I finished the SD interface, i.e. I can read sectors from the Moto processor at will. A nasty hardware bug (NWE0..3 were reversed!) was preventing further progress.
    - The circular buffer in the keyboard object is driving me crazy. So I put it to rest for a while lol.gif
    - I settled on a minix v2 filesystem either in a FAT partition or as a partition itself, to be determined, not very important at the time.
    - A java based M68k simulator has been obtained, I wrote a disassembler for it and it works. There are a few missing opcodes but it should be enough (with the added opcodes) to debug OMU. It does not contain any 020 specific opcodes, OMU and the simulator but it shouldn't be a problem. A small interface for console, SD card, RTC and keyboard has (still) to be written.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Visit some of my articles at Propeller Wiki:
    MATH on the propeller propeller.wikispaces.com/MATH
    pPropQL: propeller.wikispaces.com/pPropQL
    pPropQL020: propeller.wikispaces.com/pPropQL020
    OMU for the pPropQL/020 propeller.wikispaces.com/OMU
Sign In or Register to comment.