On Nov 19, 2013, at 11:11 AM, David F. <df7...@gmail.com> wrote: > breaking it up to 512K size reads (256 sectors) did work - slower than > I thought it would be
A CD-ROM has 2K block size, so maybe the driver is not caching and reading the same block more than one time? Thanks, Andrew Fish > but works. Thanks. > > On Tue, Nov 19, 2013 at 8:09 AM, Brian J. Johnson <bjohn...@sgi.com> wrote: >> FWIW, we saw similar problems with a 3rd party SAS driver as well. It >> provided only the BLOCK_IO protocol, and would error out if asked to >> perform a read of 0x8000 or more blocks (16MB.) That broke a particular >> version of Microsoft's boot loader, and there was nothing we could do >> about it in our BIOS. >> >> So it sounds like this sort of problem is widespread. >> >> Brian Johnson >> >> On 11/19/2013 03:10 AM, Mike Maslenkin wrote: >>> And we saw similar problems too. >>> >>> In our case the problem was in large PIO transfers. >>> Since edk2 code base uses PIO for ATAPI devices, we are unable to handle >>> such reads in our VM, because we have a 1MB bounce buffer for PIO. >>> >>> There were two solutions implemented: >>> 1. We have added DMA support. >>> 2. We have limited maximum transfer size for all block devices to 1 MB >>> (in ScsiDiskDxe). >>> // >>> // limit the data bytes that can be transferred by one Read(10) or >>> Read(16) Command >>> // >>> if (!ScsiDiskDevice->Cdb16Byte) { >>> - MaxBlock = 0xFFFF; >>> + MaxBlock = 0x200; // 1mb >>> } else { >>> MaxBlock = 0xFFFFFFFF; >>> } >>> >>> The second solution is not so good, and I started to think about >>> splitting request at >>> AtaAtapiPassThruDxe, before submitting it to ATA device. >>> >>> Hope it helps. >>> >>> On Mon, 2013-11-18 at 19:35 -0800, H. Peter Anvin wrote: >>>> On 11/18/2013 05:47 PM, David F. wrote: >>>>> Thanks - I found the grub option for set debug= (I couldn't use all >>>>> since it would lock up - but used disk,efidisk,modules,loader) and can >>>>> see it reads 0x100 sectors from sector 0x500 then reads 0x4C00 sectors >>>>> from sector 0x600. So perhaps that's it. Yes, legacy reads in the >>>>> same inirmfs.gz file (which occupies 0x5AF to 0x525C) but I'm sure it >>>>> does it in smaller chunks. >>>> >>>> We saw similar problems with extremely large reads while developing the >>>> Linux EFI boot stub. We ended up capping the size of any one read call >>>> to 1 MB. Sad but true. >>>> >>>> -hpa >>>> >> >> ------------------------------------------------------------------------------ >> Shape the Mobile Experience: Free Subscription >> Software experts and developers: Be at the forefront of tech innovation. >> Intel(R) Software Adrenaline delivers strategic insight and game-changing >> conversations that shape the rapidly evolving mobile landscape. Sign up now. >> http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/edk2-devel > > ------------------------------------------------------------------------------ > Shape the Mobile Experience: Free Subscription > Software experts and developers: Be at the forefront of tech innovation. > Intel(R) Software Adrenaline delivers strategic insight and game-changing > conversations that shape the rapidly evolving mobile landscape. Sign up now. > http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/edk2-devel ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel