首页 > 系统相关 >【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植

【北京迅为】i.mx8mm嵌入式linux开发指南第四篇 嵌入式Linux系统移植篇第六十九章uboot移植

时间:2024-10-22 14:31:47浏览次数:1  
标签:evk uboot CONFIG 嵌入式 修改 所示 imx 第六十九章 移植

 

 

迅为i.mx8mm开发板特点:

 

性能强:i.MX8MM处理器采用了先进的14LPC FinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。

 

PMIC:采用PCA9450A电源管理,是NXP全新研制配套iMX.8M的电源管理芯片,有六个降压稳压器、五个线性稳压器和一个负载开关,为整个系统的稳定运行提供了更可靠的保证。

 

接口丰富:千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT、4G模块、CAN、RS485等接口一应俱全。

 

编解码:H264、VP8视频硬编码,H.264、H.265、VP8、VP9视频硬解码, 并提供相关历程。

 

支持音频:8路PDM接口、5路SAI接口、2路Speaker。

 

系统支持:Android9.0、Linux4.14.78 + Qt5.10.1、Yocto、Ubuntu20、Debian9系统。

 

全新升级《开发板使用手册》

率先提供在Android9系统上移植4G模块方法,并带大家一步步调试;

率先提供如何通过SD卡启动Linux镜像,例如yocto debian ubuntu等文件系统; 教大家如何将驱动编译进内核源码; 根据IMX8MM开发板的原理图总结了引脚信息,方便大家查阅~

 

售后服务:提供在线技术支持答疑,并协助用户检查原理图,提供详细的硬件设计指导文档等服务。

 

迅为品质:通过电磁兼容、电磁辐射标准检测、安规检测、高低温环境检测等,确保产品的可靠性。

7*24小时长期稳定运行。10年以上供货周期长,批量无优。

 

行业应用:适用于智能充电桩、物联网、工业控制、医疗、智能交通等,可用于任何通用工业和物联网应用。

 

 

 

 

 

公众号:迅为电子

 

-----------------------------------------------

 

69.1 编译脚本分析

在第六十七章的内容里面,我们编译生成了 flash.bin 文件,在生成 flash.bin 文件的过程中,我们是手动输入命令生成的,但是为了加快测试速度,我们本章节要编写一个自动化脚本。

在第六十七章节,我们已经下载了 NXP 官方提供的 uboot 源码,本章节我们要将此源码移植到迅为 iTOP-IMX8MM 开发板上。在/home/topeet/bsp_kernel_imx 目录下新建一个编译脚本 build.sh。

69.2 增加 bin 文件

将网盘资料里面“iTOP-i.MX8MM 开发板\02-i.MX8MM 开发板网盘资料汇总(不含光盘内容)\嵌入式 Linux

开发指南(iTOP-i.MX8MM)手册配套资料\3.Linux 系统移植\5.移植 uboot 需要用的文件”提供的文件拷贝到

/home/topeet/bsp_kernel_imx 目录下。

 

 

 

 

 

 

69.3 配置电源管理芯片

迅为 iMX8MM 采用了 PCA9450A 电源管理,拒绝老旧方案,采用 NXP 全新研制配套 i.MX8M Mini 的电

源管理芯片,有六个降压稳压器,五个线性稳压器和一个负载开关,为整个系统的稳定运行提供了更可靠

的保证。接下来我们需要在 uboot 源码中配置好电源管理芯片。

1 首先在默认的 uboot 设备树中进行配置,打开

/home/topeet/bsp_kernel_imx/bsp_kernel_imx/uboot-imx/arch/arm/dts/fsl-imx8mm-evk.dts 文件,将默认的电

源管理芯片注释掉,替换为 pca9450。修改为如下图所示:

 

 

 

 

2 然后修改 pmic 的驱动 uboot-imx/drivers/power/pmic/Kconfig,添加如下图所示代码:

config DM_PMIC_PCA9450

bool "Enable Driver Model for PMIC PCA9450"

depends on DM_PMIC

help

This config enables implementation of driver-model pmic uclass features

for PMIC PCA9450. The driver implements read/write operations.

 

 

 

 

 

3 然后修改 uboot-imx/drivers/power/pmic/Makefile 文件,添加如下图所示代码:

obj-$(CONFIG_$(SPL_)DM_PMIC_PCA9450) += pca9450.o

obj-$(CONFIG_POWER_PCA9450) += pmic_pca9450.o

 

 

 

 

 

4 然后将资料包里面的 pca9450.c 和 pmic_pca9450.c 拷贝到源码 uboot-imx/drivers/power/pmic/目录下。

5 修改 uboot-imx/include/configs/imx8mm_evk.h 文件,修改为如下图所示:

#if 0

#define CONFIG_POWER_BD71837

#else

#define CONFIG_POWER_PCA9450

#endif

 

 

 

 

 

#ifdef CONFIG_TARGET_IMX8MM_DDR4_EVK

#define CONFIG_SYS_FSL_USDHC_NUM

2//1

#else

#define CONFIG_SYS_FSL_USDHC_NUM

2

#endif

 

 

接下来重新打开一个窗口,输入 make menuconfig,我们在 menuconfig 中配置 PCA9450,

然后点击保存“save”到 configs/imx8mm_ddr4_evk_defconfig,

然后输入以下命令,将默认的配置文件覆盖.config 文件。

make imx8mm_ddr4_evk_defconfig

 

 

 

69.4 配置 otg 烧写

打开设备树文件 uboot-imx/arch/arm/dts/fsl-imx8mm-evk.dts,修改节点为如下图所示:

&usbotg1 {

status = "okay";

/*extcon = <&typec_ptn5110_1>;*/

drm_mode= "otg";

picophy,pre-emp-curr-control = <3>;

picophy,dc-vol-level-adjust = <7>;

};

&usbotg2 {

status = "okay";

/*extcon = <&typec_ptn5110_2>;*/

drm_mode= "otg";

picophy,pre-emp-curr-control = <3>;

picophy,dc-vol-level-adjust = <7>;

};

 

 

 

 

修改 uboot-imx/arch/arm/dts/fsl-imx8mm-evk.dts 文件,

 

 

修改 uboot-imx/drivers/usb/gadget/f_fastboot.c,修改为如下图所示:

static ulong bootloader_mmc_offset(void)

{

if (is_imx8m() || (is_imx8() && is_soc_rev(CHIP_REV_A)))

return 0x8400;

else if (is_imx8qm()) {

int dev_no = mmc_get_env_dev();

if (MEK_8QM_EMMC == dev_no)

/* target device is eMMC boot0 partition, bootloader offset is 0x0 */

return 0x0;

else

/* target device is SD card, bootloader offset is 0x8000 */

return 0x8000;

}

else if (is_imx8())

return 0x8000;

else

return 0x400;

}

 

修改 uboot-imx/drivers/usb/gadget/f_fastboot.c,

 

 

 

 

69.5 修改默认的配置文件

源码默认的配置文件是 uboot-imx/configs/imx8mm_ddr4_evk_defconfig,我们修改此文件,我们将

DEFAULT_FDT_FILE 修改为 itop8mm-evk.dtb,如下图所示:DEFAULT_FDT_FILE 是设置内核默认的设备树文件。

CONFIG_DEFAULT_FDT_FILE="itop8mm-evk.dtb"

 

 

 

将这行注释掉,如下图所示:

#CONFIG_USB_TCPC=y

 

 

69.6 修改 i2c.h

修改 uboot-imx/arch/arm/include/asm/arch-imx8/i2c.h 文件,

 

 

 

 

69.7 测试烧写

修改完上述功能,然后输入以下命令编译 uboot,如下图所示:

clear && ./build.sh uboot

 

 

 

 

编译完会在 result 目录下生成 flash.bin 文件,如下图所示:

 

 

然后我们可以烧写生成的 flash.bin +网盘默认提供的 rootfs.sdcard 镜像,如果 uboot 可以正常启动内核

镜像,说明 uboot 移植成功。Uboot 启动如下图所示:

 

 

 

 

接下来的章节我们来学习移植内核。

 

标签:evk,uboot,CONFIG,嵌入式,修改,所示,imx,第六十九章,移植
From: https://www.cnblogs.com/topeet/p/18492673

相关文章

  • 单片机嵌入式的上位机编程用哪种语言比较好
    单片机嵌入式的上位机编程主要有几种主流编程语言选择:一、C/C++语言;二、Python语言;三、Java语言;四、C#语言。这些语言各自具有不同的优势和特点。例如,C/C++语言具有高效、灵活、对硬件控制能力强等优势,广泛应用于实时系统和高性能要求的场景。下文将对这些编程语言的特性、优劣势......
  • 电动汽车嵌入式软件开发过程中的难题有哪些?
    我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。无......
  • 嵌入式串口打印信息重定向到当前终端界面
    参考https://blog.csdn.net/wuquan_1230/article/details/105782687在tty_init中会创建/dev/console:int__inittty_init(void){ register_sysctl_init("dev/tty",tty_table); cdev_init(&tty_cdev,&tty_fops); cdev_add(&tty_cdev,MKDEV(TTYAUX_......
  • 华为鸿蒙嵌入式 UI 扩展组件:跨越界限的舞台
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。在华为鸿蒙系统的舞台上,UIAbility组件......
  • 嵌入式※~CH395Q-UDP
    我自己的原文哦~ https://blog.51cto.com/whaosoft/11683296网络芯片CH395Q-模块使用Socket0作为UDP组播(多播)通信这里演示一下模块使用Socket0作为UDP组播(多播)通信提醒:无论是SPI,USART,并口,程序操作步骤都是一样的!只是不同的接口发指令发给模块,然后用不同的接收......
  • 移植 CPAN 包
    安装Perl前往CPAN.org下载Perl源码包。安装:wgethttps://www.cpan.org/src/5.0/perl-5.40.0.tar.gztar-xzfperl-5*.tar.gzcdperl-5*./Configure-des-Dprefix=$HOME/.localmake-j$(nproc)makeinstall设置环境变量:exportPATH="$HOME/.local/bin:$PATH"expo......
  • 痞子衡嵌入式:瑞萨RA系列FSP固件库分析之外设驱动
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是瑞萨RA系列FSP固件库里的外设驱动。上一篇文章《瑞萨RA8系列高性能MCU开发初体验》,痞子衡带大家快速体验了一下瑞萨MCU开发三大件(开发环境e²studio、软件包FSP、评估板EK),其中软件包FSP为何不叫更通......
  • 嵌入式分享合集192~干货篇
    我自己的原文哦~https://blog.51cto.com/whaosoft/12238584一、电子工程师的常用工具  电子工程师是一个对从事集成电路、电子电气设备等相关产品生产、研发工作的技术人员的统称,一般分为硬件工程师和软件工程师。    硬件工程师主要要了解电路方面的知识,知道常用电......
  • 【TFT彩屏移植】STM32F4移植1.8寸TFT彩屏简明教程
    目录一.移植说明二.移植1.例程    物理接口:    延时函数:     底层驱动文件:    GUI界面文件:    测试demo:2.移植至F4创建工程:        调试接口选择SW:        RCC中HSE选择外部晶振:        GPIO配......
  • XC6SLX25T-2CSG324C,XC6SLX45T-2FGG484I,XC7K70T-3FBG484E4914, XILINX/赛灵思 嵌入式
    Xilinx是一家总部位于美国的半导体公司,成立于1984年。他们的主要产品是可编程逻辑器件(FPGA和SoC)和相关的开发工具。Xilinx的FPGA产品被广泛应用于各种领域,包括通信、数据中心、工业控制、汽车、物联网等。他们的产品具有灵活性高、性能强大和可定制性强等特点。2018年,Xilinx宣......