aspeed/hace: Support AST2600 HACE
[qemu.git] / include / hw / misc / aspeed_hace.h
blob40aebf1d6ea7312ffc873b0b605a95e5a2fd4161
1 /*
2 * ASPEED Hash and Crypto Engine
4 * Copyright (C) 2021 IBM Corp.
6 * SPDX-License-Identifier: GPL-2.0-or-later
7 */
9 #ifndef ASPEED_HACE_H
10 #define ASPEED_HACE_H
12 #include "hw/sysbus.h"
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)
20 #define ASPEED_HACE_NR_REGS (0x64 >> 2)
21 #define ASPEED_HACE_MAX_SG 256 /* max number of entries */
23 struct AspeedHACEState {
24 SysBusDevice parent;
26 MemoryRegion iomem;
27 qemu_irq irq;
29 struct iovec iov_cache[ASPEED_HACE_MAX_SG];
30 uint32_t regs[ASPEED_HACE_NR_REGS];
31 uint32_t total_req_len;
32 uint32_t iov_count;
34 MemoryRegion *dram_mr;
35 AddressSpace dram_as;
39 struct AspeedHACEClass {
40 SysBusDeviceClass parent_class;
42 uint32_t src_mask;
43 uint32_t dest_mask;
44 uint32_t key_mask;
45 uint32_t hash_mask;
48 #endif /* _ASPEED_HACE_H_ */