All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bin Meng <bmeng.cn@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] ** Can't read Driver Desriptor Block **
Date: Thu, 31 Aug 2017 20:55:58 +0800	[thread overview]
Message-ID: <CAEUhbmVvqAxMc4_DZCOXDihFP5AAs+nCp9KQoaifWHHksBa7jQ@mail.gmail.com> (raw)
In-Reply-To: <CAPnjgZ3VULP65QbnDCZ+evp3_iMLam3RxXyvu52wzPC4RMr61w@mail.gmail.com>

Hi Simon,

On Thu, Aug 31, 2017 at 8:52 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Bin,
>
> On 31 August 2017 at 10:53, Bin Meng <bmeng.cn@gmail.com> wrote:
>> Hi Heinrich,
>>
>> On Thu, Aug 31, 2017 at 5:19 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>>> On 08/30/2017 06:37 AM, Heinrich Schuchardt wrote:
>>>>
>>>>
>>>> On 08/30/2017 03:54 AM, Bin Meng wrote:
>>>>> Hi Heinrich,
>>>>>
>>>>> On Wed, Aug 30, 2017 at 4:26 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>>>>>> Hello Simon,
>>>>>>
>>>>>> U-Boot HEAD qemu-86_defconfig cannot discover an IDE disk with one FAT
>>>>>> partition in qemu-system-x86_64.
>>>>>>
>>>>>> By bisection I found this patch.
>>>>>>
>>>>>> b7c6baef2891ce8978cbfddb66e944943473ac21
>>>>>> x86: Convert MMC to driver model
>>>>>>
>>>>>> With this patch I get
>>>>>>
>>>>>> IDE:   Bus 0: OK Bus 1: OK
>>>>>>   Device 0: Model: QEMU HARDDISK  Firm: 2.5+ Ser#: QM00001
>>>>>>             Type: Hard Disk
>>>>>>             Supports 48-bit addressing
>>>>>>             Capacity: 128.0 MB = 0.1 GB (262144 x 512)
>>>>>> ** Can't read Driver Desriptor Block **
>>>>>>   Device 1: not available
>>>>>>   Device 2: Model: QEMU Firm: 2.5+ Ser#: QEMU DVD-ROM
>>>>>>             Type: Removable CD ROM
>>>>>>             Capacity: not available
>>>>>>   Device 3: not available
>>>>>>
>>>>>> => ide info
>>>>>> =>
>>>>>>
>>>>>> Without the patch I get=> ide info
>>>>>> Device 0: Model: QEMU HARDDISK  Firm: 2.5+ Ser#: QM00001
>>>>>>             Type: Hard Disk
>>>>>>             Supports 48-bit addressing
>>>>>>             Capacity: 128.0 MB = 0.1 GB (262144 x 512)
>>>>>> Device 2: Model: QEMU Firm: 2.5+ Ser#: QEMU DVD-ROM
>>>>>>             Type: Removable CD ROM
>>>>>>             Capacity: not available
>>>>>>
>>>>>> I think we observe two independent errors here:
>>>>>>
>>>>>> - The hard disk Device 0 is not read.
>>>>>> - The ide command stops at the first device that is not available.
>>>>>>
>>>>>> I guess only the first is caused by your patch.
>>>>>
>>>>> Both logs look fine to me. The "Can't read Driver Desriptor Block"
>>>>> comes from part_mac.c. Did you verify the actual IDE read/write fails
>>>>> with current HEAD?
>>>>>
>>>>> Regards,
>>>>> Bin
>>>>>
>>>>
>>>> Hello Bin,
>>>>
>>>> I have not checked block level read but used the shell commands for testing.
>>>>
>>>> Before the patch I can read the directory of the drive:
>>>>
>>>> => ide info
>>>> Device 0: Model: QEMU HARDDISK  Firm: 2.5+ Ser#: QM00001
>>>>             Type: Hard Disk
>>>>             Supports 48-bit addressing
>>>>             Capacity: 128.0 MB = 0.1 GB (262144 x 512)
>>>> Device 2: Model: QEMU Firm: 2.5+ Ser#: QEMU DVD-ROM
>>>>             Type: Removable CD ROM
>>>>             Capacity: not available
>>>> => fat2ls ide 0:1
>>>> Unknown command 'fat2ls' - try 'help'
>>>> => fatls ide 0:1
>>>>    164768   snp.efi
>>>>         0   file1
>>>>         0   file2
>>>>
>>>>
>>>> After the patch (including HEAD) I cannot read the directory and cannot
>>>> load the file snp.efi either:
>>>>
>>>> => ide info
>>>> => fatls ide 0:1
>>>> ** Bad device ide 0 **
>>>> =>
>>>> => fatls mmc 0:1
>>>> ** Bad device mmc 0 **
>>>>
>>>>
>>>> In both cases I have loaded the same image with:
>>>>
>>>> export BUILD_ROM=y
>>>> make distclean && make qemu-x86_defconfig && make -j6
>>>>
>>>> qemu-system-x86_64 -m 1G -bios u-boot.rom -nographic \
>>>> -netdev \
>>>> user,id=eth0,tftp=tftp,net=192.168.76.0/24,dhcpstart=192.168.76.9 \
>>>> -device e1000,netdev=eth0 -machine pc-i440fx-2.8 -hda img
>>>>
>>>> Best regards
>>>>
>>>> Heinrich
>>>>
>>>
>>> Hello Bin, hello Simon,
>>>
>>> I think the bug is in functions ide_init (drivers/block/ide.c).
>>>
>>> Platform X86 implies CONFIG_BLK=y.
>>>
>>> So we should initialize ide_dev_desc[i].bdev.
>>>
>>> We don't, so blk_dread fails after finding no read operation with ENOSYS
>>> when called from part_test_dos.
>>>
>>> The following comment in include/blk.h confirms that bdev has to be filled:
>>>
>>> #if CONFIG_IS_ENABLED(BLK)
>>> /*
>>> * For now we have a few functions which take struct blk_desc as a
>>> * parameter. This field allows them to look up the associated
>>> * device. Once these functions are removed we can drop this field.
>>> */
>>> struct udevice *bdev;
>>> #else
>>>
>>> I assume that we have the same issue in in __sata_initialize
>>> (drivers/ata/sata.c) but have not tested.
>>>
>>
>> Thanks for the testing!
>>
>> Simon, are you going to fix this?
>
> I am not going to race you to it, if you are thinking of fixing it. I
> am back from travels in a few days but have a busy week ahead and the
> release is imminent :-(
>

Or maybe Heinrich, do you plan to work on a fix? If not, I will put it
on my todo list.

Regards,
Bin

  reply	other threads:[~2017-08-31 12:55 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-29 20:26 [U-Boot] ** Can't read Driver Desriptor Block ** Heinrich Schuchardt
2017-08-30  1:54 ` Bin Meng
2017-08-30  4:37   ` Heinrich Schuchardt
2017-08-30 21:19     ` Heinrich Schuchardt
2017-08-31  2:53       ` Bin Meng
2017-08-31 12:52         ` Simon Glass
2017-08-31 12:55           ` Bin Meng [this message]
2017-08-31 17:24             ` Heinrich Schuchardt
2017-09-04  3:59               ` Bin Meng
2017-09-04  5:41                 ` Heinrich Schuchardt
2017-09-04  7:30                   ` Bin Meng
2017-09-04  9:05                     ` Bin Meng
2017-08-30  6:34   ` Simon Glass
2017-08-30  6:44     ` Lothar Waßmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEUhbmVvqAxMc4_DZCOXDihFP5AAs+nCp9KQoaifWHHksBa7jQ@mail.gmail.com \
    --to=bmeng.cn@gmail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.