IDE BSP Overview

A BSP is required so that the IDE driver will work on a particular system. The functions shown in the table below must be implemented.

Table - IDE BSP functions

Function

Description

FSDev_IDE_BSP_Open()

Open (initialize) hardware.

FSDev_IDE_BSP_Close()

Close (uninitialize) hardware.

FSDev_IDE_BSP_Lock()

Acquire IDE bus lock.

FSDev_IDE_BSP_Unlock()

Release IDE bus lock.

FSDev_IDE_BSP_Reset()

Hardware-reset IDE device

FSDev_IDE_BSP_RegRd()

Read from IDE device register.

FSDev_IDE_BSP_RegWr()

Write to IDE device register.

FSDev_IDE_BSP_CmdWr()

Write command to IDE device register.

FSDev_IDE_BSP_DataRd()

Read data from IDE device.

FSDev_IDE_BSP_DataWr()

Write data to IDE device.

FSDev_IDE_BSP_DMA_Start()

Setup DMA for command (Initialize channel).

FSDev_IDE_BSP_DMA_End()

End DMA transfer (and uninitialize channel).

FSDev_IDE_BSP_GetDrvNbr()

Get IDE drive number.

FSDev_IDE_BSP_GetModesSupported()

Get supported transfer modes.

FSDev_IDE_BSP_SetMode()

Set transfer modes.

FSDev_IDE_BSP_Dly400_ns()

Delay for 400 ns.


Figure - Command execution