好了,现在分析分析现在有哪些资源,又有哪些需要解决的问题,看看下面该怎么走....
如果需要让一个最小系统跑起来,必须要做的事情如下:
1:需要实现xloader中关于lpddr2的配置,现在这颗片子的spec没有,要动动关系了。
2:LCD 驱动,TP 驱动,四合一模块,当然,这里面对于我们主要比较重要的是wifi, bt
3;还有个sensor,加速度传感器,HDMI,USB 等等了
手上的资源:
panda的源码,原理图啥的,当然还有一块x7的板子,这块破板子,还不知道有多少和panda是不一样的....
好吧,问题多多,先从简单的入手吧,由于在xloader中已经实现了lpddr2的配置,那么在uboot中主要做的事情也就是分区相关和启动引导相关的事情了,
就直接先从uboot入手吧。如果uboot烧挂了,那我这个板子就成砖头了,还是个大砖头。紧张...
先从智器的官网上下了个x7的升级包,解压开来,找到里面的updater-script,这里面会涉及到如何升级整个系统,也就是哪个文件写到哪里面去...
format("ext4", "EMMC", "/dev/block/mmcblk0p7", "0", "/system");
mount("ext4", "EMMC", "/dev/block/mmcblk0p7", "/system");
package_extract_file("boot/uImage", "/dev/block/mmcblk0p5");
package_extract_file("boot/MLO", "/dev/block/mmcblk0p1");
package_extract_file("boot/u-boot.img", "/dev/block/mmcblk0p2");
package_extract_file("boot/uImage_recovery", "/dev/block/mmcblk0p4");
package_extract_file("boot/logo", "/dev/block/mmcblk0p6");
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/data");
从这个文件中的这些行就知道了基本的分区信息了,uboot 对应的分区是mmcblk0p2,好吧,暂且一试。
1:从网上拉一个panda的uboot代码,按照操作来就好了
git clone git://git.omapzoom.org/repo/u-boot.git u-boot cd u-boot git checkout 2af35fca236557add6fdd33b836bf5c64455ac8f
make ARCH=arm omap44XXpanda_config
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
2:编译完了之后就会有u-boot.bin了,不过x7用的事u-boot.img,先file一把,
#file u-boot.img
u-boot.img: u-boot legacy uImage, U-Boot 2011.09-00036-g7240366 fo\024, Firmware/ARM, Firmware Image (Not compressed), 162004 bytes, Sat Feb 2 17:46:24 2013, Load Address: 0x80E80000, Entry Point: 0x00000000, Header CRC: 0xE318D128, Data CRC: 0xA1214813
好的,根据这个img的信息,我就可以制作自己的image了:
#mkimage -A arm -O u-boot -n 'U-Boot 2011.09-00036-g7240366 fo' -a 0x80E80000 -e 0x00000000 -T firmware -C none -d u-boot.bin u-boot.img
3:把这个image写到mmcblk0p2分区里面去,先把这个image push到系统里面去,
#dd if=u-boot.img of=/dev/block/mmcblk0p2
4:好吧,接下来就是鉴定奇迹的一刻了,要不行就完蛋了...
关机,重新开机,:
回车,居然进去了,...兴奋....
5:测试了几个命令都能用,小高兴一把,如果fastboot再能用的话,那基本就成功一半了...
Uboot这边似乎都正常的,不过PC这边一点反应都没有,看来USB设备根本就没打开,为何...
难道在xloader那边被智器改啥了????这个问题,必须要处理掉,要不就没法往下走了。
6:如何调试uboot:
由于现在没法下载了,因为我的系统是起不来了,只有用sd卡来了,有点慢,但总算有条路。
将需要运行的uboot考虑到T卡中,插入到X7,将系统起来,进入uboot的命令行:
#mmcinit 0
用来初始化T卡
#fatls mmc 0:1
用来列出T卡里面的文件
#fatload mmc 0:1 0x90000000 u-boot.bin
将T卡中的uboot.bin文件load到SDram中
#go 0x90000000
跳转到0x90000000地址去执行uboot.
接下来,就要研究为什么在fastboot模式下,USB的功能没有启动吧,...