[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: PCI Configuration BAR all '1' write
Since access to the BAR's is usually reserved for the OS, there is really not a problem if it does it right. Nobody prevents you, of course, to invent a mechanism that resets the address back to the original value, but don't forget that you will be violating the PCI spec in that case!
That may be a bigger issue than solving a theoretical case that will never happen.
Tom
> See my method 1, even writing all '1' to BARx, it doesn't change the
> BARx starting address, only setting a flag indicating next
> BARx reading
> should return memory size. After second writing, the starting address
> still is unchanged.
>
> From reliability point of view, the above command serial would cause
> trouble.
>
> Thank you. Now I understand what to do:
> 1. setting flag to return memory size needs more logic, but it is more
> reliable and more robotic.
> 2. High address bits R/W enable method saves logic, but
> leaves a hole to
> system, causing trouble even if the chance is
> 1/1000000000000000000000000000000000000000000000000000000.
>
> Weng
>
> -----Original Message-----
> From: Tom Verbeure [mailto:tverb@globespanvirata.com]
> Sent: Wednesday, March 06, 2002 3:04 PM
> To: WTX@umem.com; pci-sig@znyx.com
> Subject: RE: PCI Configuration BAR all '1' write
>
>
>
> See below for comments...
>
> >
> > Hi Amits,
> > I may cause confusion. The following is a serial of software
> > reading/writing operations to access the BAR0:
> >
> > For power up software:
> >
> > Read: 0x0000,0000 -- initial value
> > Write: 0xffff,ffff -- try to read back memory size
> > Read: 0xffff,0000 -- determine size
> > Write: 0x1234,0000 -- memory initial address is:
> > 0x1234,0000
> >
> > Another software wants to know the BAR0 memory size due to unknown
> > reason:
>
> Instead of immediately writing 0xffff,ffff, the other software will
> first read the BAR, the write anmd read the 0xffffffff and then write
> back the 0x12340000. This is what happens in Windows for example...
>
> ** Read: 0x1234,0000
> > Write: 0xffff,ffff -- try to read back memory size
> > Read: 0xffff,0000 -- determine size
> ** Write: 0x1234,0000
>
>
>
> ******************Legal Disclaimer**************************
> "This email may contain confidential and privileged material for the
> sole use of the intended recipient. Any unauthorized review, use or
> distribution by others is strictly prohibited. If you have
> received the
> message in error, please advise the sender by reply email
> @globespanvirata.com, and delete the message. Thank you."
> ****************************************************************
>
>
>