Skip to content

LIV2/lide.device

Repository files navigation

Open source Amiga IDE device driver

Table of Contents

Features

Downloads

ROM downloads are available under releases

Currently there are three builds

  • lide.rom - Used for boards designed by me that feature an IDE interface (such as CIDER)
  • lide-atbus.rom - For AT-Bus style devices i.e AT-Bus 2008 + clone, Matze accelerators etc
  • lide-word.rom - For devices with word width bootroms

Boot from CDROM

Booting from CDROM requires Kickstart 2 or higher and one of the following:

  1. CDFileSystem from AmigaOS 3.2.2 loaded with LoadModule
  2. BootCDFileSystem from OS 4 either:
    • Added to a custom Kickstart ROM OR
    • Loaded by LoadModule

Large drive (>4GB) support

For drives larger than 4GB it is required to use a Filesystem that supports TD64, NSD or SCSI-Direct
The default FFS in OS 3.1 does not support these, and use of this above the 4GB boundary will result in data corruption!

There are several options for larger drive support

Also make sure to use the "Quick Format" option when formatting such partitions

Hardware implementation

  • IDECS1 is asserted when A12 is low and the IDE device's base address is decoded
  • IDECS2 is asserted as above but when A13 is low rather than A12
  • IDECS2 can instead be routed to a second IDE channel as it's IDECS1 and the driver will detect this
  • IDE interface is byte-swapped
  • Buffered interface
  • D15/14 pulled up with a 10K resistor to allow detection of floating bus when no drive present.
  • IDE A0/1/2 connected to CPU A9/10/11 providing 512 Byte separation of registers to allow for MOVEM trick

A reference design for this is the CIDER project

Building / Development

Building this code will require the following

The easiest way to get a working build environment is to use Docker You can build inside docker as follows:

docker run --rm -it -v ${PWD}:${PWD} -w ${PWD} stefanreinauer/amiga-gcc:latest make clean all

If you are using VS Code you can install the "Dev containers" extension which will allow you to develop with the environment ready to go.

Acknowlegements

This driver uses the movem based fast read / write routines from Frédéric REQUIN's at_apollo_device
The release of the open source at_apollo_device inspired me to work on this.

It is based on jbilander's SimpleDevice skeleton.

Thanks to Stefan Reinauer and Chris Hooper for the Open Source A4091 Driver which has also been a good source of inspiration for this project.
Chris' devtest has also been very helpful for testing the driver.
Thanks to Olaf Barthel for providing code and valuable advice to improve the driver.

Third-party notice

reloc.S is adapted from the A4091 open-source driver and is Copyright Stefan Reinauer
mounter.c adapted from the A4091 open-source driver and is Copyright 2021-2022 Toni Wilen
The fast read/write routines for ATA devices are adapted from Frédéric REQUIN's at_apollo_device

License

All software contained that is not provided by a third-party is covered by a GPL 2.0 Only license
License: GPL v2

lide.device is licensed under the GPL-2.0 only license