Hi Anton,

On 29.06.2015 19:01, Anton Schubert wrote:
2015-06-23 14:38 GMT+02:00 Stefan Roese <s...@denx.de <mailto:s...@denx.de>>:

    Hi Anton,

    On 23.06.2015 13:23, Bin Meng wrote:

        On Tue, Jun 23, 2015 at 5:35 PM, Anton Schubert
        <anton.schub...@gmx.de <mailto:anton.schub...@gmx.de>> wrote


            but noticed that there doesn't seem to be a driver for the SATA
            controller.
            Are there any plans to support SATA on Armada XP or is our
            only option to
            migrate the old driver?


        Is the Marvell SATA controller AHCI compatible? If yes, U-Boot
        has the
        AHCI driver which should work.


    No, the AXP SATA controller is unfortunately not AHCI compatible
    (the A38x seems to be though). The mvsata driver
    (drivers/block/mvsata_ide.c) might be a pretty good start for the
    AXP though (I didn't check this closely).


Hi,
many thanks for your hints.

I managed to get ide_ident working with mvsata_ide.c by setting the Sata
address windows (using mbus.c analogous to the mvneta driver). But I'm
kind of stuck now as ATA reads will just result in timeouts:

ide_read dev 0 start 0, blocks 1 buffer at 7FBA9C60
ide_outb (dev= 0, port= 0x118, val= 0xe0) : @ 0xf10a2118
ide_inb (dev= 0, port= 0x11c) : @ 0xf10a211c -> 0x50
ide_outb (dev= 0, port= 0x11c, val= 0xe5) : @ 0xf10a211c
ide_inb (dev= 0, port= 0x11c) : @ 0xf10a211c -> 0x50
ide_inb (dev= 0, port= 0x108) : @ 0xf10a2108 -> 0xff
Powersaving FF
ide_inb (dev= 0, port= 0x11c) : @ 0xf10a211c -> 0x50
ide_outb (dev= 0, port= 0x108, val= 0x01) : @ 0xf10a2108
ide_outb (dev= 0, port= 0x10c, val= 0x00) : @ 0xf10a210c
ide_outb (dev= 0, port= 0x110, val= 0x00) : @ 0xf10a2110
ide_outb (dev= 0, port= 0x114, val= 0x00) : @ 0xf10a2114
ide_outb (dev= 0, port= 0x118, val= 0xe0) : @ 0xf10a2118
ide_outb (dev= 0, port= 0x11c, val= 0x20) : @ 0xf10a211c
ide_inb (dev= 0, port= 0x11c) : @ 0xf10a211c -> 0xd0
ide_inb (dev= 0, port= 0x11c) : @ 0xf10a211c -> 0x51
Error (no IRQ) dev 0 blk 0: status 0x51


This is my current ide config:
#define __io
#define CONFIG_IDE_PREINIT
#define CONFIG_MVSATA_IDE

/* Needs byte-swapping for ATA data register */
#define CONFIG_IDE_SWAP_IO

#define CONFIG_SYS_ATA_REG_OFFSET        0x0100      /* Offset for
normal register accesses*/
#define CONFIG_SYS_ATA_DATA_OFFSET    0x0100      /* Offset for data I/O */
#define CONFIG_SYS_ATA_ALT_OFFSET        0x0100      /* Offset for data
I/O */

/* Each 8-bit ATA register is aligned to a 4-bytes address */
#define CONFIG_SYS_ATA_STRIDE        4

/* CONFIG_CMD_IDE requires some #defines for ATA registers */
#define CONFIG_SYS_IDE_MAXBUS          2
#define CONFIG_SYS_IDE_MAXDEVICE       2

/* ATA registers base is at SATA controller base */
#define CONFIG_SYS_ATA_BASE_ADDR    MVEBU_SATA_BASE /* 0xA0000 */
#define CONFIG_SYS_ATA_IDE0_OFFSET    0x2000

#define CONFIG_DOS_PARTITION

I would be grateful for any pointers.

Just send me the missing code (mbus address window setup etc) and I'll give it a try on my DB-MV784MP-GP board.

Thanks,
Stefan

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to