Cortex-A8中bootloader研究(1)

本文檔對Cortex-A8芯片Bootloader進行分析研究,藉此實現以下三個目的:

  1. 用A8芯片構成一個最小系統需要做哪些配置
  2. 配置的具體流程是什麼
  3. 對A8芯片的架構做初步的探討

綜述

AM335X芯片採用SD卡啓動時,其SD卡中需放置兩個文件:MLO和app。其中,MLO即爲bootloader編譯產生的bin文件,app爲應用層程序編譯產生的bin文件。由此猜測,bootloader應該實現兩個方面的功能:一是完成配置硬件的配置,搭建運行環境;二是引導應用程序的啓動,爲應用程序提供入口點。研究驗證了這種猜想,對bootloader的論述也圍繞這兩方面展開。

2.bootloader配置流程

整個bootloader配置流程如下:

3.bootloader中芯片底層配置

如上圖所示,bootloader中底層配置經歷三個過程,分別是模塊電壓配置,系統時鐘配置以及RAM配置。

3.1電源配置模塊

A8芯片的電源系統非常複雜,就目前瞭解的情況看,分爲核心電壓區,MPU電壓區,AD轉換電壓等等,各個模塊電壓供電值亦不相同,需要對其進行配置。beaglebone開發板上採用一枚TP65217電源管理芯片來實現電源的管理,該芯片作用是將5V輸入或者USB輸入電壓轉換爲各個模塊需求電壓。如下圖所示:

注意,該芯片配置接口爲I2C,A8芯片正是通過I2C接口實現對該芯片的訪問和配置的,具體的流程,一方面需要配置A8芯片上與TPS65217芯片相連的I2C總線,另一方面需要對該款電源芯片的功能做詳細的瞭解,這兩部分尚未深入探討。

3.2系統時鐘的配置

這一部分主要配置系統的時鐘,A8的時鐘結構較爲複雜,從代碼上理解,配置的流程依次爲:MPU時鐘初始化,核心模塊時鐘初始化,外設時鐘初始化,DDR時鐘初始化,接口時鐘初始化,電源管理區時鐘初始化以及顯示模塊時鐘初始化。初始化的流程一定程度上反映了A8時鐘模塊的結構(類似於樹狀),這一部分需要花時間去理清。

3.3 外部RAM配置

A8芯片的EMIF(External Memory Interfaces外部存儲器接口)模塊專門負責對外部RAM的管理,配置該模塊即可。
至此,A8底層配置完成,一個最小系統搭建完成。

最小系統搭建完成之後,即可引導進入應用程序,這一部分內容後面再分析。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章