
Hi Andy,
in message 20080715084956.GA30428@www.tglx.de Sebastian Siewior wrote:
- Andy Fleming | 2008-07-14 19:32:56 [-0500]:
...
This looks pretty good to me, but I'm not very familiar with this code. Could you explain a little more deeply what is wrong with the old way, and why the new way is better? I think I understand the problem with the BA_SHIFT (actually, it alarms me, a bit), but I'm not
the first part, changes the computation of the dummy address. The spec [1] chap 14.4.4.2 referes to the dummy address as "...by a (dummy) write transaction to the relevant UPM assigned bank." The address is assigned in the relevant BRx[BA] register (bits 0-16 if not used extened addresses) and therefore shift is wrong, logical and is correct.
so sure about using MSEL on one side of the ==, and not the other.
BRx[MSEL] specifies the machines used (table 14-4, pdf page 631 in my document). MSEL is the mask while upmmask (UPMC, UPMB, or UPMB) is the content of the register. For instance, if your BR[MSEL] register would have all bits set (what is reserved / not legal) than the old compare method would match UPMA, UPMB & UPMC where is the new method would skip it.
Any comment about the state of this patch? Thanks in advance.
Best regards,
Wolfgang Denk