APP下载

基于10Gbit/s传输的光纤旁路系统平台研究与设计

2013-06-01黄志鹏伍召学

电信工程技术与标准化 2013年12期
关键词:源代码保护器内核

黄志鹏,伍召学

(重庆邮电大学通信与信息工程学院, 重庆 400065)

基于10Gbit/s传输的光纤旁路系统平台研究与设计

黄志鹏,伍召学

(重庆邮电大学通信与信息工程学院, 重庆 400065)

本文基于MPC8308ERDB设计了一款基于10Gbit/s传输的光纤旁路保护器,用于保护接入骨干网的节点设备,重点分析了针对MPC8308ERDB开发板的u-boot移植过程中的关键问题。凭借U-boot对PowerPC系列处理器最为丰富的支持,结合飞思卡尔提供的BSP源代码包,详细地分析了u-boot源代码的编译及配置过程,重点分析了u-boot的移植过程。

光纤旁路保护器;BSP;移植

1 引言

随着传统通信向高速信息化的转变,PowerPC系列处理器凭借强大的嵌入式表现,得到了越来越广泛的应用,涵盖了从电子产品到大型通信设备。但对于不同类型的嵌入式芯片、不同的操作系统和外围接口都需要重新移植、修改和编译u-boot。

本文基于MPC8308ERDB设计了一款基于10 Gbit/s传输的光纤旁路保护器,用于保护接入骨干网的节点设备,完成当节点设备出现硬件故障、软件死锁或者掉电时,旁路器自动切换光路到直通状态,保持网络的完整性。重点分析了针对MPC8308ERDB开发板的u-boot移植过程中的关键问题。

在移植过程中,采用了飞思卡尔为目标板提供的BSP源代码包,通过修改、编译后得到u-boot源码,结合目标板上的CPU、Flash、DDR以及各种接口和外围设备,实现了目标板硬件系统的初始化和正常启动。针对10 Gbit/s传输的光纤旁路保护器系统,分析了u-boot启动流程,为解决外围吉比特以太网交换芯片和物理芯片驱动移植提供了良好的基础平台,确保了硬件系统的顺利引导。

2 MPC8308ERDB目标介绍

目标版核心控制模块采用飞思卡尔的MPC8308处理器,具备128 MB的DDR2、8MB的NOR Flash、32 MB的NAND Flash,提供单个吉比特以太网PHY、4个吉比特以太网Switch、双UART端口、GPIO接口等资源。1G PHY选用BCM5461,Switch选用BCM56334,4块BCM8705与4块XFP一对一相连组成单方向数据收发链路。具体连接图如图1所示。

3 启动流程分析

3.1 硬件启动

要成功移植u-boot,首先需要了解系统的启动流程,包括硬件处理器和软件u-boot两个方面。对于硬件处理器的上电启动,首先按MPC8308硬件规范要求加电,系统宣告PROESET和TEST有效,让所有寄存器初始化到它们的默认状态,让大部分I/O驱动器释放为高阻状态,然后系统施加稳定的SYS_CLK_ IN和复位配置输入信号CFG_RESET_SOURCE。在至少32个稳定的SYS_CLK_IN时钟周期之后,系统将PROESET置为无效,接着设备对复位配置输入信号进行采样,确保时钟分配和复位配置源,紧接着设备开始装入复位配置字,一旦装入了复位配置字低端,系统PLL就开始锁定。当系统PLL锁定时序后,向e300c PLL 提供CSB_CLK,e300c PLL开始锁定,在这个过程中,设备一直驱动HRESET有效,直到e300c PLL 锁定且装入了复位配置字为止。如果前面未将HRESET置为无效,此时可以将其置为无效,接着将到核和其余逻辑的内部复位置为无效,然后启用I/O驱动器,LBC DLL 开始锁定,为响应配置周期,PCI接口宣告DEVSEL有效,在4个时钟之后,设备停止驱动SRESET,SRESET变为无效。最后,将到e300核的复位置为无效,并启用核。设备上电启动过程结束。

图1 硬件原理图

3.2 u-boot启动流程

u-boot启动流程图如图2所示。

(1)上电复位,读取硬件复位配置字(HRCW),CPU上电复位后,片选信号CS0#有效。在Flash起始地址处读取HRCW,每次读取8 bit,每4次组成一个32的配置字,共读取8次,分别组成低32 bit配置字和高32 bit配置字。起始地址.text由/board/mpc83xx_board/cpmfig.mk文件定义。配置字读完,PLL开始锁定。

(2)入口启动函数,开始执行,入口地址由boardmpc83xx_boardU-boot.lds确定:

(3)init_e300_core函数

图2 u-boot启动流程图

初始化内核,禁止IRQ响应,允许machine check中断和system reset中断,禁止MMU,进行地址转换,禁止看门狗和无效指令cache,为系统创建一个可靠的初始环境。

(4)cpu_init_f函数

该函数是u-boot执行的第一个C函数,在Flash中运行,该函数完成对CPU寄存器的初始化,包括初始化内存控制器。

(5)board_init_f函数

当寄存器初始化结束后,该函数为全局变量结构体gd分配内存空间,进行初始化序列init_sequence,为输出打印信息而提供串口支持,为准备重定位而初始化SDRAM。初始化函数如下:

(6)relocate_code函数

到该函数为止,u-boot代码都在Flash中运行,通过前面的一系列函数,已经将RAM初始完毕,具备了程序在RAM中运行的能力,通过relocate_code函数从Flash中拷贝u-boot第二阶段代码到RAM,并跳转到RAM中相应的位置。

(7)board_init_r函数

该函数为板级初始化的第二阶段,该阶段代码主要由C语言完成,这部分是一些相对变化不大的部分,可针对不同的目标板改变调用一些初始化函数,并通过设置一些宏定义来改变初始化的流程。这部分主要用来初始化两个重要数据结构,完成初始化本阶段使用的硬件设备、检测系统内存映射、将内核从Flash读取到RAM中、为内核设置启动参数并最终调用内核。最后循环跳入main_loop()函数:

4 u-boot移植

4.1 交叉编译环境搭建

嵌入式系统的开发一般需要交叉编译开发环境。主机系统工作在Centos环境下,将飞思卡尔针对开发板提供的嵌入式开发套件BSP源代码包挂载到/opt/ freescale目录下,在当前目录下,执行./install安装命令,进行一系列的环境配置以及确定安装路径后,在当前目录下生成/ltib-mpc8308erdb-20100413文件目录时,说明安装完成。此时,会在/opt/freescale/usr/ local/ gcc-4.1.78-eglibc-2.5.78-1/ powerpce300c3-linux-gnu/bin文件目录下生成一系列基于powerpc-e300c3-linux-gnu的交叉编译工具,这里,选用powerpc-e300c3-linux-gnu-gcc、powerpce300c3-linux-gnu-g++、powerpc-e300c3-linuxgnu-ar这三个编译工具。

4.2 u-boot移植过程

移植工作主要针对不同的目标板进行一些配置修改。本文以MPC8308RDB作为目标板。首先确定目标板上的系统资源映射,在此基础上通过修改配置文件以及代码完成u-boot的目标板移植,如果移植后无法满足外部设备的一些功能需求,还需要添加一些驱动程序。本平台的地址空间映射如图3所示。

图3 8M NOR映射图

在源代码安装目录下/litb-mpc8308erdb-20100413,执行./ltib p u-boot,便会在当前目录下生成/rpm/BUILD/u-boot-2009.11-rc1,此时,在当前目录下便生成了目标文件u-boot.bin,再回到/ litb-mpc8308erdb-20100413目录,执行命令./ltib c编译u-boot源码,则会在/rpm目录下生成/linux,该文件里面就包含了所需要的系统内核uImage。将u-boot.bin通过JTAG烧录到目标版中去,发现并不能正常启动,出现一些错误提示,因此,还需根据错误逐一改正,具体体现在对MPC8308ERDB.h这个目标文件的更改上,举例说明如下:

设置正确的输入时钟:

#define CONFIG_83XX_CLKIN 33333333 /* in Hz */

#define CONFIG_SYS_CLK_FREQ CONFIG_83XX_CLKIN

设置bootdelay时延

#define bootdelay 3

注销掉CONFIG_VSC7385_ENET,因为目标版没有包含此类型的交换芯片

//#define CONFIG_VSC7385_ENET /* VSC7385 ethernet support */

设置波特率

#define CONFIG_BAUDRATE 115200

为了启动界面的整洁,也可以设置行明令提示符

#define CONFIG_SYS_PROMPT "=> " /* Monitor Command Prompt */

设置从Flash启动

#define CONFIG_RAMBOOTCOMMAND "setenv bootargs root=/dev/ram rw… "

5 测试结果

利用u-boot的Makefile编译得到3个文件,使用codewarrior v8.8软件,通过JTAG将其中的u-boot. bin成功烧录到Flash中,再通过tftp将内核和文件系统下载到目标版。目标板上电后,系统运行稳定,能实MPC8308RDB目标板各个模块之间的信息交互。

6 结论

本文从硬件和软件部分详细分析了u-boot在MPC8308目标板上的启动过程,并给出了目标板上的u-boot移植过程。成功移植后,u-boot可以安全、稳定地运行在MPC8308目标板上,很好地实现了CPU与以太网交换芯片和物理芯片之间的信息交互以及系统各模块的管理功能,为10 Gbit/s传输的光纤旁路保护器设计提供了优秀的开发平台和应用环境。

[1] 王海鹏,倪远平,周佩萱. U-boot在mini2440平台上的移植方法[J]. 微计算机应用, 2010(8):2-4.

[2] 武杰,黎敬涛. U-boot在ARM9上的移植分析与实现[J]. 微计算机应用, 2011(5):2-3.

[3] 罗贤全,尚朝轩等. 定制嵌入式Linux系统的启动程序[J]. 微计算机信息, 2005(9):3-4.

[4] 高晶敏,兰亚柱等. Porting U-boot to control computer based on MPC8349[J]. 微计算机信息,2009(9):3-5.

[5] 田裕康. 基于ARM微处理器的u-boot移植[J]. 武汉科技学院学报, 2007(11):1-4.

[6] MPC8308RDB PowerQUICCII Pro Integrated Communications Processor Family Reference Manual[Z]. 2007.

[7] Freescale. Programming Enviroments Mannual for 32-bit Implementation[Z]. 2005.

Research and design of fiber bypass system platform based on 10Gbit/s transport system

HUANG Zhi-peng, WU Zhao-xue
(Chongqing University of Posts and Telecom, Chongqing 400065, China)

This paper designed a kind of fi ber bypass instructment based on 10 Gbit/s transport system, which protects the node devices of backbone network, we focus on the key issues during the u-boot transplantation process base on MPC8308ERDB . With the u-boot provids the most abundant supports for the PowerPC processors, and combined with the BSP source codes, analysed the compliation and conf i guration process of the u-boot,and fi nally emphatically analyzed the transplantation of the u-boot.

fi ber bypass instructment; u-boot; transplantation

TN802

A

1008-5599(2013)12-0051-04

2013-09-10

猜你喜欢

源代码保护器内核
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
基于TXL的源代码插桩技术研究
智能冗余断相保护器的设计与完善
基于嵌入式Linux内核的自恢复设计
Linux内核mmap保护机制研究
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
你了解漏电保护器和空气开关吗
基于STM32的智能低压保护器的研制