]>
Commit | Line | Data |
---|---|---|
3887d241 B |
1 | /* |
2 | * QEMU PowerPC PowerNV Emulation of a few HOMER related registers | |
3 | * | |
4 | * Copyright (c) 2019, IBM Corporation. | |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
f70c5966 | 9 | * version 2.1 of the License, or (at your option) any later version. |
3887d241 B |
10 | * |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
17 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. | |
18 | */ | |
19 | ||
20 | #ifndef PPC_PNV_HOMER_H | |
21 | #define PPC_PNV_HOMER_H | |
22 | ||
23 | #include "hw/ppc/pnv.h" | |
db1015e9 | 24 | #include "qom/object.h" |
3887d241 B |
25 | |
26 | #define TYPE_PNV_HOMER "pnv-homer" | |
c821774a | 27 | OBJECT_DECLARE_TYPE(PnvHomer, PnvHomerClass, |
30b5707c | 28 | PNV_HOMER) |
3887d241 | 29 | #define TYPE_PNV8_HOMER TYPE_PNV_HOMER "-POWER8" |
8110fa1d EH |
30 | DECLARE_INSTANCE_CHECKER(PnvHomer, PNV8_HOMER, |
31 | TYPE_PNV8_HOMER) | |
3887d241 | 32 | #define TYPE_PNV9_HOMER TYPE_PNV_HOMER "-POWER9" |
8110fa1d EH |
33 | DECLARE_INSTANCE_CHECKER(PnvHomer, PNV9_HOMER, |
34 | TYPE_PNV9_HOMER) | |
92499676 CLG |
35 | #define TYPE_PNV10_HOMER TYPE_PNV_HOMER "-POWER10" |
36 | DECLARE_INSTANCE_CHECKER(PnvHomer, PNV10_HOMER, | |
37 | TYPE_PNV10_HOMER) | |
3887d241 | 38 | |
db1015e9 | 39 | struct PnvHomer { |
3887d241 B |
40 | DeviceState parent; |
41 | ||
b6c80037 | 42 | PnvChip *chip; |
8f092316 | 43 | MemoryRegion pba_regs; |
3887d241 | 44 | MemoryRegion regs; |
db1015e9 | 45 | }; |
3887d241 | 46 | |
3887d241 | 47 | |
db1015e9 | 48 | struct PnvHomerClass { |
3887d241 B |
49 | DeviceClass parent_class; |
50 | ||
8f092316 CLG |
51 | int pba_size; |
52 | const MemoryRegionOps *pba_ops; | |
3887d241 B |
53 | int homer_size; |
54 | const MemoryRegionOps *homer_ops; | |
55 | ||
56 | hwaddr core_max_base; | |
db1015e9 | 57 | }; |
3887d241 B |
58 | |
59 | #endif /* PPC_PNV_HOMER_H */ |