U-BootのヘッダーのCRCの計算方法

投稿者: | 10月 17, 2023

URoad-Homeでいろいろいじっているときに必要になったのでここにメモしておきます。

ヘッダーの構成は

typedef struct image_header {
        uint32_t        ih_magic;       /* Image Header Magic Number    */
        uint32_t        ih_hcrc;        /* Image Header CRC Checksum    */
        uint32_t        ih_time;        /* Image Creation Timestamp     */
        uint32_t        ih_size;        /* Image Data Size              */
        uint32_t        ih_load;        /* Data  Load  Address          */
        uint32_t        ih_ep;          /* Entry Point Address          */
        uint32_t        ih_dcrc;        /* Image Data CRC Checksum      */
        uint8_t         ih_os;          /* Operating System             */
        uint8_t         ih_arch;        /* CPU architecture             */
        uint8_t         ih_type;        /* Image Type                   */
        uint8_t         ih_comp;        /* Compression Type             */
        uint8_t         ih_name[IH_NMLEN];      /* Image Name           */
} image_header_t;

となっています。図にすると

多分こんな感じです。もしかしたら、イメージ名(カーネル名)の部分が違うかも知れませんが…

CRCの計算方法ですが、まず00 00 00 00で埋めます。その状態でCRCを計算します。その計算結果を00 00 00 00の部分に埋めます。

計算結果

使用したサイトはこちらです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)