uboot如何配置
① uboot的/include/configs下的配置文件需要自己写么
uboot的传入参数写死,不是写在内核中。你将你的参数写到/uboot/include/configs/xxx.config ,就不需要再在启动uboot后设置环境变量了。
② 如何在UBOOT代码中进行内存配置
下载完要写入,不是边下边写入。
写入uboot时需要运行本地代码,此时必须让东西放在内存盘才能分区、格式化闪存而不会影响到下载来的uboot。
③ rootfs.cpio怎样设置uboot启动参数
这一问题来自项目中一个实际的需求: 我需要在linux启动之后,确认我指定的芯片寄存器是否与我在uboot的配置一致。 举个例子: 寄存器地址:0x20000010负责对DDR2的时序配置,该寄存器是在uboot中设置,现在我想在Linux运行后,读出改寄存器的值...
④ 如何配置uboot的默认网关
首先做的是执行这样一条指令
例如:
make s3c2440_config
这条指令实际上是指向了一条更长的指令
这条指令在uboot根目录下的makefile中自己定义的,跟你的开发板相关;
s3c2440_config:unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t s3c2440 NULL s3c24x0
这条指令指向的执行文件是MKCONFIG
通过阅读MKCONFIG 文件源码我们可以看出。MKCONFIG有如下作用
第一:确定开发板的名字就是BOARD_NAME
-n) shift ; BOARD_NAME =" ${1%%_config}";shift;;
第二:创建到平台/开发板的头文件的链接
ln -s asm-$2 asm
$2 便是我们第一条指令传递出来的arm,
还有如下代码
ln -s ${LNPREFIX}arch-$6 asm-$2/arch
这样s3c24x0也发挥作用了。
第三:创建顶层Makefile包含的文件include/config.mk
第四:创建开发板相关的头文件 include/config.h
在config.h这个文件里,存放的是开发板的配置信息。
只有以下两类宏
(1)一类是选项CONFIG开头,用来选择CPU,SOC,开发板类型,设置系统时钟,选择设备驱动
(2)另一类是参数 用CFG来开头,如设置malloc缓冲池的大小,U-boot的提示符,u-boot下载文件的默认加载地址,flash的起始地址。
开发板的第一个参数,将编译文件分别指向了/board/$board_name and cpu/$cpu/
所以才会产生如下的编译结果。
(1)首先编译/board/$board_name/start.S,对于不同的CPU,还可能编译cpu/$(CPU)下的其他文件。
(2)然后,对于平台/开发板相关的每个目录、每个通用目录都使用它们各自的Makefile生成相应的库。
(3)将1,2步骤生成的.o、.a文件安装board/$(BOARDDDIR)/U-boot.lds连接脚本进行连接。
(4)第3步得到的是ELF格式的u-boot,后面Makefile还会将它转换为二进制格式,s_Record格式。
⑤ 天嵌mx6怎样查看uboot的配置信息命令
这个说明你的硬件连接是好的,出现这个原因是因为NOR FLASH里边没有烧入uboot,所以不能反馈信息到CRT上。
具体是使用JTAG来烧写固件程序,然后从nor flash启动之后就会有串口输出信息到CRT上了。
具体操作方法在天嵌给的资料上边有。
⑥ uboot 设置内存容量
在uboot/include/configs/yourBoard.h中有类似于
#define CONFIG_NR_DRAM_BANKS 1
#define PHYS_SDRAM 0x20000000
#define PHYS_SDRAM_SIZE 0x2000000 /* 32 megs */
每一种board定义有所区别 我贴出来的是AT91RM9200DK的。
⑦ 如何修改uboot环境变量,pf0100np怎么配置成f0
你好,那个文档里面没有uboot参数吗?我现在能进系统了,进入了linux的文字界面,但是hdmi没有显示,请问是uboot环境设置问题还是硬件问题,我是按附件设置sd3启动。
⑧ linux怎么进入uboot菜单
linux下的dnw配置步骤以下:1
下载源码
源码:dnw_linux
这个是在1个论坛上搜到的,这个不需要注册,就能够免费下载奥,感谢作者的辛苦劳动和忘我的奉献精神,呵呵...2
解压这个下载完以后是rar格式的,还得到windows下解压。解压后到linux下便可。其中secbulk.c是pc端usb驱动,
dnw.c是写入工具。3
编译并加载secbulk模块$cd
secbulk$make
-c
/lib/moles/`uname
-r`/build
m=`pwd`
moles编译成功后在当前目录下可以看到secbulk.ko
用insmod命令加载模块,这需要root权限$sudo
insmod
./secbulk.ko4
编译dnw写入工具$gcc
-o
dnw
dnw.c编译成功后生成可履行dnw5
使用dnw下载使用方式和windows下基本1致。在终端下输入相应的uboot命令,当出现“usb
host
is
connected.
waiting
a
download.”时,在pc端linux上用dnw工具写入要下载的文件便可。切换到root权限,履行dnw下载.$./dnw
/path注:这个/path就是所要下载的文件的路径及名称,例:/home/linux⑵.6.30.4/arch/arm/boot/zimage写入完成后提示成功100%
xxxxxxx
bytes
ok可以把编译好的dnw拷贝到/usr/sbin下或是usr/bin下,以后使用就直接使用dnw
/path
便可。至此,完成内核的下载,下载文件系统一样的方法便可。注意:注意:有时候由于内核的升级,运行时会提示can
not
open
/dev/secbulk0的毛病,此时需要重新到secbulk目录履行$make
-c
/lib/moles/`uname
-r`/build
m=`pwd`
moles,然后加载模块$sudo
insmod
./secbulk.ko便可!
⑨ uboot怎么查找ddr的配置文件
如果因为uboot或者内核有错误而导致启动失败,出现卡死状态等,那么需要判断问题是出在uboot阶段还是linux阶段,这可以通过观察启动过程中的debug信息来判断,
如果uboot出现问题是比较麻烦的,因为这需要有一个装有正确的uboot/bootloader的flash芯片作为引导,
将系统重新引导至uboot界面中,之后再重新烧写uboot到系统本身的flash中,进而烧写内核(如有必要)。
一,重新烧写uboot
首先需要一个特定的PCLL(flash芯片),这个PCLL上固化了一个正确的bootloader, 通过这个bootloader可以成功进入bootloader界面, 在此条件下重新烧写uboot/bootloader。
使用此PLCC的步骤是:
在系统下电情况下, 使用跳线/拨码开关等将此系统的启动方式变从外部flash(即PLCC)引导,
之后将系统上电, 这时会从PLCC 启动。
启动成功后,进入uboot界面, 即命令行显示Dream 5220# #(类似命令行提示符)
此时将版卡的启动方式变为 从 nor flash 启动。 之后重新烧写uboot到此nor flash 上。
再用 kermit 来操作。
Kermit是一个串口服务工具,类似与minicom ,功能比minicom 多。
//kermit/usb0.cfg 是kermit 的配置文件, 在其中可以配置 /dev/ttyUSB0 等路径
kermit -y kermit/usb0.cfg
-y kermit/usb0.cfg 指定配置文件。
该文件内容如下:
/*
set line /dev/ttyUSB0
set speed 115200
set carrier-watch off
set hardshake none
set flow-control none
robust
set file type bin
set file name lit
set rec pack 1000
set send pack 1000
set window 5
*/
将此文件保存在主目录下, 命名为:kermit/usb0.cfg(可自定义)
执行后进入kermit 界面, 按 c
进入 串口界面(就是设备的界面)
切换回kermit 界面快捷键:Ctrl + \ , 之后再按 c 。
执行:
Dream 5220# # detect
显示:
Checking for NOR flash...
Flash detect 33554432Mb
这说明flash状态良好。
//让串口进入接受状态。
Dream 5220# # loadb
进入kermit 界面: ctrl + \ 按 c
执行:
send uboot.bin
就是将当前目录下的uboot.bin 文件发送给串口。
完成后,进入串口界面。
执行:
Dream 5220# # upgrade 0x20000000 0x1dc00000 +0xe0000
0x20000000 是 kermit 执行 send 后 将文件send 到的默认地址。
再将文件写到nor flash 的首地址:0x1dc00000 +0xe0000为写的长度。
执行:reset。让系统重启。
/*
至此,新的uboot烧写完成,reset后, 如果还是不成功的话,那么问题肯定出在linux的的启动阶段或者新的uboot还是有问题,这可以通过启动过程中的debug信息看出来
一,如果内核有问题,导致linux没有进入shell界面,要重新进入Uboot环境,就是在reset 之后,一直按 ctrl + c ,这样在uboot启动完成后, 不会进入kernel的启动阶段,而是停留在uboot的命令行中,
在这个uboot 环境下,烧写新内核, 配置ipaddr,serverip等,同最开始的例子中操作是一样的。
//本机uboot 的ip地址
setenv ipaddr 10.10.167.10
//服务器ip地址
setenv serverip 10.10.167.249
//下载linux内核vmlinux52
// 在服务器的tftpboot目录下存在相应文件,搭建到tftp服务环境
tftpboot 0 vmlinux52
// 烧写到flash 上。
// 0x20000000 是vmlinux52的存贮位置。
// 0x1dd00000 是系统内核的起始位置(每个设备位置不同),
// +0x600000是文件长度
upgrade 0x20000000 0x1dd00000 +0x600000
在reset 之前,一般还要设置一下环境变量。
比如
setenv linux_args mtdparts=octeon_nor0:1m(BOOT),7m(LINUX),21m(CONFIG),3m(MD)
setenv bootcmd 'bootoctlinux 0x1dd00000 coremask=0x3 mem=700'
//保存
saveenv
bootoctliux
二 ,如果新烧写的uboot本身有问题,那么修改uboot代码,编译通过后, 使用PLCC重复上述烧写过程。
⑩ ARM开发板Uboot如何恢复出厂设置时的启动参数
利用Setenv 设置参数。如果的真的想恢复的话,先把保存参数的分区全部擦除,再次启动Uboot时候,Uboot提示你,CRC错误,这时候Uboot就会使用它默认的参数。这时候,在调用saveenv指令,保存参数。