Hello, Mark. Mark Lord wrote: > Tejun, I've added PMP to sata_mv, and am now trying to get it > to work with a Marvell PM attached. > > And the behaviour I see is very bizarre. > > After hard+soft resets, the PM signature is found, > and libata interrogates the PM registers. > > It successfully reads register 0, and then register 1. > But all subsequent registers read out (incorrectly) as zeros. Hmmm... > I've traced the taskfiles in/out, and it all looks proper > except for the actual data coming back from the PM. > > After some experimentation, I found that all of the PM registers > were readable, if I simple inserted a sata_pmp_read(link, 0, &junk) > in front of each issue of sata_pmp_read(link, reg, &r_val). Hmmmmmmm... > Then the PM is recognized and all, but fails port enumerations > probably due to either my hack or the same original bug (whatever that is?) > > I'm confused. That makes two of us. > The PM itself works fine here on sata_sil24 and AHCI(jmicron), Yeah, Marvell PMPs behave very nicely with sil24 and ahci. > so it's obviously the sata_mv driver or chipset that's being weird. > > Ever seen anything like this before? No. > I'm trying to use stock libata functions for all of this where possible, > so there's not really that much new/necessary code in sata_mv for this. > I do force the PMP value for outgoing-FIS's (non standard register for it), > but that's about all that's custom here. > > The driver uses ATA register mode emulation for all commands > other than READ/WRITE disk stuff, including for the PM register accesses. > > Ever seen anything like this before? No but I had my fair share of problems doing PMP support for both sil24 and ahci. Any chance you can get access to a bus analyzer? I had a very weird problem w/ ahci PMP support which I don't think I could fix if I didn't have access to a bus analyzer at the time. (I don't remember details now tho.) -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html