Hi ALL,
Is there anyway to change the BaseAddress of the PCI Conguration Register of any device in Windows?
Just suggest me any possibility.
Regards,
Vishwanath M.
Hi ALL,
Is there anyway to change the BaseAddress of the PCI Conguration Register of any device in Windows?
Just suggest me any possibility.
Regards,
Vishwanath M.
For what? The device will work with any base address
Max
----- Original Message -----
From: vishwanath
To: NT Developers Interest List
Sent: Thursday, May 30, 2002 1:01 PM
Subject: [ntdev] Is there any API to change the BaseAddress?
Hi ALL,
Is there anyway to change the BaseAddress of the PCI Conguration Register of any device in Windows?
Just suggest me any possibility.
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to %%email.unsub%%
Hi Maxim,
Say for any device when the BIOS detects the Devices on the Slots of PCI,the BIOS will have a standard way of dealing with all the slots,say first it gathers the complete PCI Configuration Space with respect to the Device & later findsout the device related properties like Memory or I/O Mapped, Prefetchable or Non-Prefetchable & 32/64-bit Addressing.After this it tries to get the total amount of memort to be allocated for that device depending on some of the hard-wired bits of Baseaddress Register.After this BIOS assigns the BaseAddress for each device.So the Device maps all its registers & memory to this region.
After it has mapped all these registers & memory, If i try to change the BaseAddress already assigned by the BIOS would give the problem, B’cos it has to Re-Map all the registers & Memory,which i believe is not possible for the device to do at runtime.Moreover i don’t see any API to change the BaseAddress Register value,Except HalSetDataByOffset/HalSetData which are not working & i tried but the value remains same in the BaseAddress Register.
If you have any code which can change the BaseAddress Register,could you please let me know.
Just mail me on this issue.
Regards,
Vishwanath M.
----- Original Message -----
From: Maxim S. Shatskih
To: NT Developers Interest List
Sent: Thursday, May 30, 2002 9:50 PM
Subject: [ntdev] Re: Is there any API to change the BaseAddress?
For what? The device will work with any base address
Max
----- Original Message -----
From: vishwanath
To: NT Developers Interest List
Sent: Thursday, May 30, 2002 1:01 PM
Subject: [ntdev] Is there any API to change the BaseAddress?
Hi ALL,
Is there anyway to change the BaseAddress of the PCI Conguration Register of any device in Windows?
Just suggest me any possibility.
You are currently subscribed to ntdev as: xxxxx@deccanetdesignstele.com
To unsubscribe send a blank email to %%email.unsub%%
Looks like nobody before had such a strange need of changing the PCI bar of the working device For what?
Will it work better? Or do you want to do your own resource rebalancing?
Max
----- Original Message -----
From: vishwanath
To: NT Developers Interest List
Sent: Friday, May 31, 2002 7:01 AM
Subject: [ntdev] Re: Is there any API to change the BaseAddress?
Hi Maxim,
Say for any device when the BIOS detects the Devices on the Slots of PCI,the BIOS will have a standard way of dealing with all the slots,say first it gathers the complete PCI Configuration Space with respect to the Device & later findsout the device related properties like Memory or I/O Mapped, Prefetchable or Non-Prefetchable & 32/64-bit Addressing.After this it tries to get the total amount of memort to be allocated for that device depending on some of the hard-wired bits of Baseaddress Register.After this BIOS assigns the BaseAddress for each device.So the Device maps all its registers & memory to this region.
After it has mapped all these registers & memory, If i try to change the BaseAddress already assigned by the BIOS would give the problem, B’cos it has to Re-Map all the registers & Memory,which i believe is not possible for the device to do at runtime.Moreover i don’t see any API to change the BaseAddress Register value,Except HalSetDataByOffset/HalSetData which are not working & i tried but the value remains same in the BaseAddress Register.
If you have any code which can change the BaseAddress Register,could you please let me know.
Just mail me on this issue.
Regards,
Vishwanath M.
----- Original Message -----
From: Maxim S. Shatskih
To: NT Developers Interest List
Sent: Thursday, May 30, 2002 9:50 PM
Subject: [ntdev] Re: Is there any API to change the BaseAddress?
For what? The device will work with any base address
Max
----- Original Message -----
From: vishwanath
To: NT Developers Interest List
Sent: Thursday, May 30, 2002 1:01 PM
Subject: [ntdev] Is there any API to change the BaseAddress?
Hi ALL,
Is there anyway to change the BaseAddress of the PCI Conguration Register of any device in Windows?
Just suggest me any possibility.
You are currently subscribed to ntdev as: xxxxx@storagecraft.com
To unsubscribe send a blank email to %%email.unsub%%
Its possible in windows95 (just directly write to the address once you map
it), windowsnt (hal functions),but i very much tried in windows98 which
didnt work. I guess it works in windows2000.
From: “vishwanath”
>Reply-To: “NT Developers Interest List”
>To: “NT Developers Interest List”
>Subject: [ntdev] Re: Is there any API to change the BaseAddress?
>Date: Fri, 31 May 2002 08:31:33 +0530
>
>Hi Maxim,
>
>Say for any device when the BIOS detects the Devices on the Slots of
>PCI,the BIOS will have a standard way of dealing with all the slots,say
>first it gathers the complete PCI Configuration Space with respect to the
>Device & later findsout the device related properties like Memory or I/O
>Mapped, Prefetchable or Non-Prefetchable & 32/64-bit Addressing.After this
>it tries to get the total amount of memort to be allocated for that device
>depending on some of the hard-wired bits of Baseaddress Register.After this
>BIOS assigns the BaseAddress for each device.So the Device maps all its
>registers & memory to this region.
>After it has mapped all these registers & memory, If i try to change the
>BaseAddress already assigned by the BIOS would give the problem, B’cos it
>has to Re-Map all the registers & Memory,which i believe is not possible
>for the device to do at runtime.Moreover i don’t see any API to change the
>BaseAddress Register value,Except HalSetDataByOffset/HalSetData which are
>not working & i tried but the value remains same in the BaseAddress
>Register.
>If you have any code which can change the BaseAddress Register,could you
>please let me know.
>
>Just mail me on this issue.
>
>Regards,
>Vishwanath M.
> ----- Original Message -----
> From: Maxim S. Shatskih
> To: NT Developers Interest List
> Sent: Thursday, May 30, 2002 9:50 PM
> Subject: [ntdev] Re: Is there any API to change the BaseAddress?
>
>
> For what? The device will work with any base address
>
> Max
>
> ----- Original Message -----
> From: vishwanath
> To: NT Developers Interest List
> Sent: Thursday, May 30, 2002 1:01 PM
> Subject: [ntdev] Is there any API to change the BaseAddress?
>
>
> Hi ALL,
>
> Is there anyway to change the BaseAddress of the PCI Conguration
>Register of any device in Windows?
>
> Just suggest me any possibility.
>
> Regards,
> Vishwanath M.
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to %%email.unsub%%
> —
> You are currently subscribed to ntdev as: xxxxx@deccanetdesignstele.com
> To unsubscribe send a blank email to %%email.unsub%%
>
>
>—
>You are currently subscribed to ntdev as: xxxxx@hotmail.com
>To unsubscribe send a blank email to %%email.unsub%%
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp.
> it), windowsnt (hal functions),but i very much tried in windows98
which
didnt work. I guess it works in windows2000.
Wrong guess w2k uses same PnP as Win98.
Using even a single call to obsolete hardware resource functions like
HalAssignSlotResources under w2k will disable power management, and
with a good reason, thus these functions are no-no in w2k drivers.
In fact, WDM OSes just does not allow the driver writer to manipulate
these registers. They conceptually belong to the OS, not to the driver
writer.
The driver must just consume the value given to it via START IRP. This
leads to working and stable drivers, while ill-designs under which the
driver does care the specific values of the PCI BAR lead to
compatibility problems with other cards at least. Correct PCI card
must work with any sane base address assigned by the OS, thus there is
absolutely no need in changing it.
Max