主题 : Barebox for tiny 210 - step 4 跳过PLL及SDRAM初始化 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 54261
精华: 9
发帖: 43
金钱: 665 两
威望: 133 点
贡献值: 9 点
综合积分: 266 分
注册时间: 2011-08-27
最后登录: 2014-08-08
楼主  发表于: 2013-01-10 21:56

 Barebox for tiny 210 - step 4 跳过PLL及SDRAM初始化

管理提醒: 本帖被 xoom 执行加亮操作(2013-01-11)
返回学习汇总贴
有点晕了,连载继续...

支持跳过PLL和SDRAM初始化,编译出来的bin文件可以下载到SDRAM并运行,方便调试,免得每次修改完程序都要烧写到SD卡

0.开始之前:
    (1) 了解Makefile Kconfig diff Shell
    (2) 掌握Barebox for tiny 210 - step 3

1.编译运行
    (1) 更新源码到对应版本
        cd ~/s5pv210/github/loader/barebox
        git checkout c3db4a92725f8a280adefde8823210fccbd0206f
    (2) 配置编译
        cp arch/arm/configs/friendlyarm_tiny210_defconfig .config
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
                禁用General Settings -> [ ]run machine low-level init
        make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
        编译生成barebox.bin文件,这个文件不会进行PLL和SDRAM初始化,适合加载到SRAM并运行
        sudo cp barebox.bin /srv/tftp/
        将barebox.bin文件拷贝到tftp根目录
    (3) 运行调试
        从SD卡启动单板(继续使用step 3烧写的Barebox版本),用网线直接连接电脑与单板
        将电脑IP地址设置为192.168.0.10,255.255.255.0
        不需要设置单板IP,defaultenv自动设置好了192.168.0.100, 255.255.255.0

        通过串口终端执行下边两条命令,下载barebox.bin文件到SDRAM并运行,检查单板是否正常启动
                cp /mnt/tftp/barebox.bin /dev/ram0 && go /dev/ram0
    (4) 使能General Settings -> [*]run machine low-level init,重新编译生成barebox.s5p,烧写到SD卡,检查单板能否正常启动
    (5)  继续之前
        使能PLL和SDRAM初始化(CONFIG_MACH_DO_LOWLEVEL_INIT)时,执行arch/arm/boards/friendlyarm-tiny210/lowlevel.c 中的reset()函数;跳过PLL和SDRAM初始化时,执行vi arch/arm/cpu/start.c中的reset()函数,搞清楚board_init_lowlevel_return()函数的作用,完全搞清楚SD卡启动流程。
  
2.代码分析
        只修改了Makefile和Kconfig,感兴趣的建议看github commit记录,我就不贴代码了。
[ 此帖被mei5150在2013-04-13 20:44重新编辑 ]