纯笔记分享如何在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