[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[