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)

Reply via email to