This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM368 Nand Flash 选型的问题?



我们目前在用DM368开发ipcam,之前使用的是K9F5608U0C-PCB0,由于考虑到软件需要升级,原有的32MB flash已经不够用,所以现在换成128MB的三星K9F1G08U0C-PCB0。

不过通过串口烧录工具sfh_DM36x 烧写ubl和u-boot后,UBOOT无法启动?

sfh_DM36x -nandflash ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin u-boot-1.3.4-dm368_ipnc_2.0.0.bin

-p "com2"  

使用该命令烧写程序后,在命令提示符下,显示:

   Target: Protecting the entire NAND flash.

       Target:    DONE

       Target:    DONE

       Operation completed successfully.

跳线后,改用Nand启动,在超级终端中,显示如下信息:

DM36x initialization passed!

TI UBL Base Version: 1.50

Boot Loader BootMode = NAND

Starting NAND Copy...

Valid magicnum, 0xA1ACED00, found in block 0x00000018.

Boot Mode Task Completed

IPNC UBL Version: 2.0.0

Platform: DM368

Jumping to entry point at 0x00000100

UBL引导了,好像U-BOOT无法启动?是nand flash有问题,还是sfh_DM36x.exe的烧录工具有问题,或是我上述的操作步骤有误?

TI 官方SDK里默认是支持哪个型号的128MB (1Gbit)nand flash,K9F1G08U0D-SCB0么?如果一定要使用K9F1G08U0C这颗,uboot代码需要修改哪些地方,难搞吗?

  • 你们的硬件和IPNC参考设计有多大差别?  串口用的是串口1吗?

  • 我这也有同样的问题,我是在DM6467T下面用的K9F1G08U0C

    文件系统是JFFS2,动不动就提示Empty Flash at.......,check_node_data():wrong data CRC,这些错误。

    JFFS2方面的参数,该设定的我都设定了,在写过Flash之后总有这写错误

    不知道要改哪些配置?

  • 我们的硬件设计和IPNC的参考设计,是稍有改动。不过,目前这个flash的问题,和硬件以及串口有关系吗? 不会吧

    之前我们是使用K9F5608U0C-PCB0,IPNC2.6 SDK,软件都已经可以跑起来了,视频图像那些的,也都可以看到,正常!我们的硬件工程师确认过,K9F5608 和 K9F1G08 在硬件设计上应该是可以 PIN 对 PIN 完全兼容的,只是软件驱动上有所不同。考虑到后续 IPNC SDK 版本升级对flash存储空间的需求,我们才将32MB flash升级为128MB,现在是不是 u-boot 驱动里,要针对K9F1G08U0C-PCB0 做修改呢?

    static struct nand_flash_dev nand_flash_ids[] = {

    {"Toshiba TC5816BDC",     NAND_MFR_TOSHIBA, 0x64, 21, 1, 2, 0x1000, 0},

    {"Toshiba TC5832DC",      NAND_MFR_TOSHIBA, 0x6b, 22, 0, 2, 0x2000, 0},

    {"Toshiba TH58V128DC",    NAND_MFR_TOSHIBA, 0x73, 24, 0, 2, 0x4000, 0},

    {"Toshiba TC58256FT/DC",  NAND_MFR_TOSHIBA, 0x75, 25, 0, 2, 0x4000, 0},

    {"Toshiba TH58512FT",     NAND_MFR_TOSHIBA, 0x76, 26, 0, 3, 0x4000, 0},

    {"Toshiba TC58V32DC",     NAND_MFR_TOSHIBA, 0xe5, 22, 0, 2, 0x2000, 0},

    {"Toshiba TC58V64AFT/DC", NAND_MFR_TOSHIBA, 0xe6, 23, 0, 2, 0x2000, 0},

    {"Toshiba TC58V16BDC",    NAND_MFR_TOSHIBA, 0xea, 21, 1, 2, 0x1000, 0},

    {"Toshiba TH58100FT",     NAND_MFR_TOSHIBA, 0x79, 27, 0, 3, 0x4000, 0},

    {"Samsung KM29N16000",    NAND_MFR_SAMSUNG, 0x64, 21, 1, 2, 0x1000, 0},

    {"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0x6b, 22, 0, 2, 0x2000, 0},

    {"Samsung KM29U128T",     NAND_MFR_SAMSUNG, 0x73, 24, 0, 2, 0x4000, 0},

    {"Samsung KM29U256T",     NAND_MFR_SAMSUNG, 0x75, 25, 0, 2, 0x4000, 0},

    {"Samsung unknown 64Mb",  NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000, 0},

    {"Samsung KM29W32000",    NAND_MFR_SAMSUNG, 0xe3, 22, 0, 2, 0x2000, 0},

    {"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0xe5, 22, 0, 2, 0x2000, 0},

    {"Samsung KM29U64000",    NAND_MFR_SAMSUNG, 0xe6, 23, 0, 2, 0x2000, 0},

    {"Samsung KM29W16000",    NAND_MFR_SAMSUNG, 0xea, 21, 1, 2, 0x1000, 0},

    {"Samsung K9F5616Q0C",    NAND_MFR_SAMSUNG, 0x45, 25, 0, 2, 0x4000, 1},

    {"Samsung K9K1216Q0C",    NAND_MFR_SAMSUNG, 0x46, 26, 0, 3, 0x4000, 1},

    {"Samsung K9F1G08U0M",    NAND_MFR_SAMSUNG, 0xf1, 27, 0, 2, 0, 0},

    {NULL,}

    };

    我看 u-boot 代码里,好像是只支持到了三星K9F1G08U0M?。。这几天我们也联系到了三星Nand flash的代理商,被告知K9F1G08U0C已经停产两三年了,而且K9F1G08U0M去年也已经停产了,现在最新的是K9F1G08U0D-SCB0,是不是要用这颗flash呢? 但不知道 这颗 flash 用上了后,u-boot是否可以直接驱动,还是需要修改 uboot 里的代码来支持这颗 nand flash呀?

  • 用哪个串口是有关系的,不然uboot不会有打印

    IPNC 2.6里的uboot是支持K9F1G08U0C的,用DM368的uboot配置就可以了,具体请查看IPNC user guide

  • ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin ,u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    我们在同一块DM368 板子上(串口没有更改!),烧写了同一个UBL 和U-boot程序,,分别先后使用了两颗nand flash,K9F5608U0C,K9F1G08U0C。在使用K9F5608U0C的情况下,串口超级终端有打印信息输出,并且软件可以正常的跑起来;在使用K9F1G08U0C的情况下,串口超级终端也有如下信息输出:

    DM36x initialization passed!

    TI UBL Base Version: 1.50

    Boot Loader BootMode = NAND

    Starting NAND Copy...

    Valid magicnum, 0xA1ACED00, found in block 0x00000018.

    Boot Mode Task Completed

    IPNC UBL Version: 2.0.0

    Platform: DM368

    Jumping to entry point at 0x00000100

    接下来,无 U-BOOT 引导的打印信息了?

    请问,如果真如你所言,是串口的关系。那为何同一个ubl,uboot程序,烧写在K9F5608U0C中来跑,有打印信息,而烧录在K9F1G08U0C中运行,uboot无打印信息输出呢??

    真是玄啊! 莫非ubl,u-boot代码还有区分32MB,128MB不同容量nand flash 的版本?

  • Page size is different.   check the HW ecc  and address align... it must be in the userguide or other documents. ^_^

  • 问你几个问题,请描述一下,方便我们提供建议给你

    1. 你的板子是自己做的吗?  用的是DM36x的哪个串口,串口0还是串口1?

    2. 你描述的ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin ,u-boot-1.3.4-dm368_ipnc_2.0.0.bin ,这两个文件是哪里来的?

    3. 你的板子是否可以通过SD卡启动?

  • 1. 板子是我们自己做的,用的是DM36x的串口1;

    2. ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin ,u-boot-1.3.4-dm368_ipnc_2.0.0.bin,这两个文件是从 Appro IPNC MT5 SDK 3.0 中 copy 过来的;

    3. 我们的板子上有设计SD卡接口,但从未用SD卡启动过!因为之前使用K9F5608U0C-PCB0 32MB flash的时候,都是通过串口烧写ubl、uboot程序,然后通过tftp下载kernel和filesystem,调试软件都很顺利,所以,现在改用K9F1G08U0C后,还是使用同样的方法。

    另外,我大致参看了下Appro IPNC SDK里的所有文档,好像没有提到关于nand flash选型及flash驱动程序需要修改哪些详细参数的内容? 比如:Page size , HW ecc  and address align 等等。。。

  • 根据你的描述,你的烧录NAND出问题的可能性比较大(我猜你串口烧写的工具是从网上下载的)

    我建议你看一下收册,做一个SD card烧写,再看看

    是的,文档里没有描述代码和NAND相关的信息,请自行参考IPNC_DM365和IPNC_DM368的代码分支就明白了

    为了加速你对NAND boot的理解,请仔细阅读下面的文章

    www.ti.com.cn/.../zhca125.pdf

  • sfh_DM36x.exe,我是通过在TI官网上下载的dvsdk_dm368-evm_4_02_00_06_setuplinux压缩包,安装后,在/usr/local/dvsdk/psp/board_utilities/serial_flash/dm365 路径下的这个串口烧写工具,大小为81,920 Byte。不知道,如你所言,是不是我这个Nand flash的烧写工具,有问题呢?

    我现在迷惑的地方是,为什么通过串口烧写同一个ubl 和 u-boot程序,烧录K9F5608U0C 正常,烧录在K9F1G08U0C中,u-boot无法启动?是不是IPNC SDK里的 u-boot 代码需要做修改才能 支持 K9F1G08U0C 呀??

    www.ti.com.cn/.../zhca125.pdf

    这个文档,看了好几遍,但我仍不能从中找到目前我们这个问题的解决方案。。。哎!有点郁闷了

  • 问题的关键点是这样的,

    烧写到NAND上的时候,对NAND的配置,一定要和UBL认出来的配置相同才能跑起来

    两个建议,

    1. 调试一下串口烧录工具,看烧录的过程中,对NAND的配置是否正确

    2. 按照IPNC文档,作一个SD boot烧录

  • 这两天参看了IPNC文档,准备制作一个SD boot的烧录。

    执行到sudo ./dm3xx_sd_boot data /media/disk(Folder where card is mounted)命令时,出现以下错误提示:

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sudo ./dm3xx_sd_boot data /media/dm3xx-boot

    copying data to

    Writing /media/dm3xx-boot

    openning data file: Is a directory

    failed to build data image

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1#

    /media/disk,该目录为SD卡在Ubuntu下插、拔后,linux自动mount到的目录。

    不知是何原因导致失败的呢?

    测试环境:128MB SD卡,笔记本有自带内置读卡器。

  • 这两天参看了IPNC文档,准备制作一个SD boot的烧录。

    执行到sudo ./dm3xx_sd_boot data /media/disk(Folder where card is mounted)命令时,出现以下错误提示:

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sudo ./dm3xx_sd_boot data /media/dm3xx-boot

    copying data to

    Writing /media/dm3xx-boot

    openning data file: Is a directory

    failed to build data image

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1#

    /media/disk,该目录为SD卡在Ubuntu下插、拔后,linux自动mount到的目录。

    不知是何原因导致失败的呢?

    测试环境:128MB SD卡,笔记本有自带内置读卡器。

  • 敲一个mount命令看看sd卡mount到哪里了,手动mount看看

    或者换一个USB的读卡器试试

    实在不行,执行sudo sh -x ./dm3xx_sd_boot data /media/disk看看log

  • 手动mount试了,也不行;

    换了一个USB的读卡器试了,也不行;

    实在不行了,执行sudo sh -x ./dm3xx_sd_boot data /media/disk,显示为以下信息:

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sudo sh -x ./dm3xx_sd_boot data /media/disk/

    + set -o allexport

    + SUCCESS='\033[2;32m'

    + BLUE='\033[1;34m'

    + RED='\033[0;31m'

    + WARNING='\033[0;33m'

    + NOCOLOR='\033[0;39m'

    + GREENU='\033[4;32m'

    + sdc_mnt=/mnt/sdc

    + u=DM35x_FlashAndBootUtils_1_10_sd

    ++ uname -m

    ++ sed -e 's/i.86.*/x86/' -e 's/arm.*/arm/' -e 's/x86.*/x86/'

    + arch=x86

    + export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:bin.x86

    + PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:bin.x86

    + . ./dm3xx_sd.config

    ++ a=DM368_IPNC

    ++ a=DM36x

    ++ case $modelname in

    ++ ubl=original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    ++ uboot=original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    ++ kernel=original/uImage_ipnc_dm368_3.0.0

    ++ rootfs=original/ipnc_dm368_3.0.0.squashfs

    +++ echo /media/disk/dm3xx.dat

    ++ data_file=/media/disk/dm3xx.dat

    ++ ls sdcard_flash/sdcard_flash_DM36x.bin

    + sdboot=sdcard_flash/sdcard_flash_DM36x.bin

    + cmd=data

    + '[' -z data ']'

    + shift

    + sd=/media/disk/

    + case "$cmd" in

    + :

    + data_file=/media/disk/

    + ubl=original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    + uboot=original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    + kernel=original/uImage_ipnc_dm368_3.0.0

    + rootfs=original/ipnc_dm368_3.0.0.squashfs

    + sdcard_data

    + case $arch in

    + set -a

    + echo 'copying data to'

    copying data to

    + dm3xx_boot_data=/media/disk/

    + dm3xx_boot_make_image

    Writing /media/disk/

    openning data file: Is a directory

    + echo_failure failed to build data image

    + printf '\033[0;31mfailed to build data image\033[0;39m\n'

    failed to build data image

    + return 1

    + return

    + set -o allexport

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1#

    郁闷了!我的环境是,VMWare Workstation 7.0.0,Ubuntu 12.04 beta2 。

  • 插上读卡器,cat  /proc/partitions看看是啥

    format的工作作了吗? sudo sh -x ./dm3xx_sd_boot format /dev/xxx

  • 现在是没有用USB的读卡器,直接把SD卡插在笔记本电脑里的内置读卡器中。

    root@ubuntu:/proc# cat partitions

    major minor  #blocks  name

     11        0    1048575 sr0

      8        0   28311552 sda

      8        1   27261952 sda1

      8        2          1 sda2

      8        5    1046528 sda5

      8       16     124160 sdb

      8       17      40991 sdb1

      8       18      83082 sdb2

    format的工作也做了,在SD卡里也有生成一个大约15.4MB大小的 dm3xx.dat 文件。

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sudo ./dm3xx_sd_boot f

    ormat /dev/sdb

    cleaning SD card

    1000+0 records in

    1000+0 records out

    1024000 bytes (1.0 MB) copied, 0.865971 s, 1.2 MB/s

    Disk /dev/sdb: 1017 cylinders, 4 heads, 61 sectors/track

    sfdisk: ERROR: sector 0 does not have an msdos signature

    /dev/sdb: unrecognized partition table type

    Old situation:

    No partitions found

    New situation:

    Units = mebibytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

      Device Boot Start   End    MiB    #blocks   Id  System

    /dev/sdb1   *     0+    40-    41-     40991+   b  W95 FAT32

    /dev/sdb2   *    40+   121-    82-     83082   83  Linux

    /dev/sdb3         0      -      0          0    0  Empty

    /dev/sdb4         0      -      0          0    0  Empty

    Successfully wrote the new partition table

    Re-reading the partition table ...

    mkfs.vfat 3.0.12 (29 Oct 2011)

    0+0 records in

    0+0 records out

    0 bytes (0 B) copied, 7.621e-05 s, 0.0 kB/s

    0+1 records in

    0+1 records out

    19 bytes (19 B) copied, 2.791e-05 s, 681 kB/s

    total 15000

    -rwxr-xr-x 1 root root 15360000 Sep 25 17:34 dm3xx.dat

    SD card /dev/sdb formatted

    10000+0 records in

    10000+0 records out

    10240000 bytes (10 MB) copied, 0.980616 s, 10.4 MB/s

    dm3xx_boot_data_addr=0x0a2000

    Image dm3xx_boot_rec:a1aced00 100 3c 511 0 0 0 0 a2000

    10000+0 records in

    10000+0 records out

    10240000 bytes (10 MB) copied, 0.974844 s, 10.5 MB/s

    dm3xx boot record is written

    Please reinsert the card for auto mounting or mount it manually

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1#

    难道是我的SD卡也出问题了吗? 在Windows下,用这张SD卡读、写数据都是正常的,磁盘检测也没有坏道那些的。。

  • mount /dev/sdb /media/disk,然后直接sh -x ./dm3xx_sd_boot data(后面不加参数)看看

    或者sh -x ./dm3xx_sd_boot data /media/disk/dm3xx.dat看看

  • 专家,先问个题外话:

    请问,制作成功 SD boot 烧录后,那张 SD 卡里应该是有哪些文件?然后,将IPNC 跳线成Boot Mode启动模式,将SD卡插入,上电启动机器,在串口里会有什么提示信息输出?

    可能是我的SD卡有点问题,实在不行的话,我再多买几张SD卡试试看

  • mount /dev/sdb /media/disk,然后直接sh -x ./dm3xx_sd_boot data(后面不加参数)看看

    或者sh -x ./dm3xx_sd_boot data /media/disk/dm3xx.dat看看

    这样操作,貌似没有报错了,好像可以了?

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sh -x ./dm3xx_sd_boot data /media/disk/dm3xx.dat

    + set -o allexport

    + SUCCESS='\033[2;32m'

    + BLUE='\033[1;34m'

    + RED='\033[0;31m'

    + WARNING='\033[0;33m'

    + NOCOLOR='\033[0;39m'

    + GREENU='\033[4;32m'

    + sdc_mnt=/mnt/sdc

    + u=DM35x_FlashAndBootUtils_1_10_sd

    ++ uname -m

    ++ sed -e 's/i.86.*/x86/' -e 's/arm.*/arm/' -e 's/x86.*/x86/'

    + arch=x86

    + export PATH=/usr/local/montavista/pro/devkit/arm/v5t_le/bin:/usr/local/montavista/pro/bin:/usr/local/montavista/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:bin.x86

    + PATH=/usr/local/montavista/pro/devkit/arm/v5t_le/bin:/usr/local/montavista/pro/bin:/usr/local/montavista/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:bin.x86

    + . ./dm3xx_sd.config

    ++ a=DM368_IPNC

    ++ a=DM36x

    ++ case $modelname in

    ++ ubl=original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    ++ uboot=original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    ++ kernel=original/uImage_ipnc_dm368_3.0.0

    ++ rootfs=original/ipnc_dm368_3.0.0.squashfs

    +++ echo /media/disk/dm3xx.dat

    ++ data_file=/media/disk/dm3xx.dat

    ++ ls sdcard_flash/sdcard_flash_DM36x.bin

    + sdboot=sdcard_flash/sdcard_flash_DM36x.bin

    + cmd=data

    + '[' -z data ']'

    + shift

    + sd=/media/disk/dm3xx.dat

    + case "$cmd" in

    + :

    + data_file=/media/disk/dm3xx.dat

    + ubl=original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    + uboot=original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    + kernel=original/uImage_ipnc_dm368_3.0.0

    + rootfs=original/ipnc_dm368_3.0.0.squashfs

    + sdcard_data

    + case $arch in

    + set -a

    + echo 'copying data to'

    copying data to

    + dm3xx_boot_data=/media/disk/dm3xx.dat

    + dm3xx_boot_make_image

    Writing /media/disk/dm3xx.dat

    000200-006aac,    26796 bytes <- sdcard_flash/sdcard_flash_DM36x.bin

    008000-008200,    512 bytes <- test pattern 1 2 3

    010000-015000,    20480 bytes <- original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    020000-043554,   144724 bytes <- original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    060000-2e9004,  2658308 bytes <- original/uImage_ipnc_dm368_3.0.0

    400000-106a000, 13017088 bytes <- original/ipnc_dm368_3.0.0.squashfs

    + echo syncing

    syncing

    + sync

    + echo_success DM355 boot data copied in data file /media/disk/dm3xx.dat on

    + printf '\033[2;32mDM355 boot data copied in data file /media/disk/dm3xx.dat on\033[0;39m\n'

    DM355 boot data copied in data file /media/disk/dm3xx.dat on

    + df /media/disk/dm3xx.dat

    Filesystem     1K-blocks  Used Available Use% Mounted on

    /dev/sdd1          40345 16809     23536  42% /media/disk

    + set -o allexport

    最后一步,执行,sudo make install

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1# sudo make install

    ./dm3xx_sd_boot data

    copying data to

    Writing /media/disk/dm3xx.dat

    000200-006aac,    26796 bytes <- sdcard_flash/sdcard_flash_DM36x.bin

    008000-008200,    512 bytes <- test pattern 1 2 3

    010000-015000,    20480 bytes <- original/ubl_432arm_340ddr_ipnc_dm368_2.0.0.bin

    020000-043554,   144724 bytes <- original/u-boot-1.3.4-dm368_ipnc_2.0.0.bin

    060000-2e9004,  2658308 bytes <- original/uImage_ipnc_dm368_3.0.0

    400000-106a000, 13017088 bytes <- original/ipnc_dm368_3.0.0.squashfs

    syncing

    DM355 boot data copied in data file /media/disk/dm3xx.dat on

    Filesystem     1K-blocks  Used Available Use% Mounted on

    /dev/sdd1          40345 16809     23536  42% /media/disk

    root@ubuntu:/home/DM368IPNC/Utils/src/dm3xx_sd_boot-6.1#

    SD卡里还是只有 dm3xx.dat 这一个文件?只不过,文件的大小由之前的15,360,000 byte,变成了17,211,392 byte,对吗?

    将IPNC跳线成Boot Mode启动方式,插入SD卡,上电启动设备,超级终端里,串口无任何输出信息??咋回事呢

  • dm3xx_sd_boot是IPNC里带的吗?  

  • dm3xx_sd_boot是IPNC里带的。

    请问,制作成功 SD boot 烧录后,那张 SD 卡里应该是有哪些文件?

    我现在制作完SD boot烧录后,SD卡里还是只有 dm3xx.dat 这一个文件?只不过,文件的大小由之前的15,360,000 byte,变成了17,211,392 byte,对吗?

  • 是的,只有dm3xx.dat一个文件,没有其他文件了

  • SD 卡坏了,过几天再试试!

    我想问一下,如果我直接通过Flash的烧录器 烧写file system、kernel、u-boot、ubl,可以的吗?烧写的地址不是从0X00 零地址开始吧?我这有一款烧录器可以支持到三星Nand flash K9F1G08U0C-PCB0 的,但不知道如何用,每个文件的烧写地址是从哪里开始?好像 IPNC 的文档里,没有提到 用烧录器 烧写程序方面的内容呀 。。。

  • 烧录器也是可以的,但是要关掉烧录器本身的ECC校验,相当于做烧录镜像的时候要包括NAND ECC(按照DM36x支持的ECC方式和ECC位置)

  • 貌似有点麻烦呀!

    请问专家,DM36x支持的ECC方式和ECC位置,在IPNC的哪个文档里有说明啊?

    还有,file system、kernel、u-boot、ubl,要通过烧录器烧写这4个文件,对应nand flash的地址分别是多少?难道就是IPNC文档里,使用TFTP命令nand write的那几个地址么??0X900000,0X500000,0X160000,0X80000,是分别对应的这四个起始地址吗?

  • 请问专家,

    u-boot/include/linux/mtd/nand_ids.h 这个文件里,

    static struct nand_flash_dev nand_flash_ids[] = {

    {"Toshiba TC5816BDC",     NAND_MFR_TOSHIBA, 0x64, 21, 1, 2, 0x1000, 0},

    {"Toshiba TC5832DC",      NAND_MFR_TOSHIBA, 0x6b, 22, 0, 2, 0x2000, 0},

    {"Toshiba TH58V128DC",    NAND_MFR_TOSHIBA, 0x73, 24, 0, 2, 0x4000, 0},

    {"Toshiba TC58256FT/DC",  NAND_MFR_TOSHIBA, 0x75, 25, 0, 2, 0x4000, 0},

    {"Toshiba TH58512FT",     NAND_MFR_TOSHIBA, 0x76, 26, 0, 3, 0x4000, 0},

    {"Toshiba TC58V32DC",     NAND_MFR_TOSHIBA, 0xe5, 22, 0, 2, 0x2000, 0},

    {"Toshiba TC58V64AFT/DC", NAND_MFR_TOSHIBA, 0xe6, 23, 0, 2, 0x2000, 0},

    {"Toshiba TC58V16BDC",    NAND_MFR_TOSHIBA, 0xea, 21, 1, 2, 0x1000, 0},

    {"Toshiba TH58100FT",     NAND_MFR_TOSHIBA, 0x79, 27, 0, 3, 0x4000, 0},

    {"Samsung KM29N16000",    NAND_MFR_SAMSUNG, 0x64, 21, 1, 2, 0x1000, 0},

    {"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0x6b, 22, 0, 2, 0x2000, 0},

    {"Samsung KM29U128T",     NAND_MFR_SAMSUNG, 0x73, 24, 0, 2, 0x4000, 0},

    {"Samsung KM29U256T",     NAND_MFR_SAMSUNG, 0x75, 25, 0, 2, 0x4000, 0},

    {"Samsung unknown 64Mb",  NAND_MFR_SAMSUNG, 0x76, 26, 0, 3, 0x4000, 0},

    {"Samsung KM29W32000",    NAND_MFR_SAMSUNG, 0xe3, 22, 0, 2, 0x2000, 0},

    {"Samsung unknown 4Mb",   NAND_MFR_SAMSUNG, 0xe5, 22, 0, 2, 0x2000, 0},

    {"Samsung KM29U64000",    NAND_MFR_SAMSUNG, 0xe6, 23, 0, 2, 0x2000, 0},

    {"Samsung KM29W16000",    NAND_MFR_SAMSUNG, 0xea, 21, 1, 2, 0x1000, 0},

    {"Samsung K9F5616Q0C",    NAND_MFR_SAMSUNG, 0x45, 25, 0, 2, 0x4000, 1},

    {"Samsung K9K1216Q0C",    NAND_MFR_SAMSUNG, 0x46, 26, 0, 3, 0x4000, 1},

    {"Samsung K9F1G08U0M",    NAND_MFR_SAMSUNG, 0xf1, 27, 0, 2, 0, 0},

    {NULL,}

    };

    0xf1,我知道是指K9F1G08U0M的 Chip ID,但后面的 27,0,2,0,0 是怎么计算出来的?我看了 K9F1G08U0D 的datasheet,但我也不知道如何将Samsung K9F1G08U0D加入到这个 static struct nand_flash_dev nand_flash_ids[]  里??

  • 这些天一直在和台湾Appro积极沟通这个问题,Appro那边一再确认,DM368 IPNC SDK里提供的ubl 和 uboot 是可以支持到三星nand flash K9F1G08U0D-SCB0这颗128MB flash的。

    那我想请问,假设 ubl 和uboot 程序本身没有问题的话,那么以下三种烧写 ubl 和 uboot 的方式,有啥区别呢?

    第一,使用DM368 USB仿真器,通过CCS烧写;

    第二,做一个SD boot,通过SD卡烧写;

    第三,使用烧写工具sfh_DM36x,通过串口进行烧写;

    sfh_DM36x  -nandflash ubl_432arm_340ddr_ipnc_dm368_1.1.0.bin u-boot-1.3.4-dm368_ipnc_1.0.1.bin

    -p "com2"

    通过串口烧写 ubl 和 uboot 程序,确实在IPNC DOC里没有提及,难道这种方式会有什么问题吗? 我看网上也有很多人是用这种方法来烧录程序的吧

  • 请问,专家 Tuff Li 怎么最近都没有在论坛里回复问题了,是放假去了么?

    突然看到,/flash_utils/DM36x/GNU/readme.txt 文档里,有段这样的话:

    NOTE: Currently, YOU MUST USE THE UBL BINARY CREATED BY THE UBL PROJECT IN THIS PACKAGE.

         If you use any other UBL binary, the boot procedure will most likely fail.

    意思是说,在使用sfh_DM36x 这个工具通过串口下载 ubl 和 uboot程序时,如果UBL的代码不使用 DVSDK 里提供的默认文件,有可能会导致下载后的程序,ubl、uboot启动失败么??

  • Jessie,不好意思,很久没有上论坛了,问题解决了吗?

    这段话的意思是说,烧写工具里的UBL要和你烧写到flash里的UBL要一致

  • 嗯,问题基本上解决了!谢谢 Tuff Li

     

    现在,请专家关注我的新问题吧,有关 在DM368上搭建NFS调试环境的帖子:

    http://www.deyisupport.com/question_answer/f/39/t/17662.aspx

  • 能告诉我,你是怎么解决的么?

    我也是同你一样的问题,通过CCS烧写是没有问题的,通过sfh_DM36x那个工具就出现和你样的提示

    麻烦前辈告知解决办法

  • 您好,我使用的RDK是IPNC_RDK_DM36xV5.1.0,为什么会没有dm3xx_sd_boot-6.1的相关工具?

    或者说,您能提供支持IPNC DM368的dm3xx_sd_boot-6.1吗?

  • 大神,我把这篇文章看完了。发现我遇到的和你是差不多的问题。但是,我的水平太差,有点看不懂你们的对话。如果可以的话能帮我看看问题吗?

    =============下面是问题描述==================

    我用的是DM368芯片,不过是LeopardBoard的板子,也是为了完成IPNC。开始是make ---> make install 得到sdcard.img,然后用dd命令烧录到一张8G的sdCard里面,然后选择sdCard启动模式,上电启动,一切正常。

    问题来了,现在我需要保证这些功能的基础上,从自带的Nand Flash启动,那么我该怎么做才能把sdcard.img烧录到Nand Flash里面?能帮帮我吗?

    【我还是一个学生,带我的老师也不懂,天天催命的完成任务,跪求帮助!】

    谢谢!

    谢谢!

    谢谢!