[U-Boot] [PATCH] x86: Add 'imply SCSI' to boards using AHCI_PCI
Bin Meng
bmeng.cn at gmail.com
Fri Dec 1 05:43:22 UTC 2017
Hi Tuomas,
On Fri, Dec 1, 2017 at 5:35 AM, Tuomas Tynkkynen
<tuomas.tynkkynen at iki.fi> wrote:
> The qemu and coreboot boards have 'imply AHCI_PCI' but no 'imply SCSI',
> i.e. they are enabling the driver for the Serial ATA controller but
> (AFAICT) have no way of accessing those devices from the prompt.
>
> In fact, without this patch I get a silent U-Boot crash when I add a
> SATA device to QEMU with the following options:
>
> -drive if=none,file=mydisk.qcow2,id=root
> -device ich9-ahci,id=ahci
> -device ide-drive,drive=root,bus=ahci.0
>
> With the 'imply SCSI' added, U-Boot doesn't crash and the drive is found
> when 'scsi scan' is run.
>
> Signed-off-by: Tuomas Tynkkynen <tuomas.tynkkynen at iki.fi>
> ---
> Hi Bin, Simon
>
> Does this make sense? I was working on converting drivers/ata to
> Kconfig, which includes CONFIG_SCSI_AHCI (used by x86) but noticed these
> boards that currently have {SCSI=n, AHCI_PCI=y, SCSI_AHCI=y}.
By default QEMU supports the i440FX chipset via '-M pc'. If we want to
use AHCI, '-M q35' should be specified and DTS should be changed to
qemu-x86_q35.dts.
That's why SCSI is not turned on by default.
However when I try to reproduce the crash issue with QEMU, I cannot
reproduce the crash issue after I added CONFIG_SCSI to the
'menuconfig'.
But I did find another dependency problem. If I turned on the
CONFIG_CMD_SCSI first without turning on CONFIG_SCSI, QEMU x86 does
not build.
cmd/built-in.o: In function `do_scsi':
git/u-boot/cmd/scsi.c:38: undefined reference to `scsi_scan'
git/u-boot/cmd/scsi.c:44: undefined reference to `scsi_scan'
Makefile:1255: recipe for target 'u-boot' failed
I believe we should do:
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 5a6afab..8218a2c 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1437,6 +1437,7 @@ config CMD_REISER
config CMD_SCSI
bool "scsi - Access to SCSI devices"
+ depends on SCSI
default y if SCSI
help
This provides a 'scsi' command which provides access to SCSI (Small
> ---
> arch/x86/cpu/coreboot/Kconfig | 1 +
> arch/x86/cpu/qemu/Kconfig | 1 +
> 2 files changed, 2 insertions(+)
>
> diff --git arch/x86/cpu/coreboot/Kconfig arch/x86/cpu/coreboot/Kconfig
> index 60eb45f9d0..0e83a43d99 100644
> --- arch/x86/cpu/coreboot/Kconfig
> +++ arch/x86/cpu/coreboot/Kconfig
> @@ -10,6 +10,7 @@ config SYS_COREBOOT
> imply MMC_PCI
> imply MMC_SDHCI
> imply MMC_SDHCI_SDMA
> + imply SCSI
> imply SPI_FLASH
> imply SYS_NS16550
> imply USB
> diff --git arch/x86/cpu/qemu/Kconfig arch/x86/cpu/qemu/Kconfig
> index 81444f3d9e..a0090281b9 100644
> --- arch/x86/cpu/qemu/Kconfig
> +++ arch/x86/cpu/qemu/Kconfig
> @@ -9,6 +9,7 @@ config QEMU
> select ARCH_EARLY_INIT_R
> imply AHCI_PCI
> imply E1000
> + imply SCSI
> imply SYS_NS16550
> imply USB
> imply USB_EHCI_HCD
> --
Regards,
Bin
More information about the U-Boot
mailing list