From: Dean Ramsier on 3 Jun 2005 11:05 I've been tasked with writing a GPIO driver for the Winbond 83627. This is my first foray into "big Windows" (I'm coming from the CE world), and also my first foray into x86 (coming from the ARM world). So the questions are probably pretty basic, but any insight you can provide would be much appreciated. The basic problem I've got is that the GPIO on this part can't be mapped into regular IO space by the BIOS (or so I'm told). We (someone else who is no longer here) did a legacy driver for a different Winbond chip, but that one allowed the GPIO register to be mapped into IO space. The driver just blasted the port, and everyone was happy (no support for PnP, WDM etc, but got the job done). The data sheet for this part indicates that you have to enter "Compatible PNP mode" by writing some magic numbers to 0x2E, and then use 0x2E/0x2F as a address/data pair to hit the various registers. I'm thinking there are several possible problems with this: - Will XP allow me to just blast those registers? They show up as motherboard resources in the device manager, and I'm thinking XP might protect them somehow. - There are other devices that could theoretically want access to this magical space. If I'm allowed to just enter it at will, who is preventing the other drivers and I from messing each other up? - Is this Compatible PNP mode related to the regular ISA PNP mechanism, or just a copycat mechanism used to try to protect the registers from inadvertent writes? - If this area is protected, what is the recommended method of accessing these registers? I'll write a little test driver to see what happens if I just write to this space. But anything anyone cares to add would be greatly appreciated... -- Dean Ramsier
From: Maxim S. Shatskih on 3 Jun 2005 14:22 Is it a PCI card? -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim(a)storagecraft.com http://www.storagecraft.com "Dean Ramsier" <ramsiernospam(a)nospam.com> wrote in message news:O$%23tn2EaFHA.1456(a)TK2MSFTNGP15.phx.gbl... > I've been tasked with writing a GPIO driver for the Winbond 83627. This is > my first foray into "big Windows" (I'm coming from the CE world), and also > my first foray into x86 (coming from the ARM world). So the questions are > probably pretty basic, but any insight you can provide would be much > appreciated. > > The basic problem I've got is that the GPIO on this part can't be mapped > into regular IO space by the BIOS (or so I'm told). We (someone else who is > no longer here) did a legacy driver for a different Winbond chip, but that > one allowed the GPIO register to be mapped into IO space. The driver just > blasted the port, and everyone was happy (no support for PnP, WDM etc, but > got the job done). > > The data sheet for this part indicates that you have to enter "Compatible > PNP mode" by writing some magic numbers to 0x2E, and then use 0x2E/0x2F as a > address/data pair to hit the various registers. I'm thinking there are > several possible problems with this: > > - Will XP allow me to just blast those registers? They show up as > motherboard resources in the device manager, and I'm thinking XP might > protect them somehow. > - There are other devices that could theoretically want access to this > magical space. If I'm allowed to just enter it at will, who is preventing > the other drivers and I from messing each other up? > - Is this Compatible PNP mode related to the regular ISA PNP mechanism, or > just a copycat mechanism used to try to protect the registers from > inadvertent writes? > - If this area is protected, what is the recommended method of accessing > these registers? > > I'll write a little test driver to see what happens if I just write to this > space. But anything anyone cares to add would be greatly appreciated... > > -- > Dean Ramsier > > >
From: Dean Ramsier on 3 Jun 2005 14:52 No, the W83627 is on the LPC interface of the south bridge. -- Dean Ramsier - eMVP "Maxim S. Shatskih" <maxim(a)storagecraft.com> wrote in message news:ORiplkGaFHA.3976(a)TK2MSFTNGP15.phx.gbl... > Is it a PCI card? > > -- > Maxim Shatskih, Windows DDK MVP > StorageCraft Corporation > maxim(a)storagecraft.com > http://www.storagecraft.com > > "Dean Ramsier" <ramsiernospam(a)nospam.com> wrote in message > news:O$%23tn2EaFHA.1456(a)TK2MSFTNGP15.phx.gbl... > > I've been tasked with writing a GPIO driver for the Winbond 83627. This is > > my first foray into "big Windows" (I'm coming from the CE world), and also > > my first foray into x86 (coming from the ARM world). So the questions are > > probably pretty basic, but any insight you can provide would be much > > appreciated. > > > > The basic problem I've got is that the GPIO on this part can't be mapped > > into regular IO space by the BIOS (or so I'm told). We (someone else who is > > no longer here) did a legacy driver for a different Winbond chip, but that > > one allowed the GPIO register to be mapped into IO space. The driver just > > blasted the port, and everyone was happy (no support for PnP, WDM etc, but > > got the job done). > > > > The data sheet for this part indicates that you have to enter "Compatible > > PNP mode" by writing some magic numbers to 0x2E, and then use 0x2E/0x2F as a > > address/data pair to hit the various registers. I'm thinking there are > > several possible problems with this: > > > > - Will XP allow me to just blast those registers? They show up as > > motherboard resources in the device manager, and I'm thinking XP might > > protect them somehow. > > - There are other devices that could theoretically want access to this > > magical space. If I'm allowed to just enter it at will, who is preventing > > the other drivers and I from messing each other up? > > - Is this Compatible PNP mode related to the regular ISA PNP mechanism, or > > just a copycat mechanism used to try to protect the registers from > > inadvertent writes? > > - If this area is protected, what is the recommended method of accessing > > these registers? > > > > I'll write a little test driver to see what happens if I just write to this > > space. But anything anyone cares to add would be greatly appreciated... > > > > -- > > Dean Ramsier > > > > > > > >
From: Maxim S. Shatskih on 3 Jun 2005 20:25 Any ISAPnP support there? -- Maxim Shatskih, Windows DDK MVP StorageCraft Corporation maxim(a)storagecraft.com http://www.storagecraft.com "Dean Ramsier" <ramsiernospam(a)nospam.com> wrote in message news:OIBk11GaFHA.3132(a)TK2MSFTNGP09.phx.gbl... > No, the W83627 is on the LPC interface of the south bridge. > > -- > Dean Ramsier - eMVP > > > "Maxim S. Shatskih" <maxim(a)storagecraft.com> wrote in message > news:ORiplkGaFHA.3976(a)TK2MSFTNGP15.phx.gbl... > > Is it a PCI card? > > > > -- > > Maxim Shatskih, Windows DDK MVP > > StorageCraft Corporation > > maxim(a)storagecraft.com > > http://www.storagecraft.com > > > > "Dean Ramsier" <ramsiernospam(a)nospam.com> wrote in message > > news:O$%23tn2EaFHA.1456(a)TK2MSFTNGP15.phx.gbl... > > > I've been tasked with writing a GPIO driver for the Winbond 83627. This > is > > > my first foray into "big Windows" (I'm coming from the CE world), and > also > > > my first foray into x86 (coming from the ARM world). So the questions > are > > > probably pretty basic, but any insight you can provide would be much > > > appreciated. > > > > > > The basic problem I've got is that the GPIO on this part can't be mapped > > > into regular IO space by the BIOS (or so I'm told). We (someone else > who is > > > no longer here) did a legacy driver for a different Winbond chip, but > that > > > one allowed the GPIO register to be mapped into IO space. The driver > just > > > blasted the port, and everyone was happy (no support for PnP, WDM etc, > but > > > got the job done). > > > > > > The data sheet for this part indicates that you have to enter > "Compatible > > > PNP mode" by writing some magic numbers to 0x2E, and then use 0x2E/0x2F > as a > > > address/data pair to hit the various registers. I'm thinking there are > > > several possible problems with this: > > > > > > - Will XP allow me to just blast those registers? They show up as > > > motherboard resources in the device manager, and I'm thinking XP might > > > protect them somehow. > > > - There are other devices that could theoretically want access to this > > > magical space. If I'm allowed to just enter it at will, who is > preventing > > > the other drivers and I from messing each other up? > > > - Is this Compatible PNP mode related to the regular ISA PNP mechanism, > or > > > just a copycat mechanism used to try to protect the registers from > > > inadvertent writes? > > > - If this area is protected, what is the recommended method of accessing > > > these registers? > > > > > > I'll write a little test driver to see what happens if I just write to > this > > > space. But anything anyone cares to add would be greatly appreciated... > > > > > > -- > > > Dean Ramsier > > > > > > > > > > > > > > >
From: Dean Ramsier on 4 Jun 2005 08:52
I'm not sure exactly what you mean by ISAPnP support, but I believe the hardware and BIOS are ISA PNP capable, and I assume that's been implemented in general. However, the GPIO is muxed with a couple of other devices (GAME and MIDI) in this Winbond chip, so I (or the BIOS) needs to ensure the GPIO is the one that is exposed. How this affects PnP, I don't know. I have some opportunity to have the BIOS modified, as long as it isn't too major. But, I need to tell the BIOS guy what needs done, and I'm not sure what that should be... - Dean |