SGMGH-44A2A-YR41內核的移植bootloader初始化完系統硬件后,把Linux內核從外部存儲介質中導入內存里,然后,就將控制權交給Linux內核,由內核來繼續完成系統的引導工作。 如果內核里沒有支持用戶所使用的開發板,那么用戶就需要自己手工修改Linux的內核,做一些相關的移植工作,要關注的是對開發板的硬件外設部分的處理,包括內核對板子硬件基本信息的處理,板上硬件設備的初始化、中斷的分配等。
開發板級別的SGMGH-44A2A-YR41內核移植zui方便的方法是利用內核里已有的且與用戶使用的硬件平臺zui接近的開發板為模板,在此基礎上再做修改。我們使用的開發板與IBM walnut開發板類似,主要的外設包括硬盤、USB設備等都是利用PCI總線接口轉接(PCI轉IDE,PCI轉USB),所以內核的移植工作主要有兩部分, 一為bootloader和內核之間板子硬件信息的傳遞,二為PCI外設的初始化。
3.2.1 SGMGH-44A2A-YR41與Linux內核的配合 U-BOOT在初始化完硬件設備后,把內核裝入內存,然后程序指針跳轉到內核所在位置處的同時,會傳遞一些參數給內核來使用,其中就包括有board_info數據結構,內容包括板子的CPU主頻、SDRAM和flash大小、ip地址、MAC地址等,Linux會利用這些參數來初始化系統。但Linux內核與U-BOOT的開發并不是同一個組織,要修改Linux內核的相關部分來匹配U-BOOT傳遞過來的數據,對于我們所使用的PowerPC,U-BOOT是利用五個通用寄存器(r3,r4,r5,r6,r7)來傳遞參數,我們需要修改通過r3寄存器傳遞過來的board_info數據結構(定義在Linux內核里arch/ppc/platforms/cs2000.h),使之與U-BOOT源代碼里u-boot-1.1.1/include/asm-ppc/u-boot.h里定義的bd_info數據結構內容*,這樣內核才不會對SGMGH-44A2A-YR41傳遞過來的board_info數據結構進行錯誤解讀。
3.2.2 PCI外設初始化部分的修改 Linux內核初始化PCI部分的主要過程為:掃描整個PCI總線,找到連接在總線上的所有設備,根據各PCI設備配置空間寄存器的信息,給各PCI設備統籌分配I/O空間,memory空間,以及IRQ中斷號。對于x86平臺,這部分工作其實已經在BIOS部分做過,Linux內核只需調用BIOS生成的配置即可,但對于我們嵌入式Linux系統,沒有BIOS,這部分工作Linux內核要自己做。而對于各個不同的開發板,需要補充到標準的PCI初始化代碼里的內容有兩部分,一為PCI設備配置空間寄存器的訪問方式,另一為PCI中斷的配置。
Weidmuller Connect Power Power Supply 992889 0024 Used
EDYNE HYSON SEAL KIT TNK5.5 56-209-7000 NEW
Lot of 10 Fuji SZ-A31 SZ1A31 Electric Auxiliary Contact Block Used
CCS POWER SUPPLY PB-2430 USED NICE
FUJI 6RI30FE-080 A50L-2001-0232 FANUC POWER MODULE USED
FANUC A16B-1212-0030/02B DETECTOR ADAPTER BOARD USED
Norgren B07-201-M3EG FILTER REGULATOR USED NICE
Sola SDP 2-24-100T Power Supply Used Nice
CHRYSLER MOPAR 2.4L ENGINE TIMING COVER 04884409AA NEW IN BAG
GE FANUC IC693CHS391D 10-SLOT BASE USED
Lot of Bushing Maurey SH24MM (QTY 2)/Brwoning P1 24 MM (QTY3) New In Box
Allen Bradley 8000-VAD 900036 Rev-10 Circuit Board Used
ALLEN BRADLEY CIRCUIT BOARD UPX 635537 REV-2 USED
Control Concepts Islatrol Plus IC+105 Active Tracking Filter Used Nice
LOT OF 6 NEW BUSSMANN LPJ-1-6/10SP FUSE LPJ1610SP
co Light Transmitter LR NG 15 M New In Box
SIEMENS INTERFACE MODULE 3RK2400-1FE00-0AA2 USED
LOT OF 11 CLIMAX PREMIUM C-100-BO 1" ID STEEL SHAFT COLLAR BLACK OXIDE NEW
Allen Bradley Strobe Beacon Light 855E-24DN4 w/ 855E-BCB Series A Used
RITTAL ENCLOSURE INTERNAL THERMOSTAT SK3110 LOT OF 5 USED
LOT OF 3 LS MMS-32H 10 AMP MANUAL MOTOR STARTER USED
NUMATICS 152SS600K SOLENOID VALVE NEW IN BAG
Honeywell BZE6-2RQ Micro Switch Limit Switch BZE62RQ NEW IN BOX
Lot of 2 Kasuga TIFB740MH Interface Terminal Block Used Nice
Square D Molded Case Circuit Breaker FAL22060 Used Nice
ALLEN BRADLEY NEMA SIZE 1 REVERSING STARTER 120V COIL 505-BOD SERIES C USED
LOT OF 3 SIEMENS SIMATIC S7 INPUT MODULE 6ES7 131-4BB00-0AB0 WITH BASE USED NICE
?