d5805af9fe
All SiPeed K210 MAIX boards have the exact same vendor, arch and implementation IDs, preventing differentiation to select the correct device tree to use through the SOC_BUILTIN_DTB_DECLARE() macro. This result in this macro to be useless and mandates changing the code of the sysctl driver to change the builtin device tree suitable for the target board. Fix this problem by removing the SOC_BUILTIN_DTB_DECLARE() macro since it is used only for the K210 support. The code searching the builtin DTBs using the vendor, arch an implementation IDs is also removed. Support for builtin DTB falls back to the simpler and more traditional handling of builtin DTB using the CONFIG_BUILTIN_DTB option, similarly to other architectures. Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
29 lines
737 B
C
29 lines
737 B
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (C) 2020 Western Digital Corporation or its affiliates.
|
|
*/
|
|
#include <linux/init.h>
|
|
#include <linux/libfdt.h>
|
|
#include <linux/pgtable.h>
|
|
#include <asm/soc.h>
|
|
|
|
/*
|
|
* This is called extremly early, before parse_dtb(), to allow initializing
|
|
* SoC hardware before memory or any device driver initialization.
|
|
*/
|
|
void __init soc_early_init(void)
|
|
{
|
|
void (*early_fn)(const void *fdt);
|
|
const struct of_device_id *s;
|
|
const void *fdt = dtb_early_va;
|
|
|
|
for (s = (void *)&__soc_early_init_table_start;
|
|
(void *)s < (void *)&__soc_early_init_table_end; s++) {
|
|
if (!fdt_node_check_compatible(fdt, 0, s->compatible)) {
|
|
early_fn = s->data;
|
|
early_fn(fdt);
|
|
return;
|
|
}
|
|
}
|
|
}
|