[coreboot] [PATCH 2/3] Add support for 4 bytes rdid

Stefan Reinauer stepan at coresystems.de
Tue Jul 1 01:49:27 CEST 2008


Carl-Daniel Hailfinger wrote:
> On 30.06.2008 23:19, Peter Stuge wrote:
>   
>> On Mon, Jun 30, 2008 at 10:47:23PM +0200, Rudolf Marek wrote:
>>   
>>     
>>> @@ -97,7 +97,8 @@
>>>  		if (!oddparity(readarr[1]))
>>>  			printf_debug("RDID byte 1 parity violation.\n");
>>>  		manuf_id = (readarr[0] << 8) | readarr[1];
>>> -		model_id = readarr[2];
>>> +		model_id = (bytes == 3) ? readarr[2] :
>>> +						((readarr[2] << 8) | readarr[3]);
>>>     
>>>       
>> Please improve this a bit, I suggest:
>>
>> model_id=readarr[2];
>> if(bytes>3) { /* or 4==bytes */
>>   model_id<<=8;
>>   model_id|=readarr[3];
>> }
>>
>> With a fix (not neccessarily mine) for the above, this is:
>>   
>>     
>
> Technically, both variants will fail for some chips. There are at least
> the following RDID responses:
> 1 byte manuf, 2 bytes model
> 2 bytes manuf, 1 byte model
> 2 bytes manuf, 2 bytes model
> and all of the above with additional data appended.
>
> The existing code handles the first two cases, but not the third. The
> new code handles the first and third case, but not the second.
>   
What chips are there that send the second case?

> I know of some SPI chips which return 16 bytes for RDID. How about
> reading 16 bytes, cropping the result as needed?
>   
Yes the numonyx do that, but what you read is a customer specific serial 
number, not part of the identification process.

Reading that might allow for some nice use cases though. (Does it?)


Stefan

-- 
coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.dehttp://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20080701/3fa8b6ef/attachment.sig>


More information about the coreboot mailing list