This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ATA Hot Plug on DM6467 with PSP 3.02 beta

DVSDK 3.10

PSP 3.02 beta

It seems right now that it's not possible to plug in a hard drive after the DM6467 has booted and have it be recognized.  Is that correct?  Where does that limitation come from?  Any way to add that support?

  • Hi Brad,

    We never had experimented with hot insertion on ATA. Theoretically, I do not see issue with the h/w for hot insertion. You can design your board with a GPIO controlling your h/w reset signal. However, unless you design your own external logic that detects the insertion of the device, there is no dedicated h/w mechanism that would alert the host controller of the insertion of a new device nor a status bit that signifies the presence of a device. You will have to perform several commands and observe the behaviour by reading the status/command register to identify a presence of a device. It does not seem feasible to perform polling like task to detect the presence of a device (also you will need to reset the device too) so detcting by s/w is not an option.

    If you design your board with the h/w detect logic to signify our device the presence state of a device, communicated via GPIO or like, I do not see any issue from h/w perspective to start the communication between the host controller and the device.

    Of-course our driver is not architected to handle such an event and would require modification and do not know the extent of the modification needed.

    Best regards, Zegeye

  • Hi,Brad,Zegeye
         I am dennis,I got what you said,
         First, ATA does not support hot-plug
         Second, if i designed the board with a GPIO to  control the h/w  reset signal,then rewake the driver
    so,I have a question
         Becasue the hard devices had designed ,the ATA port on dm6467 had connected to esata port using
         a external circuit
    According your said,no way to change it ?
        

     

  • Zegeye,

    Is there any way to "poll" for a connected hard drive?  For example, could something run periodically (e.g. once per second) to "look" for an inserted hard drive?

    Dennis,

    Do you have some kind of (e-)sata to ata bridge?  Please describe your hardware setup a bit more.

    Thanks,
    Brad 

  • Hi Brad,

    Assuming the device default state after power with out reseting the device is in a good state then you can read the Command Block registers and expect the below values to read, if an ATA or ATAPI device is observed.

    For ATA Device (HDD Like)

    Sector Count  = 01h,    LBA Low = 01h,    LBA Mid = 00h,     LBA High = 00h,   and   Device = 00h

    For ATAPI Device (CD Like)

    Sector Count = 01h,     LBA Low=01h,      LBA Mid=14h,       LBA High=EBh,    and    Device=10h or 00h

    If you experiment a Device connect condition and you are unable to read the above values, you probably need to try performing a h/w RESET and do the above.

    In summary, Have your ATA Controller ready by initializing it with PIO Mode 0, slowest speed, timing. Start by polling the above set of registers and if that does not work, prior to polling attempt to reset the device via GPIO and do the polling.

    Best regards, Zegeye