yepc 发表于 2024-5-14 20:31:46

有关emmc的分区困惑

本帖最后由 yepc 于 2024-5-14 20:37 编辑

事情是这样的 我拿到公司的板子给了2份代码 一份是spl的 一份是正常的。 烧录uboot.imx的也是起不来。因为mksdcard.sh.tar 当时用的spl的那版分区,后来用了飞凌的和nxp官网的,也是没有起来。引脚都是ok的,是串口1打印。当时以为是那个.cfg里面寄存器初始化的问题 ,我现在把那个也改了hex看了 前3k基本一样就是长度不一样 。然后就是uboot的一系列简单的外设初始化。我只想打印个串口而已。新手期很困惑这个到底怎么处理,请各位大佬解惑。
公司的板子是用spl+uboot.img的
mksdcard.sh.tar
      
# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done

# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=512 count=20 conv=notrunc

sfdisk --force ${node} << EOF
label: gpt
256M 512M L
768M 512M L
1280M 512M L
1792M 128M L
1920M 1408M L
3328M 128M L
3456M 128M L
EOFucl2.xmluboot部分是这样的


      <CMD state="Updater" type="push" body="$ sleep 1 ">Sleep 1s to wait /dev/mmcblk%mmc% ready</CMD>
      <CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
      <CMD state="Updater" type="push" body="$ tar xf $FILE "> tar Partitioning shell...</CMD>
      <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk%mmc%"> Partitioning...</CMD>
      
      <!-- clear uboot args -->
      <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=768 conv=fsync count=8">clear u-boot arg</CMD>
      <!-- burn SPL and UBOOT -->
      <CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk%mmc%boot0/force_ro">access boot partition 1</CMD>
      <CMD state="Updater" type="push" body="send" file="files/imx6dl/SPL" ifdev="MX6D">Sending SPL</CMD>
      <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot0 bs=512 seek=2">write SPL to mmc boot0</CMD>
      
      <CMD state="Updater" type="push" body="$ echo 1 > /sys/block/mmcblk%mmc%boot0/force_ro"> re-enable read-only access </CMD>
      
      <CMD state="Updater" type="push" body="$ mmc bootpart enable 1 1 /dev/mmcblk%mmc%">enable boot partion 1 to boot</CMD>
可以正常打开串口跑起来的

我自己编译的版本是uboot.imx
mksdcard.sh.tarBOOT_ROM_SIZE=10
# wait for the SD/MMC device node ready
while [ ! -e $1 ]
do
sleep 1
echo “wait for $1 appear”
done

# call sfdisk to create partition table
# destroy the partition table
node=$1
dd if=/dev/zero of=${node} bs=1024 count=1

sfdisk --force ${node} << EOF
${BOOT_ROM_SIZE}M,128M,c
138M,,83
write
EOF


ucl2.xmluboot部分是这样的
<CMD state="Updater" type="push" body="send" file="mksdcard.sh.tar">Sending partition shell</CMD>
      <CMD state="Updater" type="push" body="$ tar xf $FILE "> Partitioning...</CMD>
      <CMD state="Updater" type="push" body="$ sh mksdcard.sh /dev/mmcblk%mmc%"> Partitioning...</CMD>
      <!-- clear uboot args -->


      <CMD state="Updater" type="push" body="$ dd if=/dev/zero of=/dev/mmcblk%mmc% bs=1k seek=768 conv=fsync count=8">clear u-boot env</CMD>
      <CMD state="Updater" type="push" body="$ echo 0 > /sys/block/mmcblk%mmc%boot0/force_ro">access boot partition 1</CMD>
      <CMD state="Updater" type="push" body="send" file="files/imx6dl/u-boot.imx">Sending u-boot.bin</CMD>
      <CMD state="Updater" type="push" body="$ dd if=$FILE of=/dev/mmcblk%mmc%boot0 bs=512 seek=2">write U-Boot to sd card</CMD>
      <CMD state="Updater" type="push" body="$ echo 1 > /sys/block/mmcblk%mmc%boot0/force_ro"> re-enable read-only access </CMD>
      <CMD state="Updater" type="push" body="$ mmc bootpart enable 1 1 /dev/mmcblk%mmc%">enable boot partion 1 to boot</CMD>nxp的源码还有飞凌的代码源码我都试过了板子就是参考飞凌板子做的,uboot.imx版本的 串口就是死活打印不出来,求教还要注意什么东西?卡在这里好几天了


yepc 发表于 2024-5-14 20:38:20

不符合长度
页: [1]
查看完整版本: 有关emmc的分区困惑