On 10/27/2009 7:22 PM, Benjamin Herrenschmidt wrote:
On Tue, 2009-10-27 at 12:27 -0500, Ayman El-Khashab wrote:
quoted
The first problem I noticed is that the physical address is read into a 32 bit variable, but the 460ex has a 36 bit bus so the ioremap would always fail. I've change the defn of chip_phys in mpt2sas_base.h to u64 and that cleared up that issue.
That looks indeed like a common driver bug. Please make sure you submit
the fix upstream. The "right" type to use is resource_size_t in fact.
Thank you Benjamin for your help. The info was passed onto the maintainer and they were able to use it
to improve their driver. In the background, the mpt2sas was brought up on the canyonlands/460ex. The
biggest thing turned out to be an #ifdef in the code that referred to BITS_32 to determine whether to prog
the high and low of the DMA addresses. Once that was adjusted, it did function and detect the sas drive.