查看: 4959|回复: 11

[求助] i.mx28 HAB 的问题

[复制链接]

该用户从未签到

1

主题

7

帖子

0

新手上路

Rank: 1

积分
33
最后登录
2018-8-13
发表于 2016-8-11 23:53:41 | 显示全部楼层 |阅读模式
我要在 i.mx28上 对 wince eboot 进行HAB 操作。没有找到相关EBOOT的资料。网上有的都是针对UBOOT的
而且freescale 对uboot 有专门的patch 来添加 ivt CSF的内容。
请问对eboot和xldr 怎么添加IVT ?
我知道答案 目前已有11人回答
回复

使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-12 12:51:00 | 显示全部楼层
    帮顶!!!!!!只会u-boot
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-12 12:52:34 | 显示全部楼层
    winCE的BSP已经停止支持了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2018-8-13
     楼主| 发表于 2016-8-12 14:33:55 | 显示全部楼层
    技术范儿 发表于 2016-8-12 12:52
    winCE的BSP已经停止支持了

    我按照 UBOOT的patch中 方式对 eboot 手动添加了ivt表,但是它 一直 有 hab event 报错。

    你有做过 i.mx 的 HAB的东西吗
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-12 14:47:40 | 显示全部楼层
    oldkids 发表于 2016-8-12 14:33
    我按照 UBOOT的patch中 方式对 eboot 手动添加了ivt表,但是它 一直 有 hab event 报错。

    你有做过 i.m ...

    那个东西最关键的一步没有代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2018-8-13
     楼主| 发表于 2016-8-12 15:14:52 | 显示全部楼层
    技术范儿 发表于 2016-8-12 14:47
    那个东西最关键的一步没有代码

    哪一步?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-12 15:31:07 | 显示全部楼层

    生成.sb文件
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2018-8-13
     楼主| 发表于 2016-8-12 16:22:02 | 显示全部楼层

    elftosb -f imx28 -c uboot.bd -o uboot.sb

    我在哪看到过 有 elftosb的源码下载

    你对他们的 uboot.bd 文件 熟悉吗

    sources {
            power_prep="./power_prep/power_prep";
            sdram_prep="./boot_prep/boot_prep";
            u_boot="/home/fsl/share/ltib/ltib/rootfs/boot/u-boot";
    }

    section (0) {

            //----------------------------------------------------------
            // Power Supply initialization
            //----------------------------------------------------------

            load power_prep;
            load ivt (entry = power_prep:_start) > 0x8000;
            hab call 0x8000;

            //----------------------------------------------------------
            // SDRAM initialization
            //----------------------------------------------------------

            load sdram_prep;
            load ivt (entry = sdram_prep:_start) > 0x8000;
            hab call 0x8000;
            //----------------------------------------------------------
            //  Load and call u_boot - ELF ARM image
            //----------------------------------------------------------

            load u_boot;
            load ivt (entry = u_boot:_start) > 0x8000;
            hab call 0x8000;

    }
    这个文件中 IVT 一定要 加载到 0X8000 这个地址吗,换其他地址行不?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-1-4 08:05
  • 签到天数: 11 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    85

    主题

    1629

    帖子

    1

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    2569

    优秀版主

    最后登录
    2019-3-28
    发表于 2016-8-12 16:33:48 | 显示全部楼层
    oldkids 发表于 2016-8-12 16:22
    elftosb -f imx28 -c uboot.bd -o uboot.sb

    我在哪看到过 有 elftosb的源码下载

    前面的都有代码,最后一步是一个工具-C直接生成,鬼知道里面做了什么,至于地址你可以换个试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    33
    最后登录
    2018-8-13
     楼主| 发表于 2016-8-13 13:29:16 | 显示全部楼层
    请问请问在freescale的patch中 ,在power_prep.c 加上:
    /*
    * HAB authentication related structures
    */
    extern int __hab_data; /* defined in link.lds */
    extern int __hab_data_end;

    struct _hab_aut {
        hab_ivt_t ivt;
        uint32_t img_len;
    };

    struct _hab_aut input_ivt __attribute__((section(".ivt"),aligned(4))) = {
        {
            /** @ref hdr word with tag #HAB_TAG_IVT, length and HAB version fields
             *  (see @ref data)
             */
            IVT_HDR(sizeof(struct hab_ivt), HAB_VER(4, 0)),
            /** Absolute address of the first instruction to execute from the
             *  image
             */
            (hab_image_entry_f) (&_start),
            /** Reserved in this version of HAB: should be NULL. */
            NULL,
            /** Absolute address of the image DCD: may be NULL. */
            NULL,
            /** Absolute address of the Boot Data: may be NULL, but not interpreted
             *  any further by HAB
             */
            NULL,
            /** Absolute address of the IVT.*/
            (const void*) (&input_ivt),
            /** Absolute address of the image CSF (HAB data generated by cst).*/
            (const void*) (&__hab_data),
            /** Reserved in this version of HAB: should be zero. */
            0
        },
        /** Total image length including HAB csf data */
        (const void*) (&__hab_data_end) - BASE_ADDR
    };

    然后 link.lds中改成:
    OUTPUT_ARCH(arm)
    ENTRY(_start)
    SECTIONS
    {
      . = 0x00000010;
      . = ALIGN(4);
      BASE_ADDR = .;
      .text : { *(.text) }
      . = ALIGN(4);
      .ivt : { *(.ivt) }
      . = ALIGN(4);
      .data : { *(.data) }
      /* reserve this area to store HAB related data such as
       * CSF commands, certificates and signatures
       */
      . = BASE_ADDR + 0x4000;
      __hab_data = .;
      . = . + 0x2000;
      __hab_data_end = .;
      /* place the __hab_data memory region before the .bss
       * region to avoid being over written at runtime and to
       * keep the boot_prep binary as small as possible
       */
      . = ALIGN(4);
      .bss  : { *(.bss) }
    }

    这样 最终 IVT的地址 &input_ivt  值是多少? 看不懂 linux 这部分链接的脚步啊
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-2 19:45 , Processed in 0.103926 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表