uboot/arch/x86/cpu/qemu/cpu.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0+
   2/*
   3 * Copyright (C) 2015, Miao Yan <yanmiaobest@gmail.com>
   4 */
   5
   6#include <common.h>
   7#include <cpu.h>
   8#include <dm.h>
   9#include <errno.h>
  10#include <qfw.h>
  11#include <asm/cpu.h>
  12
  13int cpu_qemu_get_desc(const struct udevice *dev, char *buf, int size)
  14{
  15        if (size < CPU_MAX_NAME_LEN)
  16                return -ENOSPC;
  17
  18        cpu_get_name(buf);
  19
  20        return 0;
  21}
  22
  23static int cpu_qemu_get_count(const struct udevice *dev)
  24{
  25        int ret;
  26        struct udevice *qfw_dev;
  27
  28        ret = qfw_get_dev(&qfw_dev);
  29        if (ret)
  30                return ret;
  31
  32        return qfw_online_cpus(qfw_dev);
  33}
  34
  35static const struct cpu_ops cpu_qemu_ops = {
  36        .get_desc       = cpu_qemu_get_desc,
  37        .get_count      = cpu_qemu_get_count,
  38};
  39
  40static const struct udevice_id cpu_qemu_ids[] = {
  41        { .compatible = "cpu-qemu" },
  42        { }
  43};
  44
  45U_BOOT_DRIVER(cpu_qemu_drv) = {
  46        .name           = "cpu_qemu",
  47        .id             = UCLASS_CPU,
  48        .of_match       = cpu_qemu_ids,
  49        .ops            = &cpu_qemu_ops,
  50};
  51