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。