Showing results for 
Search instead for 
Did you mean: 
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.



OCIDEC (OpenCores IDE Controller) is a ATA (AT attachment) interface core, also known as the IDE (Integrated Drive Electronics) interface.

The ATA interface provides a simple interface to (low cost) non-volatile memories, like harddisk drives, DVD players, CD(ROM) players/writers and CompactFlash and PC-CARD devices.

You can found more information about this opencore on,ata

One of the limitation of the Nios2 with uClinux is the data storage. Indeed, if you need a large data storage you can instance the alcf component in you design. However you will see (under uClinux) that the data rate will be limited to PIO mode 0 : ~ 2MByte/s. That's the reason why I decided to implement the opencore IDE controler on Nios2 and to write uClinux driver for this interface.

I have translated the OCIDEC3.0 core from Wishbone to Avalon. You can downloaded below. The core has been updated in order to support burst on Avalon bus. The driver for Linux has been done (libata subsytem) and tested on Linux 2.6.30. It is easly portable to newer version (almost no work at all)

To integrate the driver in your kernel tree just copy the pata_ocidec.c file into linux-2.6/drivers/ata folder Modify the Makefile in the ata folder by adding this line $(CONFIG_PATA_OCIDEC) += pata_ocidec.o

Modify the Kconfig file in the ata folder by adding this:


tristate "OCIDEC Compact Flash IP driver"

Reconfigure your kernel to enable the driver.


§ Pata_ocidec.c

Version history
Last update:
‎06-25-2019 10:15 PM
Updated by: