On 11/10/2014 07:32 PM, Paolo Bonzini wrote: > On 10/11/2014 16:52, Hannes Reinecke wrote: >> After a reset ESP_TCHI should contain the unique ID >> of the chip. This value will be overwritten with the >> current tranfer count if the transfer count has >> previously been set. >> So we should always return the chip id if ESP_TCHI >> has never been written to. > > What if ESP_TCHI was written 0? Why should it return the chip id? > It's a complex thing. The documentation says 'ESP_TCHI returns the chip id until been written to'. And ESP_TCHI is strictly speaking only valid if the 'Features enabled' bit is set in ESP_CFG2. (Not that the driver checks this). To handle it correctly we would need to add a flag whenever ESP_TCHI is written to, but I thought it'd be slightly too much. Plus we're reloading the ESP_TCHI register anyway whenever a transfer is started.
> Can you explain exactly what sequence of register reads/writes leads to > the bug? > CMD RST DMA CMD NOP -> ESP_TCHI should contain chip_id, but doesn't. Cheers, Hannes -- Dr. Hannes Reinecke zSeries & Storage h...@suse.de +49 911 74053 688 SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)