Explorar o código

scsi: Add function and env var to report number of scsi drives

Add a new function to find out the number of available SCSI disks. Also
set the 'scsidevs' environment variable after each scan.

Signed-off-by: Stefan Reinauer <reinauer@chromium.org>
Signed-off-by: Simon Glass <sjg@chromium.org>
Stefan Reinauer %!s(int64=12) %!d(string=hai) anos
pai
achega
447c031ba4
Modificáronse 3 ficheiros con 13 adicións e 0 borrados
  1. 3 0
      README
  2. 8 0
      common/cmd_scsi.c
  3. 2 0
      include/scsi.h

+ 3 - 0
README

@@ -1041,6 +1041,9 @@ The following options need to be configured:
 		devices.
 		devices.
 		CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
 		CONFIG_SYS_SCSI_SYM53C8XX_CCF to fix clock timing (80Mhz)
 
 
+                The environment variable 'scsidevs' is set to the number of
+                SCSI devices found during the last scan.
+
 - NETWORK Support (PCI):
 - NETWORK Support (PCI):
 		CONFIG_E1000
 		CONFIG_E1000
 		Support for Intel 8254x/8257x gigabit chips.
 		Support for Intel 8254x/8257x gigabit chips.

+ 8 - 0
common/cmd_scsi.c

@@ -184,6 +184,14 @@ removable:
 		scsi_curr_dev=0;
 		scsi_curr_dev=0;
 	else
 	else
 		scsi_curr_dev = -1;
 		scsi_curr_dev = -1;
+
+	printf("Found %d device(s).\n", scsi_max_devs);
+	setenv_ulong("scsidevs", scsi_max_devs);
+}
+
+int scsi_get_disk_count(void)
+{
+	return scsi_max_devs;
 }
 }
 
 
 #ifdef CONFIG_PCI
 #ifdef CONFIG_PCI

+ 2 - 0
include/scsi.h

@@ -189,6 +189,8 @@ void scsi_low_level_init(int busdevfunc);
 void scsi_init(void);
 void scsi_init(void);
 void scsi_scan(int mode);
 void scsi_scan(int mode);
 
 
+/** @return the number of scsi disks */
+int scsi_get_disk_count(void);
 
 
 #define SCSI_IDENTIFY					0xC0  /* not used */
 #define SCSI_IDENTIFY					0xC0  /* not used */