e8a016b537
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 <michal.simek@xilinx.com> Reviewed-by: Simon Glass <sjg@chromium.org>
22 lines
504 B
C
22 lines
504 B
C
#ifndef __SATA_H__
|
|
#define __SATA_H__
|
|
#include <part.h>
|
|
|
|
#if !defined(CONFIG_DM_SCSI)
|
|
int init_sata(int dev);
|
|
int reset_sata(int dev);
|
|
int scan_sata(int dev);
|
|
ulong sata_read(int dev, ulong blknr, lbaint_t blkcnt, void *buffer);
|
|
ulong sata_write(int dev, ulong blknr, lbaint_t blkcnt, const void *buffer);
|
|
|
|
int sata_initialize(void);
|
|
int __sata_initialize(void);
|
|
int sata_stop(void);
|
|
int __sata_stop(void);
|
|
int sata_port_status(int dev, int port);
|
|
|
|
extern struct blk_desc sata_dev_desc[];
|
|
#endif
|
|
|
|
#endif
|