rk3328 efuse return just 0

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?
Thanks and BR,
marek

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... [2] https://github.com/armbian/build/blob/main/patch/atf/atf-rockchip64/rk3328-e...
Regards, Jonas
Thanks and BR,
marek

Hi Jonas,
On Fri, Jun 9, 2023 at 1:06 AM Jonas Karlman jonas@kwiboo.se wrote:
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'
How about this issue? I can send a patch to fix that.
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.
Thanks for the info. I've applied a patch from armbian and it started working!
Two options to work around this can be:
- Use vendor bl31 blob from [1]
- Patch mainline atf with a patch from [2]
[1] https://github.com/rockchip-linux/rkbin/blob/master/bin/rk33/rk322xh_bl31_v1... [2] https://github.com/armbian/build/blob/main/patch/atf/atf-rockchip64/rk3328-e...
Regards, Jonas
Thanks and BR,
marek
Cheers,
marek
participants (2)
-
Belisko Marek
-
Jonas Karlman