QorIQ T1042/T1022系列通信处理器结合64位内核,基于Power Architecture技术构建而成。适用于集成控制和数据平台应用,如固定路由器、交换机、嵌入式接入设备、防火墙和其他数据包过滤应用,以及通用嵌入式计算,它具备较高的集成度,可提供卓越的性能优势,简化设计;支持硬件协助虚拟化,内核提供额外的内核特权等级;集成QorIQ DPAA,可以安排内核、硬件加速器和网络接口的工作,可以解析输入数据包的头文件,然后采用可选策略和堵塞管理,对其分类并且选择数据缓冲区,采用多级排程分层将工作分配到内核或者加速器。
本产品只保留了SPI这一种启动方式,T1042/T2080 demo板的启动方式支持SPI /NAND/SD,本产品的硬件资源描述如下
处理器 | CPU | Freescale QorIQ T1042 |
FLASH | Boot Flash | 32M SPI NOR Flash |
内存 | 类型 | DDR3L |
插槽 | N/A | |
容量 | 4GB | |
网络 | 网络接口 | 4x 10/100/1000M千兆网口PHY |
Bypass | 2 pairs Gen2 | |
控制芯片 | MV 1512 | |
管理接口 | 1 x 10/100/1000Mbps以太网接口 | |
扩展模块 | N/A | |
存储 | 硬盘 | MINI SATA |
CF卡/SD卡 | NA | |
扩展 | ||
PCI | 4*PCIE BRIDGE | |
Mini-PCI-E | N/A | |
PCI-E | 4 x PCIx1 | |
I/O接口 | 串口 | 1 x RJ45 Front; 1x pin header |
USB | 1 x USB2.0 Front | |
重启按键 | YES | |
Bypass 按键 | YES |
本文章主要讲述实际的u-boot移植过程和遇到的基本问题及解决方案,u-boot powerpc启动流程请自行百度理解。
(1)搭建开发环境
本次开发过程中使用yocoto开发环境,u-boot源码及编译工具的获取无需去网站单独下载,全部由yocoto提供,具体获取方法请参考另外一篇博文,详细介绍LS1021A 的环境搭建过程 https://mp.csdn.net/postedit/96874418,T1042/T2080的环境搭建过程可以参考执行。
环境搭建好之后,应该是如下目录结构
root@test:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b# ls
bitbake.lock cache conf environment-setup-ppc64e5500-fsl-linux linux_src site-config-ppc64e5500-fsl-linux SOURCE_THIS sysroots test_tools tmp version-ppc64e5500-fsl-linux
root@test:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b#
执行source,使sdk环境生效
root@test:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b# source environment-setup-ppc64e5500-fsl-linux
root@test:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b# env
AS=powerpc64-fsl-linux-as
LDFLAGS=-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
AR=powerpc64-fsl-linux-ar
OECORE_TARGET_SYSROOT=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
TARGET_PREFIX=powerpc64-fsl-linux-
M4=m4
SHELL=/bin/bash
TERM=vt100
NM=powerpc64-fsl-linux-nm
OECORE_DISTRO_VERSION=2.0
CPPFLAGS=
OLDPWD=/work/QorIQ-SDK-V2.0-20160527-yocto
OECORE_SDK_VERSION=2.0
GDB=powerpc64-fsl-linux-gdb
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:
SUDO_USER=test
SUDO_UID=1000
PKG_CONFIG_SYSROOT_DIR=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
CXXFLAGS= -O2 -pipe -g -feliminate-unused-debug-types
CONFIG_SITE=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/site-config-ppc64e5500-fsl-linux
USERNAME=root
CPP=powerpc64-fsl-linux-gcc -E -mhard-float -m64 -mcpu=e5500 --sysroot=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
CCACHE_PATH=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/../x86_64-fslsdk-linux/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux-uclibc:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux-musl:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/../x86_64-fslsdk-linux/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-gnueabi:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-uclibc:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-musl:
MAIL=/var/mail/root
PATH=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/../x86_64-fslsdk-linux/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux-uclibc:/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/bin/powerpc64-fsl-linux-musl:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/../x86_64-fslsdk-linux/bin:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-gnueabi:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-uclibc:/work/QorIQ-SDK-V2.0-20160527-yocto/build_ls1021atwr/sysroots/x86_64-fslsdk-linux/usr/bin/arm-fsl-linux-musl:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LD=powerpc64-fsl-linux-ld --sysroot=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
PWD=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b
STRIP=powerpc64-fsl-linux-strip
LANG=zh_CN.UTF-8
PYTHONHOME=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr
OECORE_NATIVE_SYSROOT=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux
CONFIGURE_FLAGS=--target=powerpc64-fsl-linux --host=powerpc64-fsl-linux --build=x86_64-linux --with-libtool-sysroot=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
KCFLAGS=--sysroot=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
CXX=powerpc64-fsl-linux-g++ -mhard-float -m64 -mcpu=e5500 --sysroot=/work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/ppc64e5500-fsl-linux
OBJCOPY=powerpc64-fsl-linux-objcopy
SHLVL=1
SUDO_COMMAND=/bin/bash
HOME=/home/test
LANGUAGE=zh_CN:zh
CFLAGS= -O2 -pipe -g -feliminate-unused-debug-types
LOGNAME=root
OECORE_ACLOCAL_OPTS=-I /work/QorIQ-SDK-V2.0-20160527-yocto/build_t1042d4rdb-64b/sysroots/x86_64-fslsdk-linux/usr/share/aclocal
LESSOPEN=| /usr/bin/lesspipe %s
ARCH=powerpc
RANLIB=powerpc64-fsl-linux-ranlib
CROSS_COMPILE=powerpc64-fsl-linux-
CC=powerpc64-fsl-linux-gcc -mhard-float -m64 -mcpu=e5500 --sysroot=/work/QorIQ-SDK-
至此,交叉编译环境搭建完成,可以进入u-boot源码编译,看能否编译生成正确的u-boot.bin。
各类问题欢迎进群讨论:QQ群:245079182。