freescale partition處理

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爲只讀狀態,沒有再深入研究。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章