uboot

UBOOT常用命令用法

匿名 (未验证) 提交于 2019-12-02 23:26:52
uboot的命令: (1) help //列出当前uboot所有支持的命令 help 命令 //查看指定命令的帮助 reset //重启uboot (2)bootm //用于启动内核 用法: bootm 0x42000000 //从内存地址0x42000000启动内核, 启动前需把内核镜像uImage存放到指定的内存地址 bootm 用于将内核镜像加载到内存的指定地址处 例: bootm 0x82000000 (3) printenv //打印所有环境变量的值 printenv 环境变量名 //查看指定的环境变量值 常用环境变量: bootdelay // uboot启动后, 倒计时多少秒后自动执行环境变量bootcmd的语句 bootcmd // 倒计时到0后,自动执行里面的语句 bootargs // 是用于提供给内核的启动参数语句 (4) setenv //设置/修改/删除环境变量的值 用法: setenv 环境变量名 //删除指定的环境变量 setenv myargs “hello” //设置环境变量myargs=hello, 如果环境变量没有会创建出来,如果已存则会修改它的值 setenv name value 第1个参数是环境变量的名称。 第2个参数是要设置的值,如果没有第2个参数,表示删除这个环境变量 例: setenv serverip 192.168.1.12/

【Hi3516】 uboot下烧写BSP

匿名 (未验证) 提交于 2019-12-02 23:04:42
setenv serverip xx.xx.xx.xx setenv ipaddr xx.xx.xx.xx setenv ethaddr xx:xx:xx:xx:xx:xx setenv netmask xx.xx.xx.xx setenv gatewayip xx.xx.xx.xx ping serverip,确保网络畅通。   setenv serverip 192.168.1.107 setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 rw mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)' setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000' sa   mw.b 82000000 ff 100000;tftp 0x82000000 u-boot-hi3516ev100.bin;sf probe 0;sf erase 0 100000;sf write 82000000 0 100000 ; reset mw.b 82000000 ff 300000;tftp 82000000 uImage

openwrt(三) 固件的烧录

匿名 (未验证) 提交于 2019-12-02 22:56:40
导航:   方法1: tftp;   方法2: 在线升级   方法3: BIOS烧录 方法1:TFTP   这应该是最万能的一种方法了。TFTP是一种依靠网口传送数据的一种通信协议,没错,只是传输数据,并不是烧录,所以实现烧录这个功能的还是uboot的功能。   准备:机子有uboot。   步骤: 连线。将电脑的网口连上路由器的随便一个口。然后用ssh也好,用串口也好,(我一般用串口),进入到路由器的后台linux系统。 电脑ip设置。 传输: tftp 0x80060000 lede.bin   //0x80060000是flash的固件保存地址,这个根据UNI自己的uboot决定,每个人都不同,可以执行2.2命令查看。lede.bin是我要烧录的文件。 擦除: erase 0x9f050000 +$filesize 拷贝: cp.b 0x80060000 0x9f050000 $filesize 设置启动地址: set bootcmd 0x9f050000;save; 这里可真的是一个坑。我也不知道怎么描述,我的情况是, 当我烧录openwrt15版本的时候,启动地址是0x9f050000 当我烧录lede17版本的时候,启动地址要设置为0x9f800000,才能启动。 启动:boot。 方法2:在线升级   这是最方便的方法了。但是仅仅支持同一版本的系统才行在线更新

uboot网络调试方法

匿名 (未验证) 提交于 2019-12-02 22:56:40
一、硬件简单确认: 1、确认RGMII模式(hi3559A支持RGMII/RMII) 2、phy的地址phy_addr 3、PHY是否有延时电阻(RTL8211有) 4、phy晶振时钟 5、速率1000M clk 125M,100M clk 25M 二、软件确认 1、uboot涉及驱动:drivers/net/higmacv300,PHY配置驱动:drivers/net/phy/realtek.c 2、先看mdio能否扫描到phy,读出的phy id要和phy datasheet一致;同时,读出phyid的addr需要和上面硬件的phy_add一致 3、如果第二步是正确的,那么说明mdio接口和phy已经工作;接下来要检查rgmii接口 4、将板子和笔记本直连:GMAC<―>phy<―>pc 板子ping PC 以及PC ping板子,然后读GMAC和phy的寄存器(读GMAC要自己写,读phy有个mii命令) 可以查看GMAC收发了多少数据,PHY收发了多少数据,从而判断是GMAC发给PHY异常还是PHY发给PC异常,或GMAC接收异常还是PHY接收异常 5、到这一步还是不行,就需要自己写回环测试代码: 一个是GMAC回环:MAC_IF_STAT_CTRL寄存器 第二个PHY回环:BMCR寄存器 6、uboot遇到时通时不通时,将uboot强制成100M速率试试 文章来源:

uboot与Linux内核机器码分析

匿名 (未验证) 提交于 2019-12-02 21:59:42
(注:本文参考资料:朱有鹏嵌入式课程。本文为个人学习记录,如有错误,欢迎指正。) 1. uboot机器码 int board_init(void) { .............................. gd->bd->bi_arch_number = MACH_TYPE_SMDKV210; gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; return 0; } 在uboot启动内核时,将机器码传参至内核。 uboot源码中,也有一个/uboot/arch/arm/include/mach-types.h文件,该文件维护至该版本的uboot所支持的所有机器码。 在uboot启动的start_armboot阶段,调用board_init函数初始化机器码。 //利用寄存器向内核传参r0 = 0, r1 = machid, r2 = bi_boot_params theKernel (0, machid, bd->bi_boot_params); 2. Linux机器码 在内核源码根目录的/arch/arm目录下,每一个“mach-xxx”文件夹代表内核支持的CPU型号;在该文件夹下有多个“mach-xxx.c”文件,每个文件代表内核支持的开发板型号。在每个“mach-xxx.c”文件的末尾,都利用MACHINE

为什么要有uboot?

[亡魂溺海] 提交于 2019-12-02 10:36:46
一、为什么要有uboot 1.1、计算机系统的主要部件 (1)计算机系统就是以CPU为核心来运行的系统。典型的计算机系统有:PC机(台式机+笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电饭锅、空调) (2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU + 外部存储器(Flash/硬盘) + 内部存储器(DDR SDRAM/SDRAM/SRAM) 1.2、PC机的启动过程 (1)部署:典型的PC机的BIOS程序部署在PC机主板上(随主板出厂时已经预制了),操作系统部署在硬盘上,内存在掉电时无作用,CPU在掉电时不工作。 (2)启动过程:PC上电后先执行BIOS程序(实际上PC的BIOS就是NorFlash),BIOS程序负责初始化DDR内存,负责初始化硬盘,然后从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS就无用了) 1.3、典型嵌入式linux系统启动过程 (1)典型嵌入式系统的部署:uboot程序部署在Flash(能作为启动设备的Flash)上、OS部署在FLash(嵌入式系统中用Flash代替了硬盘)上、内存在掉电时无作用,CPU在掉电时不工作。 (2)启动过程:嵌入式系统 上电后先执行uboot 、然后uboot负责初始化DDR

ZYNQ UBOOT主要文件简介

倖福魔咒の 提交于 2019-12-02 06:48:44
u-boot中几个关于配置信息的文件夹 u-boot-xlnx/configs文件夹 该文件夹中存在zynq_zed_defconfig,该文件用于配置板卡的功能。 u-boot-xlnx/include/configs文件夹 该文件夹下的zynq_common.h 可在内部修改uboot烧写到flash中的位置,以及程序load位置 u-boot-xlnx/arch/arm/dts文件夹 该文件下存在zynq-zed.dts 即ZED的设备树文件 u-boot-xlnx/arch/arm/mach-zynq文件夹 该文件夹下的Kconfig 文件。 ———————————————— 版权声明:本文为CSDN博主「QUIZ_csdn」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/liuxiuqi19860119/article/details/84729350 来源: https://blog.csdn.net/weixin_43048906/article/details/102732927

uboot初步-01

时光怂恿深爱的人放手 提交于 2019-12-01 15:39:41
步骤: 1、选择合适的uboot版本 2、uboot修改 3、交叉编译出bin文件 4、烧写到SD卡或flash中 uboot的版本选择 在uboot中IP内核称为CPU 内核外围的各种外设称为broad 可在S5PV210上参考使用的uboot版本:goni 中断和异常的区别: 中断可以被cpu忽略,但是异常必须被执行 异常的优先级高于中断。 异常的类型: 1、undefined_instruction 未定义指令 2、software_interrupt 软中断 3、prefetch_abort 预取值中止 4、data_abort 数据中止 5、irq 普通中断 6、fiq 快中断 uboot之SPL:   u-boot基本大小在200KB左右,而S5PV210的内部SRAM只有96KB,因此将u-boot做为两个镜像:u-boot.bin uboot_spl.bin。uboot_spl.bin(BL1)载入内部SRAM中运行(同时初始化外部SDRAM),然后将u-boot的大头u-boot.bin直接加载到外部SDRAM中,最后由内部SRAM跳转到外部SDRAM内存中u-boot.bin的首地址去运行。 PL0(Privilege mode 0)    usr模式:处理器正常的程序执行状态 PL1            sys模式              

《uboot网卡驱动分析》

允我心安 提交于 2019-12-01 15:26:36
1、MAC控制器、网卡、PHY、MDIO、mii、gmii、rgmii概念扫盲 网卡在功能上包含OSI模型的两个层,数据链路层和物理层。物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。 网卡中负责数据链路的芯片叫做MAC控制器 , 负责物理层的芯片叫做PHY 。所以, 一个网卡由MAC控制器和PHY组成 。    MAC控制器与PHY连接使用MII (Medium independent interface)媒体独立接口,这个接口是IEEE-802.3定义的以太网行业标准定义的接口,包括一个数据接口和一个MAC和PHY之间的管理接口即MDIO。MII标准接口用于连接MAC和PHY,媒体独立表示不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备接到当前MAC控制器上都可以正常工作。   MII支持10M和100M的网络速率,由于网卡的速率不同,所以在其他速率下工作的与MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。此外还有RMII、RGMII、SMII、SGMII等。所有这些接口都是由MII而来。MII支持10兆和100兆的操作