[U-Boot] Exynos 5800/5422 CPU ID inconsistency.

Przemyslaw Marczak p.marczak at samsung.com
Thu Aug 27 12:23:24 CEST 2015


Hello Sjoerd,

On 08/26/2015 10:56 PM, Sjoerd Simons wrote:
> On Wed, 2015-08-26 at 06:37 -0700, Simon Glass wrote:
>> Hi Przemyslaw,
>>
>> On 26 August 2015 at 06:09, Przemyslaw Marczak <p.marczak at samsung.com
>>> wrote:
>>> Hello,
>>>
>>> The s5p_cpu_id variable is set in here:
>>> arch/arm/mach-exynos/include/mach/cpu.h
>>>
>>> For value 0x422, found in pro id register, the s5p_cpu_id is set as
>>> 0x5800.
>>> I think, that hiding the real info is wrong and misleading.
>>>
>>> I don't have documentation for E5800, but maybe there is some
>>> additional
>>> register like package id to recognise the SoC variant.
>>>
>>> I'm pointing this issue, because for older boards, we used this
>>> information
>>> to set the $fdtfile environment variable name, to next load proper
>>> fdt from
>>> partition before boot the kernel.
>>>
>>> Now, I would like use the s5p_cpu_id to set the fdtfile name for
>>> Odroid
>>> XU3/4, but the value is bad.
>>>
>>> I would like fix this value to the real one, but then, the CPU name
>>> will
>>> change on Chromebooks.
>>>
>>> To fix this we could add "cpu-name" property to device tree, and
>>> then print
>>> it.
>
> I was wondering recently whether there shouldn't simply be a device
> -tree property with the name of the fdt file as used by linux such
> there is no need for putting this dynamically together which can be a
> tad error-prone (as this example shows). (Unfortunately not all boards
> in linux use the <cpu name>-<board name> convention :/)
>
>

This could be good for the boards with only one kernel compatible fdt file.

But for Exynos, there can be more than one kernel compatible fdt for a 
single U-Boot binary like for Odroid XU3/3L/4 or Odroid U3/X2.
There are also other platforms with this issue, like imx6 wandboard.

Adding common feature for board detection, may be complicated.

After some quick research, I think that adding "cpu-name" to fdt will 
look not pretty. Change the name of "cpus" node to the SoC name would be 
nice, but will break the compatibility with the kernel and U-Boot's 
UCLASS_CPU driver.

In this case, adding a line:

#define CONFIG_CPU_NAME  "Exynos5800"

only to the peach-pi.h seem to be reasonable, because for other Exynos 
platforms the CPU name is proper.

Best regards,
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com


More information about the U-Boot mailing list