[PATCH] rockchip: rk3399: boot_devices: fix eMMC node name

Quentin Schulz quentin.schulz at theobroma-systems.com
Mon Jul 18 11:18:59 CEST 2022


On 7/11/22 20:22, Xavier Drudis Ferran wrote:
> El Mon, Jul 11, 2022 at 04:15:33PM +0200, Quentin Schulz deia:
>> From: Quentin Schulz <quentin.schulz at theobroma-systems.com>
>>
>> When idbloader.img is flashed on the eMMC, the SPL still tries to load
>> from SPI-NOR first.
>>
>> This is due to an incorrect look-up in the Device Tree. Since commit
>> 822556a93459 ("arm: dts: sync the Rockhip 3399 SoCs from Linux"), the
>> node name (but not label) changed from sdhci at fe330000 to mmc at fe330000
>> meaning U-Boot SPL is not looking for the correct node name anymore and
>> fails to find the "same-as-spl" node when eMMC is the medium from which
>> the SPL booted.
>>
> 
> Yes, I also saw that. I changed and tested it at some time, but since there
> were other changes, I hesitate to send a Tested by for your patch. FWIW:
> 
> Reviewed-by: Xavier Drudis Ferran <xdrudis at tinet.cat>
> 
>   
>> Fixes: 822556a93459 ("arm: dts: sync the Rockhip 3399 SoCs from Linux")
>> Cc: Quentin Schulz <foss+uboot at 0leil.net>
>> Signed-off-by: Quentin Schulz <quentin.schulz at theobroma-systems.com>
>> ---
>>
>> Sorry for resend, was not yet subscribed.
>>
>>   arch/arm/mach-rockchip/rk3399/rk3399.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm/mach-rockchip/rk3399/rk3399.c b/arch/arm/mach-rockchip/rk3399/rk3399.c
>> index 01a05599cd..de11a3fa30 100644
>> --- a/arch/arm/mach-rockchip/rk3399/rk3399.c
>> +++ b/arch/arm/mach-rockchip/rk3399/rk3399.c
>> @@ -27,7 +27,7 @@ DECLARE_GLOBAL_DATA_PTR;
>>   #define GRF_BASE	0xff770000
>>   
>>   const char * const boot_devices[BROM_LAST_BOOTSOURCE + 1] = {
>> -	[BROM_BOOTSOURCE_EMMC] = "/sdhci at fe330000",
>> +	[BROM_BOOTSOURCE_EMMC] = "/mmc at fe330000",
>>   	[BROM_BOOTSOURCE_SPINOR] = "/spi at ff1d0000/flash at 0",
>>   	[BROM_BOOTSOURCE_SD] = "/mmc at fe320000",
>>   };
>> @@ -181,7 +181,7 @@ const char *spl_decode_boot_device(u32 boot_device)
>>   		const char *ofpath;
>>   	} spl_boot_devices_tbl[] = {
>>   		{ BOOT_DEVICE_MMC1, "/mmc at fe320000" },
>> -		{ BOOT_DEVICE_MMC2, "/sdhci at fe330000" },
>> +		{ BOOT_DEVICE_MMC2, "/mmc at fe330000" },
>>   		{ BOOT_DEVICE_SPI, "/spi at ff1d0000" },
> 
> Not related to this patch, but I also changed "/spi at ff1d0000" -> "/spi at ff1d0000/flash at 0".
> Not sure whether it needs to be different in both arrays in some case for some reason.
> 

Thanks for the heads up, it seems that our board was the only (upstream) 
one impacted by this oversight because it's the only one reading 
u-boot,spl-boot-device DT property that is set using this table.

See patch here: 
https://lore.kernel.org/u-boot/20220715151552.953654-2-foss+uboot@0leil.net/

You can add your Suggested-by: I forgot to add it before sending.

Thanks!
Quentin


More information about the U-Boot mailing list