From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dirk Behme Date: Tue, 27 Nov 2012 08:19:37 +0100 Subject: [U-Boot] [PATCH 3/5] Add fuse API and commands In-Reply-To: <178628824.2148673.1353945795295.JavaMail.root@advansee.com> References: <178628824.2148673.1353945795295.JavaMail.root@advansee.com> Message-ID: <50B46989.6030708@de.bosch.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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