0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【北京迅為】i.mx8mm嵌入式linux開發(fā)指南第四篇 嵌入式Linux系統(tǒng)移植篇第六十九章uboot移植

北京迅為電子 ? 2024-10-22 14:46 ? 次閱讀

迅為i.mx8mm開發(fā)板特點:

性能強:i.MX8MM處理器采用了先進的14LPC FinFET工藝,提供更快的速度和更高的電源效率;四核Cortex-A53,單核Cortex-M4,多達五個內核 ,主頻高達1.8GHz,2G DDR4內存、8G EMMC存儲。

PMIC:采用PCA9450A電源管理,是NXP全新研制配套iMX.8M的電源管理芯片,有六個降壓穩(wěn)壓器、五個線性穩(wěn)壓器和一個負載開關,為整個系統(tǒng)的穩(wěn)定運行提供了更可靠的保證。

接口豐富:千兆工業(yè)以太網、MIPI-DSI、USB HOST、WIFI/BT、4G模塊、CAN、RS485等接口一應俱全。

編解碼:H264、VP8視頻硬編碼,H.264、H.265、VP8、VP9視頻硬解碼, 并提供相關歷程。

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

系統(tǒng)支持:Android9.0、Linux4.14.78 + Qt5.10.1、Yocto、Ubuntu20、Debian9系統(tǒng)。

全新升級《開發(fā)板使用手冊》

率先提供在Android9系統(tǒng)上移植4G模塊方法,并帶大家一步步調試;

率先提供如何通過SD卡啟動Linux鏡像,例如yocto debian ubuntu等文件系統(tǒng); 教大家如何將驅動編譯進內核源碼; 根據(jù)IMX8MM開發(fā)板的原理圖總結了引腳信息,方便大家查閱~

售后服務:提供在線技術支持答疑,并協(xié)助用戶檢查原理圖,提供詳細的硬件設計指導文檔等服務。

迅為品質:通過電磁兼容、電磁輻射標準檢測、安規(guī)檢測、高低溫環(huán)境檢測等,確保產品的可靠性。

7*24小時長期穩(wěn)定運行。10年以上供貨周期長,批量無優(yōu)。

行業(yè)應用:適用于智能充電樁、物聯(lián)網工業(yè)控制、醫(yī)療、智能交通等,可用于任何通用工業(yè)和物聯(lián)網應用。

公眾號:迅為電子

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

69.1 編譯腳本分析

在第六十七章的內容里面,我們編譯生成了 flash.bin 文件,在生成 flash.bin 文件的過程中,我們是手動輸入命令生成的,但是為了加快測試速度,我們本章節(jié)要編寫一個自動化腳本。

在第六十七章節(jié),我們已經下載了 NXP 官方提供的 uboot 源碼,本章節(jié)我們要將此源碼移植到迅為 iTOP-IMX8MM 開發(fā)板上。在/home/topeet/bsp_kernel_imx 目錄下新建一個編譯腳本 build.sh。

69.2 增加 bin 文件

將網盤資料里面“iTOP-i.MX8MM 開發(fā)板\02-i.MX8MM 開發(fā)板網盤資料匯總(不含光盤內容)\嵌入式 Linux

開發(fā)指南(iTOP-i.MX8MM)手冊配套資料\3.Linux 系統(tǒng)移植\5.移植 uboot 需要用的文件”提供的文件拷貝到

/home/topeet/bsp_kernel_imx 目錄下。

69.3 配置電源管理芯片

迅為 iMX8MM 采用了 PCA9450A 電源管理,拒絕老舊方案,采用 NXP 全新研制配套 i.MX8M Mini 的電

源管理芯片,有六個降壓穩(wěn)壓器,五個線性穩(wěn)壓器和一個負載開關,為整個系統(tǒng)的穩(wěn)定運行提供了更可靠

的保證。接下來我們需要在 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,修改節(jié)點為如下圖所示:

&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 啟動如下圖所示:

接下來的章節(jié)我們來學習移植內核。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5057

    文章

    18964

    瀏覽量

    301814
  • Linux
    +關注

    關注

    87

    文章

    11199

    瀏覽量

    208689
  • Uboot
    +關注

    關注

    4

    文章

    125

    瀏覽量

    28124
收藏 人收藏

    評論

    相關推薦

    嵌入式 Linux 操作系統(tǒng)配置

    隨著物聯(lián)網(IoT)和智能設備的快速發(fā)展,嵌入式系統(tǒng)在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩(wěn)定的特性,成為嵌入式系統(tǒng)
    的頭像 發(fā)表于 11-06 10:22 ?94次閱讀

    北京】itop-龍芯2k1000開發(fā)指南Linux基礎入門vim 編輯器

    北京】itop-龍芯2k1000開發(fā)指南Linux基礎入門vim 編輯器
    的頭像 發(fā)表于 10-25 14:56 ?223次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】itop-龍芯2k1000<b class='flag-5'>開發(fā)指南</b><b class='flag-5'>Linux</b>基礎入門vim 編輯器

    北京RK3568開發(fā)嵌入式學習之Linux驅動全新更新-CAN+

    北京RK3568開發(fā)嵌入式學習之Linux驅動全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?341次閱讀
    <b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>RK3568<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>嵌入式</b>學習之<b class='flag-5'>Linux</b>驅動全新更新-CAN+

    北京】《stm32mp157開發(fā)嵌入式linux開發(fā)指南》第五章 Ubuntu使用apt-get下載

    北京】《stm32mp157開發(fā)嵌入式linux開發(fā)
    的頭像 發(fā)表于 09-03 16:26 ?664次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】《stm32mp157<b class='flag-5'>開發(fā)</b>板<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b><b class='flag-5'>開發(fā)指南</b>》第五章 Ubuntu使用apt-get下載

    嵌入式linux開發(fā)的基本步驟有哪些?

    嵌入式Linux開發(fā)是一個復雜的過程,涉及到硬件選擇、操作系統(tǒng)移植、驅動開發(fā)、應用程序
    的頭像 發(fā)表于 09-02 09:11 ?336次閱讀

    嵌入式linux開發(fā)板怎么操作

    開發(fā)板概述 嵌入式Linux開發(fā)板是一種專門嵌入式系統(tǒng)開發(fā)
    的頭像 發(fā)表于 09-02 09:09 ?304次閱讀

    嵌入式linux開發(fā)板芯片的工作原理

    嵌入式Linux開發(fā)板是一種基于Linux操作系統(tǒng)嵌入式
    的頭像 發(fā)表于 09-02 09:07 ?300次閱讀

    北京】《i.MX8MM嵌入式Linux開發(fā)指南》-第四篇 嵌入式Linux系統(tǒng)移植-第六十七章 Uboot編譯及移植

    i.MX8MM處理器采用了先進的14LPCFinFET工藝,提供更快的速度和更高的電源效率;核Cortex-A53,單核Cortex-M4,多達五個內核,主頻高達1.8GHz,2GDDR4內存
    的頭像 發(fā)表于 08-07 15:08 ?418次閱讀
    【<b class='flag-5'>北京</b><b class='flag-5'>迅</b><b class='flag-5'>為</b>】《<b class='flag-5'>i.MX8MM</b><b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>開發(fā)指南</b>》-<b class='flag-5'>第四篇</b> <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b><b class='flag-5'>移植</b><b class='flag-5'>篇</b>-<b class='flag-5'>第六十</b>七章 <b class='flag-5'>Uboot</b>編譯及<b class='flag-5'>移植</b>

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)

    【出版發(fā)行】嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)
    的頭像 發(fā)表于 07-26 08:36 ?244次閱讀
    【出版發(fā)行】<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與<b class='flag-5'>開發(fā)</b>——基于RISC-V和<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>

    專家力薦|《嵌入式系統(tǒng)原理與開發(fā)——基于RISC-V和Linux系統(tǒng)》新書發(fā)售

    當前,嵌入式系統(tǒng)已成為智能設備的核心之一,RISC-V+Linux的開源力量嵌入式系統(tǒng)注入強大
    的頭像 發(fā)表于 07-24 08:20 ?489次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>原理與<b class='flag-5'>開發(fā)</b>——基于RISC-V和<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>》新書發(fā)售

    嵌入式人工智能的就業(yè)方向有哪些?

    網絡編程開發(fā)及實戰(zhàn)下 數(shù)據(jù)庫開發(fā) Linux應用開發(fā)綜合實戰(zhàn) 三:嵌入式Linux
    發(fā)表于 02-26 10:17

    嵌入式軟件開發(fā)應該掌握哪些知識?

    的控制,如GPIO、串口、SPI、I2C 等。這使得嵌入式軟件開發(fā)人員能夠充分利用硬件資源,滿足特定的需求。 1.2數(shù)據(jù)結構與算法 嵌入式系統(tǒng)
    發(fā)表于 02-19 11:23

    嵌入式Linux開發(fā)的三種方式

    嵌入式Linux開發(fā)主要有三種方式:裸機開發(fā)、SDK開發(fā)和驅動開發(fā)。
    的頭像 發(fā)表于 01-22 14:22 ?896次閱讀

    【從0開始創(chuàng)建AWTK應用程序】編譯應用到嵌入式Linux平臺運行

    。搭建Linux平臺交叉編譯環(huán)境在上一文章我們介紹了使用AWTK開發(fā)簡單的應用并在PC上模擬運行,本篇文章就來介紹一下怎么讓應用程序運行在嵌入式L
    的頭像 發(fā)表于 12-07 12:08 ?634次閱讀
    【從0開始創(chuàng)建AWTK應用程序】編譯應用到<b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>平臺運行

    恩智浦i.MX8MM核心板在便攜醫(yī)療設備產品中的應用

    恩智浦i.MX8MM核心板在便攜醫(yī)療設備產品中的應用-電子
    的頭像 發(fā)表于 11-15 14:37 ?504次閱讀
    恩智浦<b class='flag-5'>i.MX8MM</b>核心板在便攜<b class='flag-5'>式</b>醫(yī)療設備產品中的應用