Re: [PATCH v1 1/1] aspeed/hace: Support AST1030 HACE

2022-05-02 Thread Cédric Le Goater

On 5/3/22 04:27, Steven Lee wrote:

Per ast1030_v7.pdf, AST1030 HACE engine is identical to AST2600's HACE
engine.

Signed-off-by: Steven Lee 


Reviewed-by: Cédric Le Goater 

Thanks

C.


---
  hw/misc/aspeed_hace.c | 20 
  include/hw/misc/aspeed_hace.h |  2 ++
  2 files changed, 22 insertions(+)

diff --git a/hw/misc/aspeed_hace.c b/hw/misc/aspeed_hace.c
index 10f00e65f4..91f3c0b208 100644
--- a/hw/misc/aspeed_hace.c
+++ b/hw/misc/aspeed_hace.c
@@ -378,11 +378,31 @@ static const TypeInfo aspeed_ast2600_hace_info = {
  .class_init = aspeed_ast2600_hace_class_init,
  };
  
+static void aspeed_ast1030_hace_class_init(ObjectClass *klass, void *data)

+{
+DeviceClass *dc = DEVICE_CLASS(klass);
+AspeedHACEClass *ahc = ASPEED_HACE_CLASS(klass);
+
+dc->desc = "AST1030 Hash and Crypto Engine";
+
+ahc->src_mask = 0x7FFF;
+ahc->dest_mask = 0x7FF8;
+ahc->key_mask = 0x7FF8;
+ahc->hash_mask = 0x00147FFF;
+}
+
+static const TypeInfo aspeed_ast1030_hace_info = {
+.name = TYPE_ASPEED_AST1030_HACE,
+.parent = TYPE_ASPEED_HACE,
+.class_init = aspeed_ast1030_hace_class_init,
+};
+
  static void aspeed_hace_register_types(void)
  {
  type_register_static(_ast2400_hace_info);
  type_register_static(_ast2500_hace_info);
  type_register_static(_ast2600_hace_info);
+type_register_static(_ast1030_hace_info);
  type_register_static(_hace_info);
  }
  
diff --git a/include/hw/misc/aspeed_hace.h b/include/hw/misc/aspeed_hace.h

index 94d5ada95f..e9d3563a05 100644
--- a/include/hw/misc/aspeed_hace.h
+++ b/include/hw/misc/aspeed_hace.h
@@ -15,6 +15,8 @@
  #define TYPE_ASPEED_AST2400_HACE TYPE_ASPEED_HACE "-ast2400"
  #define TYPE_ASPEED_AST2500_HACE TYPE_ASPEED_HACE "-ast2500"
  #define TYPE_ASPEED_AST2600_HACE TYPE_ASPEED_HACE "-ast2600"
+#define TYPE_ASPEED_AST1030_HACE TYPE_ASPEED_HACE "-ast1030"
+
  OBJECT_DECLARE_TYPE(AspeedHACEState, AspeedHACEClass, ASPEED_HACE)
  
  #define ASPEED_HACE_NR_REGS (0x64 >> 2)





[PATCH v1 1/1] aspeed/hace: Support AST1030 HACE

2022-05-02 Thread Steven Lee
Per ast1030_v7.pdf, AST1030 HACE engine is identical to AST2600's HACE
engine.

Signed-off-by: Steven Lee 
---
 hw/misc/aspeed_hace.c | 20 
 include/hw/misc/aspeed_hace.h |  2 ++
 2 files changed, 22 insertions(+)

diff --git a/hw/misc/aspeed_hace.c b/hw/misc/aspeed_hace.c
index 10f00e65f4..91f3c0b208 100644
--- a/hw/misc/aspeed_hace.c
+++ b/hw/misc/aspeed_hace.c
@@ -378,11 +378,31 @@ static const TypeInfo aspeed_ast2600_hace_info = {
 .class_init = aspeed_ast2600_hace_class_init,
 };
 
+static void aspeed_ast1030_hace_class_init(ObjectClass *klass, void *data)
+{
+DeviceClass *dc = DEVICE_CLASS(klass);
+AspeedHACEClass *ahc = ASPEED_HACE_CLASS(klass);
+
+dc->desc = "AST1030 Hash and Crypto Engine";
+
+ahc->src_mask = 0x7FFF;
+ahc->dest_mask = 0x7FF8;
+ahc->key_mask = 0x7FF8;
+ahc->hash_mask = 0x00147FFF;
+}
+
+static const TypeInfo aspeed_ast1030_hace_info = {
+.name = TYPE_ASPEED_AST1030_HACE,
+.parent = TYPE_ASPEED_HACE,
+.class_init = aspeed_ast1030_hace_class_init,
+};
+
 static void aspeed_hace_register_types(void)
 {
 type_register_static(_ast2400_hace_info);
 type_register_static(_ast2500_hace_info);
 type_register_static(_ast2600_hace_info);
+type_register_static(_ast1030_hace_info);
 type_register_static(_hace_info);
 }
 
diff --git a/include/hw/misc/aspeed_hace.h b/include/hw/misc/aspeed_hace.h
index 94d5ada95f..e9d3563a05 100644
--- a/include/hw/misc/aspeed_hace.h
+++ b/include/hw/misc/aspeed_hace.h
@@ -15,6 +15,8 @@
 #define TYPE_ASPEED_AST2400_HACE TYPE_ASPEED_HACE "-ast2400"
 #define TYPE_ASPEED_AST2500_HACE TYPE_ASPEED_HACE "-ast2500"
 #define TYPE_ASPEED_AST2600_HACE TYPE_ASPEED_HACE "-ast2600"
+#define TYPE_ASPEED_AST1030_HACE TYPE_ASPEED_HACE "-ast1030"
+
 OBJECT_DECLARE_TYPE(AspeedHACEState, AspeedHACEClass, ASPEED_HACE)
 
 #define ASPEED_HACE_NR_REGS (0x64 >> 2)
-- 
2.17.1