首页 > 其他分享 >Uboot移植

Uboot移植

时间:2024-03-21 20:22:28浏览次数:31  
标签:uboot 芯片 PHY u32 Uboot CONFIG arm 移植

一个开发板运行uboot,DDR或者DRAM,串口,SD/EMMC等驱动要存在。这些基本要和原厂一样的   nxp官方uboot下载地址:https://github.com/Freescale/u-boot-fslc nxp官方imx6系统板子介绍:https://www.nxp.com/products/processors-and-microcontrollers/arm-processors/i-mx-applications-processors/i-mx-6-processors:IMX6X_SERIES   nxp官方uboot执行结果: 1、uboot能正常启动,串口和SD/EMMC工作正常 2、LCD需要修改 3、网络需要调试  

uboot中添加新的开发板

1、添加板子默认配置文件

添加编译脚本:make_alentek.sh make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_alentek_defconfig make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 添加_defconfig文件:mx6ull_14x14_evk_emmc_alentek_defconfig CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6ullevk_alentek/imximage.cfg,MX6ULL_EVK_EMMC_REWORK" CONFIG_ARM=y CONFIG_ARCH_MX6=y CONFIG_TARGET_MX6ULL_14X14_ALENTEK=y CONFIG_CMD_GPIO=y 注:.imx文件在.bin文件加的头部信息就是在imximage.cfg中,也就是初始化时钟、DDR等操作  

2、添加板级文件

board/freescale目录下添加:mx6ullevk_alentek/imximage.cfg arch/arm/cpu/armv7/mx6/Kconfig汇总全部Kconfig配置文件,在 Kconfig 文件中,"source" 命令用于引入其他 Kconfig 文件的内容  

3、Uboot LCD驱动修改

1、确定LCD IO初始化正确 2、LCD参数,fb_videomode表示RGBLCD屏的参数 struct fb_videomode { const char *name; /* optional */ u32 refresh; /* optional */ u32 xres; u32 yres; u32 pixclock; u32 left_margin; u32 right_margin; u32 upper_margin; u32 lower_margin; u32 hsync_len; u32 vsync_len; u32 sync; u32 vmode; u32 flag; }; 3、修改环境变量panel printenv panel 命令用于打印名为 "panel" 的环境变量的值,panel环境变量表示LCD ID  

4、Uboot网络驱动修改

GMAC和PHY基础知识可参考:https://www.cnblogs.com/lethe1203/p/18088155

正点原子以太网网络方案: IMX6UL/ULL内部有个以太网MAC外设,也就是ENET,需要外接一个PHY芯片来实现网络通信功能,也就是内部MAC+外部PHY芯片方案,一般CPU内部的MAC是带有一个专用的DMA 6ULL官方开发板使用的PHY芯片及时KSZ081,正点原子使用的PHY芯片为LAN8720A。因为需要在uboot网络驱动 硬件原理图如下: 0 LAN8720有一个管理接口,称为MDIO,两根线,MDIO和MDC,一个MDIO接口可以管理32哥PHY芯片,MDIO通过PHY ADDR来决定访问哪一个PHY芯片,ENET1的PHY ADDR是0x0,ENET2的PHY ADDR是0x2。每个LANE8720都有一个复位引脚。 IEEE802.3规定1了地址0-15共16个寄存器的功能,因此就存在通用PHY芯片。因此uboot里面已经写好了通用PHY驱动,所以理论上不需要修改 修改ENET2 网络驱动的话重点就三点
  • ENET2 复位引脚初始化
  • LAN8720A 的器件 ID
  • LAN8720 驱动
  通过ping主机和网络下载来测试网络功能是否正常      

标签:uboot,芯片,PHY,u32,Uboot,CONFIG,arm,移植
From: https://www.cnblogs.com/lethe1203/p/18088180

相关文章

  • Uboot启动Linux内核
    参考资料来源:https://www.bilibili.com/video/BV12E411h71h?p=22&vd_source=432ba293ecfc949a4174ab91ccc526d6正点原子Linux驱动开发指南 image全局变量:在bootm.c中,存在一个全局变量bootm_headers_timages;/*pointerstoos/initrd/fdtimages*/结构体定......
  • 飞凌RK3568开发板移植Qt5.9.8
    1、安装Ubuntu18.04虚拟机,并开启root登录2、gcc环境搭建从官方提供的网盘资料OK3568-C_ForlinxDesktop20.04_用户资料_R3(更新日期:20231201),解码\Linux\源码\OK3568-linux-source,在prebuilts文件夹将gcc拷贝到虚拟机(Ubuntu18.04)的/usr/local目录下 设置环境变量,修改/etc/pr......
  • Uboot Makefile分析(一)
    学习资料来源:https://www.bilibili.com/video/BV12E411h71h?p=11&vd_source=432ba293ecfc949a4174ab91ccc526d6 VERSION=2016PATCHLEVEL=03SUBLEVEL=EXTRAVERSION=NAME=版本信息 MAKEFLAGS+=-rR--include-dir=$(CURDIR)+=表示追加,-rR表示禁止......
  • Uboot功能
    Uboot功能Uboot(Universalbootloader)就是一个裸机程序,用于启动内核。不过相较于单片机程序更加复杂相关知识补充Uboot:UniversalbootloaderXIP:CPU可以直接发出地址信号读取Flash/RAM,执行指令(可以看成直接在Flash/RAM中运行);此类Flash/RAM称为XIP设备非XIP:有时程序从SD卡......
  • Uboot命令的使用
    学习资料:https://www.bilibili.com/video/BV12E411h71h?p=6&vd_source=432ba293ecfc949a4174ab91ccc526d6https://blog.csdn.net/x777777x/article/details/136444785 记录一次uboot启动log打印:U-Boot2016.03(Mar182024-01:07:08+0800)//编译时间2024/03/180......
  • STM32_LVGL移植流程及注意事项
    STM32——LVGL移植流程及注意事项下载源码(lvgl8.2):点击git下载.源码精简lvgl-8.2​|build:使用Cmake工具编译的相关文件​|demos:lvgl官方的测试demos​|docs:lvgl文档​......
  • Uboot基本知识
    c参考视频:https://video.100ask.net/p/t_pc/course_pc_detail/column/p_63ff16eae4b07b055838a303Uboot本质上就是一个裸驱 Uboot基本概念:uboot就是一个bootloader,作用就是用于启动linuxkernel或者其他系统。uboot最主要的工作就是初始化DDR,因为linux是运行在DDR里面的。对......
  • stm32F103 移植Free RTOS
    #stm32F103移植FreeRTOS1.下载FreeRTOS源码[官网下载](http://www.freertos.org)[代码托管网站下载](https://sourceforge.net/projects/freertos/files/FreeRTOS)2.FreeRTOS文件介绍进入Source文件夹进入portable文件夹进入RVDS3.FreeRTOS移......
  • STM32移植完FATFS的ROM不够解决方法
    1.移植完FatFs之后会有语言包的支持,在map文件中也可以查看到也就是cc936.c这个文件现在cc936占用ROM大约为175030,在本项目中不需要中文支持所以取消掉即可,取消方法如下第一种方法(通过CubeMX配置的代码)不要使能中文文件名称就好了,记得改这个 第二种方法(库函数或者HAL库没有......
  • RT-THREAD的STM32F4系列移植
    RT-Thread:RT-Thread,全称是RealTime-Thread,顾名思义,它是一个嵌入式实时多线程操作系统,基本属性之一是支持多任务,但允许多个任务同时运行并不意味着处理器在同一时刻真的执行了多个任务。事实上,一个处理器核心在某一时刻只能运行一个任务,由于每次对一个任务的执行时间很短、任务......