| 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 |