wen_jian_1973

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973  发布于  2016-06-12 11:20:12
采纳率 0%
9个问答
20730

HI3536 spi nand flash 求助

 
弄到一块3536的板子,板上带SPI NAND FLASH 128M
我烧写SDK的UBOOT,不能正常工作,提示一直在找flash,找了SPI NOR FLASH,又找了NAND FLASH,然后重启了。
后来从板子厂家的其它板上,进入UBOOT,上传了它的UBOOT二进制程序,下载到我这块板上,UBOOT可以工作了
KERNEL现在也可以,但是ROOTFS就卡住了
我本来想从其它板上拷贝过来的,但是因为是yaffs2系统,而且坏块位置不一样,所以就算原样将其它板子flash都拷贝过来也不行
于是我就根据海思sdk做了1个rootfs,用mkyaffs2image400工具,然后烧写到flash,但是kernel启动后就死掉了
后来看sdk有个nand_product工具,也不行,不知道这个工具干嘛用的
不知道大家是怎么搞的,以前都是用spi flash的,没玩过nand

还有一个问题,我用hitool烧写,烧写uboot还可以,但是按地址烧写就不行,确定设置没有问题。而在UBOOT命令行里面是可以烧写的
我来回答
回答15个
时间排序
认可量排序

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2016-06-12 11:24:31
认可0
增加点人气,免费下载Hi3536 V100R001C02SPC040的sdk
3天之后取消,想要的赶紧
链接:[url]http://pan.baidu.com/s/1slFxSc9[/url] 密码:fgar

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2016-06-12 11:26:19
认可0
yaffs2的 pagesize ecctype 要对!

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-12 11:49:58
认可0
本帖最后由 ngswfx 于 2016-6-12 11:52 编辑

我前几天也在搞nand,和你一样,以前用spi,转到NAND,也是遇到不少问题。

////////////主要还是对于每种文件系统方式,命令的格式等还不熟悉,自以为是的按照SPI搞。没自己看文档导致的。

比如:nand write的时候,有的是nand write.i  有的是nand write.yaffs

而且写的大小,也必须按照实际文件大小来  nand write.yaffs 1000000 600000 $(filesize),按照分区大小就不行。

生成这个文件系统镜像时,也有好多要注意的地方。

//////////////////我现在用的UBI文件系统,能读写,还不错,调试期间用很方便,因为随时会调整文件,升级修改。可以参考[url]http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=10461&highlight=UBI[/url]后面的回复。

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2016-06-12 14:52:17
认可0
谢谢回复。
还是没搞定,一些信息如下:

UBOOT信息:
U-Boot 2010.06 (Dec 24 2015 - 18:47:28)
Check SPI Nand Flash Controller v100 ... Found
SPI Nand ID Table Version 1.5
SPI Nand : Manufacturer ID[0x9b] Device ID[0x12 0x0]
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:4bit/512
Nand total size: 128MB
--------------------------------------------------
内核信息:
Found SPI Nand Flash Controller v100.
SPI Nand ID Table Version 1.5
SPI Nand : Manufacturer ID[0x9b]
Device ID[0x12 0x9b]
Nand: ATO ATO25D1GA
Nand(Hardware): Block:128KB Page:2KB OOB:64B ECC:4bit/512B Chip:128MB*1
NAND_ECC_NONE selected by board driver. This is not recommended!

--------------------------------------------------
内核启动到rootfs这块死机信息:

yaffs: dev is 32505858 name is "mtdblock2" rw
yaffs: passed flags ""
VFS: Mounted root (yaffs2 filesystem) on device 31:2.
Freeing unused kernel memory: 188K (c06ba000 - c06e9000)
Kernel panic - not syncing: No init found.  Try passing init= option to kernel.                               See Linux Documentation/init.txt for guidance.
CPU1: stopping
CPU: 1 PID: 0 Comm: swapper/1 Not tainted 3.10.0_hi3536 #3
[] (unwind_backtrace+0x0/0xf4) from [] (show_stack+0x10/0x14                              )
后面还有很多数字,就不写了
--------------------------------------------------

从uboot看spi nand flash应该是2k 4bit
命令是:nand write.yaffs  后面是实际的TFTP下载的文件大小
由于sdk带的rootfs是mkyaffs2image610做的,而我的uboot认mkyaffs2image400
所以我用rootfs_glibc.tgz重新制作的

我又下载了uclibc版本的试了,也不行
不知道什么原因

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-14 20:06:13
认可0
本帖最后由 ngswfx 于 2016-6-14 20:37 编辑

[quote][url=forum.php?mod=redirect&goto=findpost&pid=31498&ptid=11571]wen_jian_1973 发表于 2016-6-12 14:52[/url]
谢谢回复。
还是没搞定,一些信息如下:

[/quote]

你的这个信息,应该就是yaffs2的格式没弄对。

到了kernel后,系统会装载相应的文件系统驱动,kernel不同,支持的类型不同,(当然uboot里面的环境配置中,也要设置对bootarg等,要注明mtd是yaffs)注意看kernel配置里面关于文件系统的选择项。menuconfig界面打开后注意看  filesystem选项里面。检查文件系统支持那种格式。

//我估计你出现的问题就是用了400的压缩工具做的yaffs2,和kernel里面的配置不一致引起的。


device driver里面也要注意nand的驱动配置。
isilicon SPI Nand Controller v100 device Support (NEW)  --│ │  
  │ │    <*>   Hisilicon NAND Controller v610 device Support (NEW)  --->

//////这些选项要匹配才行的。


/////////按照你的描述,你的Uboot支持的yaffs是400,难道写入的时候,格式有差异?  如果这样就很矛盾了。需要从uboot到kernel,再到产生rootfs用的makeyaffs工具,都必须保持一致。

mkyaffs2image400  mkyaffs2image610 mkyaffs2image504好几个版本呢

我就不是很确定,这里的Hisilicon NAND Controller v610 是不是必须要和mkyaffs2image610保持一致。

rootfs是和芯片关联性最弱的,你可以随便弄几个目录压缩成rootfs,使用mkyaffs400工具压缩成包,然后让kernel去挂载。没必要非用海斯默认给的rootfs。等能进入rootfs环境了,再来考虑里面具体内容即可。







//////////////////////////////////////////////////////////////你的Uboot的确有些怪异,怎么是nand 100而不是610

/*-----------------------------------------------------------------------
* NAND Flash Configuration
*----------------------------------------------------------------------*/
//#define CONFIG_NAND_SUPPORT

#ifdef CONFIG_NAND_SUPPORT
        //#define CONFIG_ENV_IS_IN_NAND /* env in nand flash */
        #define CONFIG_CMD_NAND
        #define CONFIG_SYS_MAX_NAND_DEVICE                1
        #define CONFIG_NAND_FLASH_HINFC610
/*        #define CONFIG_NAND_FLASH_HISNFC100        */                   //海斯默认没开100,开的是610  100是叫做SPI NAND 610是NAND,不解,没弄过这种SPI NAND
#endif /* CONFIG_NAND_SUPPORT */

#ifdef CONFIG_NAND_FLASH_HINFC610
        #define CONFIG_SYS_NAND_MAX_CHIPS                1
        #define CONFIG_SYS_NAND_BASE                        NAND_MEM_BASE
        #define CONFIG_HINFC610_MAX_CHIP        CONFIG_SYS_MAX_NAND_DEVICE
        #define CONFIG_HINFC610_REG_BASE_ADDRESS        NANDC_REG_BASE
        #define CONFIG_HINFC610_BUFFER_BASE_ADDRESS        NAND_MEM_BASE
        #undef CONFIG_HINFC610_PAGESIZE_AUTO_ECC_NONE
#endif /* CONFIG_NAND_FLASH_HINFC610 */

#ifdef CONFIG_NAND_FLASH_HISNFC100
        #define CONFIG_SYS_NAND_MAX_CHIPS                1
        #define CONFIG_SYS_NAND_BASE                        SPI_NAND_MEM_BASE
        #define CONFIG_HISNFC100_MAX_CHIP        CONFIG_SYS_MAX_NAND_DEVICE
        #define CONFIG_HISNFC100_REG_BASE_ADDRESS        SPI_NAND_REG_BASE
        #define CONFIG_HISNFC100_BUFFER_BASE_ADDRESS        SPI_NAND_MEM_BASE
        #define CONFIG_HISNFC100_HARDWARE_PAGESIZE_ECC
#endif /* CONFIG_NAND_FLASH_HISNFC100 */

///////////////如果确定是SPI nand 而不是nand,做kernel,用的defig也不同,hi3536_spinand_slave_defconfig:主CPU+从PCIE(或者没有PCIE)+不引导从CPU+SPINAND;

ngswfx

2个粉丝

55

问答

1

专栏

40

资料

ngswfx 2016-06-14 20:44:52
认可0
本帖最后由 ngswfx 于 2016-6-14 22:33 编辑

你这个是SPI NAND,不是SPI,也不是NAND,是SPI NAND。开始搞错了。
///////////////////////
这么看来,你需要先修改自己的uboot,使其支持#define CONFIG_NAND_FLASH_HISNFC100 ,你现在下载的uboot应该就是这么做的。

然后在kernel配置里面选择相应SPI NAND支持:<*>   Hisilicon SPI Nand Controller v100 device Support  --->   注意里面的具体配置,可能也有区别。

然后才是用工具来做rootfs,是不是用mkyaffs2image400可要网上搜一下,我可没试过,烧写时用sf write 还是nand write.yaffs都不知道呀:lol

goodman

4个粉丝

30

问答

18

专栏

17

资料

goodman 2016-06-15 08:42:14
认可0
本帖最后由 goodman 于 2016-6-15 08:44 编辑

问题解决请结贴!

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2016-06-15 11:11:49
认可0
400 对应spi nand flash,uboot叫snfc100
610对应nand flash
我这块板是spi nand flash,所以uboot没问题,而且uboot用sdk做好的yaffs是写不进去的,因为那是610
spi nand flash对应400的rootfs需要自己弄

另一个帖子,我编译了spi nand flash的内核,内核工作了,但是rootfs还是没有起来
我看内核打印信息
Found SPI Nand Flash Controller v100.
SPI Nand ID Table Version 1.5
SPI Nand : Manufacturer ID[0x9b]
Device ID[0x12 0x9b]
Nand: ATO ATO25D1GA
Nand(Hardware): Block:128KB Page:2KB OOB:64B ECC:4bit/512B Chip:128MB*1
NAND_ECC_NONE selected by board driver. This is not recommended!

这里很奇怪,芯片是没有问题的,2k 4bit ECC,但是最后一行确实NAND_ECC_NONE
这个不知道是不是cpu硬件不进行ECC验证,而不影响rootfs
我制作rootfs,如果选ecc none,则提示不支持这种参数

我准备再编译uboot看看

wen_jian_1973

0个粉丝

9

问答

0

专栏

0

资料

wen_jian_1973 2016-06-16 11:33:09
认可0
今天又试了下,成功了
错误很低级啊,尽然是分区看错了,这个uboot分区是1M 5M 110M
结果我从5M的地方开始写rootfs了,应该是从6M的地方开始写
哎,老了,眼花了

最后谢谢各位帮助
结贴

linux520

0个粉丝

0

问答

0

专栏

0

资料

linux520 2016-06-20 20:23:58
认可0
几天也在搞nand SPI
Hi3536  nand SPI 有 支援 squashfs 嗎?
常出現 "SQUASHFS error: Unable to read data cache entryxxxx"

blacktangel

0个粉丝

12

问答

0

专栏

0

资料

blacktangel 2016-09-30 16:30:13
认可0
能再开放一次下载吗?

yuyun7858

0个粉丝

1

问答

0

专栏

0

资料

yuyun7858 2017-05-04 16:28:45
认可0
楼主Spi nandFlash在烧录的时候Flash类型还是选择Spi吗

yuyun7858

0个粉丝

1

问答

0

专栏

0

资料

yuyun7858 2017-05-09 11:08:16
认可0
楼主,怎么把uboot烧录进SPI NandFlash啊?我尝试很多方式都不行,HiTool软件下Fastboot怎么都烧不进去,能解答一下嘛

tlx1025

0个粉丝

7

问答

0

专栏

6

资料

tlx1025 2019-04-14 21:59:12
认可0
问个问题:直接用海思SDK自带的Uboot,用Hitool工具,烧写fastboot,选择SPI或者nand方式,可以烧录成功吗?
我试了Hi3531A和Hi3536芯片都不行,SPI Nand flash用额型号是:MX35LF1GE4AB和MX35LF2GE4AB;
若是原厂自带的SDK的uboot不可以,需要修改哪里?

theeeo

0个粉丝

7

问答

0

专栏

0

资料

theeeo 2019-07-13 16:33:52
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=142171&ptid=11571]tlx1025 发表于 2019-4-14 21:59[/url]
问个问题:直接用海思SDK自带的Uboot,用Hitool工具,烧写fastboot,选择SPI或者nand方式,可以烧录成功吗 ...[/quote]

我遇到的问题跟你一模一样,甚至flash的型号都一样,请问有办法解决吗?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区