17 Aug, 2017

1 commit


20 Dec, 2016

1 commit

  • All sata based drivers are bind and corresponding block
    device is created. Based on this find_scsi_device() is able
    to get back block device based on scsi_curr_dev pointer.

    intr_scsi() is commented now but it can be replaced by calling
    find_scsi_device() and scsi_scan().

    scsi_dev_desc[] is commented out but common/scsi.c heavily depends on
    it. That's why CONFIG_SYS_SCSI_MAX_DEVICE is hardcoded to 1 and symbol
    is reassigned to a block description allocated by uclass.
    There is only one block description by device now but it doesn't need to
    be correct when more devices are present.

    scsi_bind() ensures corresponding block device creation.
    uclass post_probe (scsi_post_probe()) is doing low level init.

    SCSI/SATA DM based drivers requires to have 64bit base address as
    the first entry in platform data structure to setup mmio_base.

    Signed-off-by: Michal Simek
    Reviewed-by: Simon Glass

    Michal Simek
     

09 Dec, 2016

1 commit


08 Dec, 2016

1 commit

  • All sata based drivers are bind and corresponding block
    device is created. Based on this find_scsi_device() is able
    to get back block device based on scsi_curr_dev pointer.

    intr_scsi() is commented now but it can be replaced by calling
    find_scsi_device() and scsi_scan().

    scsi_dev_desc[] is commented out but common/scsi.c heavily depends on
    it. That's why CONFIG_SYS_SCSI_MAX_DEVICE is hardcoded to 1 and symbol
    is reassigned to a block description allocated by uclass.
    There is only one block description by device now but it doesn't need to
    be correct when more devices are present.

    scsi_bind() ensures corresponding block device creation.
    uclass post_probe (scsi_post_probe()) is doing low level init.

    SCSI/SATA DM based drivers requires to have 64bit base address as
    the first entry in platform data structure to setup mmio_base.

    Signed-off-by: Michal Simek
    Reviewed-by: Simon Glass
    Series-changes: 2
    - Use CONFIG_DM_SCSI instead of mix of DM_SCSI and DM_SATA
    Ceva sata has never used sata commands that's why keep it in
    SCSI part only.
    - Separate scsi_scan() for DM_SCSI and do not change cmd/scsi.c
    - Extend platdata

    Series-changes: 3
    - Fix scsi_scan return path
    - Fix header location uclass-internal.h
    - Add scsi_max_devs under !DM_SCSI
    - Add new header device-internal because of device_probe()
    - Redesign block device creation algorithm
    - Use device_unbind in error path
    - Create block device with id and lun numbers (lun was there in v2)
    - Cleanup dev_num initialization in block device description
    with fixing parameters in blk_create_devicef
    - Create new Kconfig menu for SATA/SCSI drivers
    - Extend description for DM_SCSI
    - Fix Kconfig dependencies
    - Fix kernel doc format in scsi_platdata
    - Fix ahci_init_one - vendor variable

    Series-changes: 4
    - Fix Kconfig entry
    - Remove SPL ifdef around SCSI uclass
    - Clean ahci_print_info() ifdef logic

    Michal Simek
     

15 Mar, 2016

1 commit


24 Nov, 2014

2 commits

  • Implement sata stop command.
    This introduces the __sata_stop() weak function, which mirrors
    the weak __sata_initialize() function, giving users the option of
    undoing the custom steps performed in overrides of sata_initialize().

    Signed-off-by: Nikita Kiryanov
    Cc: Marek Vasut
    Cc: Tom Rini

    Nikita Kiryanov
     
  • Add reset_sata() to the sata driver interface and implement it
    for dwc_ahsata. This function cleans up after sata_init(), and
    therefore accepts a device number like sata_init() does.
    A dummy implementation is provided for the rest of the drivers.

    Signed-off-by: Nikita Kiryanov
    Cc: Simon Glass
    Cc: Stefano Babic

    Nikita Kiryanov
     

09 Sep, 2014

1 commit


16 Oct, 2012

1 commit


28 Jan, 2009

1 commit

  • Rather than have the board code initialize SATA automatically during boot,
    make the user manually run "sata init". This brings the SATA subsystem in
    line with common U-Boot policy.

    Rather than having a dedicated weak function "is_sata_supported", people
    can override sata_initialize() to do their weird board stuff. Then they
    can call the actual __sata_initialize().

    Signed-off-by: Mike Frysinger

    Mike Frysinger
     

14 Apr, 2008

1 commit


27 Mar, 2008

3 commits


01 Jul, 2007

1 commit


16 May, 2007

2 commits

  • Wolfgang Denk
     
  • Bridge, ICH-5, ICH-6 and ICH-7.

    Implementation:

    1. Code is divided in to two files. All functions, which are
    controller specific are kept in "drivers/ata_piix.c" file and
    functions, which are not controller specific, are kept in
    "common/cmd_sata.c" file.

    2. Reading and Writing from the S-ATA drive is done using PIO method.

    3. Driver can be configured for 48-bit addressing by defining macro
    CONFIG_LBA48, if this macro is not defined driver uses the 28-bit
    addressing.

    4. S-ATA read function is hooked to the File system, commands like
    ext2ls and ext2load file can be used. This has been tested.

    5. U-Boot command "SATA_init" is added, which initializes the S-ATA
    controller and identifies the S-ATA drives connected to it.

    6. U-Boot command "sata" is added, which is used to read/write, print
    partition table and get info about the drives present. This I have
    implemented in same way as "ide" command is implemented in U-Boot.

    7. This driver is for S-ATA in native mode.

    8. This driver does not support the Native command queuing and
    Hot-plugging.

    Signed-off-by: Mushtaq Khan

    mushtaq khan