在线时间7 小时
UID3235961
注册时间2020-7-21
NXP金币0
TA的每日心情 | 开心 2020-9-23 09:38 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]初来乍到
注册会员

- 积分
- 121
- 最后登录
- 2024-5-19
|
本帖最后由 ligen13872 于 2020-12-10 10:59 编辑
使用官方的u-boot-2015.07.tar.bz2。板子为zlg的EasyARM-i.MX28xA V1.12。交叉编译工具也为ZLG的4.4.4版本。
在zlg的源代码资料imx-bootlets-src-10.12.01\boot_prep\init-mx28.c中的函数int _start(int arg)中添加如下代码:
/* *
* Boot info for mainline U-boot
* HC added 20160423
* */
struct mxs_spl_data {
uint8_t boot_mode_idx;
uint32_t mem_dram_size;
};
//CONFIG_SYS_TEXT_BASE 不同的u-boot版本,定义不一样。
struct mxs_spl_data *data = (struct mxs_spl_data *)
((CONFIG_SYS_TEXT_BASE - sizeof(struct mxs_spl_data)) & ~0xf);
printf("data pointer: %X ...\r\n", data);
data->mem_dram_size = 64*1024*1024;//固定写死,或者在u-boot中重新赋值
data->boot_mode_idx = 7;//nand 2.3v 固定写死,或者在u-boot中重新赋值
printf("bootmode: %X ...\r\n", bootmode);
使用mx28evk_nand_defconfig配置。
编译后安装步骤烧写可运行。
发现串口无输入,可在mx28evk_nand_defconfig中将CONFIG_SYS_EXTRA_OPTIONS修改CONFIG_SYS_EXTRA_OPTIONS="MXS_AUART,MXS_AUART_BASE=MXS_UARTAPP3_BASE,ENV_IS_IN_MMC"。同时在imx-bootlets-src-10.12.01\boot_prep\init-mx28.c中的函数int _start(int arg)中修改auart3的管脚初始化。函数为HW_PINCTRL_MUXSEL6_CLR(0Xxxx);具体可查阅数据手册等资料。我使用串口3,故HW_PINCTRL_MUXSEL6_CLR(0x0F0000F0)。再次编译烧录,串口正常可输入。
|
|