[U-Boot] [PATCH 1/6] misc: Add JZ47xx efuse driver

Marek Vasut marex at denx.de
Mon Dec 10 22:03:27 UTC 2018


On 12/10/2018 11:02 PM, Ezequiel Garcia wrote:
> On Mon, 2018-12-10 at 21:56 +0100, Marek Vasut wrote:
>> On 12/10/2018 09:35 PM, Ezequiel Garcia wrote:
>>> From: Paul Burton <paul.burton at imgtec.com>
>>>
>>> Add driver for the efuse block in the JZ47xx SOC.
>>>
>>> Cc: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
>>> Signed-off-by: Paul Burton <paul.burton at imgtec.com>
>>> Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
>>
>> [...]
>>
>>> +static void jz4780_efuse_read_chunk(size_t addr, size_t count, u8 *buf)
>>> +{
>>> +	void __iomem *regs = (void __iomem *)NEMC_BASE;
>>> +	size_t i;
>>> +	u32 val;
>>> +
>>> +	val = EFUSE_EFUCTRL_RD_EN |
>>> +	      ((count - 1) << EFUSE_EFUCTRL_LEN_BIT) |
>>> +	      (addr << EFUSE_EFUCTRL_ADDR_BIT) |
>>> +	      ((addr > 0x200) ? EFUSE_EFUCTRL_CS : 0);
>>> +	writel(val, regs + EFUSE_EFUCTRL);
>>> +	/* FIXME -- wait_bit() */
>>> +	while (!(readl(regs + EFUSE_EFUSTATE) & EFUSE_EFUSTATE_RD_DONE))
>>> +		;
>>
>> Does wait_for_bit_le32() fit into the SPL if you use it here ?
>>
> 
> I literally haven't looked at these (working) drivers. Let's see..
> 
> ...hm, to be honest, I'm more worried about these infinite loops
> than about fancy API uses. An infinite loop in the MMC driver caused
> a freeze during driver-model porting, so these are more serious threats.
> 
> Will try to address the unbounded loop and take a stab at using
> wait_for_bit_le32.

Right, that should fix the infinite loop problem.

-- 
Best regards,
Marek Vasut


More information about the U-Boot mailing list