xref: /openbmc/qemu/include/hw/misc/aspeed_hace.h (revision 6016b7b4)
1 /*
2  * ASPEED Hash and Crypto Engine
3  *
4  * Copyright (C) 2021 IBM Corp.
5  *
6  * SPDX-License-Identifier: GPL-2.0-or-later
7  */
8 
9 #ifndef ASPEED_HACE_H
10 #define ASPEED_HACE_H
11 
12 #include "hw/sysbus.h"
13 
14 #define TYPE_ASPEED_HACE "aspeed.hace"
15 #define TYPE_ASPEED_AST2400_HACE TYPE_ASPEED_HACE "-ast2400"
16 #define TYPE_ASPEED_AST2500_HACE TYPE_ASPEED_HACE "-ast2500"
17 #define TYPE_ASPEED_AST2600_HACE TYPE_ASPEED_HACE "-ast2600"
18 OBJECT_DECLARE_TYPE(AspeedHACEState, AspeedHACEClass, ASPEED_HACE)
19 
20 #define ASPEED_HACE_NR_REGS (0x64 >> 2)
21 
22 struct AspeedHACEState {
23     SysBusDevice parent;
24 
25     MemoryRegion iomem;
26     qemu_irq irq;
27 
28     uint32_t regs[ASPEED_HACE_NR_REGS];
29 
30     MemoryRegion *dram_mr;
31     AddressSpace dram_as;
32 };
33 
34 
35 struct AspeedHACEClass {
36     SysBusDeviceClass parent_class;
37 
38     uint32_t src_mask;
39     uint32_t dest_mask;
40     uint32_t hash_mask;
41 };
42 
43 #endif /* _ASPEED_HACE_H_ */
44