* [U-Boot] ** Can't read Driver Desriptor Block ** @ 2017-08-29 20:26 Heinrich Schuchardt 2017-08-30 1:54 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Heinrich Schuchardt @ 2017-08-29 20:26 UTC (permalink / raw) To: u-boot 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. Best regards Heinrich ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 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 6:34 ` Simon Glass 0 siblings, 2 replies; 14+ messages in thread From: Bin Meng @ 2017-08-30 1:54 UTC (permalink / raw) To: u-boot 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-30 1:54 ` Bin Meng @ 2017-08-30 4:37 ` Heinrich Schuchardt 2017-08-30 21:19 ` Heinrich Schuchardt 2017-08-30 6:34 ` Simon Glass 1 sibling, 1 reply; 14+ messages in thread From: Heinrich Schuchardt @ 2017-08-30 4:37 UTC (permalink / raw) To: u-boot 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-30 4:37 ` Heinrich Schuchardt @ 2017-08-30 21:19 ` Heinrich Schuchardt 2017-08-31 2:53 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Heinrich Schuchardt @ 2017-08-30 21:19 UTC (permalink / raw) To: u-boot 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. Best regards Heinrich ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-30 21:19 ` Heinrich Schuchardt @ 2017-08-31 2:53 ` Bin Meng 2017-08-31 12:52 ` Simon Glass 0 siblings, 1 reply; 14+ messages in thread From: Bin Meng @ 2017-08-31 2:53 UTC (permalink / raw) To: u-boot 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? Regards, Bin ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-31 2:53 ` Bin Meng @ 2017-08-31 12:52 ` Simon Glass 2017-08-31 12:55 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Simon Glass @ 2017-08-31 12:52 UTC (permalink / raw) To: u-boot 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 :-( Regards, Simon ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-31 12:52 ` Simon Glass @ 2017-08-31 12:55 ` Bin Meng 2017-08-31 17:24 ` Heinrich Schuchardt 0 siblings, 1 reply; 14+ messages in thread From: Bin Meng @ 2017-08-31 12:55 UTC (permalink / raw) To: u-boot 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-31 12:55 ` Bin Meng @ 2017-08-31 17:24 ` Heinrich Schuchardt 2017-09-04 3:59 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Heinrich Schuchardt @ 2017-08-31 17:24 UTC (permalink / raw) To: u-boot On 08/31/2017 02:55 PM, Bin Meng wrote: > 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 > Hello hello Bin, I am aware that this bug is release critical. But unfortunately I am departing on vacation tomorrow. I guess there should be CONFIG_SYS_IDE_MAXDEVICE times an U_BOOT_IDE_DEVICE(ide_disk[i]) which should refer to driver U_BOOT_DRIVER(ide_blk). Just as prove of concept I append a patch to this mail. With the patch the IDE partitions are discovered in disk/part.c. But they are not usable to access the disk because the devices are not registered in a uclass. Hopefully you will find the time to fix the problem. Regards Heinrich -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-foo.patch Type: text/x-patch Size: 1368 bytes Desc: not available URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170831/bbf7bef3/attachment.bin> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-31 17:24 ` Heinrich Schuchardt @ 2017-09-04 3:59 ` Bin Meng 2017-09-04 5:41 ` Heinrich Schuchardt 0 siblings, 1 reply; 14+ messages in thread From: Bin Meng @ 2017-09-04 3:59 UTC (permalink / raw) To: u-boot Hi Heinrich, On Fri, Sep 1, 2017 at 1:24 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > On 08/31/2017 02:55 PM, Bin Meng wrote: >> 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 >> > > Hello hello Bin, > > I am aware that this bug is release critical. But unfortunately I am > departing on vacation tomorrow. > Since there is not much time before the release, I did minimal conversion of the IDE driver to the driver model, and now it works. > I guess there should be CONFIG_SYS_IDE_MAXDEVICE times an > U_BOOT_IDE_DEVICE(ide_disk[i]) which should refer to driver > U_BOOT_DRIVER(ide_blk). > > Just as prove of concept I append a patch to this mail. > With the patch the IDE partitions are discovered in disk/part.c. > But they are not usable to access the disk because the devices are not > registered in a uclass. > > Hopefully you will find the time to fix the problem. > Please check the patches [1] that I just sent. [1] http://patchwork.ozlabs.org/project/uboot/list/?series=1298 Regards, Bin ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-09-04 3:59 ` Bin Meng @ 2017-09-04 5:41 ` Heinrich Schuchardt 2017-09-04 7:30 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Heinrich Schuchardt @ 2017-09-04 5:41 UTC (permalink / raw) To: u-boot On 09/04/2017 05:59 AM, Bin Meng wrote: > Hi Heinrich, > > On Fri, Sep 1, 2017 at 1:24 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: >> On 08/31/2017 02:55 PM, Bin Meng wrote: >>> 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 >>> >> >> Hello hello Bin, >> >> I am aware that this bug is release critical. But unfortunately I am >> departing on vacation tomorrow. >> > > Since there is not much time before the release, I did minimal > conversion of the IDE driver to the driver model, and now it works. > >> I guess there should be CONFIG_SYS_IDE_MAXDEVICE times an >> U_BOOT_IDE_DEVICE(ide_disk[i]) which should refer to driver >> U_BOOT_DRIVER(ide_blk). >> >> Just as prove of concept I append a patch to this mail. >> With the patch the IDE partitions are discovered in disk/part.c. >> But they are not usable to access the disk because the devices are not >> registered in a uclass. >> >> Hopefully you will find the time to fix the problem. >> > > Please check the patches [1] that I just sent. > > [1] http://patchwork.ozlabs.org/project/uboot/list/?series=1298 > > Regards, > Bin > Hello Bin, thank you for working on this. The command 'ide info' now produces a reasonable output for the one drive I attached to qemu. But 'fatls ide 0:1' still claims there is no device ide 0. See output below. This is how I start my image: qemu-system-x86_64 -m 1G -bios denx/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 U-Boot 2017.09-rc3-00130-g54c022cc0e (Sep 04 2017 - 07:30:09 +0200) CPU: x86_64, vendor AMD, device 663h DRAM: 1 GiB Using default environment Video: 640x480x16 Model: QEMU x86 (I440FX) Net: e1000: 52:54:00:12:34:56 Warning: e1000#0 using MAC address from ROM eth0: e1000#0 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) 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 Hit any key to stop autoboot: 0 ** Bad device scsi 0 ** Error: Invalid Boot Flag (found 0x0000, expected 0xaa55) ## Kernel loading failed ... zboot - Boot bzImage Usage: zboot [addr] [size] [initrd addr] [initrd size] addr - The optional starting address of the bzimage. If not set it defaults to the environment variable "fileaddr". size - The optional size of the bzimage. Defaults to zero. initrd addr - The address of the initrd image to use, if any. initrd size - The size of the initrd image to use, if any. => ide info Device 0: Model: QEMU HARDDISK Firm: 2.5+ Ser#: QM00001 Type: Hard Disk Capacity: 128.0 MB = 0.1 GB (262144 x 512) => fatls ide 0:1 ** Bad device ide 0 ** ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-09-04 5:41 ` Heinrich Schuchardt @ 2017-09-04 7:30 ` Bin Meng 2017-09-04 9:05 ` Bin Meng 0 siblings, 1 reply; 14+ messages in thread From: Bin Meng @ 2017-09-04 7:30 UTC (permalink / raw) To: u-boot Hi Heinrich, On Mon, Sep 4, 2017 at 1:41 PM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: > On 09/04/2017 05:59 AM, Bin Meng wrote: >> Hi Heinrich, >> >> On Fri, Sep 1, 2017 at 1:24 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: >>> On 08/31/2017 02:55 PM, Bin Meng wrote: >>>> 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 >>>> >>> >>> Hello hello Bin, >>> >>> I am aware that this bug is release critical. But unfortunately I am >>> departing on vacation tomorrow. >>> >> >> Since there is not much time before the release, I did minimal >> conversion of the IDE driver to the driver model, and now it works. >> >>> I guess there should be CONFIG_SYS_IDE_MAXDEVICE times an >>> U_BOOT_IDE_DEVICE(ide_disk[i]) which should refer to driver >>> U_BOOT_DRIVER(ide_blk). >>> >>> Just as prove of concept I append a patch to this mail. >>> With the patch the IDE partitions are discovered in disk/part.c. >>> But they are not usable to access the disk because the devices are not >>> registered in a uclass. >>> >>> Hopefully you will find the time to fix the problem. >>> >> >> Please check the patches [1] that I just sent. >> >> [1] http://patchwork.ozlabs.org/project/uboot/list/?series=1298 >> >> Regards, >> Bin >> > > Hello Bin, > > thank you for working on this. > > The command 'ide info' now produces a reasonable output for the one > drive I attached to qemu. > > But 'fatls ide 0:1' still claims there is no device ide 0. > > See output below. > > This is how I start my image: > > qemu-system-x86_64 -m 1G -bios denx/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 I think you need pass "-hdb" to QEMU to enable ide 0:1. [snip] Regards, Bin ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-09-04 7:30 ` Bin Meng @ 2017-09-04 9:05 ` Bin Meng 0 siblings, 0 replies; 14+ messages in thread From: Bin Meng @ 2017-09-04 9:05 UTC (permalink / raw) To: u-boot Hi Heinrich, On Mon, Sep 4, 2017 at 3:30 PM, Bin Meng <bmeng.cn@gmail.com> wrote: > Hi Heinrich, > > On Mon, Sep 4, 2017 at 1:41 PM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: >> On 09/04/2017 05:59 AM, Bin Meng wrote: >>> Hi Heinrich, >>> >>> On Fri, Sep 1, 2017 at 1:24 AM, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote: >>>> On 08/31/2017 02:55 PM, Bin Meng wrote: >>>>> 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 >>>>> >>>> >>>> Hello hello Bin, >>>> >>>> I am aware that this bug is release critical. But unfortunately I am >>>> departing on vacation tomorrow. >>>> >>> >>> Since there is not much time before the release, I did minimal >>> conversion of the IDE driver to the driver model, and now it works. >>> >>>> I guess there should be CONFIG_SYS_IDE_MAXDEVICE times an >>>> U_BOOT_IDE_DEVICE(ide_disk[i]) which should refer to driver >>>> U_BOOT_DRIVER(ide_blk). >>>> >>>> Just as prove of concept I append a patch to this mail. >>>> With the patch the IDE partitions are discovered in disk/part.c. >>>> But they are not usable to access the disk because the devices are not >>>> registered in a uclass. >>>> >>>> Hopefully you will find the time to fix the problem. >>>> >>> >>> Please check the patches [1] that I just sent. >>> >>> [1] http://patchwork.ozlabs.org/project/uboot/list/?series=1298 >>> >>> Regards, >>> Bin >>> >> >> Hello Bin, >> >> thank you for working on this. >> >> The command 'ide info' now produces a reasonable output for the one >> drive I attached to qemu. >> >> But 'fatls ide 0:1' still claims there is no device ide 0. >> Can you please try the v2 patch series @ http://patchwork.ozlabs.org/project/uboot/list/?series=1338? Regards, Bin ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-30 1:54 ` Bin Meng 2017-08-30 4:37 ` Heinrich Schuchardt @ 2017-08-30 6:34 ` Simon Glass 2017-08-30 6:44 ` Lothar Waßmann 1 sibling, 1 reply; 14+ messages in thread From: Simon Glass @ 2017-08-30 6:34 UTC (permalink / raw) To: u-boot Hi, On 30 August 2017 at 09:54, Bin Meng <bmeng.cn@gmail.com> 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? We should definitely change that message to debug(). It is very confusing. I think I have hunted it down twice myself :-) Regards, Simon ^ permalink raw reply [flat|nested] 14+ messages in thread
* [U-Boot] ** Can't read Driver Desriptor Block ** 2017-08-30 6:34 ` Simon Glass @ 2017-08-30 6:44 ` Lothar Waßmann 0 siblings, 0 replies; 14+ messages in thread From: Lothar Waßmann @ 2017-08-30 6:44 UTC (permalink / raw) To: u-boot Hi, On Wed, 30 Aug 2017 14:34:18 +0800 Simon Glass wrote: > Hi, > > On 30 August 2017 at 09:54, Bin Meng <bmeng.cn@gmail.com> 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? > > We should definitely change that message to debug(). It is very ... and fix the missing 'c' in 'Desriptor' Lothar Waßmann ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2017-09-04 9:05 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 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
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.