mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-11 22:03:15 +00:00
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>
27 lines
507 B
C
27 lines
507 B
C
/*
|
|
* Copyright (c) 2015 Google, Inc
|
|
* Written by Simon Glass <sjg@chromium.org>
|
|
* Copyright (c) 2016 Xilinx, Inc
|
|
* Written by Michal Simek
|
|
*
|
|
* Based on ahci-uclass.c
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#include <common.h>
|
|
#include <dm.h>
|
|
#include <scsi.h>
|
|
|
|
static int scsi_post_probe(struct udevice *dev)
|
|
{
|
|
debug("%s: device %p\n", __func__, dev);
|
|
scsi_low_level_init(0, dev);
|
|
return 0;
|
|
}
|
|
|
|
UCLASS_DRIVER(scsi) = {
|
|
.id = UCLASS_SCSI,
|
|
.name = "scsi",
|
|
.post_probe = scsi_post_probe,
|
|
};
|