蜗窝讨论区

慢下来,享受技术

您尚未登录。

#1 2016-05-05 22:32:03

wowo
管理员
注册时间: 2016-04-18
帖子: 215

【任务1】启动过程-Boot from USB

1. 任务说明

该任务是“X Project”第一个任务,也是所有嵌入式开发启动时遇到的第一个任务。

在ARM等嵌入式平台中,CPU上电后,会从固定地址运行Rom code(或者其它类型的介质,我们不再特意区分)。如果没有有效的启动介质,或者使用特殊手段,ROM code会执行一个称作DFU(Device Firmware Upgrade)的程序,该程序可以通过USB/UART等协议,和PC沟通,将PC上指定的Bin文件加载到RAM(通常为SRAM)中执行。

该任务将会以USB协议为例,结合U-Boot,实现这一过程,最终通过在Bin文件中点亮一盏LED灯,指示任务的完成。

2. 涉及的知识点

看似简单的一个任务,其实牵涉很多知识点,总结如下:

  • CPU Boot过程

  • Boot ROM的执行逻辑

  • Boot ROM中USB download protocol

  • 简单的USB原理

  • Linux平台下借助libusb编写简单的DFU工具

  • U-boot的基本框架(arch-->cpu-->machine-->board)

  • U-boot的启动流程,包括SPL等概念

  • U-boot的配置和移植

  • GPIO的控制(呵呵,小菜一碟)

  • 简单的编译原理,链接脚本、运行时地址等

  • 交叉编译环境的配置

  • U-Boot的编译

3. 完成任务的思路

看到上面列举的知识点,相信大家会吓一跳,不过大可放心,按部就班的做就可以了。

首先,我们把任务拆分为如下几个相对独立的部分:

  1. 将所使用的硬件平台“Boot from USB”有关的硬件信息、以固定的格式罗列出来
    移植U-Boot的时候,可以直接将这些信息对应到代码中的指定宏定义、变量等元素上,这样可以降低大家移植到新平台上的困难。
    我和Linuxer会以特定的平台为例,写出一份或者两份硬件信息的范本,大家follow即可(就像做填空题,目的也是降低移植的困难)。

  2. 以博文的形式,将U-Boot的启动过程总结出来,供大家参考
    主要目的是厘清代码中和启动过程有关的配置、宏定义等,这些信息会和上面的硬件信息一一对应,移植U-Boot的时候只需要填入即可。

  3. 结合特定的开发板,以项目文档的形式,将U-Boot的配置、编译等移植过程,总结出来
    主要目的是为其它平台的移植提供参考。

  4. 以博文的形式,介绍linux平台下libusb的功能和使用方法
    为后续DFU程序的编写做准备。

  5. 结合CPU ROM code中的USB协议,编写DFU程序
    编写完成后,使用DFU将U-Boot的bin文件下载到板子指定的RAM地址执行。

其次,就是分猪肉了( lol lol lol )。大家根据自身情况,可以考虑选择任务2~任务5中的任意一个,多个人可以选择同一个任务,一个人也可以选择多个( lol ,我们可能优先为积极参与任务的同学送开发板哦!)。任务进行的过程中,大家可以随时在讨论区交流、讨论。

最后,提醒一下,大家完成任务的过程中,要不惜一切代价地借用已有的资源,只要思路对,哪怕代码是从别处抄过来的(自己一定要整理一遍),也可以达到目的。

暂时就这么多了,大家有其它想法的话,请踊跃讨论。

4. 任务总结

到目前为止(2016/06/01),该任务在bubblegum 96boards上基本完成,共有如下的文档和代码产出:

  1. X-002-HW-S900芯片boot from USB有关的硬件描述

  2. u-boot启动流程分析(1)_平台相关部分

  3. X-003-UBOOT-基于Bubblegum-96平台的u-boot移植说明

  4. u-boot代码,https://github.com/wowotechX/u-boot

  5. 交叉编译工具、Firmware下载工具等,https://github.com/wowotechX/tools

  6. 编译脚本,https://github.com/wowotechX/build


由于Firmware下载工具(DFU)牵涉到USB,因此暂时没有产出文档(正在考虑分析一下USB子系统)。

可以通过如下步骤在板子上验证:
1)代码下载(具体可参考“X-003-UBOOT-基于Bubblegum-96平台的u-boot移植说明”)

mkidr -p ~/work/xprj
cd ~/work/xprj
git clone https://github.com/wowotechX/build
git clone https://github.com/wowotechX/u-boot
git clone https://github.com/wowotechX/tools

2)代码编译

cd build
make env_prepare    #下载交叉编译工具,只需要执行一次即可
make libusb             #只需要执行一次
make dfu                 #只需要执行一次
make uboot

3)开机是按住ADFU按键,将bubblegum 96board进入DFU模式,并使用USB和PC连接(当前支持linux,dfu工具也可以支持windows,我没有测试),下载u-boot并执行

sudo ../tools/dfu/dfu bubblegum 0xe406b200 out/u-boot/spl/u-boot-spl.bin 1

dfu命令的具体解释,可直接执行dfu命令查看。

最后,希望感兴趣的同学,可以帮忙检查文档、代码,并在空闲时间,在自己的开发板上将该任务完成。
多谢~~

离线

#2 2016-05-06 10:28:13

kadajur
会员
注册时间: 2016-04-22
帖子: 2

Re: 【任务1】启动过程-Boot from USB

需不需要指定一下uboot的版本?

离线

#3 2016-05-06 10:31:34

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

kadajur 说:

需不需要指定一下uboot的版本?

我们的代码仓库:https://github.com/wowotechX
我是直接从当前的u-boot开发分支拉过来的 smile

离线

#4 2016-05-06 10:49:23

bruno
会员
注册时间: 2016-04-22
帖子: 5

Re: 【任务1】启动过程-Boot from USB

有点没懂,既然是Rom Code 从USB下载Bin文件,为什么还需要Uboot?

离线

#5 2016-05-06 10:57:00

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

bruno 说:

有点没懂,既然是Rom Code 从USB下载Bin文件,为什么还需要Uboot?

如果只是简单的写一行汇编,点亮一个灯,那就太没有意思了。
我们要把U-boot的跑起来,顺便为后面的任务铺路,例如:boot kernel;利用U-Boot中的fastboot,下载并烧录image;等等。

离线

#6 2016-05-06 12:06:17

scnutiger
会员
注册时间: 2016-04-22
帖子: 2

Re: 【任务1】启动过程-Boot from USB

现在cpu都支持从usb启动了?

离线

#7 2016-05-06 15:11:03

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

scnutiger 说:

现在cpu都支持从usb启动了?

抱歉,是我起名字起的不好,我想表达的是通过USB下载bin文件到板子的ram中执行。
大家可以帮忙再想想什么样子的标题好一些 smile

离线

#8 2016-05-10 16:18:38

zyro
会员
注册时间: 2016-05-10
帖子: 3

Re: 【任务1】启动过程-Boot from USB

这个任务怎么没有进度相关的计划。是不是说你们会先在S900上先行一步然后其他平台follow就可以?

离线

#9 2016-05-10 16:48:13

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

zyro 说:

这个任务怎么没有进度相关的计划。是不是说你们会先在S900上先行一步然后其他平台follow就可以?

由于都是用业余时间做的,进展不是很快,因此就没有做计划。
我们会在S900上做,大家可以follow S900的,也可以自己先做,做的过程中一起交流讨论即可。

离线

#10 2016-06-29 13:38:46

jansion
会员
注册时间: 2016-06-29
帖子: 2

Re: 【任务1】启动过程-Boot from USB

我貌似错过了两个任务了 我还能跟上吗? 呜呜....

离线

#11 2016-06-29 16:00:58

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

jansion 说:

我貌似错过了两个任务了 我还能跟上吗? 呜呜....

没关系的,你可以在任何感兴趣的时候,参考完成任务的步骤,以及发布在博客上的文章,自己再来一遍。
如果使用不同的板子,可以把代码也commit到我们的代码仓库。
如果是相同的板子,也可以完善、改进一下当前的实现,然后偶上传代码。

PS:现在进展是相当缓慢的,因为基本上都是我一个人在做,还是希望大家能参与进来,热闹热闹~~

离线

#12 2016-07-05 21:39:16

ooonebook
会员
注册时间: 2016-04-29
帖子: 36

Re: 【任务1】启动过程-Boot from USB

楼主,板子是自己购置吗?上哪购置呢?大淘宝吗?

离线

#13 2016-07-06 09:01:19

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

ooonebook 说:

楼主,板子是自己购置吗?上哪购置呢?大淘宝吗?

板子厂商送了一些,不过都送出去了 smile
你可以参考这里的购买链接:http://linaro.co/bubblegum96-buy
我建议大家感兴趣的话,可以用其他板子(这样更有意义),开发过程中,我们会给出指导、建议。

离线

#14 2016-07-08 17:19:03

ooonebook
会员
注册时间: 2016-04-29
帖子: 36

Re: 【任务1】启动过程-Boot from USB

wowo 说:
ooonebook 说:

楼主,板子是自己购置吗?上哪购置呢?大淘宝吗?

板子厂商送了一些,不过都送出去了 smile
你可以参考这里的购买链接:http://linaro.co/bubblegum96-buy
我建议大家感兴趣的话,可以用其他板子(这样更有意义),开发过程中,我们会给出指导、建议。

谢谢wowo,手上有一块tiny210的板子,之前纯粹就是做二次开发和学习使用的。
也可以用这块板子搞搞吗?一个人弄的话感觉搞不定的,毕竟还不是你这样的大牛~
看git_hub里面的代码更新好像也就S900在做。还有其他人在做其他板子吗?

离线

#15 2016-07-08 17:21:26

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

ooonebook 说:
wowo 说:
ooonebook 说:

楼主,板子是自己购置吗?上哪购置呢?大淘宝吗?

板子厂商送了一些,不过都送出去了 smile
你可以参考这里的购买链接:http://linaro.co/bubblegum96-buy
我建议大家感兴趣的话,可以用其他板子(这样更有意义),开发过程中,我们会给出指导、建议。

谢谢wowo,手上有一块tiny210的板子,之前纯粹就是做二次开发和学习使用的。
也可以用这块板子搞搞吗?一个人弄的话感觉搞不定的,毕竟还不是你这样的大牛~
看git_hub里面的代码更新好像也就S900在做。还有其他人在做其他板子吗?

大家都太忙了,所以参加的人不多。S900进行的也很慢。
没有关系的,你可以在自己的板子上做,遇到问题的话,我们可以在论坛里讨论,解决问题的过程,就是学习的过程。 smile

离线

#16 2016-07-25 23:56:13

calm.xia
会员
注册时间: 2016-05-09
帖子: 9

Re: 【任务1】启动过程-Boot from USB

ps:x宝买的bubblegum-900的board

【编译uboot】
make uboot
【报错如下】
calm@calm-pc:~/work/x_project/build$ make uboot
mkdir -p /home/calm/work/x_project/build/out/u-boot
make -C /home/calm/work/x_project/build/../u-boot CROSS_COMPILE=/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- KBUILD_OUTPUT=/home/calm/work/x_project/build/out/u-boot bubblegum_defconfig
make[1]: Entering directory '/home/calm/work/x_project/u-boot'
make[2]: Entering directory '/home/calm/work/x_project/build/out/u-boot'
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/zconf.tab.o
scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
compilation terminated.
scripts/Makefile.host:111: recipe for target 'scripts/kconfig/zconf.tab.o' failed
make[3]: *** [scripts/kconfig/zconf.tab.o] Error 1
/home/calm/work/x_project/u-boot/Makefile:477: recipe for target 'bubblegum_defconfig' failed
make[2]: *** [bubblegum_defconfig] Error 2
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2


看来问题原因是 zconf.hash.c文件找不到,而且执行“x_project/build/out/u-boot/scripts/kconfig$ vi zconf.tab.c”,确实发现该文件有#include "zconf.hash.c"
,请问一下是那里出现问题了呢? smile

离线

#17 2016-07-26 08:52:11

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

calm.xia 说:

ps:x宝买的bubblegum-900的board

【编译uboot】
make uboot
【报错如下】
calm@calm-pc:~/work/x_project/build$ make uboot
mkdir -p /home/calm/work/x_project/build/out/u-boot
make -C /home/calm/work/x_project/build/../u-boot CROSS_COMPILE=/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- KBUILD_OUTPUT=/home/calm/work/x_project/build/out/u-boot bubblegum_defconfig
make[1]: Entering directory '/home/calm/work/x_project/u-boot'
make[2]: Entering directory '/home/calm/work/x_project/build/out/u-boot'
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/zconf.tab.o
scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
compilation terminated.
scripts/Makefile.host:111: recipe for target 'scripts/kconfig/zconf.tab.o' failed
make[3]: *** [scripts/kconfig/zconf.tab.o] Error 1
/home/calm/work/x_project/u-boot/Makefile:477: recipe for target 'bubblegum_defconfig' failed
make[2]: *** [bubblegum_defconfig] Error 2
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2


看来问题原因是 zconf.hash.c文件找不到,而且执行“x_project/build/out/u-boot/scripts/kconfig$ vi zconf.tab.c”,确实发现该文件有#include "zconf.hash.c"
,请问一下是那里出现问题了呢? smile

u-boot目录下,执行一下“make mrproper”试试?

离线

#18 2016-07-26 23:09:16

calm.xia
会员
注册时间: 2016-05-09
帖子: 9

Re: 【任务1】启动过程-Boot from USB

wowo 说:
calm.xia 说:

ps:x宝买的bubblegum-900的board

【编译uboot】
make uboot
【报错如下】
calm@calm-pc:~/work/x_project/build$ make uboot
mkdir -p /home/calm/work/x_project/build/out/u-boot
make -C /home/calm/work/x_project/build/../u-boot CROSS_COMPILE=/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- KBUILD_OUTPUT=/home/calm/work/x_project/build/out/u-boot bubblegum_defconfig
make[1]: Entering directory '/home/calm/work/x_project/u-boot'
make[2]: Entering directory '/home/calm/work/x_project/build/out/u-boot'
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/zconf.tab.o
scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
compilation terminated.
scripts/Makefile.host:111: recipe for target 'scripts/kconfig/zconf.tab.o' failed
make[3]: *** [scripts/kconfig/zconf.tab.o] Error 1
/home/calm/work/x_project/u-boot/Makefile:477: recipe for target 'bubblegum_defconfig' failed
make[2]: *** [bubblegum_defconfig] Error 2
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2


看来问题原因是 zconf.hash.c文件找不到,而且执行“x_project/build/out/u-boot/scripts/kconfig$ vi zconf.tab.c”,确实发现该文件有#include "zconf.hash.c"
,请问一下是那里出现问题了呢? smile

u-boot目录下,执行一下“make mrproper”试试?

HI。直接在已经编译过的u-boot目录下执行“make mrproper”还是不行,报的错误还是上面原来的错误。之后我尝试将build,tools,u-boot这三个目录下的编译生成的文件(ps:使用git status查看)都删除,然后重新cd build目录执行:
make libusb,make dfu,make uboot,后不报上面的错误,报了如下错误:
tart=$(/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm u-boot | grep __rel_dyn_start | cut -f 1 -d ' '); end=$(/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm u-boot | grep __rel_dyn_end | cut -f 1 -d ' '); tools/relocate-rela u-boot-nodtb.bin 0x11000000 $start $end
/home/calm/work/x_project/u-boot/scripts/dtc-version.sh: line 17: dtc: command not found
/home/calm/work/x_project/u-boot/scripts/dtc-version.sh: line 18: dtc: command not found
*** Your dtc is too old, please upgrade to dtc 1.4 or newer
/home/calm/work/x_project/u-boot/Makefile:1374: recipe for target 'checkdtc' failed
make[2]: *** [checkdtc] Error 1
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2

这个错误就好解决了,网上搜了,dtc是device-tree-compiler的缩写,直接安装即可:
sudo apt-get install device-tree-compiler
之后再 make uboot既可以成功编译了!

离线

#19 2016-07-27 08:42:40

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

calm.xia 说:
wowo 说:
calm.xia 说:

ps:x宝买的bubblegum-900的board

【编译uboot】
make uboot
【报错如下】
calm@calm-pc:~/work/x_project/build$ make uboot
mkdir -p /home/calm/work/x_project/build/out/u-boot
make -C /home/calm/work/x_project/build/../u-boot CROSS_COMPILE=/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- KBUILD_OUTPUT=/home/calm/work/x_project/build/out/u-boot bubblegum_defconfig
make[1]: Entering directory '/home/calm/work/x_project/u-boot'
make[2]: Entering directory '/home/calm/work/x_project/build/out/u-boot'
  GEN     ./Makefile
  HOSTCC  scripts/kconfig/zconf.tab.o
scripts/kconfig/zconf.tab.c:199:24: fatal error: zconf.hash.c: No such file or directory
compilation terminated.
scripts/Makefile.host:111: recipe for target 'scripts/kconfig/zconf.tab.o' failed
make[3]: *** [scripts/kconfig/zconf.tab.o] Error 1
/home/calm/work/x_project/u-boot/Makefile:477: recipe for target 'bubblegum_defconfig' failed
make[2]: *** [bubblegum_defconfig] Error 2
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2


看来问题原因是 zconf.hash.c文件找不到,而且执行“x_project/build/out/u-boot/scripts/kconfig$ vi zconf.tab.c”,确实发现该文件有#include "zconf.hash.c"
,请问一下是那里出现问题了呢? smile

u-boot目录下,执行一下“make mrproper”试试?

HI。直接在已经编译过的u-boot目录下执行“make mrproper”还是不行,报的错误还是上面原来的错误。之后我尝试将build,tools,u-boot这三个目录下的编译生成的文件(ps:使用git status查看)都删除,然后重新cd build目录执行:
make libusb,make dfu,make uboot,后不报上面的错误,报了如下错误:
tart=$(/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm u-boot | grep __rel_dyn_start | cut -f 1 -d ' '); end=$(/home/calm/work/x_project/build/../tools/common/gcc-linaro-4.9-2015.02-3-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-nm u-boot | grep __rel_dyn_end | cut -f 1 -d ' '); tools/relocate-rela u-boot-nodtb.bin 0x11000000 $start $end
/home/calm/work/x_project/u-boot/scripts/dtc-version.sh: line 17: dtc: command not found
/home/calm/work/x_project/u-boot/scripts/dtc-version.sh: line 18: dtc: command not found
*** Your dtc is too old, please upgrade to dtc 1.4 or newer
/home/calm/work/x_project/u-boot/Makefile:1374: recipe for target 'checkdtc' failed
make[2]: *** [checkdtc] Error 1
make[2]: Leaving directory '/home/calm/work/x_project/build/out/u-boot'
Makefile:150: recipe for target 'sub-make' failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory '/home/calm/work/x_project/u-boot'
Makefile:53: recipe for target 'uboot' failed
make: *** [uboot] Error 2

这个错误就好解决了,网上搜了,dtc是device-tree-compiler的缩写,直接安装即可:
sudo apt-get install device-tree-compiler
之后再 make uboot既可以成功编译了!

cool

离线

#20 2016-07-30 05:19:10

calm.xia
会员
注册时间: 2016-05-09
帖子: 9

Re: 【任务1】启动过程-Boot from USB

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

离线

#21 2016-07-30 05:24:13

calm.xia
会员
注册时间: 2016-05-09
帖子: 9

Re: 【任务1】启动过程-Boot from USB

calm.xia 说:

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

ADFU下载的log如下:
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
sudo: unable to resolve host calm-pc
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x2601a10
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000

离线

#22 2016-07-30 09:31:04

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

calm.xia 说:
calm.xia 说:

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

ADFU下载的log如下:
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
sudo: unable to resolve host calm-pc
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x2601a10
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000

现在最新版本的spl,启动之后,就初始化DDR,然后直接重启了:

void board_init_f(ulong bootflag)
{
	bubblegum_early_debug(1);

#ifdef HAS_DDR_SOURCE_CODE
	s900_ddr_init();
#endif

	reboot_to_adfu();
}

具体可参考“http://www.wowotech.net/forum/viewtopic.php?id=28”的任务总结。
不知道你是怎么操作的?你可以把reboot_to_dfu替换为while (1);
然后自己编译出来一个spl的bin文件,再试试。

PS:看你的发帖时间,太晚了,注意身体哦。
我们的任务之所以拆的这么细,就是想让大家在1个小时内,就可以消化完一个事情,然后细水才能长流 smile

离线

#23 2016-07-30 23:42:03

calm.xia
会员
注册时间: 2016-05-09
帖子: 9

Re: 【任务1】启动过程-Boot from USB

wowo 说:
calm.xia 说:
calm.xia 说:

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

ADFU下载的log如下:
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
sudo: unable to resolve host calm-pc
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x2601a10
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000

现在最新版本的spl,启动之后,就初始化DDR,然后直接重启了:

void board_init_f(ulong bootflag)
{
	bubblegum_early_debug(1);

#ifdef HAS_DDR_SOURCE_CODE
	s900_ddr_init();
#endif

	reboot_to_adfu();
}

具体可参考“http://www.wowotech.net/forum/viewtopic.php?id=28”的任务总结。
不知道你是怎么操作的?你可以把reboot_to_dfu替换为while (1);
然后自己编译出来一个spl的bin文件,再试试。

PS:看你的发帖时间,太晚了,注意身体哦。
我们的任务之所以拆的这么细,就是想让大家在1个小时内,就可以消化完一个事情,然后细水才能长流 smile

谢谢提醒,我会注意早点休息的!

另,改成while(1);后,LED依然点不亮。
我的操作如下:
其实我没做什么修改,就直接git clone了build,tools,u-boot,然后直接编译了,(因为我看到里面的文件都是针对bubblegum修改好的了),然后就烧录进板子了。我还使用了代码中tools/actions目录下的splboot.bin,结果也点不亮。

离线

#24 2016-08-01 17:30:08

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

calm.xia 说:
wowo 说:
calm.xia 说:
calm.xia 说:

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

ADFU下载的log如下:
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
sudo: unable to resolve host calm-pc
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x2601a10
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000

现在最新版本的spl,启动之后,就初始化DDR,然后直接重启了:

void board_init_f(ulong bootflag)
{
	bubblegum_early_debug(1);

#ifdef HAS_DDR_SOURCE_CODE
	s900_ddr_init();
#endif

	reboot_to_adfu();
}

具体可参考“http://www.wowotech.net/forum/viewtopic.php?id=28”的任务总结。
不知道你是怎么操作的?你可以把reboot_to_dfu替换为while (1);
然后自己编译出来一个spl的bin文件,再试试。

PS:看你的发帖时间,太晚了,注意身体哦。
我们的任务之所以拆的这么细,就是想让大家在1个小时内,就可以消化完一个事情,然后细水才能长流 smile

谢谢提醒,我会注意早点休息的!

另,改成while(1);后,LED依然点不亮。
我的操作如下:
其实我没做什么修改,就直接git clone了build,tools,u-boot,然后直接编译了,(因为我看到里面的文件都是针对bubblegum修改好的了),然后就烧录进板子了。我还使用了代码中tools/actions目录下的splboot.bin,结果也点不亮。

我这边的日志是:
pengo@ubuntu:~/work/xprj/build$ sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
[sudo] password for pengo:
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x9a91160
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000
看起来一模一样,奇怪?

离线

#25 2016-08-01 17:32:49

wowo
管理员
注册时间: 2016-04-18
帖子: 215

Re: 【任务1】启动过程-Boot from USB

wowo 说:
calm.xia 说:
wowo 说:
calm.xia 说:
calm.xia 说:

下载splboot.bin后,LED灯点不亮~  sad ,该如何debug?

ADFU下载的log如下:
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
sudo: unable to resolve host calm-pc
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x2601a10
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000

现在最新版本的spl,启动之后,就初始化DDR,然后直接重启了:

void board_init_f(ulong bootflag)
{
	bubblegum_early_debug(1);

#ifdef HAS_DDR_SOURCE_CODE
	s900_ddr_init();
#endif

	reboot_to_adfu();
}

具体可参考“http://www.wowotech.net/forum/viewtopic.php?id=28”的任务总结。
不知道你是怎么操作的?你可以把reboot_to_dfu替换为while (1);
然后自己编译出来一个spl的bin文件,再试试。

PS:看你的发帖时间,太晚了,注意身体哦。
我们的任务之所以拆的这么细,就是想让大家在1个小时内,就可以消化完一个事情,然后细水才能长流 smile

谢谢提醒,我会注意早点休息的!

另,改成while(1);后,LED依然点不亮。
我的操作如下:
其实我没做什么修改,就直接git clone了build,tools,u-boot,然后直接编译了,(因为我看到里面的文件都是针对bubblegum修改好的了),然后就烧录进板子了。我还使用了代码中tools/actions目录下的splboot.bin,结果也点不亮。

我这边的日志是:
pengo@ubuntu:~/work/xprj/build$ sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
[sudo] password for pengo:
board bubblegum
address 0xe406b200
filename ../tools/actions/splboot.bin
need_run 1
bDescriptorType: 1
bNumConfigurations: 1
iManufacturer: 0
bNumInterfaces: 1
Info: cannot detach kernel driver: LIBUSB_ERROR_NOT_FOUND (no worry)
Configuiration: 1
Handler: 0x9a91160
CBW: 55 53 42 43 00 00 00 00 83 43 00 00 00 00 10 05 00 b2 06 e4 83 43 00 00 00 00 00 00 00 00 00
Bulk transferred 17283 bytes
CSW:55534253000000000000000000
CBW: 55 53 42 43 00 00 00 00 00 00 00 00 00 00 00 10 00 b2 06 e4 00 00 00 00 00 00 00 00 00 00 00
Transffered: 31
CSW:55534253000000000000000000
看起来一模一样,奇怪?

你的PC环境是什么呢?官方的固件能不能用呢?

离线

页脚