rk3328 efuse return just 0

Jonas Karlman jonas at kwiboo.se
Fri Jun 9 01:05:58 CEST 2023


Hi Marek,

On 2023-06-08 15:06, Belisko Marek wrote:
> Hi,
> 
> I'm using tip of actual master and with this small patches:
> --- a/configs/rock-pi-e-rk3328_defconfig
> +++ b/configs/rock-pi-e-rk3328_defconfig
> @@ -73,6 +73,8 @@ CONFIG_FASTBOOT_BUF_ADDR=0x800800
>  CONFIG_FASTBOOT_CMD_OEM_FORMAT=y
>  CONFIG_ROCKCHIP_GPIO=y
>  CONFIG_SYS_I2C_ROCKCHIP=y
> +CONFIG_MISC=y
> +CONFIG_ROCKCHIP_EFUSE=y
>  CONFIG_MMC_DW=y
>  CONFIG_MMC_DW_ROCKCHIP=y
>  CONFIG_ETH_DESIGNWARE=y
> 
> --- a/configs/rock-pi-e-rk3328_defconfig
> +++ b/configs/rock-pi-e-rk3328_defconfig
> @@@ -45,8 -34,6 +45,7 @@@ CONFIG_SPL_I2C=
>   CONFIG_SPL_POWER=y
>   CONFIG_SPL_ATF=y
>   CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
>  +CONFIG_TPL_SYS_MALLOC_SIMPLE=y
> - CONFIG_TPL_DRIVERS_MISC=y
>   CONFIG_CMD_BOOTZ=y
>   CONFIG_CMD_GPT=y
>   CONFIG_CMD_MMC=y
> 
> as for the following issue:
> /home/marek/data/projects/u-boot/drivers/misc/rockchip-efuse.c:273:(.text.rockchip_efuse_of_to_plat+0x1c):
> relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol
> `dev_read_addr_ptr'
> 
> I'm trying to enable proper ethaddr handling (as in this case cpuid# is
> used for ethaddr generation).
> 
> With those enabled options I'm still getting an cpuid# variable set to all
> '0'. Is there some other fix necessary maybe?

I was able to reproduce this issue on my Rock Pi E using plain mainline
arm-trusted-firmware. To use efuse on RK3328 the efuse block needs to be
initialized, u-boot does not do this.

Two options to work around this can be:
1. Use vendor bl31 blob from [1]
2. Patch mainline atf with a patch from [2]

[1] https://github.com/rockchip-linux/rkbin/blob/master/bin/rk33/rk322xh_bl31_v1.49.elf
[2] https://github.com/armbian/build/blob/main/patch/atf/atf-rockchip64/rk3328-efuse-init.patch

Regards,
Jonas

> 
> Thanks and BR,
> 
> marek



More information about the U-Boot mailing list