天天看點

Lnux裝置驅動開發——2.了解Exynos4412晶片二、了解Exynos4412晶片

二、了解Exynos4412晶片

了解一款晶片,最好的方法就是去看官方的晶片手冊,這裡大概浏覽了晶片手冊

第1章Overview 了解晶片基本資源:

首先我們需要了解4412有哪些基本的資源:

Exynos 4412處理器是Cortex-A9 Quad(四核),主屏為1.4G每核,帶内部有:256KB RAM空間,64K ROM空間,它的資源包括:DRAM控制器、NADN FLASH控制器、内部RAM控制器、SROM 控制器等。

晶片內建了很多硬體外設(接口):

TFT 24-bit true color LCD controller, (24位真彩LCD控制器)

Camera Interface, (攝像頭接口)

 MIPI DSI, 

CSI-2, 

System Manager for power management,  (電源管理)

embedded GPS and GLONASS, (嵌入GPS和全球定位系統)

MIPI slimbus interface, MIPI HSI, four UARTs, 

24-channel DMA, (24通道的DMA)

Timers, (定時器)

General I/O Ports, (通用IO口)

three I2S, S/PDIF,  (I2S和S/PDIF音頻接口)

eight IIC-BUS interface, (8個I2C總線接口)

three HS-SPI,  (3個SPI接口)

USB Host 2.0, (USB主機2.0接口)

 USB 2.0 Device operating at high speed (480Mbps),  (USB高速模式)

two USB HSIC,(2個USB 高速IC支援接口)

four SD Host and high-speed Multimedia Card Interface, (4個SD卡和多媒體卡接口)

Chip to Chip interface, 

and four PLLs for clock generation

第3章 Memory Map(記憶體映射)

Lnux裝置驅動開發——2.了解Exynos4412晶片二、了解Exynos4412晶片

由圖檔可以看出,晶片自帶ROM和RAM的位址空間,大小為分貝為iROM:64K   iRAM:256K

對于我們的高端晶片,内部iRAM都是很小的,需要外部擴充記憶體。同樣,我們可以看出外擴記憶體的位址空間基位址是0x40000000,Memory of Dynamic Memory Controller (DMC)-0 和 Memory of DMC-1 一共可擴張3GB記憶體空間。

第5章 啟動流程:Booting Sequence

Exynos 4412支援的啟動方式有:NAND FLASH、SD/MMC eMMC、USBdevice,哪種啟動方式由硬體OM引腳決定。

我們前面講過系統由iROM程式(BL0),BL1,BL2(BL表示bootloader),OS組成,下面我們講解iROM(BL0)、BL1、BL2的功能、并分析系統啟動流程:

iROM(BL0):三星公司寫的,晶片内部固化的代碼,直接在iROM中運作。

BL1(First boot loader): 晶片相關代碼,存在外部裝置。(自己寫或用三星的,三星公司的BL1固定為8KB)

BL2(Second boot loader):平台相關代碼,存在外部裝置。BL2最核心的功能:初始化外部擴充的ROM、RAM對應的控制器,堆棧設定,複制OS到外部擴充的DRAM中,跳轉到OS執行。

BL2代碼一般是bootloader的前14KB-4B 代碼,是以我們使用三星公司提供的sd_fuse/來将uboot前14K-4制作成 BL2。也就是說,如果uboot代碼超過14K(正常都超過),代碼的前14K也就必須具有BL2的功能——把代碼搬到DDR3上執行!如果代碼小于14K(比如自己寫的裸機程式),則可以由BL1加載執行,比如我們可以将裸機代碼直接當成是bootloader來執行。

系統啟動流程:

1.複位,在iROM中直接執行iROM程式:初始化時鐘、棧等必要裝置。

2.iROM程式讀取OM引腳判斷啟動方式(SD or eMMC),初始化相應的啟動控制器。

3.從相應的相應的啟動裝置中讀取BL1代碼到内部SRAM中,再對BL1完整性檢測,檢測通過跳到BL1執行。

4.BL1重新配置時鐘,從啟動裝置讀取BL2代碼到内部SRAM中,再對BL2完整性檢測,檢測通過跳到BL2執行。

5.BL2初始化DRAM控制器,讓外部擴充的DDR3晶片可以工作。

6.DDR3晶片正常工作後,重新設定棧到外部DDR3中,然後複制OS到DDR3中。(如果我們使用uboot,一般是複制uboot到DDR中)

7.對OS映像完整性進行檢測,通過就跳到OS代碼執行。

注:參考E:\driver\Android_Exynos4412_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf  Exynos4212 iROM Booting Guide

第6章、General Purpose Input/Output (GPIO) Control (通用GPIO控制器)

Lnux裝置驅動開發——2.了解Exynos4412晶片二、了解Exynos4412晶片

由手冊圖,我們便了解GPIO管腳的命名規則,通用GPIO最基本的離不開3個寄存器: GPIO功能寄存器:選擇GPIO管腳的功能,如輸入、輸出、外設(LCD、I2C等) GPIO資料寄存器: 設定/讀取管腳資料,是0或1 GPIO上拉下拉寄存器:配置管腳上拉、下拉功能 對應是XXXCON、XXXDAT、XXXUPD。