[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
some questions
Hi everyone,
yet I have some other questions....
1) state machine of PCI revision 2.0 p175 :
B_BUSY
goto B_BUSY if(!FRAME# +...)
goto IDLE if FRAME#
goto S_DATA if (!FRAME# + !IRDY#)*...
^^^^^^^^^^^^^^^^^
are those gotos arranged in descending priority ?
Because then I'm wondering about the third goto.
In case FRAME=true, then state= IDLE,
In case FRAME=not true, then check the third goto (if the first goto is
false of course)
So the line (!FRAME# + !IRDY#) will in that case always be true.
Why did they put !IRDY# in that line then (if the gotos are in
descending priority) ?
2) When, at power up, the BIOS assigns a base address to the device...
how does the BIOS know no parity error has occured ?
Because the PERR enable bit must be set by the device driver, but
the device driver is only executed after boot up.
Or does a configuration transaction doesn't need parity error checking
?
3) I still don't quite understand how to assign the exact amount of
memory and IO space a device needs.
For my device, I connect a stc101(a link switch) to my PCI interface
(xilinx fpga).
The stc101 has an address range from address[4:0]
For my IO base address I choosed ba[31:8] (the maximum,256 bytes)
For my mem base address I choosed ba[31:16]
Of course, these BA aren't the exact amount my device needs.
Would the correct IO base address be BA[31:6] ? (respecting the
the stc address[4:0] and reserved address1 and IO indecator address0)
And how do I determine the exact amount the MEM base address needs ?
Thanks for your time and reading,
Kim
‡ ¼ ©