(二)正点原子I.MX6ULL u-boot移植

一、概述

        这里使用的是NXP官方2022.04发布的uboot,移植到正点原子阿尔法开发板(v2.1)

        u-boot下载:git@github.com:nxp-imx/uboot-imx.git

        移植是基于NXP的mx6ull_14x14_evk

二、编译NXP官方uboot

        进入NXP的u-boot目录

         先在Makefile里把CROSS_COMPILE改了       

        打开终端

make mx6ull_14x14_evk_defconfig

make -j16

        

三、添加开发板

        这一步基本上和正点原子里的教程是一样的,把板子文件给复制一下

make distclean
cp configs/mx6ull_14x14_evk_defconfig configs/mx6ull_alientek_defconfig
cp board/freescale/mx6ullevk/ board/freescale/mx6ull_alientek -rf
cp arch/arm/dts/imx6ull-14x14-evk.dts arch/arm/dts/imx6ull-alientek.dts
cp arch/arm/dts/imx6ul-14x14-evk.dtsi arch/arm/dts/imx6ull-alientek.dtsi
cp arch/arm/dts/imx6ul-14x14-evk-u-boot.dtsi arch/arm/dts/imx6ull-alientek-u-boot.dtsi

cp include/configs/mx6ullevk.h include/configs/mx6ull_alientek.h
cd board/freescale/mx6ull_alientek/
mv mx6ullevk.c mx6ull_alientek.c

1.修改mx6ull_alientek_defconfig

打开configs/mx6ull_alientek_defconfig,第10行和第14行

CONFIG_TARGET_MX6ULL_14X14_EVK=y

CONFIG_DEFAULT_DEVICE_TREE="imx6ull-14x14-evk"

修改为:

CONFIG_TARGET_MX6ULL_ALIENTEK=y
CONFIG_DEFAULT_DEVICE_TREE="imx6ull-alientek"

2.修改 board文件夹文件

打开board/freescale/mx6ull_alientek/Kconfig

第一行改为刚才defconfig里一样的TARGET即可

if TARGET_MX6ULL_14X14_EVK || TARGET_MX6ULL_9X9_EVK

改为:

if TARGET_MX6ULL_ALIENTEK

第12行,修改路径

config IMX_CONFIG
    default "board/freescale/mx6ullevk/imximage.cfg"

修改为:

config IMX_CONFIG
    default "board/freescale/mx6ull_alientek/imximage.cfg"

打开MAINTAINERS

F:    board/freescale/mx6ullevk/
F:    include/configs/mx6ullevk.h
F:    configs/mx6ull_14x14_evk_defconfig
F:    configs/mx6ull_14x14_evk_plugin_defconfig
F:    configs/mx6ulz_14x14_evk_defconfig

修改为:

F:    board/freescale/mx6ull_alientek/
F:    include/configs/mx6ull_alientek.h
F:    configs/mx6ull_mx6ull_alientek_defconfig

打开Makefile

obj-y := mx6ullevk.o

修改为:

obj-y := mx6ull_alientek.o

imximage_lpddr2.cfg和imximage.cfg的 34行和33行那个路径,全都改成当前板子路径:board/freescale/mx6ull_alientek/plugin.bin

3.修改Kconfig

        打开arch/arm/mach-imx/mx6/Kconfig,找到第615行的config TARGET_MX6ULL_14X14_EVK

config TARGET_MX6ULL_14X14_EVK
    bool "Support mx6ull_14x14_evk"
    depends on MX6ULL
    select BOARD_LATE_INIT
    select DM
    select DM_THERMAL
    select IMX_MODULE_FUSE
    select OF_SYSTEM_SETUP
    imply CMD_DM

复制一份,粘贴到它后面,然后修改如下:

config TARGET_MX6ULL_ALIENTEK
    bool "Support mx6ull_alientek"
    depends on MX6ULL
    select BOARD_LATE_INIT
    select DM
    select DM_THERMAL
    select IMX_MODULE_FUSE
    select OF_SYSTEM_SETUP
    imply CMD_DM

找到第873行:

source "board/freescale/mx6ullevk/Kconfig"

复制一份,然后改成alientek板子路径:

source "board/freescale/mx6ull_alientek/Kconfig"

打开include/configs/mx6ull_alientek.h

在第235行前加入:

#define	CONFIG_PHY_SMSC
#define	CONFIG_CMD_MII

做完以上这些,就将板子添加进去了,可以尝试编译一下:

make distclean
make mx6ull_alientek_defconfig
make -j16

        打开mx6ull_alientek.c,找到checkboard函数,修改成阿尔法开发板:

int checkboard(void)
{
	puts("Board: MX6ULL ALIENTEK ALPHA\n");

	return 0;
}

        

四、修改设备树

        所谓移植,其实就是改设备树,而且正点原子基本参照着NXP官方板子做的,没什么太多特别的地方需要改,主要是网络驱动

1.imx6ull-alientek.dts

        把include引用改为我们复制好的,注意一下自己的是imx6ull还是imx6ul,官方这里两个都是imx6ul

#include "imx6ul-14x14-evk.dtsi"

#include "imx6ul-14x14-evk-u-boot.dtsi"

修改为

#include "imx6ull-alientek.dtsi"

#include "imx6ull-alientek-u-boot.dtsi"

2.imx6ull-alientek.dtsi

        这个就是移植的主阵地,最主要的还是网络驱动,正点原子使用的LAN8720(V2.1及之前的版本)

        找到fec2节点:ethphy0是fec0,地址改为0,ethph1是fec2,地址改为1,修改后如下:

&fec2 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_enet2>;
	phy-mode = "rmii";
	phy-handle = <&ethphy1>;
	status = "okay";

	mdio {
		#address-cells = <1>;
		#size-cells = <0>;

		ethphy0: ethernet-phy@0 {
			reg = <0>;
			micrel,led-mode = <1>;
			clocks = <&clks IMX6UL_CLK_ENET_REF>;
			clock-names = "rmii-ref";
		};

		ethphy1: ethernet-phy@1 {
			reg = <1>;
			micrel,led-mode = <1>;
			clocks = <&clks IMX6UL_CLK_ENET2_REF>;
			clock-names = "rmii-ref";
		};
	};
};

然后按照正点原子的教程,修改drivers/net/phy/phy.c

        如果是emmc的板子,再修改一下usdhc2,不改也能用:

&usdhc2 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz";
	pinctrl-0 = <&pinctrl_usdhc2_8bit>;
	pinctrl-1 = <&pinctrl_usdhc2_8bit_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc2_8bit_200mhz>;
	bus-width = <8>;
	non-removable;
	no-1-8-v;
	broken-cd;
	keep-power-in-suspend;
	wakeup-source;
	status = "okay";
};

打开imx6ull-alientek.dts

修改一下model和compatible(不改也没事,只是打印输出一个信息而已)

/ {
	model = "I.MX6ULL Alientek ALPHA ";
	compatible = "fsl,imx6ull-alientek", "fsl,imx6ull";
};

至此,uboot的移植就结束了,设备树里不需要用到的东西删掉即可。

可以看到输出Model:I.MX6ULL Alientek ALPHA

Board:MX6ULL ALIENTEK ALPHA

        测试一下网络:先配置网络

setenv ipaddr 192.168.1.3
setenv eth1addr 00:01:02:03:04:05
setenv netmaks 255.255.255.0
setenv serverip 192.168.1.2
saveenv

        然后ping一下电脑

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/135454.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过设置响应头解决跨域问题

网上很多文章都是告诉你直接Nginx添加这几个响应头信息就能解决跨域&#xff0c;当然大部分情况是能解决&#xff0c;但是我相信还是有很多情况&#xff0c;明明配置上了&#xff0c;也同样会报跨域问题。 这大概率是因为&#xff0c;服务端没有正确处理预检请求也就是OPTIONS请…

Word 插入的 Visio 图片显示为{EMBED Visio.Drawing.11} 解决方案

World中&#xff0c;如果我们插入了Visio图还用了Endnote&#xff0c; 就可能出现&#xff1a;{EMBED Visio.Drawing.11}问题 解决方案&#xff1a; 1.在相应的文字上右击&#xff0c;在出现的快捷菜单中单击“切换域代码”&#xff0c;一个一个的修复。 2.在菜单工具–>…

配置交换机将Log发送到日志服务器

文章目录 一、配置说明二、配置步骤推荐阅读 一、配置说明 配置将实现如下&#xff1a; 配置交换机将Log发送到日志服务器。 将信息等级高于等于 debug 的日志信息将会发送到日志服务器上。 允许输出日志信息的模块为default所有应用模块日志信息。 SW1为我们日志源交换机…

【Redis】redis的下载安装

目录 1.window安装 2.Linux安装 下载 解压 移动redis目录 编译 1.window安装 在github 下载redis的安装包 https://github.com/microsoftarchive/redis/releases 下载完后安装相应的目录下&#xff0c;比如我是放在c盘的Program Files下 开启redis&#xff0c;双击运行…

CCF ChinaSoft 2023 论坛巡礼|程序设计教育论坛

2023年CCF中国软件大会&#xff08;CCF ChinaSoft 2023&#xff09;由CCF主办&#xff0c;CCF系统软件专委会、形式化方法专委会、软件工程专委会以及复旦大学联合承办&#xff0c;将于2023年12月1-3日在上海国际会议中心举行。 本次大会主题是“智能化软件创新推动数字经济与社…

SQL练习---511.游戏玩法分析 I

题目描述 分析 题目描述很简单&#xff0c;找出用户第一次登陆的时期&#xff0c;很简单一个用户有多个记录&#xff0c;因此按用户分组即可&#xff0c;但是不知道日期能否求出最小值&#xff0c;事实证明还是可以的。 题解 select player_id,min(event_date) first_login f…

Linux的命令——关于操作用户及用户组的命令

目录 1.Linux的命令格式 2.用户与用户组管理 2.1用户管理 添加用户 设置用户密码 删除用户 修改用户 2.2用户组管理 新增用户组 删除用户组 修改用户组属性 用户组切换 用户组管理 用户切换 1. su 2.sudo 1.Linux的命令格式 Linux系统中几乎所有操作&#xff0…

基于STM32控制直流电机加减速正反转仿真设计

**单片机设计介绍&#xff0c;基于STM32控制直流电机加减速正反转仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 本设计由STM32F103、L298N电机驱动电路、按键电路组成。通过按键可以控制电机&#xff0c;正转、反转、加…

8年经验之谈 —— 接口测试框架中的鉴权处理!

接口自动化测试中通常都有鉴权机制&#xff0c;就是判断是否在登录状态下&#xff0c;已登录方可调用接口&#xff0c;未登录则不可调用。本文将带领大家学习使用rest-assured框架实现基于cookies和token的鉴权关联&#xff0c;实现接口自动化测试。 1、基于cookies的鉴权关联…

Http状态码502常见原因及排错思路(实战)

Http状态码502常见原因及排错思路 502表示Bad Gateway。当Nginx返回502错误时&#xff0c;通常表示Nginx作为代理服务器无法从上游服务器&#xff08;如&#xff1a;我们的后端服务器地址&#xff09;获取有效的响应。导致这种情况的原因有很多&#xff1a; 后端服务器故障ngin…

基于SpringBoot+Vue的博物馆管理系统

基于springbootvue的博物馆信息管理系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBootMyBatisVue工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录界面 管理员界面 用户界面 摘要 基于SpringBoot和Vue的博物馆…

vue3响应式api

响应式api——compositon api setup&#xff1a; 不要再想this问题执行是在beforeCreated之前 beforeCreated&#xff1a;也就是创建了一个实例 created&#xff1a;挂载了数据 通过形参props接收&#xff0c;只读 以后所有代码都写到setup中 判断是否只读&#xff1a;isReadon…

lc228. 汇总区间

暴力解法&#xff1a;遍历数组&#xff0c;判断数组是否连续递增。将连续递增的数据的首尾的数据分别存储在map集合的key和value之中&#xff0c;输出时判断首尾值是否相同采用两种方式输出 复杂度分析 时间复杂度&#xff1a;O(n)&#xff0c;其中 n 为数组的长度。空间复杂…

2023亚太杯数学建模A题思路

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

【LeetCode】每日一题 2023_11_12 每日一题 Range 模块

文章目录 刷题前唠嗑题目&#xff1a;Range 模块题目描述代码与解题思路 刷题前唠嗑 LeetCode? 启动&#xff01;&#xff01;&#xff01; 嗯&#xff1f;怎么是 hard&#xff0c;好长&#xff0c;可恶&#xff0c;看不懂&#xff0c;怎么办 题目&#xff1a;Range 模块 题…

线索二叉树(存储结构,线索化,寻找前驱/后继)

目录 1.线索二叉树1.中序线索二叉树2.后序线索二叉树3.先序线索二叉树 2.线索二叉树的存储结构3.二叉树的线索化1.中序线索化2.先序线索化3.后序线索化 4.寻找前驱/后继1.中序线索二叉树找后继2.中序线索二叉树找中序前驱3.先序线索二叉树找先序后继4.先序线索二叉树找先序前驱…

[pipe-自写管道] 强网拟态2023-water-ker

程序分析 保护当然都开了, 题目给了一次增加, 释放, 修改一字节堆块的能力, 这里释放堆块后没有将其指针置空从而导致了 UAF. 漏洞利用 这里的堆块大小为 512 字节并是 SLAB_ACCOUNT, 所以可以直接利用管道去构造自写管道从而构造任意读写系统, 详细见大佬博客:【CTF.0x08】D…

Spring学习笔记——AOP(4)

Spring学习笔记——AOP&#xff08;4&#xff09; 一、学习AOP1.1 AOP的概述1.2 AOP思想实现方案1.3、模拟AOP的基础代码1.4、AOP的相关概念 二、基于xml配置AOP2.1 AOP基础入门2.2、XML方式AOP配置详解2.3、XML方式AOP原理剖析 三、注解式开发AOP3.1 注解式开发AOP入门3.2 AOP…

SpringBoot原理

1配置优先级&#xff1a; SpringBoot项目当中支持的三类配置文件&#xff1a; application.properties application.yml application.yaml配置文件优先级排名&#xff08;从高到低&#xff09;&#xff1a; 1. properties配置文件 2. yml配置文件 3. yaml配置文件在SpringBoot…

Java常用设计模式(23种)

文章目录 介绍 设计模式的六大原则 一、创建型模式 1、单例模式&#xff08;Singleton Pattern&#xff09; 1&#xff09;饿汉式 2&#xff09;懒汉式&#xff0c;双检锁 3&#xff09;静态内部类 4&#xff09;枚举 2、原型模式&#xff08;Prototype Pattern&#xff09…