SSブログ

BBB(am335x)のブートシーケンス調べる(MLOのロード先アドレス)

BBBのブートシーケンスを調べるのつづき。
am335xは起動時に内蔵ROMのBoot Codeから、
何かしら外部めもり(eMMC, SD)上のMLOイメージを探してRAM上にコピーするらしい。

■内蔵RAM Map
----------------------0x402F0400 
|                    |
|  Downloaded image  |
|                    |
|                    |
|--------------------|0x4030B800
|  6KB Public stack  |
|--------------------|0x4030CE00
|   RAM Exc. Vectors |
|--------------------|
|   Tracing Data     |
|--------------------|
|   Static Variables |
----------------------0x4040FFFF 

■u-boot-spl.bin
     1	130000ea 14f09fe5 14f09fe5 14f09fe5 
     2	14f09fe5 14f09fe5 14f09fe5 14f09fe5 
     3	20042f40 24042f40 28042f40 2c042f40 
     4	30042f40 34042f40 38042f40 78563412 

■MLOの中身
     1  40000000 0c000000 00000000 00000000 
     2  00000000 43485345 5454494e 47530000 
     3  ffffffff ffffffff ffffffff ffffffff 
     4  ffffffff ffffffff ffffffff ffffffff 
     5  c1c0c0c0 00010000 00000000 00000000 
     6  00000000 00000000 00000000 00000000 
     7  00000000 00000000 00000000 00000000 
     8  00000000 00000000 00000000 00000000 
     9  00000000 00000000 00000000 00000000 
    10  00000000 00000000 00000000 00000000 
    11  00000000 00000000 00000000 00000000 
    12  00000000 00000000 00000000 00000000 
    13  00000000 00000000 00000000 00000000 
    14  00000000 00000000 00000000 00000000 
    15  00000000 00000000 00000000 00000000 
    16  00000000 00000000 00000000 00000000 
    17  00000000 00000000 00000000 00000000 
    18  00000000 00000000 00000000 00000000 
    19  00000000 00000000 00000000 00000000 
    20  00000000 00000000 00000000 00000000 
    21  00000000 00000000 00000000 00000000 
    22  00000000 00000000 00000000 00000000 
    23  00000000 00000000 00000000 00000000 
    24  00000000 00000000 00000000 00000000 
    25  00000000 00000000 00000000 00000000 
    26  00000000 00000000 00000000 00000000 
    27  00000000 00000000 00000000 00000000 
    28  00000000 00000000 00000000 00000000 
    29  00000000 00000000 00000000 00000000 
    30  00000000 00000000 00000000 00000000 
    31  00000000 00000000 00000000 00000000 
    32  00000000 00000000 00000000 00000000 
    33  2c9a0100 00042f40 130000ea 14f09fe5 
    34  14f09fe5 14f09fe5 14f09fe5 14f09fe5 
    35  14f09fe5 14f09fe5 20042f40 24042f40 
    36  28042f40 2c042f40 30042f40 34042f40 
    37  38042f40 78563412 00042f40 00fc7040 

■さて
u-boot-spl.bin は先頭から実行コードが入っている。
以下のサイトによると、MLOは、これに8バイトの情報を先頭に付加する。とある。
(http://beagle1.blog.so-net.ne.jp/2011-07-26)

  (1) ファイルサイズ:4 bytes
  (2) ロードアドレス:4 bytes

データはファイルの中でリトルエンディアンで配置されてるようだ。

しかし、手元でU-Bootをビルドして作ったMLOは、
なぜか上記8バイト以外に、512バイトのデータが先頭にくっついている。
(どうやらu-bootではtools/mkimageでu-boot用イメージをつくるが、
これ上記サイトのx-loaderとは違うものらしい))

でもまあ、とりあえず、x-loaderのサイズと配置させる先頭アドレスは下記のとおり。
 
  ファイルサイズ:019a2c   -> 105004 bytes
  ロードアドレス:402f0400 -> 内蔵RAMアドレスの先頭

105004はu-boot-spl.binのファイルサイズと一致。
一応整合性は確認できた。

以上。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。