CFIDECP (CFIDE68K) (IDE68K) Amiga 68000 DIP-64 socket IDE interface

Internal IDE interface plugs in the 64-pin 68000 CPU socket of Amiga 500

Autoboot with KS-ROM with IDE driver for A600's IDE interface
One IDE connector (standard "40-pin" 0.1" pitch IDC)
CompactFlash connector in V188/208/290/293/295/296/297 (CF card in true IDE mode as a master or slave on the IDE bus)
Experimental "clockport" connector in cfidecp290,3,5,6,7 ("29x").
Plugs into CPU socket of A500 rev6. (Also A500 rev5, A2000, B2000 A1000 and the CDTV, if space allows, and A500+)
The user needs to connect two or more wires from this board to the mainboard of the Amiga. (Soldering is recommended, but not not the only way you can think of, for example there are so called "IC-clips".)
Home made hobbyist hardware, may not be available for sale.
Absolutely no warranty (Possible problems may or may not be solved.)
Naming: IDE = 39 or 40 pin connector, CF = CompactFlash slot, CP = "Clockport", Version or revision codes run wildly.
My homepage: iki.fi/mkl E-mail: mlvhct@gmail.com

News

www page clean-up, need "proof-reading"
NEW BUGS NOTICESome older CPLD code can have glitches, that causes for example HDD:s not appear while CF-cards may show up. Updated codes shall be downloadable. For V401,402 .jed file with id-string "4025" is made.

pics

To be added: V100 V106 V188 V208 V290 V401 V402... photo (jpg) of v401 board

Pictures

V100 from behind with xtal module which is not used from below with right-angle connectors and soldered 68k to achieve low profile V3b prototype

Kickstart ROM

Amiga 600 compatible KS-ROMs

Since the board emulates the internal IDE-interface of Amiga 600 and it doesn't have ROM of its own, you thus need Kickstart ROM with the driver for A600's IDE. These ROMs are:
KS3.1 V40.063
KS2.05 V37.350
KS2.05 V37.300 (Some say this isn't ok for some ide drives, i don't know any better.)
AFAIK, an early A600 KS-ROM KS2.05 V37.299 doesn't have the driver. KS2.04 ROM used in A500+ don't have it either.

(Or in other words) Autoboot with A600 kickstart

Kickstart versions 3.1 (V40.063), 2.05 (V37.350/V37.300) should make it autoboot. According to an "urban legend", there may be issues with the V37.300 variant of KS2.05. I don't know what they are, or are these problems serious.
Kickstarts that will not autoboot are 1.2, 1.3, 2.04 and 2.05 V27.299, since they don't have the IDE-driver for A600.

KS-ROM drivers have bug(s) on their own

Need to set the MaxTransfer size setting in HDToolBox for each partition to avoid transfer errors with files over 128 KBytes. Max. usable disk size under 4GBytes and partition size under 2GBytes without separate "64-bit" drivers installed.

Kickstart1.3 + scsi.device ide.driver + some patches

Thomas Köckerbauer joined scsi.device from KS3.X with KS1.3. (Link href=http://www.gup.jku.at/~tkoeck/kick1.3_scsi.device_patch/ not working.) Patching Kickstart 1.3 to boot from internal IDE

A thread at eab.abime.net

FAQ

Q: Is it compatible with other additions, such as turbo cards?
A: Not necessarily, experiences from users (of mostly V100/106):
CF-connector at the back conflicts with Indivision in Amiga 500.
Works with GVP A530.
"I bought a IDE68K and can confirm that it works with Microbotics VXL-30 in 030 25MHz mode."
"I can confirm that it does not work with a Neuroth020 CPU board. But it works in 68k mode with a 2MB memory expansion."
"BTW I have tested the IDE 68K with an MTec 68020i accelerator in the A1000 and it does not work with that one. It does work with the ICD ADSpeed however."
V401: "This works with a Computer Systems Associates Mega Midget Racer (CSA-MMR) 030 accelerator + 8MB 32 bit FAST RAM + FPU."
Note: Extra big memory (2MByte) expansions in A500 trap-door slot should not use address space D80000-DFFFFF! (D80000 is for "clockport", DA0000 and DE0000 for IDE.) Q: What is the maximum size of IDE-disk (or CompactFlash)?
A: KS40.063/KS37.350 should support disk size upto 2^32 bytes = 4 gigabytes. A single partition can be upto 2 gigabytes.
A2: Drivers for using disk space over 4GB exist. The device driver and a compatible file system driver need to be installed.
Q: What is the 6 pin header (or pads) for?
A: It is a JTAG connection for programming the CPLD with xilinx programmer cable. In v106, the 2-pin header in some pcb versions next to the 6-pin header is for a jumper that connects +5V supply to the 6-pin header. In V402 there's a place for smd fuse/wire link that connects +5V to JTAG and also to pin 20 of IDE-header.

TODO list for this www-page/related

Photos of different versions to front page. ... ...

Usage notes: Partitioning, Formatting and software installation

Amiga 600HD originally came with a hd preparation/install diskette, in addition to the Workbench + extra diskettes. (V2.05 system?)
In the same way as in A600, a new drive is first partitioned to "amiga style". HDToolBox is the partitioning tool from Commodore-Amiga. In one case it didn't work for a user, so another partition software was used.
In HDToolbox, set the MaxTransfer setting for all partitions to 0x1FE00 (or maybe 0x20000, or for certain portability reason 0xFE00) Failing to do this can corrupt file transfers over 128 KiloBytes. See CF / SD research & troubleshooting
Different filesystems can be installed, FastFileSystem, OldFileSystem or something else. New partions are mounted, then formatted for use. Partitions should mount automatically when set up so with HDToolBox. They can be made bootable. Early startup-menu in newer (2.0+) KS-ROM can be invoked by pressing left and right mousebuttons simultaneously right after power-up or reset, there you can select which partition to use as sys: boot partition for this boot.
I'm not sure if this normal behavior, but new partition should be formatted right after HDToolBox preparation or it "disappears" and Format-command won't find the partition...
AmigaDOS Format command: you probably should use the "quick" option. I think (at least OS1.3) Format command needs RAM for a whole track, and format won't succeed if there's not enough RAM. There may be other format programs for Amiga.
About fixed vs. removeable disks CF-cards often tell to the host computer that they are removeable type. HDToolBox doesn't get the drive's reported name if this happens, but HDtoolBox can be patched to fix this. Or you can enter a name yourself.
Recommended reading, EAB sticky topic: CF / SD research & troubleshooting
EAB discussion thread "Using a Compact Flash card on a600/a1200 IDE"

(Hardware) installation notes

ESD

Take precautions against ElectroStatic Discharge, which can damage IC's.

Inserting

The board plugs in to the 68000 CPU socket. The CPU plugs in to the adapter board. The pin/socket headers used in ide68k/cfide68k will eventually break if they are wiggled too much, so be careful and avoid stress when inserting or extracting the interface board. Also be aware that the DIP-64 socket on Amiga mainboard can wear out by many insertion/extraction cycles, or even one insertion especially if the header pin contacts of ide68k board are thick(*) When inserting the ide68k board, see that all pins go to the right holes at the mainboard socket, and also be careful not to insert it the wrong way around: see where pin 1 at the notch-marked end of the 68000 CPU goes, like when it was originally in its place. Also, be careful when putting the CPU on the adapter board, see that all CPU pins are guided into the socket holes before pressing the cpu to the socket. (The CPU pins cand bend.) It may be best to put the CPU into the adapter before the adapter into the mainboard socket.
(*), Some versions have soldered "double end" 0.1 inch pitch single row round pin header strips at the underside. This type of header has small pin diameter, which is an important feature, since thick pins would very likely damage the DIP-64 socket for the 68000P CPU found on mainboards of many Amiga models. Square 0.025" x 0.025" pin headers are thick. Some versions of the board have socket headers (or individual "socket pins") with solder-tails as for contacts to mainboard socket. These are little bit thicker than the round pin headers used in e.g. V100/106.

Extracting

When pulling the board or the 68000 from socket, don't use sharp or otherwise damaging tools, the PCB tracks or parts may be damaged. I've put some hot glue over the 74vhct245 chips and CF socket in some V208 boards for protection against damage from tools. Apply lifting force "evenly." Do not use too much force, because when it begins to move, it will get too much speed and pop out because of high extraction force. Pins might then get damaged.

Adding two(+) connection wires and about their purpose

Pictures where to find connection points are in the version difference table below.
But first: These wires should be short, excess wire should not be looped because that may cause electromagnetic interference by inductance. For the same reason, [b]add ground wire(s)[/b] that runs alongside the other wires, between adapter and mainboard. A grounded header pin or pad maybe available on some versions of the ide adapter board.
It is necessary to connect two signals from the adapter board to the Amiga mainboard to get it to emulate A600's Gayle IDE behavior. One is /INT2 interrupt request signal, and the other one is /OVR, which is used here in an "unsupported" way: to disable address decoding by Gary, when address range $DExxxx is accessed. In A500 this is a mirror of the custom chip set addresses, but in A600 it is for special functions in Gayle, e.g. to detect presence of the IDE-interface of the Amiga 600. /OVR and /INT2 signals can be found next to each other at the 86-pin expansion connector. /INT2 can also be found at pin 21 of U7 8520 CIA (ODD CIA "A") in the Amiga 500, and /OVR at pin 29 of U5 Gary. /int6 is at pin 21 of the EVEN CIA "B", U8 in A500.
/OVR and /INT2 are available on the top side of the 86-position card-edge. Number one is a ground contact, and so is the next one beside it. In older A500 mainboards (rev5) these two positions may form a big unified copper area. When counting the top side positions, /OVR is the 9th, and /INT2 the 10th. In "pin-numbers": /ovr = pin 17, /int2 = pin 19, /int6 = pin 22. Link "Google" for other finds of information.

A1000, CDTV, A/B2000

I don't have an Amiga 1000 or a CDTV, but /int2, /ovr (and /int6) can be found on these models too. /ints are on CIA-pin(s) 21, Odd CIA "A" has /int2, and Even CIA "B" has /int6. CDTV and B2000 have a Gary chip same as A500(I think?). A1000 and IIRC A2000 don't have Gary. A1000 has similar side slot card edge connector as A500, but I think it is positioned differently than in A500, "up-side-down" or reversed in other way. The pin numbers are the same in A500, A1000, A2000 and B2000(see above.) In Amiga 2000 models the 86-pin connector is a "slot" instead of "card-edge". See B2000 (mb. rev4.4) connections to Gary and CIA for /ovr and /int2 in photo at the table below. Amiga 2000, at least mainboard rev.4.4, has connector marked "cn606" beside the CPU and 86-pin connector. It should be cleared somehow in order not to short circuit adapter boards. (I bent pins in one B2000)

And a third wire to connect

Boards with a clockport connector could use a connection of the /int6 interrupt. The signal is routed from the clockport connector to the third pin of the pin header which had 2 pins, for /ovr and /int2, in the boards without the clockport connector. On Amiga motherboards, /int6 signals can be found in various places. A500 card edge has this contact on the underside, whereas /ovr and /int2 could be found on the top side.

Will it fit in?

In the front of the A500, the keyboard might come in contact with the V100 board, if it is not built with low profile components: low profile pin headers, or 68000 soldered directly without a socket. V106 (and V188/208,some V29x, V40x) should fit, because it adds only the height of one socket layer.
Also the metal RF-shield of A500 will limit available space inside if used. Other combinations of adapter board and Amiga mainboard and case may have issues of fitting.

Differences between revisions

PCB size
CF connector
22-pin "clockport" (from which /int6 is routed to other header)
PCB component silkscreen may be left out in some productions of PCB.
DIP64 PCB holes diameter that allow soldering sockets so that the solder tails are contacts to the Amiga mainboard CPU socket.
V106 has series termination resistors for /IOW and /IOR lines.
LED and CF master/slave jumpers (in some versions buffered)
CPLD type. Some versions have separate 8-bit bus buffer. Package and supply voltage of these IC:s.
Passive components can be various, decoupling capacitors etc.
IDE connector rotated 180 degrees
V40x moves IDE-connector to other side of the CPU.
Schematics and boards mention 4.7 kohm pull up or down resistors. Changing these to 10 kohm in future versions. IDE data line D7 should have 10 kohm pull down according to IDE standard. This might be retrofitted on board in case needed.
100106CF 188CF 208CFCP 290CFCP 293CFCP 295CFCP 296CFCP 297401402
/int2, /ovr JPG (src) , JPG JPG, PNG JPG 1, 2 A2K JPG1, 2 V6a-A500 JPG A500+ JPG, BIG below img ascii
pcb imagepng png png png png (1) png png png png png png
schematic png ps png ps
png ps png png png png png png png png
CPLD code JEDABL JED ABL JED ABL ii68-4027.abl excuse the misleading number for v29x code ii68-4025.jed ii68-4025.abl
Notes.
() Warning: CPLD codes may have bugs. Recent downloadables in above table, old codes archived in zip
() Older than v100/106 board V6 abel source files had a bug. Certain Xilinx software option setting, "Compile Design" property "Feedback interpretation" as "Internal Feedback" instead of default "Pin feedback", produced a non-working jedec-file because one data signal was missing .pin suffix. A few non-working boards shipped. Some of the earlier (V106, maybe V100) boards were programmed with non-working cpld-configuration. If your adapter didn't work, it thus might be fixed by downloading a corrected cpld configuration using xilinx programming cable.
() The picture (v290) shows two unrouted "air wires". These are +5V signals, which are then not connected to each other on the adapter board. The other branch is fed from other 68000 +5V pin and the other from the other. The second unrouted signal is +5v to DMACK- signal of the CF card. But it is also not connected in v188 and v208 boards, so there is no difference to the previous versions of the board. This DMACK- signal is for DMA transfer mode of some newer CF cards, which is not used in this interface (which emulates A600's IDE)
() CompactFlash connector at the back end conflicts with A1000's floppy drive or an Indivision display adapter in A500. It comes close to 'Denise' chip in A500.
() REV5 Mainboard Many versions of this ide adapter will not plug right in to Amiga 500 rev5 board CPU socket, because the ROM is closer (than in Rev6 mainboards.) Solution is to use a DIP-64 socket as a riser, so the the edge of ide adapter board would not conflict with the ROM chip. The socket to use should have long, not too thick pins to stay in the mainboard socket. The riser socket should have a bit longer pins instead of very short pins, so it will make a good contact with the mainboard socket. () Note: versions below may have other bugs, update to later than C1/C2.
Some v290/293 boards were made with rev. C1 CPLD code and need CPLD reflashed for clockport. Rev.C2 or newer should fix the clockport (note: clockport has not been used or tested to be working by me so I don't know it is of any use.)
() Clockport connector is a bit too close to the IDE-connector, a 22-pin 2.0mm IDC-connector will conflict with the 40-pin IDE-connector if the IDE-connector is "boxed" ("walled"/"shrouded") Problem should be fixed in V297. () Older versions of CPLD code may have bugs. A few V402 boards shipped with rev1 ('41 ') cpld code, where the secondary outputs at the back of the board won't work.
In rev0 ('4010') secondary /OVR may work, but not the secondary /INT2. rev2 ('4020') fixes these but other glitches remain, so update to at least '4025', or "rev.5" (Xilinx download cable needed.)
() Primary /INT2 and /OVR pads are placed slightly differently in V401 vs. V402. Check out the connections from pics.
() The "LED outputs" of IDE and CF should be connected together, because this is actually the unbuffered DASP- signal, which is used for signalling between slave and master (in the beginning). DASP- signal has been separated between IDE and CF connectors since version 290 upto version 296, fixed in v297
The LED series resistor could have had a larger value in some boards, as low as 47 ohms have been used. 150 ohms or more could be more appropriate. Too much loading this signal might interfere with master/slave negotiation. The other LED resistor and the other LED itself can be left out, after you connect the DASP- signals together. CD-ROM drive maybe not working perfectly with CFIDE boards. (V100 worked with CD-ROM at least for one user.) CD-ROM may have appeared after a reboot. This could have been because of that missing DASP- connection between master and slave drives. (I haven't used CDROM myself. note: 'Idefix' cd-driver may need to be patched, when a CF card as the other device.) Also, the CPLD code can be updated to see if it makes things work better.

About its operation

IDE-signals are buffered and generated (decoded from Amiga's bus happenings) by a CPLD (user programmable logic IC) which also emulates the detection circuit of A600's ide interface. The emulation of a600 wasn't made 100%, but I guess enough.

Other drivers besides the one in an A600 kickstart

There is no warranty that the interface works reliably with the drivers in kickstart or other IDE drivers / software or devices.
At EAB web forum, coze says CD-rom works with IDE-FIX software. (Which may not be able to use "removeable" CF-cards without a patch.)

Speed

First I had a 256 MB CF-card with adapter on the cable, and then I added a 1.6 GB old IBM hard disk as slave, and copied some 10 MBytes of small files to it from the CF-card. It wasn't a very fast operation. You can expect the transfer speed to be the same as A600's ide interface's speed. I should test the speed sometime.

Compatibility in different models of 68000 Amiga

In the A500 rev5 mainboard the KS-ROM chip is closer to the CPU than in rev6 or A500+. DIP-64 riser sockets may be used.
I have used/tested them on A500 (or A500+) mainboard (not necessarily in the original case with the a500 keyboard in place nor the metal RF-shield). And some in one Amiga B2000. Not in CDTV, but it should possible, so is A1000. An 100 or 106 model was put in one CDTV by someone.
Models with CF connector conflict with A1000's floppy drive.
Amiga.org member Jeff uses V100 it in an which has a kickstart upgrade. (Links not working.)

Other conflict

Because of the A600 IDE-interface emulation, it expects the address space $daxxxx and $dexxxx (and $d8xxxx) not to be used by other add-on cards in the Amiga system. Such as 2MB trapdoor slot memory expansion, or The Viper 520 CD accelerator with IDE, which I think uses similar A600 ide emulation?

Issues?

Using 32-bit move.l command with the 16-bit data register in IDE taskfile in the a500ide interface caused data corruption. I haven't studied that with this board. The ide drivers in KS-ROM probably use 16-bit moves.
XC9572 shouldn't have its pins floating, it may increase power consumption. Xilinx UG445 CPLD I/O User Guide (PDF) Maybe resistors or other DC-termination could be hacked in somewhere if this is a concern?
According to ATA docs, IDE databus bit 7 should have 10 kohm pull-down instead of up at the host side.
74VHCT245 (and many other types of the "245" bus buffer ic) inputs / 3-state IO:s may not float. Pullup resistor array packs pads added in V208 pcb to ide side bus. Some A500 mainboard revisions have places for data-bus pull-up networks next to the 68000, these are usually empty.
In current version of the CPLD ABEL design, it is not exhaustively verified if all of the inputs are valid at the clock edge. (Which shouldbe the case for solid synchronous logic design.) The clock signal to CPLD is the same 7 Mhz clock that goes to 68000 CPU. There is a 32 MHz oscillator module or pads for one on the V100 board, but I haven't used it.

Information sources

I used the information from "hddmem" project files by Vladimir Sobolev, which emulates A600's IDE-interface and PCMCIA RAM. The ide68k board only uses IDE. The files are at Aminet hddmem uses an obsolete Intel CPLD. CPLD files are in some PLD language, and there is also a diagram of the gayle identification state machine in a bitmap picture.
There is a document by Commodore Amiga for A600 Gayle, it seems to be "preliminary" draft or not "finished" version.
Gaylean registers are discussed on EAB web forum.
How to build LPT programming cable and get software for CPLDs