News:

Forum Updated! 

Main Menu

ERSA Project

Started by lydux, March 18, 2012, 02:48:40 AM

Previous topic - Next topic

lydux

Hi x68000 users !

Some of you know that I were working on this. But now, it's time for me to show to all of you my master project. The project, which forced me to understand many things on the x68k, has finally turned the last week to a newer stage. I now know that it's viable and possible to realize.

Here we go, some pictures first :




Schematics PDF version








As you can see, Ersa (its name) is a cheap expansion card featuring a Parallel ATA bridge and controller designed for X68000. In fact, it provides a REAL TRUE 16bits IDE interface. That include all IDE compatible devices (here I use CF), as well as SATA 1 (using a cheap adapter widely available on ebay, it will work).

The actual produced PCB is totally homemade and I have designed it with respect to DIY project constraint (via size, drc, layers, ...).
Of course, that's a prototype, but it's fully working ! I've been able to query the CF for its identification and configuration, reading and writing in CHS mode as well as PIO mode with interrupt enable. Adressing up to LBA48 should also work (TBytes drives), and it's DMA capable.

So now, I'm on software development. All have to be written : low level bios functions set, thinking about disk layout (I will probably not follow SCSI), a bootloader, human68k driver and toolkit for partitioning/formatting drives.


That's all for today, stay tuned !


I would like to give a special thank to stt1, who sell me 2 not working x68000 (They serve me a LOT in this project). He also give me standard x68k expansion card's dimensions, they were really accurate ! :)

neko68k


SuperDeadite

Amazing work!  I feel selfish to ask this, but would it be possible to make a version that also has RAM chips on it as well and be a 2-in-1 card?

eidis

#3
  Congratulations Lydux on your achievement !

This is truly space age and will make those expensive SCSI to IDE adapters obsolete. Better yet, your expansion card will have faster disk access times because of the DMA. Would it be possible to integrate ram expansion into this board as well ? ;) That would be the ultimate combo !

Keep the scene alive !
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

lydux

I were sure about this wish ! :D And I understand you ; as I myself need RAM. I'm often thinking about a way of adding this to the board.
Unfortunatly, implementing ram chips within this board is an hard task for multiple purpose.

First, at a prototype stage, the core chip I use (the EPM7128) have not enough free pins available for driving DRAM banks...
Second, the x68000 is able to communicate natively with SRAM and asynchronous DRAM. Async DRAM can be FPM or EDO, but since year 2000, these are no more produced and tend to be very difficult to find as single chip ! And anyway I don't want to create newer design with older components.

So, we have to rely on Synchronous DRAMs (SDRAM or DDR SDRAM). This will require a new dedicated controller that will run at SDRAM frequency : 133Mhz... Far from the 10Mhz our x68000 runs isn't it ? :) Such speed can only be reach using an FPGA.
That's all smd, high pins counts, all voltages but 5v (of course, the voltage used by the X68000), involving voltages translations, time, increasing the price, etc...
Well, an hard mess yes, but possible and interesting from my point of view. I will probably go in this direction later.


As an easy alternative, I think I can create a simple card with a simm socket dedicated to a 5v 16MB FPM simm bank, there are plenty available on ebay for some bucks. Limited solution, but cheap and usefull I think.

Quote from: eidisBetter yet, your expansion card will have faster disk access times because of the DMA.
As far as I know, DMA is also available on SCSI (I don't know how to enable it, but the SPU can perform DMA). The major difference is the data bus limited to 8bits on SxSI. While IDE use the full 16bits data bus, so at least will double data transfert rate. Not to mention that the SCSI <=> IDE solution is time consumption when performing the conversion.

eidis

#5
 I smell a bestseller !

QuoteAsync DRAM can be FPM or EDO, but since year 2000, these are no more produced and tend to be very difficult to find as single chip !

This reminded me of a trick which I used to repair a Super Pro Fighter backup unit for the SNES. It had faulty RAM chips so I found a SIMM module with compatible RAM addressing and my guru friend used heat gun to remove them, then soldered donor chips to SPF's RAM board and it came back to life. All I want to say with this is that a SIMM module with 8 chips can cost as much as one chip, they are dirt cheap and readily available on eBay in large quantities . The only drawback would be constantly asking the sellers for the ram chips part numbers and the soldering fiasco. IMHO using DDR SDRAM would be an overkill.

Your prototype board looks very well developed and etched. Just a little bit of green solder resist and it will look very pro :)

Keep up the good work and may the scene be with you !
Eidis

Edit: Can you show us a video with It in action ? ;)
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

stt1

Hi!

Thanks for thanks lydux  :)

And I'm of course interested in this card, when it's available. And I surely know at least one X68k user in Finland more who wants this stuff...

Anyway, about that memory issue. There are plenty of of SIMM (30 or 72-pin) PC-memory modules laying around. And the sizes for 30-pins are usually 1-4MB, 72-pins starting from 4... How about just adding the socket for 30 or 72-pin SIMM-module and let the user find suitable memory module for it? Mostly 1-4MB is enough for X68k-user anyway.

Even I could supply a bunch of those SIMMs, and there are plenty available in Ebay as well. Also, some original X68k add-on cards do use this same approach with SIMM sockets onboard. I have one of these boards on my X68030.

- Saku

lydux

Hi !

Small update about the advancement.
I'm working every days on software side. This is a long task...
I've performed many things now : various small or huge tools for developpement, and going very deep in IPL and Human68k disassembly. I now know about every things about the boot process, drivers development for Human68k and its filesystem.

Here is a list of some tools I have done or working on :
- Huge modifications on GCC 4.6.2, mostly to perform cross-compilation targetting x68000 binaries. It allows for example to create low level IPL syscalls (iocscalls) entirely in C. This is a special calling convention only used by X68000. Even the original gcc for human68k does not allow this ! A very nice feature, to perform various software mods and hacks. This gcc port is now pretty stable, and ready to be released soon.
- XFile backend for Binutils : allow to create XFile format, totally compatible with Human68k. Also allows to debug the binary with Hudson/Sharp DB.X and SCD.X.
- HudsonSoft debugger backend for GDB. This remote debugger embedded inside the IPLROM provides a way to debug any binary (even the IPL itself) over the serial line, but only in assembler. Having a GDB backend to communicate with this debugger allow to remote debug any binary in C or control the whole machine (uploading file, remote reset, testing memories, etc...)
- Newlib port for Human68k. Newlib is a lightweight, portable and trully ansi and posix compliant libc. A basic set of functions for C development and a must have to write applications for Human68k. Usable, but far to be finished, this is a very long task and I need volunteers to help me here...
- A small libc for SRAM based applications. To create nice and powerfull things that'll fit in the SRAM.
- An SRAM file writter for human68k.
- A developper bootloader for SRAM. This things will initialize the serial port to 38400bps, allow an SREC file to be uploaded anywhere in memory then to boot it. It also perform ERSA controller initialization and install low level functions as iocscalls for accesssing ATA drives. Plus various modules like a CRTC moding (force the CRTC to stay in 31khz mode, and redefine CRTC modelines to be compatible with LCD monitors. This, because the screen isn't centered on my vga monitor by default, annoying...).

And on ERSA side, most needed low level functions are done (Reset, Select ERSA channel and drive, perform single ata command, seek using LBA, read and write in pio mode, drive identification). I have started to program the bootloader, but realize that I need human68k driver at first (as it needs to be provided to the kernel on boot stage). It's mostly done.
About partitions and formatting, I will not provide tools. I intend to use MSDOS style of partitioning, and traditional FAT16.
A translation layer is written inside the driver. So partioning and formatting have to be done on a PC, and the drives will stay compatible on both system... Will simplify file transferts.

That's all, stay tuned ! :)

eidis

 Lydux, that is fantastic work !

Is there any way that I can help you with your project ?

Keep the scene alive!
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

Opethian

sign me up for one of these as well! you are playing god with the X68000!

RobIvy64

I don't want this, I NEED this!
"Console Mods" lurker

ApolloBoy

So if I read this right, this card will let you load disk images on an X68k? If so, I'd be very interested in this!

lydux

Quote from: ApolloBoy on April 20, 2012, 10:04:45 AM
So if I read this right, this card will let you load disk images on an X68k? If so, I'd be very interested in this!

Not exactly. This is nothing more than an hard drive ! But instead of having an old, slow and loud SCSI/SASI drive, or an expensive IDE<->SCSI converter, ERSA provides you a cheaper, modern and fast access way to add an hard drive on your x68000.
And well... I also have an idea in mind for mounting xdf floppy images located in your drive on some virtual floppy drives... This is theorically possible... Well... Let me stabilize ATA drive access first and produce this board !  ;D

Quote from: eidis on April 17, 2012, 08:30:00 PM
Lydux, that is fantastic work !

Is there any way that I can help you with your project ?

Keep the scene alive!
Eidis

Thanks Eidis ! Yes, there is many many things to do and where you can help. Not directly related with ERSA, but with x68000 development in general : translations, documentations, tutorials... I need to talk with you.

eidis

 Hi Lydux !

I understand that there is serious lack of free time so maybe you could recruit someone to help you with this project ? I am sure that many of our forum members would gladly help to make ERSA a reality.

Keep the scene alive !
Eidis
X68000 personal computer is called, "X68K" or "no good good" is called, is the PC that are loved by many people today.

amigo-mexicano

Great project! Any update on it?
From Mexico City... Amigo-Mexicano!
Also known as: "compil3r" || video-juegos.com

emerald danjon

Hi all,
i hope this is close to be done  :),looks really awesome.