1336S-BRF100-AN-FR4 原因分析
關(guān)于上述問(wèn)題的原因,痞子衡先直接給,這是OTFAD外設(shè)本身的時(shí)鐘小限制,當(dāng)OTFAD被使能時(shí),如果被加密的app代碼是XIP執(zhí)行,app里做系統(tǒng)時(shí)鐘配置時(shí)要始終保證Core時(shí)鐘高于FlexSPI外設(shè)時(shí)鐘。如果Core時(shí)鐘低于FlexSPI時(shí)鐘,此時(shí)Core去訪問(wèn)加密Flash區(qū)域,OTFAD無(wú)法正常解密,會(huì)導(dǎo)致指令錯(cuò)亂,發(fā)生系統(tǒng)故障。
我們配合上面的i.MXRT1010系統(tǒng)時(shí)鐘樹(shù)來(lái)認(rèn)真分析下OTFAD這個(gè)時(shí)鐘限制問(wèn)題。芯片上電總是從BootROM執(zhí)行,BootROM會(huì)先將Core配置到396MHz,將FlexSPI時(shí)鐘根據(jù)用戶放置在Flash偏移0x400處的FDCB里的設(shè)定配到30MHz - 200MHz不等,再讀取Flash偏移0地址處OTFAD DEK KeyBlob數(shù)據(jù)使能OTFAD,然后讀取IVT等頭信息去跳轉(zhuǎn)到App。很顯然只加密IVT部分根本不受OTFAD限制的影響,這部分解析是在BootROM里完成的,BootROM里時(shí)鐘配置符合OTFAD時(shí)鐘限制要求。
// BootROM里對(duì)Core時(shí)鐘配置
CCM_ANALOG->PFD_528[PFD3_FRAC] = 24, PLL2 PFD3輸出 (528MHz * 18) / 24 = 396MHz
CCM->CBCMR[PRE_PERIPH_CLK_SEL] = 2, 時(shí)鐘來(lái)自PLL2 PFD3
CCM->CBCDR[PERIPH_CLK_SEL] = 0, 內(nèi)核時(shí)鐘來(lái)自CCM->CBCMR[PRE_PERIPH_CLK_SEL]
CCM->CBCDR[AHB_PODF] = 0, 內(nèi)核時(shí)鐘不分頻
// BootROM里對(duì)FlexSPI時(shí)鐘配置
CCM_ANALOG->PFD_480[PFD0_FRAC] = x, PLL3 PFD0輸出 (480MHz * 18) / x
CCM->CSCMR1[FLEXSPI_CLK_SEL] = 3, 時(shí)鐘來(lái)自PLL3 PFD0
CCM->CSCMR1[FLEXSPI_CLK_SRC] = 0, FlexSPI時(shí)鐘來(lái)自CCM->CSCMR1[FLEXSPI_CLK_SEL]
CCM->CSCMR1[FLEXSPI_PODF] = y, FlexSPI時(shí)鐘做(y+1)分頻
當(dāng)BootROM跳轉(zhuǎn)到了App之后,我們?cè)賮?lái)看看App里對(duì)時(shí)鐘是怎么配置的,就是BOARD_BootClockRUN()函數(shù),可以看到這個(gè)函數(shù)里將內(nèi)核頻率從BootROM設(shè)置的396MHz切換到外部OSC 24MHz。無(wú)論此時(shí)用戶FDCB里對(duì)FlexSPI時(shí)鐘是多少配置,至少也會(huì)大于30MHz,那么此時(shí)24MHz內(nèi)核頻率一定會(huì)低于FlexSPI時(shí)鐘頻率,此時(shí)只要發(fā)生內(nèi)核對(duì)Flash加密區(qū)域的訪問(wèn)(時(shí)鐘配置代碼就在Flash里執(zhí)行),就觸發(fā)了OTFAD時(shí)鐘限制問(wèn)題,App就會(huì)跑飛。
三、解決方案
知道了原因,解決方案就簡(jiǎn)單了,在App時(shí)鐘配置里,不要按照尋常套路去先將內(nèi)核時(shí)鐘源切換到外部OSC再切到PLL,而是直接切到PLL上。比如i.MXRT1010內(nèi)部有個(gè)PLL6(也叫Audio PLL),固定500MHz,正好是App要的最終內(nèi)核頻率,我們?cè)贐OARD_BootClockRUN()里將Audio(Enet) PLL初始化設(shè)置代碼提到前面,刪掉原來(lái)的切換OSC設(shè)置代碼即可。
voidBOARD_BootClockRUN(void)
{
//此處略去...
/*SetOscillatorreadycountervalue.*/
CCM->CCR=(CCM->CCR&(~CCM_CCR_OSCNT_MASK))|CCM_CCR_OSCNT(127);
-/*SettingPeriphClk2MuxandPeriphMuxtoprovidestableclockbeforePLLsareinitialed*/
-CLOCK_SetMux(kCLOCK_PeriphClk2Mux,1);/*SetPERIPH_CLK2MUXtoOSC*/
-CLOCK_SetMux(kCLOCK_PeriphMux,1);/*SetPERIPH_CLKMUXtoPERIPH_CLK2*/
//此處略去...
/*SetIPG_PODF.*/
CLOCK_SetDiv(kCLOCK_IpgDiv,3);
+/*InitEnetPLL.*/
+CLOCK_InitEnetPll(&enetPllConfig_BOARD_BootClockRUN);
+/*Setpreperiphclocksource.*/
+CLOCK_SetMux(kCLOCK_PrePeriphMux,3);
//此處略去...
/*EnableAudioPLLoutput.*/
CCM_ANALOG->PLL_AUDIO|=CCM_ANALOG_PLL_AUDIO_ENABLE_MASK;
-/*InitEnetPLL.*/
-CLOCK_InitEnetPll(&enetPllConfig_BOARD_BootClockRUN);
-/*Setpreperiphclocksource.*/
-CLOCK_SetMux(kCLOCK_PrePeriphMux,3);
//此處略去...
/*SetSystemCoreClockvariable.*/
SystemCoreClock=BOARD_BOOTCLOCKRUN_CORE_CLOCK;
}
最后再提一下,這個(gè)OTFAD時(shí)鐘限制問(wèn)題在i.MXRT1170上同樣存在,解決思路與上面類似,痞子衡就不再贅述了。
至此,系統(tǒng)時(shí)鐘配置不當(dāng)會(huì)導(dǎo)致i.MXRT1xxx系列下OTFAD加密啟動(dòng)失敗問(wèn)題便介紹完畢了
1336S-BRF100-AN-FR4
Yaskawa Synetics 300mm End Effector BR943067 new
Yaskawa Synetics 300mm End Effector HU0480679 new
Hitachi 200mm Wafer Alignment Unit HT98311 working
Tec Izu 24V DC Power Supply 4S064-644 working Nikon NSR
JAE 6 Axis Vibration Measurement Unit JNP-003 Nikon NSR
KLA-Tencor Newport AIT3 Mask Changer 556190 New
Hubbell Electric Booster Heater A613RXX Nikon NSR-S202A
KLA-Tencor Laser Mod 0124593-000 New
KLA-Tencor AIT UV Laser Servo Detector 0099586-001 New
Osaka Vacuum Turbopump Power Supply TD2001
Pfeiffer Vacuum Pump UniDry DBP 050
NOVAPURE S2000 HF Effluent Gas Scrubber
Edwards DryStar Dry Vacuum Pump QDP40 AS-IS
Nikon Optistation MST Board S2015-064-4 Working
SMC HE Control Unit Assy INR-498-P034 new 0190-18420
LAM Research Power Supply Board PCB 810-017075-003 New
Shimadzu Vacuum Turbopump Controller EI-3203MD working
Orion Pel Thermo Heat Exchanger ETN23A-SC-B 0190-10030
Lam Research VAT 8" Gate Valve Working
National Instruments 5 1/2 Multimeter Board PCI-4060
Varian Implanter Bearing Assy. X4064200 rebuilt
KLA-Tencor Upper Housing Assy. 781-21332-000 working
SR Cosmo 2.0 Video Compression Board 030-0933-003
AMAT Gun High Voltage Cable SV 50414731100 working
TEL Tokyo Electron Barrel Shield WZ10-102853-11 new
B&H Engineering PVD300 Shield Pedestal 17-306818-00 new
B&H Engineering PVD300 Adapter Shield 17-308908-00 new
B&H Engineering Barrel Shield 17-308972-00 new
Pentagon Tech. Novellus PVD Shield 17-165771-02A new
Pentagon Tech. Novellus Stage Shield 16-126664-01 1 new
Ebara Turbomolecular Turbopump Controller 305W
Ebara Turbopump Controller Model 804W-A
Nikon Optistation3 Objective Lens BD PlanApo 150/0.9
KSI Kaiser High Voltage Power Supply series 1000
TEL ACT 8 Motor I/O Board TKB3100 AP93-0318C-12 working
TEL ACT 8 12 Chem. I/O PCB CPC-T0001A-13 W/ Conn Bd
HiTek Power 1140-00161 Power Supply working
Nikon Optistation SCPU PCB S2014-033-4 Working
HiTek Power Hivolt DC Power Supply 1140-00161 working
AMAT Centura CP3308-S000527 Flow Controller 0010-24209
SMC Pneumatic Cylinder NCDQ2B125-UIA97 working lot
CTI Cryogenics Model SC Compressor and Controller
ENI OEM-6 RF Generator 650W OEM-6AM-1B-21251 working
Osaka Vacuum Turbopump Power Supply TD2001
DAIHEN SGP-30A 2460MHZ 3kW GENERATOR working
ASML Stepper A1211-AFA Module PCB 854-8301-007
Nikon Optistation MIC-CNT PCB 2S005-230 Working
KLA-Tencor Newport NNC, AIT3, XP Polarizer 0044232-001
QML/MSXLOD 200mm Chuck 879-0362-002D
TEL P-8 Wafer Prober 200mm Indexer Assy. working
SMC TigerStack 3306FC Stackable Hub working 720.250
Aerotech Unidex 511 Multi-Axis Motion Controller
SpeedFam Wafer Head Jacking Ring 1420-737650
Advance Hivolt DC Power Supply 1140-90129 working
VAT Door Slit Valve 07512-UA24-ADA1/0039 Working
Technol Seven Chuck Heater Y331-70
HiTek Power DC Power Supply 0090-91806ITL working
Hitachi S-9300 SEM EVAC Control Unit working
IKO Robot Track TSL220/A10 working Hitachi S-9300
Brooks CryoTiger Compressor T1101-01-290-14 working
KSI Kaiser Systems Power Supply S1-1-1000 working
NSK EXC Controller EXC20A310T00-04 working
Indramat Servo Controller 1.2-050-300-W1-000 working
Eclipse star MRC PVD Pie Pan Shield D124821-200A
Entegris Flow Controller Lot 6500-T5-F03-H04-M-P2-U1
Entegris Flow Controller Lot 6500-T2-F02-H04-M-P2-U1
AMAT Batch Aligner Micro-Controller 0090-91510 working
ENI LPG-12A RF Generator 1200W not working
LAM Research Gas Interface PCB 118130-009 Working
LAM Research Process Controller Board PCB 1000-0050 New
LAM Research ADIO 9800 PCB 810-057023-002 New
LAM Research Power Supply PCB 40-0075-002 New
AMAT XR80 Implanter Voltage Clamp Unit 0090-91598
Lam Research Alumina Upper Filler Ring 716-011057-002
Alcatel 1004 A, 2004 A Vacuum Pump Lot Need Rebuild
Air Products GasGuard Cabinet 801-4704081K untested
Nova Measurement Unit 300mm 315-10000-00 untested
Siemens Micro Master Junior Inverter 6SE9112-6BA53 new
KSI Kaiser Systems High Voltage Power Supply S1-1-1000
ENI LPG-12A RF Generator LPG12ALX-21051-50
Lam Plate Reactor Upper Section 716-051031-002 New
Lam AC/DC Power Distribution Assy 853-495288-022 New
Lam Research Motorized Valve Assy 853-055030-001 New
Lam Research MFG CU PH-2 (AMD) Assy 122958200 New
Lam Research VME 68030 PCB 810-490009-001 New
Lam Shield, Horn O2 Introductn 9900 716-072016-003 New
Lam Research Ring Clamp 715-028289-001 Rebuilt
Lam Research Shield Section, Top Plate 716-051054-001
Lam Research Upper Reactor Plate 716-051031-003
Asyst 300mm Wafer Prealigner Model 5 not working
VAT Pneumatic Gate Valve 10846-XE28-AAX2 3870-02693
ITW Texwipe TX 5377 HydroCell Nodule Brush lot new
National Instruments Bus Interface VME-MXI-2 working
Nikon Metro 300mm MCR-DRV PCB 2S003-056 working
Nikon NSR Series RL-LIBHT2 PCB 4S018-679
ALLEN BRADLEY 1791-OA16 I/O BLOCK 120VAC 16 POINT OUTPUT
ALLEN BRADLEY 1791-OA32 /O BLOCK 120VAC 32 POINT MODULE
ALLEN BRADLEY 1791-OB16 I/O BLOCK 24VAC 16 POINT OUTPUT
ALLEN BRADLEY 1791-OB32 I/O BLOCK 24VAC 32 POINT OUTPUT
ALLEN BRADLEY 1791-16AO I/O BLOCK 120VAC 16 POINT MODULE (16 INPUT)
ALLEN BRADLEY 1791-16AC I/O BLOCK 120VAC 32 POINT
ALLEN BRADLEY 1791-16BO BLOCK I/O EXPANSION 24VDC 16 IN SINK RTB
ALLEN BRADLEY 1791-16BC I/O BLOCK MODULE 24VDC 32 POINT
ALLEN BRADLEY 1791-24A8 I/O BLOCK 120VAC 32 POINT MODULE
ALLEN BRADLEY 1791-24AR I/O BLOCK 120VAC 32 POINT MODULE
ALLEN BRADLEY 1791-24B8 BLOCK I/O, 24V DC, 32 POINT MODULE
ALLEN BRADLEY 1791-24BR BLOCK I/O, 24V DC, 32 POINT MODULE
ALLEN BRADLEY 1791-32AO /O BLOCK 120VAC 32 POINT INPUT MODULE
ALLEN BRADLEY 1791-32BO I/O BLOCK 24V DC 32 POINT MODULE
ALLEN BRADLEY 1791-8AC I/O BLOCK 120VAC 16 POINT MODULE
ALLEN BRADLEY 1791-8AR I/O BLOCK 120VAC 16 POINT MODULE
ALLEN BRADLEY 1791-8BC I/O BLOCK 24VDC 16 POINT MODULE
ALLEN BRADLEY 1791-8BR I/O BLOCK 24VDC 16 POINT MODULE
ALLEN BRADLEY 1791-AIC ISOLATED LINK COUPLER
ALLEN BRADLEY 1791-IOBA I/O BLOCK 24VDC 16 POINT
ALLEN BRADLEY 1791-IOBB I/O BLOCK 24VDC 16 POINT
ALLEN BRADLEY 1791-IOBW I/O BLOCK 24VDC 64 PT MODULE
ALLEN BRADLEY 1791-IOBX I/O BLOCK 24VDC 128POINT MODULE
ALLEN BRADLEY 1791-IOVW I/O BLOCK 24VDC 64 POINT MODULE
ALLEN BRADLEY 1791-IOVX I/O BLOCK 24VDC 128POINT MODULE
ALLEN BRADLEY 1791-N4C2 I/O BLOCK 120VAC 6 POINT ANALOG MODULE
ALLEN BRADLEY 1791-N4V2 I/O BLOCK 120VAC 6 POINT ANALOG MODULE
ALLEN BRADLEY 1791-NDC I/O BLOCK 120VAC 6 POINT ANALOG MODULE
ALLEN BRADLEY 1791-NDV I/O BLOCK 120VAC 6 POINT ANALOG MODULE
ALLEN BRADLEY 1791-TB2 TERMINAL, 30 POSITION, 10 PCS KIT
ALLEN BRADLEY 1791D-OB16P 24VDC I/O BLOCK 16 OUT SOURCE REMOVABLE TAB
ALLEN BRADLEY 1791D-OB16PX BLOCK I/O EXPANSION 24VDC 16 OUT SOURCE RTB
ALLEN BRADLEY 1791D-OV16P 24VDC I/O BLOCK EXPANSION 16 IN SINK RTB
ALLEN BRADLEY 1791D-OV16PX BLOCK I/O EXPANSION 24VDC 16 OUT SOURCE RTB
ALLEN BRADLEY 1791D-16BO BLOCK I/O 24VDC 16 IN SINK REMOVABLE TB
ALLEN BRADLEY 1791D-16BOX 24VDC I/O BLOCK EXPANSION 16 IN SINK RTB
ALLEN BRADLEY 1791D-16VO BLOCK I/O EXPANSION 24VDC 16 OUT SOURCE RTB
ALLEN BRADLEY 1791D-16VOX BLOCK I/O EXPANSION 24VDC 16 OUT SOURCE RTB
ALLEN BRADLEY 1791D-8B8P 24VDC I/O BLOCK 8 IN SINK 8 OUT SOURCE RTB
1794
MFR. PART NUMBER DESCRIPTION
ALLEN BRADLEY 1794-ACN15 CTRLNET ADAPTER
ALLEN BRADLEY 1794-ACNR15 CTRLNET ADAPTER
ALLEN BRADLEY 1794-AND DEVICENET ADAPTER
ALLEN BRADLEY 1794-ASB I/O ADAPTER
ALLEN BRADLEY 1794-ASB2 I/O ADAPTER
ALLEN BRADLEY 1794-IA16 16 INPUT MODULE
ALLEN BRADLEY 1794-IA8 8 INPUT MODULE
ALLEN BRADLEY 1794-IA8I 8 INPUT MODULE
ALLEN BRADLEY 1794-IB10X0B6 I/O MODULE
ALLEN BRADLEY 1794-IB16 16 INPUT MODULE
ALLEN BRADLEY 1794-IB8 8 INPUT MODULE
ALLEN BRADLEY 1794-IC16 16 INPUT MODULE
ALLEN BRADLEY 1794-ID2 PULSE COUNT MOD
ALLEN BRADLEY 1794-IE4X0E2 I/O MODULE
ALLEN BRADLEY 1794-IE8 8 INPUT MODULE
ALLEN BRADLEY 1794-IF2X0F21 O/I MODULE
ALLEN BRADLEY 1794-IF41 4 INPUT MODULE
ALLEN BRADLEY 1794-IJ2 FREQ INPUT MODULE
ALLEN BRADLEY 1794-IM8 8 INPUT MODULE
ALLEN BRADLEY 1794-IR8 RTD INPUT MOD
ALLEN BRADLEY 1794-IRT8 RTD MODULE
ALLEN BRADLEY 1794-IT8 INPUT MODULE
ALLEN BRADLEY 1794-IV16 16 INPUT MODULE
ALLEN BRADLEY 1794-OA16 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OA8 8 OUTPUT MODULE
ALLEN BRADLEY 1794-OA8I 8 OUTPUT MODULE
ALLEN BRADLEY 1794-OB16 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OB16P 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OB8 8 OUTPUT MODULE
ALLEN BRADLEY 1794-OB8EP 8 OUTPUT MODULE
ALLEN BRADLEY 1794-OC16 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OE4 4 OUTPUT MODULE
ALLEN BRADLEY 1794-OF4I 4 OUTPUT MODULE
ALLEN BRADLEY 1794-OM8 8 OUTPUT MODULE
ALLEN BRADLEY 1794-OV16 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OV16P 16 OUTPUT MODULE
ALLEN BRADLEY 1794-OW8 8 OUTPUT MODULE
ALLEN BRADLEY 1794-PS1 POWER SUPPLY MODULE
ALLEN BRADLEY 1794-TB3 TERM BASE UNIT
ALLEN BRADLEY 1794-TB3G TERM BASE UNIT
ALLEN BRADLEY 1794-TB3GS TERM BASE UNIT
ALLEN BRADLEY 1794-TB3S TERM BASE UNIT
ALLEN BRADLEY 1794-TB3T TERM BASE UNIT
ALLEN BRADLEY 1794-TB3TS TERM BASE UNIT
ALLEN BRADLEY 1794-TBN TERM BASE UNIT
ALLEN BRADLEY 1794-TBNF TERM BASE UNIT
Tosoh AMAT Endura Shutter Disk 805-438-TA new
Price Pump Vertical Pump CD100VSS-494-015-200-36-376
Millipore SVG Encompass Controller ENCOM1CN0 working
HiTek Power 35kV DC Power Supply G303151 working
Nor-Cal IQ Series Pendulum Valve 3870-04597 working
VAT Rectangular Gate Valve MONOVAT 0340X-CA24-BIK1
AMAT Applied Materials RPSC Applicator 0010-02146
Lam 8in. Silicon Graphite Electrode 715-011909-501
Leybold Turbo Drive S MN TDS RS485 & MVP Power Supply
Varian E1000 Vent Valve Control 9699831S001 E37000105
Hitachi S-9300 NMEM Interface Board 560-5512 working
KLA-Tencor AIT 2 Illumination Board 556700 working
Sony KLA-Tencor AIT 2 PowerHAD Camera DXC-950 363170