u boot映象Image中有關結構體

2021-09-30 10:24:32 字數 1069 閱讀 4787

uboot1.1.6:在u-boot啟動階段 do_bootm_linux往往會分析核心映象,這裡面會遇到幾個結構體,如下:

image_header_t 裡面定義了映象的頭部

typedef struct image_header  image_header_t;
這裡面#define ih_magic   0x27051956 /* image magic number  */

(1)用u-boot 的mkimage 工具處理核心映像zimage。

(2)通過網路、串列埠、u 盤、sd 卡等方式將處理過的核心映像傳輸到sdram 的一定位置(一般使用0x30008000)

(3)然後使用」bootm"等核心引導命令來啟動核心。

為什麼要用u-boot 的mkimage 工具處理核心映像zimage?

因為在用bootm 命令引導核心的時候,bootm 需要讀取乙個64 位元組的檔案頭,來獲取這個核心映象所針對的cpu 體系結構、os、載入到記憶體中的位置、在記憶體中入口點的位置以及映象名等等資訊。這樣bootm 才能為os 設定好啟動環境,並跳入核心映象的入口點。而mkimage 就是新增這個檔案頭的專用工具。具體的實現請看u-boot 中bootm 的原始碼和mkimage 的原始碼。

可參考這個裡面的分析

typedef struct bd_info     bi_dram[config_nr_dram_banks];

#ifdef config_has_eth1

/* second onboard ethernet port */

unsigned char bi_enet1addr[6];

#endif

} bd_t;

以下為傳遞給核心中使用的引數
struct tag  u;

};

struct tag_header hdr主要標識頭部

struct tag_header ;

struct tag_mem32 ;

struct tag_cmdline ;

KVM映象image 轉換 調整

qemu img create f raw test.raw 8g 建立乙個raw格式,大小為8g的映象。qemu img info disk1.qcow2 檢視映象大小及實際占用多少空間 qemu img resize disk1.qcow2 150m 更改大小 加150m qcow2格式只能加 ...

hive中有關分桶

首先,在hive中為什麼要分桶?單個分割槽或者表中的資料量越來越大,當分割槽不能更細粒度的劃分資料時,會採用分桶的技術將資料更加細粒度的劃分和管理。分割槽和分桶的區別 分割槽 乙個分割槽在表目錄之中就是目錄下的乙個檔案,在表中的字段因為是偽列,所以定義分割槽的時候應該加上 對應的字段型別。例如 cr...

oracle exp 中有關direct使用

oracle提供2種模式匯出表資料,傳統模式conventional path和直接模式direct path,有direct指定。conventional path export 比較direct path export 一 差異 1.conventional path export.傳統匯出模式...