Re: [PATCH u-boot-mvebu v3 07/18] arm: mvebu: turris_omnia: Disable Atmel SHA node if not present

2024-03-28 Thread Stefan Roese

On 3/27/24 17:23, Marek Behún wrote:

If the FEAT_CRYPTO feature bit is present in MCU features, the board
crypto is implemented by MCU and the Atmel SHA chip is not present.
Disable Atmel SHA device-tree node in that case.

Signed-off-by: Marek Behún 


Reviewed-by: Stefan Roese 

Thanks,
Stefan


---
  board/CZ.NIC/turris_omnia/turris_omnia.c | 23 +++
  1 file changed, 23 insertions(+)

diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c 
b/board/CZ.NIC/turris_omnia/turris_omnia.c
index b2f0088e5e..3b7a71bdad 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -1007,6 +1007,25 @@ static int fixup_mcu_gpio_in_eth_wan_node(void *blob)
return 0;
  }
  
+static void fixup_atsha_node(void *blob)

+{
+   int node;
+
+   if (!omnia_mcu_has_feature(FEAT_CRYPTO))
+   return;
+
+   node = fdt_node_offset_by_compatible(blob, -1, "atmel,atsha204a");
+   if (node < 0) {
+   printf("Cannot find ATSHA204A node!\n");
+   return;
+   }
+
+   if (fdt_status_disabled(blob, node) < 0)
+   printf("Cannot disable ATSHA204A node!\n");
+   else
+   debug("Disabled ATSHA204A node\n");
+}
+
  #endif
  
  #if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)

@@ -1020,6 +1039,8 @@ int board_fix_fdt(void *blob)
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
  
+	fixup_atsha_node(blob);

+
return 0;
  }
  #endif
@@ -1211,6 +1232,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
  
+	fixup_atsha_node(blob);

+
return 0;
  }
  #endif


Viele Grüße,
Stefan Roese

--
DENX Software Engineering GmbH,  Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: s...@denx.de


[PATCH u-boot-mvebu v3 07/18] arm: mvebu: turris_omnia: Disable Atmel SHA node if not present

2024-03-27 Thread Marek Behún
If the FEAT_CRYPTO feature bit is present in MCU features, the board
crypto is implemented by MCU and the Atmel SHA chip is not present.
Disable Atmel SHA device-tree node in that case.

Signed-off-by: Marek Behún 
---
 board/CZ.NIC/turris_omnia/turris_omnia.c | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/board/CZ.NIC/turris_omnia/turris_omnia.c 
b/board/CZ.NIC/turris_omnia/turris_omnia.c
index b2f0088e5e..3b7a71bdad 100644
--- a/board/CZ.NIC/turris_omnia/turris_omnia.c
+++ b/board/CZ.NIC/turris_omnia/turris_omnia.c
@@ -1007,6 +1007,25 @@ static int fixup_mcu_gpio_in_eth_wan_node(void *blob)
return 0;
 }
 
+static void fixup_atsha_node(void *blob)
+{
+   int node;
+
+   if (!omnia_mcu_has_feature(FEAT_CRYPTO))
+   return;
+
+   node = fdt_node_offset_by_compatible(blob, -1, "atmel,atsha204a");
+   if (node < 0) {
+   printf("Cannot find ATSHA204A node!\n");
+   return;
+   }
+
+   if (fdt_status_disabled(blob, node) < 0)
+   printf("Cannot disable ATSHA204A node!\n");
+   else
+   debug("Disabled ATSHA204A node\n");
+}
+
 #endif
 
 #if IS_ENABLED(CONFIG_OF_BOARD_FIXUP)
@@ -1020,6 +1039,8 @@ int board_fix_fdt(void *blob)
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
 
+   fixup_atsha_node(blob);
+
return 0;
 }
 #endif
@@ -1211,6 +1232,8 @@ int ft_board_setup(void *blob, struct bd_info *bd)
fixup_msata_port_nodes(blob);
fixup_wwan_port_nodes(blob);
 
+   fixup_atsha_node(blob);
+
return 0;
 }
 #endif
-- 
2.43.2