README for FriendlyARM Tiny4412
说明:本u-boot源代码由三星原厂提供,并由友善之臂修改移植,以适用于Tiny4412开发板平台。
仅供嵌入式爱好者学习研究之用,友善之臂不对此提供任何技术支持和维护。
-----------------------------------------------------
1. Build uboot
a) 安装好toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)并设置好
环境变量PATH,保证可以正常使用。
b) 解压 uboot_tiny4412-20130729.tgz 并进入相应的目录
tar xzf uboot_tiny4412-20130729.tgz
c) 配置 uboot 并编译
cd uboot_tiny4412
make tiny4412_config
make
d) 编译 用于生成bl2 的工具
make -C sd_fuse
或者
cd sd_fuse; make
-----------------------------------------------------
2. 制作启动 Tiny4412 的SD卡
a) 先准备一张4G或以上的SDHC卡
注意:该卡的已有数据将会被破坏,因此请先对SD卡上的数据进行备份。
b) fusing SD card
假设SD卡已被PC Linux识别为/dev/sdb, 以root用户运行以下命令即可:
cd sd_fuse/tiny4412
./sd_fusing.sh /dev/sdb
-----------------------------------------------------
3. 使用SD卡启动 Tiny4412 并烧写Android
a) 将已经制作好的SD卡插到 Tiny4412 板上,拨动S2切换到SDBOOT,同时连接
串口线到PC且假设已经准备好。
b) 开发板加电,然后在串口控制台(如minicom),按任意键进入uboot 命令行模式
c) 对SD卡进行分区
输入以下uboot命令即可对SD卡进行分区:
fdisk -c 0 320 806 518
重新分区后,可重新格式化FAT分区
fatformat mmc 0:1
d) 进入fastboot模式以烧写Android
使用USB线连接Tiny4412的MICRO_USB口到PC,然后输入以下uboot命令:
fastboot
e) 烧写 Android 到SD卡
首先请准备好Android image,包括: zImage, ramdisk-u.img, system.img
在PC端输入以下命令进行烧写:
fastboot flash kernel zImage (烧写kernel)
fastboot -w (格式化userdata和cache)
fastboot flash ramdisk ramdisk-u.img (烧写ramdisk)
fastboot flash system system.img (烧写system)
按照上面的烧写方法,做到最后一步时fastboot flash system system.img 出错了。。。。我的TF卡时8G的。
在串口终端打印信息是:
Received 17 bytes: download:11ec65f8
Starting download of 300705272 bytes
................................................................................
................................................................................
................................................................................
..............................................
downloading of 300705272 bytes finished
Received 12 bytes: flash:system
flashing 'system'
Compressed ext4 image
*** erase start block 0x21390 ***
*** erase block length 0x201140 ***
mmc erase user 0 136192 2101248
START: 136192 BLOCK: 2101248
high_capacity: 1
Capacity: 15433728
Erase
........................................
........................................
........................................
........................................
........................................
..........
1.0 GB erase Done
MMC erase Success.!!
MMC write: dev # 0, block # 136080, count 8 ... error: 00108001 cmd 25
count: 1
# Tx: Inverter delay / Rx: Inverter delay
CMD reset
DATA reset
count: 2
## Tx: Basic delay / Rx: Inverter delay
CMD reset
DATA reset
count: 3
## Tx: Inverter delay / Rx: Basic delay
CMD reset
DATA reset
count: 4
### Tx: Basic delay / Rx: Basic delay
CMD reset
DATA reset
count: 5
# Tx: Disable / Rx: Basic delay
CMD reset
DATA reset
count: 6
## Tx: Disable / Rx: Inverter delay
CMD reset
DATA reset
count: 7
### Tx: Basic delay / Rx: Disable
CMD reset
DATA reset
count: 8
### Tx: Inverter delay / Rx: Disable
CMD reset
DATA reset
mmc write failed ERROR: -19
data.dest: 0x48000028
data.blocks: 8
data.blocksize: 512
MMC_DATA_WRITE
-19 blocks written: ERROR
MMC write: dev # 0, block # 136088, count 8 ...
count: 1
# Tx: Inverter delay / Rx: Inverter delay
CMD reset
DATA reset
count: 2
## Tx: Basic delay / Rx: Inverter delay
CMD reset
DATA reset
count: 3
## Tx: Inverter delay / Rx: Basic delay
CMD reset
DATA reset
count: 4
### Tx: Basic delay / Rx: Basic delay
CMD reset
DATA reset
count: 5
# Tx: Disable / Rx: Basic delay
CMD reset
DATA reset
count: 6
## Tx: Disable / Rx: Inverter delay
CMD reset
DATA reset
count: 7
### Tx: Basic delay / Rx: Disable
CMD reset
DATA reset
count: 8
### Tx: Inverter delay / Rx: Disable
CMD reset
DATA reset
mmc write failed ERROR: -19
data.dest: 0x48001034
data.blocks: 8
data.blocksize: 512
MMC_DATA_WRITE
-19 blocks written: ERROR
MMC write: dev # 0, block # 136096, count 184 ...
count: 1
# Tx: Inverter delay / Rx: Inverter delay
CMD reset
DATA reset
count: 2
## Tx: Basic delay / Rx: Inverter delay
CMD reset
DATA reset
count: 3
## Tx: Inverter delay / Rx: Basic delay
CMD reset
DATA reset
count: 4
### Tx: Basic delay / Rx: Basic delay
CMD reset
DATA reset
count: 5
# Tx: Disable / Rx: Basic delay
CMD reset
DATA reset
count: 6
## Tx: Disable / Rx: Inverter delay
求解。