[U-Boot] Generic bootcmd handling: Missing 'scsi scan'

Stephen Warren
2014-09-15T18:11:05Z

On 09/15/2014 11:59 AM, Hans de Goede wrote:
> Hi,
>
> On 09/15/2014 07:22 PM, Stephen Warren wrote:
>> On 09/14/2014 12:00 PM, Hans de Goede wrote:
>>> Hi Karsten,
>>>
>>> Thanks for testing this!
>>>
>>> On 09/14/2014 05:43 PM, Karsten Merker wrote:
>>>> Hello,
>>>>
>>>> I am currently testing the new bootcmd handling introduced at
>>>> http://git.denx.de/?p=u-boot.git;a=commit;h=8cc96848f0a467922820895b6b2363b0c64163b5
>>>> on a sunxi-based system running u-boot v2014.10-rc2.
>>>>
>>>> When installing to MMC, everything works as expected; the
>>>> boot.scr on the first MMC partition is found and executed.
>>>>
>>>> When installing to a SATA disk, the following happens:
>>>>
...
>>>> SCSI device 0:
>>>> Device 0: device type unknown
>>>> ... is now current device
>>>> Scanning scsi 0...
>>>> ** Bad device size - scsi 0 **
...
>>>> Could you add a 'scsi scan' command to the generic bootcmd
>>>> handling infrastructure?
>>>
>>> A good question, I wonder if this is something which would be considered
>>> SoC specific, or if all SoCs need this though?
>>>
>>> Stephen (added to the To) what is your take on this ?
>>
>> Hmmm. 'mmc_dev' detects the media each time it's executed. However, I suppose that's appropriate because each MMC controller is connected 1:1 with a device. Such automatic scanning might not be a good idea for larger buses where scanning could take a long time. Perhaps you can copy the style of $usb_boot, and prefix a "run $scsi_init" onto the front of it in the same way?
>
> So perhaps something like the patch below ?
>
> Karsten, can you give this a try ?
>
> Note I'm not sure my mail client will not mangle this when inlined like
> this (normally I use git send-email for patches). So I've also attached
> the patch.
...
> Subject: [PATCH] config_distro_bootcmd: Run 'scsi scan' before trying scsi
> disks
>
> Scsi disks need to be probed before we try to access them, otherwise all
> accesses fail with: ** Bad device size - scsi 0 **.

Yes, I think that looks right.