diff mbox series

rk3328 efuse return just 0

Message ID CAAfyv36p=BdUUakUN+8O5DR_-hTLLVHmQpWYaS8TkgMG9cCV-g@mail.gmail.com
State Changes Requested
Delegated to: Kever Yang
Headers show
Series rk3328 efuse return just 0 | expand

Commit Message

Belisko Marek June 8, 2023, 1:06 p.m. UTC
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
@@@ -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

Comments

Jonas Karlman June 8, 2023, 11:05 p.m. UTC | #1
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
Belisko Marek June 9, 2023, 8:29 a.m. UTC | #2
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:
> 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
>
> Cheers,

marek
diff mbox series

Patch

--- 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