北京立萨科技有限公司
咨询热线:010-82488292
公司电话:010-82488292
公司传真:010-82611646
企业邮箱:sales@lisatech.cn
地址:北京市海淀区中关村大街19号 新中关大厦B座南翼15层1507室
TQI.MX6Q系列_新版BSP之u-boot移植
摘要 : 为了提高移植效率,还是考虑移植Freescale维护的3.10版本的内核。Freescale维护的3.10的内核是使用git管理的,但是直接使用git下载代码会比较慢,下面是我下载好的uboot和kernel: I.MX6Q BSP源码(Freescale官方维护)
为了提高移植效率,还是考虑移植Freescale维护的3.10版本的内核。
源码获取
Freescale维护的3.10的内核是使用git管理的,但是直接使用git下载代码会比较慢,下面是我下载好的uboot和kernel:
I.MX6Q BSP源码(Freescale官方维护)
代码下载好后,先将u-boot解压到工作目录,然后在终端下切换到uboot根目录。由于这个版本的bsp是使用git管理的,因此,需要切换到指定分支。执行指令:
git branch -a
可以查看freescale维护的uboot的各个分支,我们checkout的分支是“remotes/origin/imx_v2013.04_3.10.17_1.0.0_ga”,执行指令:
git checkout -b tqimx6q imx_v2013.04_3.10.17_1.0.0_ga
这样,就在本地创建的分支tqimx6q并将远程分支imx_v2013.04_3.10.17_1.0.0_ga上的代码checkout到这个本地分支。我们之后的修改在tqimx6q分支进行即可。
U-Boot移植
新版U-Boot移植也不麻烦,主要是freescale给出了详细的官方手册"i.MX 6 BSP Porting Guide",具体的移植步骤如下:
Step1. 创建board目录。由于imx6q的很多代码是共通的,跟之前的移植一样,可以参考mx6qsabresd进行的,执行指令:
cp board/freescale/mx6qsabresd/ board/freescale/mx6q_tqimx6q -r
Step2. 修改board相关文件的名称:
cp board/freescale/mx6q_tqimx6q/mx6qsabresd.c board/freescale/mx6q_tqimx6q/mx6q_tqimx6q.c
Step3. 修改Makefile中的文件名。打开board/freescale/Makefile,将mx6qsabresd替换为mx6q_tqimx6q.c。
Step4. 创建board配置文件。同样参考mx6qsabresd,执行如下指令:
cp include/configs/mx6qsabresd.h include/configs/mx6q_tqimx6q.h
Step5. 添加编译选项。打开文件boards.cfg,找到配置项"mx6qsabresd"(如果没有改动的话,在277行),复制该行配置并添加在下面,然后修改为如下内容:
mx6q_tqimx6q ARM armv7 mx6q_tqimx6q freescale mx6
mx6qsabresd:IMX_CONFIG=board/freescale/mx6q_tqimx6q/mx6q_tqimx6q_ddr.cfg,MX6Q,DEFAULT_FDT_FILE="imx6q-tqimx6q.dtb",DDR_MB=1024,SYS_USE_SPINOR
Step6. 定制DDR配置。其实DDR相关的参数在之前的移植文章中已经有了。
cp board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg board/freescale/mx6q_tqimx6q/mx6q_tqimx6q_ddr.cfg
然后修改文件mx6q_tqimx6q_ddr.cfg,修改后的文件内容如下:
http://pan.baidu.com/s/1nt5ji0h
Step7. 定制board端子。其实有影响的端子在移植老版的uboot时已经知道,因此修改起来也是比较容易。
(1) 修改串口端子。具体修改内容如下:
iomux_v3_cfg_t const uart1_pads[] = {
// MX6_PAD_CSI0_DAT10__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_SD3_DAT7__UART1_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
// MX6_PAD_CSI0_DAT11__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_SD3_DAT6__UART1_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
};
(2) 修改SD卡端子。具体修改如下:
iomux_v3_cfg_t const usdhc2_pads[] = {
MX6_PAD_SD2_CLK__USDHC2_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD2_CMD__USDHC2_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_NANDF_D4__USDHC2_DAT4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_NANDF_D5__USDHC2_DAT5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_NANDF_D6__USDHC2_DAT6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_NANDF_D7__USDHC2_DAT7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_NANDF_D2__GPIO_2_2 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
};
iomux_v3_cfg_t const usdhc3_pads[] = {
MX6_PAD_SD3_CLK__USDHC3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_CMD__USDHC3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT0__USDHC3_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT1__USDHC3_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT2__USDHC3_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT3__USDHC3_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT4__USDHC3_DAT4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_SD3_DAT5__USDHC3_DAT5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_SD3_DAT6__USDHC3_DAT6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
// MX6_PAD_SD3_DAT7__USDHC3_DAT7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
MX6_PAD_NANDF_D0__GPIO_2_0 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
};
定制cd(card detect)端子,否则uboot将检测不到SD卡插入。打开board/freescale/mx6q_tqimx6q/mx6q_tqimx6q.c修改USDHC2_CD_GPIO:
#define USDHC2_CD_GPIO IMX_GPIO_NR(1, 4)
Step8. 编译uboot。执行如下指令:
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make mx6q_tqimx6q
其中,CROSS_COMPILE是交叉编译工具链的前缀,根据自己的实际情况修改。如果前面的步骤操作正确,uboot就可以顺利编译通过了。
烧写启动
经过前面的移植工作,uboot已经可以正常运行在tqimx6q开发板上了。这个版本的uboot与之前版本的uboot编译出的目标文件不同,具体的烧写指令如下:
sudo dd if=u-boot.imx of=/dev/sdb bs=512 seek=2
启动Log如下:
U-Boot 2013.04-04987-g98fdbdc-dirty (May 01 2015 - 23:15:34)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
CPU: Temperature 24 C, calibration data: 0x54e4bb69
Reset cause: POR
Board: MX6Q/SDL-SabreSD
I2C: ready
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
MMC: no card present
MMC init failed
Using default environment
No panel detected: default to Hannstar-XGA
Display: Hannstar-XGA (1024x768)
In: serial
Out: serial
Err: serial
MMC: no card present
mmc0(part 0) is current device
Net: Phy not found
PHY reset timed out
FEC [PRIME]
Warning: failed to set MAC address
Normal Boot
Hit any key to stop autoboot: 0
MMC: no card present
mmc0(part 0) is current device
MMC: no card present
Booting from net ...
*** ERROR: `ethaddr‘ not set
*** ERROR: `ethaddr‘ not set
Wrong Image Format for bootm command
ERROR: can‘t get kernel image!
U-Boot >
总结
经过上文介绍的移植,u-boot已经可以正常启动了。其实,这个版本的uboot移植与之前版本的uboot移植没有太大区别,思路差不多。有什么问题可以留言。
上一篇:i.MX6Q开发板资料目录1970-01-01
下一篇:基于TI AM335X电力智能抄表方案1970-01-01
文章推荐
- 智能家居必经之路探讨——立萨科技
- 物联网环境下的新零售之战-立萨科技
- 发展农业物联网 攻关核心技术是关键——立萨科技
- 应用推广遭遇三大障碍——立萨科技
- 最近的大热人工智能行业,创业者成功的有多大?-立萨科技
- 农业自动化的发展趋势——立萨科技
- 以光子作为存储单元?这样的内存有啥优势
- 物联网云智能锁助力智能家居安全系统——立萨科技
- 云电视或成智能家居普及的突破口——立萨科技
- 物联网将做大智能家居市场蛋糕——立萨科技
- 利用现代信息技术改造提升传统农业——立萨科技
- 可穿戴设备将成为远程医疗的优选终端——立萨科技
- 智慧农业--梦想因物联网技术而变成现实——立萨科技
- 农业物联网技术前景广阔 农民开始幸福生活——立萨科技
- 国内首家“物联网”农贸市场 ——立萨科技
- 物联网:传感器改变农业“靠天吃饭”的传统——立萨科技
- 北京今起试点实行路侧停车电子收费 有多种支付方式
- 成本过高,农业物联网难“接地气”——立萨科技
- 浅析医疗物联网——立萨科技
- 物联网时代,ARM向左和英特尔向右-立萨科技
| 我要评论: | |
| *内 容: |
|
| 验证码: |
|

共有0条评论