2014-03-28 69 views
1

我得到了所有的寄存器值,例如SRAM窗口0控制寄存器,PCI Express配置地址寄存器以及Armada 370 SoC的許多其他寄存器值。
現在開機啓動,我必須在U-boot和Linux內核中設置所有這些寄存器值。
有沒有辦法輕鬆做到這一點?
例如,如果我想設置PCI Express配置地址寄存器,我該如何啓動?
任何方向良好的資源將是有益的。謝謝。如何在Linux內核和U-boot中設置SoC的寄存器值?

+0

你實際上必須從bootloader中設置它們,在你的情況下是u-boot。大多數設置都是很早寫入的,並且可能通過彙編。其中一些值已經由引導加載程序設置,您需要檢查是否有任何不同的設置。設置這些寄存器沒有什麼特別之處,只需要謹慎依賴。 –

回答

2

1)在u-boot中,查看/ board子目錄:應該找到您的電路板專用文件。有幾個Marvell平臺提出,但沒有armada 370,所以看起來你應該自己添加它。也許,你已經有適當的分佈? 檢查現有的代碼,我想你應該使用GT_REG_WRITE宏(在/board/Marvell/common/core.h中定義)。但是對於armada 370來說可能會有所不同。

2)在Linux內核中,還有一個用於板子特定代碼的地方:在/ arch子目錄中查找。 Armada 370基於ARM,因此應該放置在/ arch/arm中。所有ARM平臺都有一個通用代碼塊,以及名爲「mach-」和「plat-」的特定子目錄。你的代碼應該像這樣安排。在「mach-」子目錄中查找「board-」文件,它們包含在linux內核啓動時執行的代碼。

相關問題