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