2022年10月25日 星期二

[AST2600] 在uboot中透過tftp更新BMC (ast2600-evb update openbmc in uboot)

純筆記分享如何在uboot中透過tftp更新BMC

步驟一:先將欲燒入檔案放入tftp server中 (ex. 192.168.0.1:/tftp/iris/rom.ima)

步驟二:進入uboot 並依序執行以下指令,有兩個方法,選其一即可

(memory address可對照ast2600的datasheet中ARM Address Space Mapping章節一起看)


// 設定tftp server IP
setenv serverip 192.168.0.1
 
// 動態獲得BMC IP (也可設靜態IP)
dhcp
  
// 從tftp server下載image "rom.ima"至0x80000000位址  
// 0x80000000 是SDRAM的起始位置
tftp 0x80000000 iris/rom.ima
 
// sf 是spi flash的縮寫,probe是指初始化指定的SPI上之設備
sf probe
 
// sf update <addr> <offset> <len> ,從SPI flash <offset> 處擦除並寫入記憶體位置<addr>起的 <len> bytes
// 0x4000000 是64MB (
改寫為欲燒入fimware image大小)
sf update 0x80000000 0 0x4000000
 
// 重新啟動
reset

另外一個方式是:

// 設定tftp server IP
setenv serverip 192.168.0.1
 
// 動態獲得BMC IP (也可設靜態IP)
dhcp
 
// 從tftp server下載image "rom.ima"至0x80000000位址
// 0x80000000 是SDRAM的起始位置
tftp 0x80000000 iris/rom.ima
 
// sf 是spi flash的縮寫,probe是指初始化指定的SPI上之設備
sf probe
 
// make all FLASH banks writable
protect off all  
 
// erase all FLASH banks
erase all

// cp [.b, .w, .l] <source> <target> <count>
// cp: 記憶體複製;.b表示 count 的單位是byte
// 0x80000000 是SDRAM的起始位置 
// 0x20000000 是預設 BMC SPI Flash Memory (FW SPI CS0) 的起始位置 
// 0x4000000 是64MB (需改寫為欲燒入fimware image大小)
cp.b 0x80000000 0x20000000 0x4000000 
 
// protect all FLASH banks
protect on all
 
// 重新啟動
reset


沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。