Prev: Please document setup for new WLK 1.5 IO Cancellation with Direct
Next: windows XP sp3 and usb priority
From: Davide on 16 Mar 2010 18:51 Hi guys, I'm trying exactly the same thing. I thought that I had to configure the base address in the INF file and then in the EvtPrepareHardware callback, read the translated resource address and write it to the GPIO Base Address thru the LPC (using CONFIG_ADDRESS and DATA_ADDRESS registers of the SCH), but according to Tim's post, it seams is the opposite... So I have to read the base address from the proper LPC register (in the prepareHardware callback, maybe protecting the access to the CONFIG_ADDRESS with a spin lock I think...) and pass it to the device context, is it right? But in this case what am I suppose to write in the INF file? Tim Roberts wrote: Do you mean US15w, the Atom chipset that used to be called "Poulsbo"? 18-Feb-10 Do you mean US15w, the Atom chipset that used to be called "Poulsbo"? This depends on the design of your motherboard and your BIOS. it is entirely possible that your BIOS configures the LPC with the GPIOs disabled. it is complicated. Are you looking at the US15w datasheet? You have to find the I/O port base for the LPC (by getting the I/O BAR for device 31 function 0), then fetch the base address of the GPIO registers within the I/O space, then go tweak the register itself. There are better ways to get I/O pins. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc. Previous Posts In This Thread: On Tuesday, February 16, 2010 2:41 AM Norrih wrote: GPIO read/write on intel using DDK example : Genport Hi All, I would like to control one of the 14 GPIO provided on the Poulsbo UW15w. and I would like to use the driver (Genport) provided in DDK. Do you know if this would work to set and clear GPIO. How do I get the Address of the Port i want to set. (gpdwrite . ...) is it set in the .inf Thanks regards Norrih On Tuesday, February 16, 2010 12:10 PM eagersh wrote: Genport provides only interface to access GPIO. Genport provides only interface to access GPIO. Using gpdwrite/gpdread you could specify an offset from a Base address and access to particular IO port. The Base address is specified in *.inf file. You could check Base Addresses in PortIOEvtDevicePrepareHardware of device.c . Igor Sharovar On Thursday, February 18, 2010 2:42 AM Tim Roberts wrote: Do you mean US15w, the Atom chipset that used to be called "Poulsbo"? Do you mean US15w, the Atom chipset that used to be called "Poulsbo"? This depends on the design of your motherboard and your BIOS. it is entirely possible that your BIOS configures the LPC with the GPIOs disabled. it is complicated. Are you looking at the US15w datasheet? You have to find the I/O port base for the LPC (by getting the I/O BAR for device 31 function 0), then fetch the base address of the GPIO registers within the I/O space, then go tweak the register itself. There are better ways to get I/O pins. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc. Submitted via EggHeadCafe - Software Developer Portal of Choice How to display a Gravatar Image with 100 Percent Client Script Code http://www.eggheadcafe.com/tutorials/aspnet/3c8a04cd-471e-48b7-8dcc-b0877c10ecb4/how-to-display-a-gravatar.aspx
From: Tim Roberts on 17 Mar 2010 00:55 Davide wrote: > >I'm trying exactly the same thing. > >I thought that I had to configure the base address in the INF file and >then in the EvtPrepareHardware callback, read the translated resource >address and write it to the GPIO Base Address thru the LPC (using >CONFIG_ADDRESS and DATA_ADDRESS registers of the SCH), but according >to Tim's post, it seams is the opposite... Tim's post was trying to say "it depends". Since this is non-PnP, you won't even get an EvtPrepareHardware callback unles you have assigned resources in the INF file, so in a sense your approach is correct. The key problem is that your LPC might be configured with the GPIOs turned off. Many motherboard are. You will have to do SOME manipulation of the LPC registers just to check this. >So I have to read the base address from the proper LPC register (in the >prepareHardware callback, maybe protecting the access to the >CONFIG_ADDRESS with a spin lock I think...) and pass it to the device >context, is it right? But in this case what am I suppose to write in >the INF file? If you are REALLy intent on doing this (and, as I said, it seems like a really hard way to get GPIO pins), I think the only way you can do it is to CHOOSE a base address that you know does not conflict with any other device, put that in your INF, then write the registers in PrepareHardware to make sure the hardware actually responds there. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Davide on 17 Mar 2010 04:51 Thanks for your reply. But now I've become curious, which is the best way to access the GPIO ?
From: Tim Roberts on 18 Mar 2010 22:48 Davide <Davide(a)discussions.microsoft.com> wrote: > >But now I've become curious, which is the best way to access the GPIO ? With a USB device or a parallel port adapter, where you are in complete control of your destiny. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Pavel A. on 19 Mar 2010 10:50 "Davide" <Davide(a)discussions.microsoft.com> wrote in message news:28A51F33-B0E1-474F-B411-B61B8D064CFF(a)microsoft.com... > Thanks for your reply. > But now I've become curious, which is the best way to access the GPIO ? Since this is an Intel platform, the best way is to consult with their support or partner (system builder). --pa
|
Next
|
Last
Pages: 1 2 Prev: Please document setup for new WLK 1.5 IO Cancellation with Direct Next: windows XP sp3 and usb priority |