mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-22 03:03:05 +00:00
42 lines
900 B
C
42 lines
900 B
C
|
// SPDX-License-Identifier: GPL-2.0
|
||
|
/*
|
||
|
* Copyright (C) 2021 Renesas Electronics Corporation
|
||
|
*
|
||
|
*/
|
||
|
#include <common.h>
|
||
|
#include <linux/libfdt.h>
|
||
|
|
||
|
/* If the firmware passed a device tree, use it for soc identification. */
|
||
|
extern u64 rcar_atf_boot_args[];
|
||
|
|
||
|
/* CPU information table */
|
||
|
static const struct {
|
||
|
char *soc_name;
|
||
|
u8 cpu_name[10];
|
||
|
} tfa_info[] = {
|
||
|
{ "renesas,r8a774a1", "R8A774A1" },
|
||
|
{ "renesas,r8a774b1", "R8A774B1" },
|
||
|
{ "renesas,r8a774c0", "R8A774C0" },
|
||
|
{ "renesas,r8a774e1", "R8A774E1" }
|
||
|
};
|
||
|
|
||
|
const u8 *rzg_get_cpu_name(void)
|
||
|
{
|
||
|
void *atf_fdt_blob = (void *)(rcar_atf_boot_args[1]);
|
||
|
bool ret = false;
|
||
|
int i;
|
||
|
|
||
|
if (fdt_magic(atf_fdt_blob) != FDT_MAGIC)
|
||
|
return NULL;
|
||
|
|
||
|
for (i = 0; i < ARRAY_SIZE(tfa_info); i++) {
|
||
|
if (fdt_node_check_compatible(atf_fdt_blob, 0,
|
||
|
tfa_info[i].soc_name) == 0) {
|
||
|
ret = true;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return ret ? tfa_info[i].cpu_name : NULL;
|
||
|
}
|