迅為i.mx8mm開發(fā)板特點:
性能強:i.MX8MM處理器采用了先進(jìn)的14LPC FinFET工藝,提供更快的速度和更高的電源效率;四核Cortex-A53,單核Cortex-M4,多達(dá)五個內(nèi)核 ,主頻高達(dá)1.8GHz,2G DDR4內(nèi)存、8G EMMC存儲。
PMIC:采用PCA9450A電源管理,是NXP全新研制配套iMX.8M的電源管理芯片,有六個降壓穩(wěn)壓器、五個線性穩(wěn)壓器和一個負(fù)載開關(guān),為整個系統(tǒng)的穩(wěn)定運行提供了更可靠的保證。
接口豐富:千兆工業(yè)級以太網(wǎng)、MIPI-DSI、USB HOST、WIFI/BT、4G模塊、CAN、RS485等接口一應(yīng)俱全。
編解碼:H264、VP8視頻硬編碼,H.264、H.265、VP8、VP9視頻硬解碼, 并提供相關(guān)歷程。
支持音頻: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模塊方法,并帶大家一步步調(diào)試;
率先提供如何通過SD卡啟動Linux鏡像,例如yocto debian ubuntu等文件系統(tǒng); 教大家如何將驅(qū)動編譯進(jìn)內(nèi)核源碼; 根據(jù)IMX8MM開發(fā)板的原理圖總結(jié)了引腳信息,方便大家查閱~
售后服務(wù):提供在線技術(shù)支持答疑,并協(xié)助用戶檢查原理圖,提供詳細(xì)的硬件設(shè)計指導(dǎo)文檔等服務(wù)。
迅為品質(zhì):通過電磁兼容、電磁輻射標(biāo)準(zhǔn)檢測、安規(guī)檢測、高低溫環(huán)境檢測等,確保產(chǎn)品的可靠性。
7*24小時長期穩(wěn)定運行。10年以上供貨周期長,批量無優(yōu)。
行業(yè)應(yīng)用:適用于智能充電樁、物聯(lián)網(wǎng)、工業(yè)控制、醫(yī)療、智能交通等,可用于任何通用工業(yè)和物聯(lián)網(wǎng)應(yīng)用。

公眾號:迅為電子
-----------------------------------------------
69.1 編譯腳本分析
在第六十七章的內(nèi)容里面,我們編譯生成了 flash.bin 文件,在生成 flash.bin 文件的過程中,我們是手動輸入命令生成的,但是為了加快測試速度,我們本章節(jié)要編寫一個自動化腳本。
在第六十七章節(jié),我們已經(jīng)下載了 NXP 官方提供的 uboot 源碼,本章節(jié)我們要將此源碼移植到迅為 iTOP-IMX8MM 開發(fā)板上。在/home/topeet/bsp_kernel_imx 目錄下新建一個編譯腳本 build.sh。
69.2 增加 bin 文件
將網(wǎng)盤資料里面“iTOP-i.MX8MM 開發(fā)板\02-i.MX8MM 開發(fā)板網(wǎng)盤資料匯總(不含光盤內(nèi)容)\嵌入式 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)壓器和一個負(fù)載開關(guān),為整個系統(tǒng)的穩(wěn)定運行提供了更可靠
的保證。接下來我們需要在 uboot 源碼中配置好電源管理芯片。
1 首先在默認(rèn)的 uboot 設(shè)備樹中進(jìn)行配置,打開
/home/topeet/bsp_kernel_imx/bsp_kernel_imx/uboot-imx/arch/arm/dts/fsl-imx8mm-evk.dts 文件,將默認(rèn)的電
源管理芯片注釋掉,替換為 pca9450。修改為如下圖所示:

2 然后修改 pmic 的驅(qū)動 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,
然后輸入以下命令,將默認(rèn)的配置文件覆蓋.config 文件。
make imx8mm_ddr4_evk_defconfig

69.4 配置 otg 燒寫
打開設(shè)備樹文件 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 修改默認(rèn)的配置文件
源碼默認(rèn)的配置文件是 uboot-imx/configs/imx8mm_ddr4_evk_defconfig,我們修改此文件,我們將
DEFAULT_FDT_FILE 修改為 itop8mm-evk.dtb,如下圖所示:DEFAULT_FDT_FILE 是設(shè)置內(nèi)核默認(rèn)的設(shè)備樹文件。
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 +網(wǎng)盤默認(rèn)提供的 rootfs.sdcard 鏡像,如果 uboot 可以正常啟動內(nèi)核
鏡像,說明 uboot 移植成功。Uboot 啟動如下圖所示:

接下來的章節(jié)我們來學(xué)習(xí)移植內(nèi)核。
-
嵌入式
+關(guān)注
關(guān)注
5150文章
19665瀏覽量
317452 -
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213748 -
Uboot
+關(guān)注
關(guān)注
4文章
129瀏覽量
29089
發(fā)布評論請先 登錄
飛凌嵌入式ElfBoard ELF 1板卡-Uboot
嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式
飛凌嵌入式i.MX8M Mini核心板已支持Linux6.1

嵌入式開發(fā)必備-RK3562演示Linux常用系統(tǒng)查詢命令(上)觸覺智能出品

嵌入式 Linux 操作系統(tǒng)配置
北京迅為RK3568開發(fā)板嵌入式學(xué)習(xí)之Linux驅(qū)動全新更新-CAN+

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

嵌入式linux開發(fā)的基本步驟有哪些?
【北京迅為】《i.MX8MM嵌入式Linux開發(fā)指南》-第四篇 嵌入式Linux系統(tǒng)移植篇-第六十七章 Uboot編譯及移植

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

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

評論