From: Denis Osterland <[email protected]>

This patch adds hab_get_status convenience function
and uses it in hab info command.
It returns -EIO if MMU is disabled and -ENXIO if no HAB device
is available.

Signed-off-by: Denis Osterland <[email protected]>
---
v1 -> v2: use runtime if, as suggested by Andrey Smirnov,
          add hab_get_status to have hab implementation
          selection at a central place

 commands/hab.c |  3 +++
 include/hab.h  | 15 +++++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/commands/hab.c b/commands/hab.c
index 0d7ee8e76..af51e73fc 100644
--- a/commands/hab.c
+++ b/commands/hab.c
@@ -72,6 +72,9 @@ static int do_hab(int argc, char *argv[])
                else
                        printf("devel mode\n");
 
+               if (hab_get_status() == -EIO)
+                       printf("Disable MMU to access HAB API!\n");
+
                return 0;
        }
 
diff --git a/include/hab.h b/include/hab.h
index 78c2b865b..7c2ffab5e 100644
--- a/include/hab.h
+++ b/include/hab.h
@@ -19,6 +19,7 @@
 #define __HABV4_H
 
 #include <errno.h>
+#include <mach/generic.h>
 
 #ifdef CONFIG_HABV4
 int imx28_hab_get_status(void);
@@ -43,6 +44,20 @@ static inline int imx25_hab_get_status(void)
 }
 #endif
 
+static inline int hab_get_status(void)
+{
+       if (IS_ENABLED(CONFIG_MMU))
+               return -EIO;
+       else if (cpu_is_mx6())
+               return imx6_hab_get_status();
+       else if (cpu_is_mx28())
+               return imx28_hab_get_status();
+       else if (cpu_is_mx25())
+               return imx25_hab_get_status();
+       else
+               return -ENXIO;
+}
+
 #define SRK_HASH_SIZE  32
 
 /* Force writing of key, even when a key is already written */
-- 
2.19.0



Diehl Connectivity Solutions GmbH
Geschäftsführung: Horst Leonberger
Sitz der Gesellschaft: Nürnberg - Registergericht: Amtsgericht
Nürnberg: HRB 32315
___________________________________________________________________________________________________

Der Inhalt der vorstehenden E-Mail ist nicht rechtlich bindend. Diese E-Mail 
enthaelt vertrauliche und/oder rechtlich geschuetzte Informationen.
Informieren Sie uns bitte, wenn Sie diese E-Mail faelschlicherweise erhalten 
haben. Bitte loeschen Sie in diesem Fall die Nachricht.
Jede unerlaubte Form der Reproduktion, Bekanntgabe, Aenderung, Verteilung 
und/oder Publikation dieser E-Mail ist strengstens untersagt.
The contents of the above mentioned e-mail is not legally binding. This e-mail 
contains confidential and/or legally protected information. Please inform us if 
you have received this e-mail by
mistake and delete it in such a case. Each unauthorized reproduction, 
disclosure, alteration, distribution and/or publication of this e-mail is 
strictly prohibited. 

_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to