[U-Boot] rockchip: misc: read the correct number of bytes from the efuse
diff mbox series

Message ID 20190925184056.13995-1-heiko@sntech.de
State Accepted
Commit 03f98b75e47ef9df890d92b4989fdd209ba55734
Delegated to: Philipp Tomsich
Headers show
Series
  • [U-Boot] rockchip: misc: read the correct number of bytes from the efuse
Related show

Commit Message

Heiko Stuebner Sept. 25, 2019, 6:40 p.m. UTC
Originally the cpuid var the value gets read into was defined as
    u8 cpuid[RK3399_CPUID_LEN];
hence the sizeof(cpuid) would return the correct the correct number
of array elements.

With the move to a separate function cpuid becomes a pointer and
sizeof(cpuid) hence returns the pointer size - 8 in the arm64 case.

We do have the actual id length available as function param so use
it for actual amount of bytes to read.

Fixes: 04825384999f ("rockchip: rk3399: derive ethaddr from cpuid")
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 arch/arm/mach-rockchip/misc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philipp Tomsich Sept. 25, 2019, 10:42 p.m. UTC | #1
> On 25.09.2019, at 20:40, Heiko Stuebner <heiko@sntech.de> wrote:
> 
> Originally the cpuid var the value gets read into was defined as
>    u8 cpuid[RK3399_CPUID_LEN];
> hence the sizeof(cpuid) would return the correct the correct number
> of array elements.
> 
> With the move to a separate function cpuid becomes a pointer and
> sizeof(cpuid) hence returns the pointer size - 8 in the arm64 case.
> 
> We do have the actual id length available as function param so use
> it for actual amount of bytes to read.
> 
> Fixes: 04825384999f ("rockchip: rk3399: derive ethaddr from cpuid")
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Kever Yang Sept. 27, 2019, 12:58 a.m. UTC | #2
On 2019/9/26 上午2:40, Heiko Stuebner wrote:
> Originally the cpuid var the value gets read into was defined as
>      u8 cpuid[RK3399_CPUID_LEN];
> hence the sizeof(cpuid) would return the correct the correct number
> of array elements.
>
> With the move to a separate function cpuid becomes a pointer and
> sizeof(cpuid) hence returns the pointer size - 8 in the arm64 case.
>
> We do have the actual id length available as function param so use
> it for actual amount of bytes to read.
>
> Fixes: 04825384999f ("rockchip: rk3399: derive ethaddr from cpuid")
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>

Reviewed-by: Kever Yang<kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/mach-rockchip/misc.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c
> index 4423b296b1..bed4317f7e 100644
> --- a/arch/arm/mach-rockchip/misc.c
> +++ b/arch/arm/mach-rockchip/misc.c
> @@ -75,7 +75,7 @@ int rockchip_cpuid_from_efuse(const u32 cpuid_offset,
>   	}
>   
>   	/* read the cpu_id range from the efuses */
> -	ret = misc_read(dev, cpuid_offset, cpuid, sizeof(cpuid));
> +	ret = misc_read(dev, cpuid_offset, cpuid, cpuid_length);
>   	if (ret) {
>   		debug("%s: reading cpuid from the efuses failed\n",
>   		      __func__);
Kever Yang Sept. 29, 2019, 12:55 a.m. UTC | #3
On 2019/9/27 上午8:58, Kever Yang wrote:
>
> On 2019/9/26 上午2:40, Heiko Stuebner wrote:
>> Originally the cpuid var the value gets read into was defined as
>>      u8 cpuid[RK3399_CPUID_LEN];
>> hence the sizeof(cpuid) would return the correct the correct number
>> of array elements.
>>
>> With the move to a separate function cpuid becomes a pointer and
>> sizeof(cpuid) hence returns the pointer size - 8 in the arm64 case.
>>
>> We do have the actual id length available as function param so use
>> it for actual amount of bytes to read.
>>
>> Fixes: 04825384999f ("rockchip: rk3399: derive ethaddr from cpuid")
>> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
>
> Reviewed-by: Kever Yang<kever.yang@rock-chips.com>

Applied to u-boot-rockchip/master.


>
> Thanks,
> - Kever
>> ---
>>   arch/arm/mach-rockchip/misc.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-rockchip/misc.c 
>> b/arch/arm/mach-rockchip/misc.c
>> index 4423b296b1..bed4317f7e 100644
>> --- a/arch/arm/mach-rockchip/misc.c
>> +++ b/arch/arm/mach-rockchip/misc.c
>> @@ -75,7 +75,7 @@ int rockchip_cpuid_from_efuse(const u32 cpuid_offset,
>>       }
>>         /* read the cpu_id range from the efuses */
>> -    ret = misc_read(dev, cpuid_offset, cpuid, sizeof(cpuid));
>> +    ret = misc_read(dev, cpuid_offset, cpuid, cpuid_length);
>>       if (ret) {
>>           debug("%s: reading cpuid from the efuses failed\n",
>>                 __func__);
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> https://lists.denx.de/listinfo/u-boot

Patch
diff mbox series

diff --git a/arch/arm/mach-rockchip/misc.c b/arch/arm/mach-rockchip/misc.c
index 4423b296b1..bed4317f7e 100644
--- a/arch/arm/mach-rockchip/misc.c
+++ b/arch/arm/mach-rockchip/misc.c
@@ -75,7 +75,7 @@  int rockchip_cpuid_from_efuse(const u32 cpuid_offset,
 	}
 
 	/* read the cpu_id range from the efuses */
-	ret = misc_read(dev, cpuid_offset, cpuid, sizeof(cpuid));
+	ret = misc_read(dev, cpuid_offset, cpuid, cpuid_length);
 	if (ret) {
 		debug("%s: reading cpuid from the efuses failed\n",
 		      __func__);