master
h 55 lines 1.61 KB
Raw
1 /*
2 * QEMU Hexagon CPU QOM header (target agnostic)
3 *
4 * Copyright(c) 2019-2023 Qualcomm Innovation Center, Inc. All Rights Reserved.
5 *
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
8
9 #ifndef QEMU_HEXAGON_CPU_QOM_H
10 #define QEMU_HEXAGON_CPU_QOM_H
11
12 #include "hw/core/cpu.h"
13
14 typedef enum {
15 HEX_VER_NONE = 0x00,
16 HEX_VER_V5 = 0x04,
17 HEX_VER_V55 = 0x05,
18 HEX_VER_V60 = 0x60,
19 HEX_VER_V61 = 0x61,
20 HEX_VER_V62 = 0x62,
21 HEX_VER_V65 = 0x65,
22 HEX_VER_V66 = 0x66,
23 HEX_VER_V67 = 0x67,
24 HEX_VER_V68 = 0x68,
25 HEX_VER_V69 = 0x69,
26 HEX_VER_V71 = 0x71,
27 HEX_VER_V73 = 0x73,
28 HEX_VER_ANY = 0xff,
29 } HexagonVersion;
30
31 typedef struct {
32 HexagonVersion hex_version;
33 } HexagonCPUDef;
34
35 #define TYPE_HEXAGON_CPU "hexagon-cpu"
36
37 #define HEXAGON_CPU_TYPE_SUFFIX "-" TYPE_HEXAGON_CPU
38 #define HEXAGON_CPU_TYPE_NAME(name) (name HEXAGON_CPU_TYPE_SUFFIX)
39
40 #define TYPE_HEXAGON_CPU_V5 HEXAGON_CPU_TYPE_NAME("v5")
41 #define TYPE_HEXAGON_CPU_V55 HEXAGON_CPU_TYPE_NAME("v55")
42 #define TYPE_HEXAGON_CPU_V60 HEXAGON_CPU_TYPE_NAME("v60")
43 #define TYPE_HEXAGON_CPU_V61 HEXAGON_CPU_TYPE_NAME("v61")
44 #define TYPE_HEXAGON_CPU_V62 HEXAGON_CPU_TYPE_NAME("v62")
45 #define TYPE_HEXAGON_CPU_V65 HEXAGON_CPU_TYPE_NAME("v65")
46 #define TYPE_HEXAGON_CPU_V66 HEXAGON_CPU_TYPE_NAME("v66")
47 #define TYPE_HEXAGON_CPU_V67 HEXAGON_CPU_TYPE_NAME("v67")
48 #define TYPE_HEXAGON_CPU_V68 HEXAGON_CPU_TYPE_NAME("v68")
49 #define TYPE_HEXAGON_CPU_V69 HEXAGON_CPU_TYPE_NAME("v69")
50 #define TYPE_HEXAGON_CPU_V71 HEXAGON_CPU_TYPE_NAME("v71")
51 #define TYPE_HEXAGON_CPU_V73 HEXAGON_CPU_TYPE_NAME("v73")
52
53 OBJECT_DECLARE_CPU_TYPE(HexagonCPU, HexagonCPUClass, HEXAGON_CPU)
54
55 #endif