freescale partition处理

来源:互联网 发布:手机数据恢复软件免费版 编辑:程序博客网 时间:2024/06/05 18:34

freescale平台调试emmc

1.在uboot中可识别这颗emmc。

=> mmcinfo
yue.zhong test curr_device=2
Device: FSL_SDHC
Manufacturer ID: 13
OEM: 14e
Name: Q2J55
Tran Speed: 52000000
Rd Block Len: 512
MMC version 4.0
High Capacity: Yes
Capacity: 7.1 GiB
Bus Width: 8-bi

2.修改kernel_imx/drivers/mmc/core/mmc.c

card->ext_csd.rev = ext_csd[EXT_CSD_REV];
//added by yue.zhong at 2016-07-13
// if (card->ext_csd.rev > 6) {
if (card->ext_csd.rev > 8) {
//end added by yue.zhong at 2016-07-13
pr_err(“%s: unrecognised EXT_CSD revision %d\n”,
mmc_hostname(card->host), card->ext_csd.rev);
err = -EINVAL;
goto out;
}
编译运行后adb shell进去可以看到在/dev/block下面生成节点

mmcblk1
mmcblk1p1
mmcblk1p2
mmcblk1p3
mmcblk1p4
mmcblk1p5
mmcblk1p6
mmcblk1p7
mmcblk1p8
mmcblk1p9
mmcblk3
mmcblk3boot0
mmcblk3boot1
mmcblk3rpmb
platform
ram0
ram1
ram10
ram11
ram12
ram13
ram14
ram15
ram2
ram3
ram4
ram5
ram6
ram7
ram8
ram9
vold
root@sabresd_6dq:/dev/block #

3.以上可证明freescale的mfgtools工具有问题,跑起来的环境不能支持这颗emmc,自己找其他办法完成分区,格式化。

4.使用busybox中的fdisk 和 busybox mke2fs -T ext4 处理。过程如下:

一。
emmc启动说明
—————————————————
1.板子调成从sd2启动,制作启动的sd卡(eng版本)。

2.将说明包中的mk_emmc.sh放在对应firmware生成目录下,
如:\\192.168.71.66\zhongyue\workspace\freescale\base\out\target\product\sabresd_6dq

3.请修改说明包中的push_fw.bat文件,将dir_var变量表示的目录修改成自己对应的firmware生成目录。
如:set dir_var=\\192.168.71.66\zhongyue\workspace\freescale\base\out\target\product\sabresd_6dq

4.确保板子从sd启动后,正常启动系统,adb正常识别设备,执行push_fw.bat,看到请按任意键。。。 关闭窗口,进入下一步。

5.adb shell 进入/data目录 ,可看到uboot,kernel,system,recovery 4个firmware以及mk_emmc.sh脚本,增加执行权限,chmod 777 mk_emmc.sh。

6.执行脚本 sh mk_emmc.sh 。确保分区完成,各firmware flash done。

Disk /dev/block/mmcblk3: 7616 MB, 7616856064 bytes
4 heads, 16 sectors/track, 232448 cylinders
Units = cylinders of 64 * 512 = 32768 bytes

Device Boot Start End Blocks Id System
/dev/block/mmcblk3p1 1 245 7832 83 Linux
/dev/block/mmcblk3p2 246 490 7840 83 Linux
/dev/block/mmcblk3p3 491 33450 1054720 5 Extend
/dev/block/mmcblk3p4 33451 232448 6367936 83 Linux
/dev/block/mmcblk3p5 491 16116 500024 83 Linux
/dev/block/mmcblk3p6 16117 31742 500024 83 Linux
/dev/block/mmcblk3p7 31743 31987 7832 83 Linux
/dev/block/mmcblk3p8 31988 32171 5880 83 Linux
/dev/block/mmcblk3p9 32172 32233 1976 83 Linux

flash bootloader done.

flash kernel done.

flash system done.

flash recovery done.
please emmc boot!

7.将板子改成emmc启动

二。
@echo off

set dir_var=\\192.168.71.66\zhongyue\workspace\freescale\base\out\target\product\sabresd_6dq

set dir_bootloader_var=%dir_var%\u-boot-imx6dl.imx
set dir_kernel_var=%dir_var%\boot-imx6dl.img
set dir_system_var=%dir_var%\system.img
set dir_recovery_var=%dir_var%\recovery-imx6dl.img

set dir_sh_var=%dir_var%\mk_emmc.sh

echo %dir_var%
echo %dir_bootloader_var%
echo %dir_kernel_var%
echo %dir_system_var%
echo %dir_recovery_var%

adb remount

echo waitting…

dir %dir_bootloader_var% && adb push %dir_bootloader_var% /data
dir %dir_kernel_var% && adb push %dir_kernel_var% /data
dir %dir_system_var% && adb push %dir_system_var% /data
dir %dir_recovery_var% && adb push %dir_recovery_var% /data
dir %dir_sh_var% && adb push %dir_sh_var% /data

pause

三。
#!/bin/bash
# added by yue.zhong

#1.fdisk partition.
disk=$1
if [ -z $disk ]; then
disk=/dev/block/mmcblk3
echo “default: $disk”
fi

#dd if=/dev/zero of=$disk bs=1k count=129 seek=384
busybox fdisk $disk << EOFd1d2d3d4dnp11+8Mnp2+8Mne3+1080Mnpn+512Mn+512Mn+8Mn+6Mn+2MpwEOF#2.echo "###flash firmware and format..."echo 0 > /sys/block/mmcblk3boot0/force_ro
dd if=/data/u-boot-imx6dl.imx of=/dev/block/mmcblk3boot0 bs=512 seek=2
echo “flash bootloader done.”

echo 8 > /sys/block/mmcblk3/device/boot_config

dd if=/data/boot-imx6dl.img of=/dev/block/mmcblk3p1
echo “flash kernel done.”

busybox mke2fs -T ext4 /dev/block/mmcblk3p4
busybox mke2fs -T ext4 /dev/block/mmcblk3p5
busybox mke2fs -T ext4 /dev/block/mmcblk3p6
busybox mke2fs -T ext4 /dev/block/mmcblk3p7

dd if=/data/system.img of=/dev/block/mmcblk3p5
echo “flash system done.”
dd if=/data/recovery-imx6dl.img of=/dev/block/mmcblk3p2
echo “flash recovery done.”

#3
rm -rf /data/u-boot-imx6dl.imx
rm -rf /data/boot-imx6dl.img
rm -rf /data/system.img
rm -rf /data/recovery-imx6dl.img
rm -rf /data/mk_emmc.sh

echo “please emmc boot!”
#file end

以上为emmc调试过程。

遗留问题:fastboot flash bootloader 不可用,怀疑mmcblk3boot0为只读状态,没有再深入研究。

0 0