linux/arch/mips/kernel/prom.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2/*
   3 * MIPS support for CONFIG_OF device tree support
   4 *
   5 * Copyright (C) 2010 Cisco Systems Inc. <dediao@cisco.com>
   6 */
   7
   8#include <linux/init.h>
   9#include <linux/export.h>
  10#include <linux/errno.h>
  11#include <linux/types.h>
  12#include <linux/memblock.h>
  13#include <linux/debugfs.h>
  14#include <linux/of.h>
  15#include <linux/of_fdt.h>
  16#include <linux/of_platform.h>
  17
  18#include <asm/bootinfo.h>
  19#include <asm/page.h>
  20#include <asm/prom.h>
  21
  22static char mips_machine_name[64] = "Unknown";
  23
  24__init void mips_set_machine_name(const char *name)
  25{
  26        if (name == NULL)
  27                return;
  28
  29        strlcpy(mips_machine_name, name, sizeof(mips_machine_name));
  30        pr_info("MIPS: machine is %s\n", mips_get_machine_name());
  31}
  32
  33char *mips_get_machine_name(void)
  34{
  35        return mips_machine_name;
  36}
  37
  38#ifdef CONFIG_USE_OF
  39
  40void __init __dt_setup_arch(void *bph)
  41{
  42        if (!early_init_dt_scan(bph))
  43                return;
  44
  45        mips_set_machine_name(of_flat_dt_get_machine_name());
  46}
  47
  48int __init __dt_register_buses(const char *bus0, const char *bus1)
  49{
  50        static struct of_device_id of_ids[3];
  51
  52        if (!of_have_populated_dt())
  53                panic("device tree not present");
  54
  55        strlcpy(of_ids[0].compatible, bus0, sizeof(of_ids[0].compatible));
  56        if (bus1) {
  57                strlcpy(of_ids[1].compatible, bus1,
  58                        sizeof(of_ids[1].compatible));
  59        }
  60
  61        if (of_platform_populate(NULL, of_ids, NULL, NULL))
  62                panic("failed to populate DT");
  63
  64        return 0;
  65}
  66
  67#endif
  68