天天看點

AIS檔案分析-(using the OMAP-138 Bootloader)

附錄D預先定義的ROM功能細節

OMAP-L132/L138引導加載程式可以使用ais函數調用指令調用多個rom功能。本附錄描述了可用的ROM功能和調用它們所需的參數。

預定義的ROM函數清單

索引 功能
PLL0配置
1 PLL1配置
2 時鐘配置
3 mDDR/DDR2控制器配置
4 EMIFA SDRAM 配置
5 EMIFA ASYNC 配置
6 PLL和時鐘配置
7 休眠和使能控制器控制
8 pinmux配置

D.1 PLL0 配置 (索引= 0, 參數數目 = 2)

PLL0配置功能配置PLL0寄存器。此函數接受兩個參數,如下所示:

PLL配置寄存器

參數1 CLKMODE PLLM PREDIV POSTDIV
參數2 保留 PLLDIV1 PLLDIV3 PLLDIV7

PLL寄存器描述

字段 描述
參數1 31-24 CLKMODE 0,1 要程式設計到PLL時鐘源的值: 0晶體 1振蕩器
23-16 PLLM 要程式設計到PLL倍頻寄存器的值
15-8 PLLDIV 要程式設計到PLL預分頻寄存器的值,用于在PLL倍頻之前分頻輸入時鐘。
7-0 POSTDIV 要程式設計到PLL後分頻寄存器的值,用于分頻PLL倍頻之後的輸出時鐘。
4 31-24 保留 保留
5 23-0 PLLDIV1;PLLDIV3;PLLDIV7 要程式設計到PLLDIV1、PLLDIV3和PLLDIV7寄存器的值, 用于生成SYSCLK1、SYSCLK2、SYSCLK4、SYSCLK6、SYSCLK3和SYSCLK7。 SYSCLK6=SYSCLK1,SYSCLK2=SYSCLK1/2,SYSCLK4=SYSCLK/4

D.2 PLL1 配置 (索引= 1, 參數數目 = 2)

PLL1配置功能配置PLL1寄存器。此函數接受兩個參數,如下所示:

PLL1配置寄存器

參數1 PLLM POSTDIV PLLDIV1 PLLDIV2
參數2 保留 保留 保留 PLLDIV3

PLL配置寄存器描述

字段 描述
參數1 31-24 PLLM 要程式設計到PLL倍頻寄存器的值
23-16 POSTDIV 要程式設計到PLL後分頻寄存器的值,用于分頻PLL倍頻之後的輸出時鐘
15-8 PLLDIV1 要程式設計到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3
7-0 PLLDIV2 要程式設計到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3
參數2 31-8 保留 保留
7-0 PLLDIV3 要程式設計到PLLDIV1、PLLDIV2和PLLDIV3寄存器的值,用于生成SYSCLK1、SYSCLK2、SYSCLK3

D.3 時鐘配置 (索引= 2, 參數數目 = 1)

時鐘配置功能配置引導外圍裝置的時鐘。它程式設計SPI/I2C主引導模式、UART引導模式或MMC/SD引導模式下的外圍時鐘。在所有其他啟動模式,此功能無效。此函數隻接受一個參數,但其内容參數因啟動模式而異。

D.3.1 SPI Master Register

SPI Master Register

參數1 保留 預分頻

SPI Master Register 字段描述

字段 描述
31-8 保留 保留
7-0 預分頻 要程式設計到SPIFMT的預分頻字段的值

D.3.2 I2C Master Register

I2C Master Register

參數1 保留 IPSC ICCL ICCH

I2C Master Register 字段描述

字段 描述
31-24 保留 保留
23-16 IPSC 要程式設計到I2C ICPSC寄存器字段的值
15-8 ICCL 要程式設計到I2C ICCLKL寄存器字段的值
7-0 ICCH 要程式設計到I2C ICCLKH寄存器字段的值

D.3.3 UART Slave Register

UART Slave Register

參數1 保留 OSR DLH DLL

UART Slave Register 字段描述

字段 描述
31-24 保留 保留
23-16 OSR 要程式設計到UART MDR 寄存器OSR字段的值
15-8 DLH 要程式設計到UART DLH 寄存器的值
7-0 DLL 要程式設計到UART DLL寄存器的值

D.3.4 MMC/SD Register

MMC/SD Register

參數1 保留 DIV4 CLKRT

MMC/SD Register 字段描述

字段 描述
31-16 保留 保留
15-8 DIV4 要程式設計到MMCCLK寄存器DIV4字段的值
7-0 CLKRT 要程式設計到MMCCLK寄存器CLKRT字段的值

D.4 mDDR/DDR2 控制器配置 (索引 = 3, 參數數目= 8)

mDDR/DDR2控制器配置函數配置負責DDR定時和配置。因為MDDR/DDR2控制器設定要求PLL1被配置,在初始化MDDR/DDR2控制器之前調用pll1配置函數。 是以,前兩個參數與pll1配置函數所需的參數相同。 接下來的五個參數是mDDR/DDR2控制器寄存器所需的定時參數。他們直接寫入具有相同名稱的mDDR/DDR2控制器寄存器。最後一個參數包含三個字段:PASR、ROWSIZE和CLK2XSRC。前兩個字段被拷貝到與SDCR2有相同名字的字段裡面當且僅當SDCR的MSDRAMEN(ARG4的第25位)=1。換句話說,這些字段僅在使用mDDR時适用,而不是DDR2。第三個字段應用于所有情況,并允許為mDDR/DDR2控制器選擇時鐘源。0值使用正常的時鐘源,而1值選擇一個非分頻的時鐘,通常要快兩倍。( 更準确地說,它忽略了PLL1後分頻。)

參數1 PLL1配置參數1
參數2 PLL1配置參數2
參數3 DRPYC1R
參數4 SDCR
參數5 SDTIMR1
參數6 SDTIMR2
參數7 SDRCR
參數8 保留 PASR 保留 ROWSIZE CLK2XSRC

mDDR/DDR2控制器配置函數将mDDR/DDR2外圍裝置從其預設的複位狀态喚醒并根據需要正确進行寄存器配置。

D.5 EMIFA SDRAM 配置 (Index = 4, Argument Count = 5)

EMIFA SDRAM配置功能配置負責EMIFA寄存器SDRAM的定時和配置。

參數1 SDCR
參數2 SDTIMR
參數3 SDSRETR
參數4 SDRCR
參數5 DIV4p5_CLK_EN

前四個函數參數直接寫入具有相同名稱的EMIFA寄存器。div4p5_clk_en是一個布爾值,用于啟用PLL0乘數因子輸出的4.5除法器作為EMIFA外圍裝置的輸入時鐘。 在對EMIFA寄存器進行程式設計之前,此功能對16位或32位SDRAM通路(基于SDCR)寄存器的值應用必要的pinmux 并從其預設重置狀态來喚醒EMIFA的外圍裝置。

D.6 EMIFA Async Configuration (Index = 5, Argument Count = 5)

EMIFA CE空間配置功能配置EMIFA CEXCFG寄存器。此函數需要五個參數,并将它們寫入具有相同名稱的EMIFA寄存器中。

參數1 CE2CEG
參數2 CE3CEG
參數3 CE4CEG
參數4 CE5CEG
參數5 NANDFCR

D.7 PLL and Clock Configuration (Index = 6, Argument Count = 3)

PLL和時鐘配置功能結合了PLL配置和時鐘配置函數轉換為單個函數調用。此函數接受三個參數。前兩個參數比對 PLL配置函數的參數(D.1節)第三個參數比對 時鐘配置函數的參數(D.3節)。

參數1 PLL0 配置參數1
參數2 PLL0 配置參數2
參數3 時鐘配置參數1

如果裝置從時鐘配置說明中列出的啟動模式啟動,則需要調用此函數,而不是分别調用PLL0配置和時鐘配置函數。否則可能導緻引導失敗,因為外圍裝置功能與PLL0設定相關,首先設定PLL0可能導緻外圍裝置以非預期的頻率運作。

D.8 Power and Sleep Configuration (PSC) (Index = 7, Argument Count = 1)

電源和睡眠配置(PSC)功能可多次用于設定電源域對于系統的兩個PSC的各個LPSC子產品,0x1-0x3是唯一有效的值(所有其他值都是保留)。

| PSCNUM | MODULE |PD| STATE |

繼續閱讀