[U-Boot] [PATCH 3/5] Add fuse API and commands

Dirk Behme dirk.behme at de.bosch.com
Tue Nov 27 08:19:37 CET 2012


On 26.11.2012 17:03, Benoît Thébaudeau wrote:
> Hi Eric, all,
> 
> On Thursday, August 23, 2012 3:23:20 PM, Eric Nelson wrote:
>> On 08/23/2012 03:31 AM, Stefano Babic wrote:
>>> On 22/08/2012 12:43, Dirk Behme wrote:
>>>> On 14.08.2012 14:52, Benoît Thébaudeau wrote:
>>>>> This can be useful for fuse-like hardware, OTP SoC options, etc.
>>>> For i.MX6, I have a port of the OTP support from Freescale's
>>>> U-Boot to
>>>> our mainline U-Boot in the queue [1].
>>>>
>>>> As I don't have the overview over the various i.MXxx SoCs and
>>>> don't
>>>> understand much of this patch below: Should this implement the
>>>> same
>>>> functionality like my patch [1] for i.MX6?
>>> I have not checked the details. but seeing the code it looks that
>>> the
>>> procedure to read / write are different. In this case, a further
>>> driver
>>> is ok.
>>>
>>> Anyway, you should take a look if your patches can be used on a mxs
>>> (MX28) device, because they should be closer. And then I will not
>>> like
>>> to have a driver for each SOC.
>>>
>>> Generally, I think we should use the approach of the common command
>>> and
>>> a specific fuse implementation. Then this API should be used by
>>> your
>>> patches as well.
>>>
>> I agree.
>>
>> The use of the fuse API will likely result in more code than the
>> imxotp implementation, and more importantly, it will make the usage
>> more confusing by introducing terms bank and row.
>>
>> Reading and writing fuses is probably not an area that we want
>> confusion.
> 
> I am looking again into this question now that I have the i.MX6 reference
> manual.
> 
> I don't see any difference between IIM and OCOTP features:
>  - There are still banks: They exist as seen from the controller, even if they
>    don't exist physically in the efusebox. See 46.2.1 and OCOTP memory map
>    ("Value of OTP Bankx Wordy" shadow registers).
>  - Rows are named words.
>  - The read operations are read accesses to the shadow registers.
>  - The sense operations are direct fuse reads (shadow reload + read), as
>    explained by the steps in 46.2.1.2.
>  - The prog operations are the programming of the fuses, as explained by the
>    steps in 46.2.1.3.
>  - The override operations are simple write accesses to the shadow registers, as
>    explained in 46.2.1.3.
> 
> As to the vocabulary used, the differences are:
>  - "row" -> "word".
>  - "sense" -> "direct read".
> 
> Hence, the fuse API applies very well in this case too.

Do you like to update/rebase your patches to the latest U-Boot and 
re-send? Maybe it makes sense to discuss your patches again, then?

Eric: What do you think?

Thanks

Dirk


More information about the U-Boot mailing list