blob: 2ec41a51969b4024d7dc771cbbeb598260d0356d [file] [log] [blame]
Felix Held060b8ad2021-02-05 22:51:33 +01001/* SPDX-License-Identifier: GPL-2.0-only */
2
Felix Heldaa77d132021-02-10 16:13:56 +01003#include <amdblocks/cpu.h>
Felix Held060b8ad2021-02-05 22:51:33 +01004#include <console/console.h>
Raul E Rangel35dc4b02021-02-12 16:04:27 -07005#include <cpu/amd/microcode.h>
Felix Held060b8ad2021-02-05 22:51:33 +01006#include <cpu/cpu.h>
Felix Heldaa77d132021-02-10 16:13:56 +01007#include <cpu/x86/lapic.h>
Felix Held060b8ad2021-02-05 22:51:33 +01008#include <device/device.h>
9#include <soc/cpu.h>
10
Felix Heldb2d8a5c2021-02-10 16:17:13 +010011void mp_init_cpus(struct bus *cpu_bus)
12{
13}
14
Felix Held060b8ad2021-02-05 22:51:33 +010015static void zen_2_3_init(struct device *dev)
16{
Felix Heldaa77d132021-02-10 16:13:56 +010017 setup_lapic();
18 set_cstate_io_addr();
Raul E Rangel35dc4b02021-02-12 16:04:27 -070019
20 amd_update_microcode_from_cbfs();
Felix Held060b8ad2021-02-05 22:51:33 +010021}
22
23static struct device_operations cpu_dev_ops = {
24 .init = zen_2_3_init,
25};
26
27static struct cpu_device_id cpu_table[] = {
28 { X86_VENDOR_AMD, CEZANNE_A0_CPUID},
29 { 0, 0 },
30};
31
32static const struct cpu_driver zen_2_3 __cpu_driver = {
33 .ops = &cpu_dev_ops,
34 .id_table = cpu_table,
35};