更新BeagleboneBlack板子中EEPROM中的ID,使用mm記憶體修改命令

更新BeagleboneBlack板子中EEPROM中的ID,使用mm記憶體修改命令

      購買的原裝BBB的板子,EEPROM中寫入了板子的ID號。自己新焊接的板子,寫入BBB官網下載的映象,會提示不能通過,或者不能啟動系統。可以通過修改uboot原始碼,去掉校驗ID的邏輯,或者通過下面的方式,在新的板子上覆制原裝板子EEPROM的內容的方法。基本流程如下:

1. 在BBB原裝板子上,從SD卡啟動,進入Uboot,然後讀取EEPROM裡面的內容。暫時儲存。讀取EEPROM內容的方法如下:

    a. 首先找一塊空白的記憶體。

         

            然後清空內容

            

            然後使用eeprom read 命令讀取 eeprom的內容到記憶體0x87000000中。

            

            => md 0x87000000
            87000000: ee3355aa 35333341 544c4e42 36413030    .U3.A335BNLT00A6

            87000010: 33313534 4b424242 36393930 ffffffff    4513BBBK0996….

2. 然後在用SD卡啟動新的板子,在uboot下面,把上面獲得的ID寫入新的eeprom裡面。

            寫入的時候流程和上面類似,先在一個空閒記憶體寫好上面暫存的資料。然後再從記憶體搬運到eeprom裡面。

在向記憶體寫資料的時候用到了一個新的命令。上面用到了md和mw,讀記憶體和寫記憶體。這次用到一個mm,

        

自動增加地址的記憶體修改。這樣就可以每次修改一個記憶體單元。比如這樣

              

             整理好一塊記憶體資料後,再通過eeprom write寫入eeprom中。

            

在寫入的時候,一開始總是寫入失敗,發現和eeprom的防寫有關,去掉了硬體防寫的電阻。嘗試還是不可以。後來發現,向eeprom裡面寫入資料的時候,一次要寫入32位元組。多了少了,總是寫入失敗。不知為何。先記錄一下,再找原因。