>Date: Mon, 15 Jun 2015 00:20:13 -0500 >From: "Scott Duplichan" <sc...@notabs.org> >Subject: Re: [edk2] USB3 driver development setup suggestions. >To: <edk2-devel@lists.sourceforge.net> >Message-ID: <000401d0a72a$f69d3fb0$e3d7bf10$@notabs.org> >Content-Type: text/plain; charset="utf-8" > >Eric Wittmayer [mailto:e...@frescologic.com] wrote: > >]Sent: Saturday, June 13, 2015 11:39 AM >]To: edk2-devel@lists.sourceforge.net >]Subject: [edk2] USB3 driver development setup suggestions. >] >]Hello EDK developers, >] I'm looking for suggestions on the easiest development setup for a USB 3 >]device Dxe driver. Ideally, I'd prefer a virtualized on a windows host that ]lets me pass through the USB3 device to the UEFI guest. >]I have been using Duet and can build and run a basic driver that will start ]on my device. I haven't been able to get debug output using the DEBUG macro ]from my driver. I check DebugPrintEnabled ( ) and DebugCodeEnabled ( ) in ]my driver and I can see they are both enabled so I'm not sure why I don't ]see output from DEBUG. >]I would also like to see the debug output from the USB stack. Is that ]possible with Duet? >] >]Thanks, >]Eric > >For USB, I don't know of a good substitute for debugging on real hardware. >But the good news is that the Duet DEBUG() print macro can be made to work. >The DEBUG() output code was removed to reduce code size. Duet code size is limited because it uses the MS-DOS 640KB low memory area as a temporary buffer during boot. > >Testing with today's EDK2 trunk (SVN rev 17629) shows that debug output such as DEBUG (( EFI_D_INFO, "xxx\n")) is not generating any code. Here is one way to make it work: >1) DuetPkgX64.dsc: > a) replace DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf > with DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf > b) replace gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0 > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0 > gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x0 > with gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|6 > gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2F > gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F > I removed the DxeMain.inf overrides for these 3 items so that uniform > values are used through the project. >2) DuetPkg.fdf: Comment out non-essential items to avoid a memory size related > build fail caused by change #1. Standard Duet uses the MS-DOS 640KB low > memory area as a temporary buffer, so code size increases have to be > countered with code size reductions elsewhere. > >There is a Windows utility for making a Duet FAT image here: >http://notabs.org/uefi/Edk2DuetBoot.htm >The utility generates the image directly without writing to a physical drive, so it can streamline the Duet build process. > >Thanks, >Scott
Scott, Thanks for the info on getting the debug output from the duet build and on the dev environment. Am I correct that if I am able to build Duet and boot it from the bios on a real machine it should use the USB stack from my duet build and not from the underlying UEFI build that is in the system rom? Regards, Eric ------------------------------------------------------------------------------ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel