|
@@ -5,6 +5,8 @@
|
|
*/
|
|
*/
|
|
|
|
|
|
#include <common.h>
|
|
#include <common.h>
|
|
|
|
+#include <config.h>
|
|
|
|
+#include <fuse.h>
|
|
#include <asm/io.h>
|
|
#include <asm/io.h>
|
|
#include <asm/system.h>
|
|
#include <asm/system.h>
|
|
#include <asm/arch/clock.h>
|
|
#include <asm/arch/clock.h>
|
|
@@ -260,11 +262,16 @@ uint8_t hab_engines[16] = {
|
|
|
|
|
|
bool is_hab_enabled(void)
|
|
bool is_hab_enabled(void)
|
|
{
|
|
{
|
|
- struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
|
|
|
|
- struct fuse_bank *bank = &ocotp->bank[0];
|
|
|
|
- struct fuse_bank0_regs *fuse =
|
|
|
|
- (struct fuse_bank0_regs *)bank->fuse_regs;
|
|
|
|
- uint32_t reg = readl(&fuse->cfg5);
|
|
|
|
|
|
+ struct imx_sec_config_fuse_t *fuse =
|
|
|
|
+ (struct imx_sec_config_fuse_t *)&imx_sec_config_fuse;
|
|
|
|
+ uint32_t reg;
|
|
|
|
+ int ret;
|
|
|
|
+
|
|
|
|
+ ret = fuse_read(fuse->bank, fuse->word, ®);
|
|
|
|
+ if (ret) {
|
|
|
|
+ puts("\nSecure boot fuse read error\n");
|
|
|
|
+ return ret;
|
|
|
|
+ }
|
|
|
|
|
|
return (reg & 0x2) == 0x2;
|
|
return (reg & 0x2) == 0x2;
|
|
}
|
|
}
|