u-boot-2014.10移植(3)识别NOR Flash

发布时间:
来源: 电子工程世界

主要是将我们使用的nor flash 型号添加到jedec_table中

File : drivers/mtd/jedec_flash.c


jz2440    :MX29LV160DB       2M  id= 0x2249, MX29LV160B 宏需要自己添加


#define MX29LV160B      0x2249

mini2440  :SST29LV1601 (AM29LV160DB)   35sectors   id = 0x2249


// for jz2440

                {

                    .mfr_id        = MT_MANUFACT,

                    .dev_id        = MX29LV160B,

                    .name        = "MXIC MX29LV160B",

                    .uaddr        = {

                        [0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */

                        [1] = MTD_UADDR_0x0555_0x02AA,  /* x16 */

                    },

                    .DevSize    = SIZE_2MiB,

                    .CmdSet        = P_ID_AMD_STD,

                    .NumEraseRegions= 4,

                    .regions    = {

                    ERASEINFO(0x04000,1),

                    ERASEINFO(0x02000,2),

                    ERASEINFO(0x08000,1),

                    ERASEINFO(0x10000,31)

                    }

                },

// for mini2440

                {

                    .mfr_id        = AMD_MANUFACT,

                    .dev_id        = AM29LV160DB,

                    .name        = "AMD AM29LV160DB",

                    .uaddr        = {

                        [0] = MTD_UADDR_0x0AAA_0x0555,  /* x8 */

                        [1] = MTD_UADDR_0x0555_0x02AA   /* x16 */

                    },

                    .DevSize    = SIZE_2MiB,

                    .CmdSet        = P_ID_AMD_STD,

                    .NumEraseRegions= 4,

                    .regions    = {

                        ERASEINFO(0x04000,1),

                        ERASEINFO(0x02000,2),

                        ERASEINFO(0x08000,1),

                        ERASEINFO(0x10000,31)

                    }

                }, 


在smdk2440.h里面把#define CONFIG_SYS_MAX_FLASH_SECT (19)   改成35

  

再次编译并烧写:


U-Boot 2014.10 (Nov 01 2018 - 11:32:28)


        CPUID: 32440001

        FCLK:      400 MHz

        HCLK:      100 MHz

        PCLK:       50 MHz

        DRAM:  64 MiB

        WARNING: Caches not enabled

        Flash: 2 MiB

        *** Warning - bad CRC, using default environment

        

        In:    serial

        Out:   serial

        Err:   serial

        Net:   CS8900-0

        Error: CS8900-0 address not set.

        

        Warning: Your board does not use generic board. Please read

        doc/README.generic-board and take action. Boards not

        upgraded by the late 2014 may break or be removed.


可知, nor flash已经被正确识别,可以在smdk2440.h里面定义DEBUG宏看出更详细信息。

  

  去掉最后那个Warning, 在common/main.c  里面main_loop里面:


#ifndef CONFIG_SYS_GENERIC_BOARD

            puts("Warning: Your board does not use generic board. Please readn");

            puts("doc/README.generic-board and take action. Boards notn");

            puts("upgraded by the late 2014 may break or be removed.n");

        #endif


文章来源于: 电子工程世界 原文链接

本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。