[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: non-implemented commands
On Aug 2, 3:02am, Anand wrote:
> Subject: non-implemented commands
>
> Hello..
> A quick question about non-implemented commands. When I get
> one, should I go to BusBusy state or Backoff state? In other words, if
> there is a I/O Read on the bus (and I don't implement
> it), but the address falls into my I/O space, do I drive DEVSEL to 0 and
> "deassert TRDY/assert STOP" or do I go to BusBusy state and drive Z on
> Devsel/Trdy/Stop?
Based on your description, it sounds to me like you are implementing
write-only registers in I/O space. Let me first note that write-only
registers are generally a bad idea. However, let's assume that there is
a good reason for making them write-only.
I see three options for dealing with the read of a write-only register.
- Complete the transaction normally and return some data value. (For PCs
standard practice is to return all 1s when something "wrong" has
happened.)
- Do a target-abort. (DEVSEL negated, STOP asserted.)
- Don't respond to the transaction at all. (Act exactly as if the address
didn't even fall within your range.) The master will do a master-abort.
Don't just retry the transaction. (I.e., don't just assert STOP with
DEVSEL
asserted.) That action tells the master to try the transaction again,
later.
> Thanks for your time
> Anand
Monish Shah
Hewlett Packard
Î l [