andy 发表于 2013-7-17 20:02:11

一个带网络驱动的u-boot包

本帖最后由 andy 于 2013-7-17 20:05 编辑

最近零零散散的在学习u-boot
把前面已经修改的发上来,我作了修改,修改的部分就是我在这里发的帖子
包括:
1、 使用SD卡启动,其他方式我没有试过
2|、增加了LED控制,板载的蓝色和绿色
3、打开了中断,使用定时器中断控制LED
4、移植了网络驱动,可以实现tftp
5、没解决的是nand驱动,正在研究中,有资料和代码的同学不妨共享一下,一起学习














如果不想编译,只想试试SD启动,这有编译好的


注意事项:
1、编译步骤

使用的编译器是arm-none-eabi-
版本4.7
如果使用其他编译器,请修改根目录的Makefile
将CROSS_COMPILE ?=arm-none-eabi-
改为你的编译器,例如CROSS_COMPILE ?= arm-linux-none-

再将arch/arm/config.mk的
将CROSS_COMPILE ?= arm-none-eabi-
改为你的编译器,跟上面一样


makecubieboard_config
make -j4
等待......

2、写入SD卡
写入SD卡工具在tools里面 ,编译sd_write.c,使之符合你的系统
gcc sd_write.c -o sd_write
将编译好的sd_write 移动到你的u-boot目录,假设你在tools目录:
mv-rsd_write../

假设你的sd卡在读卡器插到电脑时是 sdb, 在u-boot目录执行:
写sd卡有风险请谨慎操作,千万别写成你的硬盘,sd数据可能丢失
sd_write /spl/sunxi_spl.bin/dev/sdb
sd_write u-boot.bin/dev/sdb

取下sd,插到cubieboard

3、连接串口
方法请在论坛内看我的帖子,或其他人的帖子
4、连接网线
首先电脑上要建立tftp服务器,请百度
5、上电
不出意外,你将看见蓝灯闪烁,绿灯我关掉了,太刺眼

测试
参数修改
ip我写了固定值,在文件include/configs/sunxi-comm.h内,请查阅
可以上电直接修改参数,但不能保存,因为没有NAND驱动


U-Boot SPL 2012.10 (Jun 17 2013 - 22:57:08)
DRAM: 1024MB
SUNXI SD/MMC: 0


U-Boot 2012.10 (Jun 17 2013 - 22:57:08) for Cubieboard Setting

CPU:   SUNXI Family
Board: Cubieboard
I2C:   ready
Running board_init_f() in file board.c,line313
DRAM:1 GiB
Running board_init_r() in file board.c,line481
NAND:board_nand_init()
end of nand_init
maf_id = 0x0
dev_id = 0x0
nand type = 0xffffffed
No NAND device found!!!
0 MiB
MMC:   SUNXI SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   eth net device register.
wemac
Hit any key to stop autoboot:0
andy_sun4i#



命令测试
andy_sun4i# version

U-Boot 2012.10 (Jun 17 2013 - 22:57:08) for Cubieboard Setting
arm-none-eabi-gcc (Sourcery CodeBench Lite 2012.09-63) 4.7.2
GNU ld (Sourcery CodeBench Lite 2012.09-63) 2.23.51.20120829



andy_sun4i# pri
baudrate=115200
boot_mmc=fatload mmc 0 0x43000000 script.bin && fatload mmc 0 0x48000000 ${kernel} && watchdog 0 && bootm 0x48000000
bootcmd=if run loadbootenv; then echo Loaded environment from ${bootenv};env import -t ${scriptaddr} ${filesize};fi;if test -n ${uenvcmd}; then echo Running uenvcmd ...;run uenvcmd;fi;if run loadbootscr; then echo Jumping to ${bootscr};source ${scriptaddr};fi;run setargs boot_mmc;
bootdelay=3
bootenv=uEnv.txt
bootscr=boot.scr
console=ttyS0,115200
ethact=wemac
ethaddr=11:22:33:44:55:66
ipaddr=192.168.1.20
kernel=uImage
loadbootenv=fatload mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr ${bootenv} || ext2load mmc 0 $scriptaddr boot/${bootenv}
loadbootscr=fatload mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr ${bootscr} || ext2load mmc 0 $scriptaddr boot/${bootscr}
loglevel=8
panicarg=panic=10
root=/dev/mmcblk0p2 rootwait
scriptaddr=0x44000000
serverip=192.168.1.10
setargs=setenv bootargs console=${console} root=${root} loglevel=${loglevel} ${panicarg} ${extraargs}
stderr=serial
stdin=serial
stdout=serial

Environment size: 1117/131068 bytes
andy_sun4i#


















andy 发表于 2013-7-17 20:05:41

本帖最后由 andy 于 2013-7-17 20:07 编辑

沙发,里面多的打印信息是我调试nand时候加的,还没调通
NAND:board_nand_init()
end of nand_init
maf_id = 0x0
dev_id = 0x0
nand type = 0xffffffed
No NAND device found!!!

ggcock 发表于 2013-7-18 11:36:26

谢谢了:lol:lol:lol

palxex 发表于 2013-7-18 18:07:51

这里有个带sunxi-nand驱动的u-boot:https://github.com/yuq/u-boot-sunxi/,但直接编译出来的我这边没法启动。刚费了半天劲移植到我用的上面,但总觉的还是不太对头(见下)。LZ看看有没有用吧。
sun4i#nand info
Device 0: nand0, sector size 1024 KiB
Page size      8192 b
OOB size      218 b
Erase size1048576 b

sunbeyond 发表于 2015-6-2 09:57:51

写了很多关于uboot教程。楼主:handshake
页: [1]
查看完整版本: 一个带网络驱动的u-boot包