[PATCH 19/28] ARM: at91: add helpers for chain-loading barebox from SD-card

Ahmad Fatoum a.fatoum at pengutronix.de
Sun Jul 5 18:35:30 EDT 2020



On 7/5/20 8:42 PM, Sascha Hauer wrote:
> On Wed, Jul 01, 2020 at 11:11:13AM +0200, Ahmad Fatoum wrote:
>> +static void at91_fat_start_image(struct pbl_bio *bio,
>> +				 void *buf, unsigned int len,
>> +				 u32 r4)
>> +{
>> +	void __noreturn (*bb)(void);
>> +	int ret;
>> +
>> +	ret = pbl_fat_load(bio, "barebox.bin", buf, len);
>> +	if (ret < 0) {
>> +		pr_err("pbl_fat_load: error %d\n", ret);
>> +		return;
>> +	}
>> +
>> +	bb = buf;
>> +
>> +	sync_caches_for_execution();
>> +
>> +	xload_bb(bb, r4);
>> +}
>> +
>> +static const struct sdhci_instance {
>> +	void __iomem *base;
>> +	unsigned id;
>> +	u8 periph;
>> +	s8 pins[15];
>> +} sdhci_instances[] = {
>> +	[0] = { SAMA5D2_BASE_SDHC0, SAMA5D2_ID_SDMMC0, AT91_MUX_PERIPH_A,
>> +		{ 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 13, 10, 11, 12, -1 } },
>> +	[1] = { SAMA5D2_BASE_SDHC1, SAMA5D2_ID_SDMMC1, AT91_MUX_PERIPH_E,
>> +		{ 18, 19, 20, 21, 22, 28, 30, -1 } },
>> +};
> 
> Can we use C99 initializer here please?

Can do

> 
>> +
>> +/**
>> + * sama5d2_sdhci_start_image - Load and start an image from FAT-formatted SDHCI
>> + * @r4: value of r4 passed by BootROM
>> + *
>> + * Return: If successul, this function does not return. A negative error
> 
> s/successul/successful/
> 
>> + * code is returned when this function fails.
> 
> This is not true, the function panics on error.

It did when I first wrote the comment :D.
Will reply with a fixup.

> 
>> + */
>> +void __noreturn sama5d2_sdhci_start_image(u32 r4)
>> +{
>> +	void *buf = (void *)SAMA5_DDRCS;
>> +	const struct sdhci_instance *instance;
>> +	struct pbl_bio bio;
>> +	const s8 *pin;
>> +	int ret;
>> +
>> +	instance = &sdhci_instances[!!sama5_bootsource_instance(r4)];
> 
> Why "!!"? sama5_bootsource_instance() should return exactly 0 or 1 here.

SAMA5_BOOTSOURCE_INSTANCE is GENMASK(7, 4). While it should only be 0 or 1
on the sama5d2, better be on the safe side and force it to either 0 or 1.

> 
> Sascha
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list