Other Parts Discussed in Thread: AM3351, AM3352, TPS65217
主题中讨论的其他器件: AM3352、 TPS65217
工具/软件:Linux
大家好、
我正在尝试使用 ti-processor-sdk-linux-am335x-evm-03.00.00.04从 nand 芯片 MT29F4G08ABADAH 引导 AM3351定制板。 它会出现、直到您成功引导。 从 u boot 读取/写入到 MTD 分区并成功引导内核。 但无法读取/安装文件系统分区。
我的 GPMC 配置为:
GPMC{
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&eMMC_PINs>;
范围=<0 0x08000000 0x20000000>; // CS0:512MB 表示 NAND */
TI、elm-id =<和 elm>;
NAND@0、0{
兼容="ti、OMAP2-nand";
NAND-BUS 宽度=<8>;
reg =<0 0 4>;/* CS0、偏移量0、IO 大小4 */
interrupt-parent =<&GPMC>;
中断=<0 IRQ_TYPE_NONE>、/* FIFO 事件*/
<1 IRQ_TYPE_None>;// termCOUNT */
RB-GPIO =<&GPMC 0 GPIO_ACTIVE_HIGH>;/* GPMC_wait0 */
TI、nand-ecc-opt ="bch8";
TI、elm-id =<和 elm>;
GPMC、DEVACE-NAND ="true";
GPMC、器件宽度=<1>;
GPMC、SYNC-clk-ps =<0>; /**/
GPMC、Adv-on-ns =<10>; /*t ALS */
GPMC、第周期-ns =<20>; /*t RC*/
GPMC、功率周期-ns =<20>; /*t WC*/
GPMC、cs-rd-Off-ns =<25>; /*t CEA*/
GPMC、cs-wr-off-ns =<25>; /*t CEA*/
GPMC、WE-ON-ns =<7>; /*t WH*/
GPMC、OE-ON-ns =<3>; /*Ren*/
GPMC、Ad-rd -关闭-ns =<10>;
GPMC、Adv-wr-off-ns =<25>;
GPMC、WE-OFF-ns =<10>;
GPMC、OE-OFF-ns =<10>;
GPMC、ACCESS ns =<30>;
GPMC、wr 访问-ns =<40>;
#address-cells =<1>;
大小单元格=<1>;
/* MTD 分区表*/
/*所有 SPL-*分区的大小均为最小长度
可独立编程。 原因
* NAND 闪存这等于擦除块的大小*/
分区@0{
标签="NAND.SPL";
REG =<0x00000000 0x000020000>;
};
分区@1{
标签="NAND.SPL.Backup1";
REG =<0x00020000 0x00020000>;
};
分区@2{
标签="NAND.SPL.Backup2";
REG =<0x00040000 0x00020000>;
};
分区@3{
标签="NAND.SPL.backup3";
REG =<0x00060000 0x00020000>;
};
分区@4{
标签="NAND.u-boot-spl-os";
REG =<0x00080000 0x00040000>;
};
分区@5{
标签="NAND.u-BOOT";
REG =<0x000C0000 0x00300000>;
};
分区@6{
标签="NAND.u-boot-env";
REG =<0x003C0000 0x00020000>;
};
分区@7{
标签="NAND.u-boot-env.Backup1";
REG =<0x003E0000 0x00020000>;
};
分区@8{
标签="NAND.kernel";
REG =<0x00400000 0x00800000>;
};
分区@9{
标签="NAND.file-system";
REG =<0x00C00000 0x1F400000>;
};
};
};
Pinmux 如下所示:(取自 u boot)
0x0 (PIN_INPUT | MUX_MODE0) /* GPMC_AD0.GPMC_AD0 */
0x4 (PIN_INPUT | MUX_MODE0) /* GPMC_AD1.GPMC_AD1 */
0x8 (PIN_INPUT | MUX_MODE0) /* GPMC_AD2.GPMC_AD2 */
0xc (PIN_INPUT | MUX_MODE0) /* GPMC_AD3.GPMC_AD3 */
0x10 (PIN_INPUT | MUX_MODE0) /* GPMC_AD4.GPMC_AD4 */
0x14 (PIN_INPUT | MUX_MODE0) /* GPMC_AD5.GPMC_AD5 */
0x18 (PIN_INPUT | MUX_MODE0) /* GPMC_AD6.GPMC_AD6 */
0x1c (PIN_INPUT | MUX_MODE0) /* GPMC_AD7.GPMC_AD7 */
0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_wait0.GPMC_wait0 */
0x74 (PIN_OUTPUT 上拉| MUX_MODE7) /* GPMC_WPN.GPIO0_30 */
0x7c (PIN_OUTPUT 上拉| MUX_MODE0) /* GPMC_csn0.GPMC_csn0 */
0x90 (PIN_OUTPUT | MUX_MODE0) /* GPMC_advn_ALe.GPMC_advn_ALE */
0x94 (PIN_OUTPUT PULLUP | MUX_MODE0) /* GPMC_oen_ren。GPMC_oen_ren *
0x98 (PIN_OUTPUT 上拉| MUX_MODE0) /* GPMC_WN.GPMC_Wen *
0x9C (PIN_OUTPUT | MUX_MODE0) /* GPMC_be0n_cle。GPMC_be0n_cle *
这无法识别 Nand 芯片。 当我打印 nand ID 读取时、我会得到:
[2.234958] nand:****已读 ID:
[2.238013] nand:ID_DATA[00]:00nand:ID_DATA[01]:00
[2.243364] nand:ID_DATA[02]:00nand:ID_DATA[03]:00
[2.248677] nand:ID_DATA[04]:00nand:ID_DATA[05]:00
[2.254021] nand:ID_DATA[06]:00nand:ID_DATA[07]:00
我已经比较了 u-boot 的 GPMC 配置。
U 引导:
#define M_NAND_GPMC_CONFIG1 0x00000800
#define M_NAND_GPMC_CONFIG2 0x001e1e00
#define M_NAND_GPMC_CONFIG3 0x001e1e00
#define M_NAND_GPMC_CONFIG4 0x16051807
#define M_NAND_GPMC_CONFIG5 0x00151e1e
#define M_NAND_GPMC_CONFIG6 0x16000f80
writel (((((size & 0xF)<< 8)|((base >> 24)& 0x3F)|(1 << 6))、&GPMC_cfg->cs[0]。config7);
这是0x00000F48
日志中的内核:
[1.478548] GPMC cs0在 GPMC_cs_program_settings 之前:
[1.48366] cs0 GPMC_CS_CONFIG1:0x00000800
[1.487849] cs0 GPMC_CS_CONFIG2:0x001e1e00
[1.492059] cs0 GPMC_CS_CONFIG3:0x001e1e00
[1.49621] cs0 GPMC_CS_CONFIG4:0x16051807
[1.500398] cs0 GPMC_CS_CONFIG5:0x00151e1e
[1.504601] cs0 GPMC_CS_CONFIG6:0x16000f80
[1.508771] cs0 GPMC_CS_CONFIG7:0x00000f08
[1.823739] GPMC cs0在 GPMC_cs_set_timings 之后:
[2.004717] cs0 GPMC_CS_CONFIG1:0x00000800
[2.00888] cs0 GPMC_CS_CONFIG2:0x00020200
[2.013093] cs0 GPMC_CS_CONFIG3:0x00020101
[2.017264] cs0 GPMC_CS_CONFIG4:0x01010101
[2.021462] cs0 GPMC_CS_CONFIG5:0x00020202
[2.025632] cs0 GPMC_CS_CONFIG6:0x03000000
[2.029799] cs0 GPMC_CS_CONFIG7:0x00000f48
当我从器件树中删除 CS_CONFIGx 参数时、它会成功读取芯片 ID、但我无法通过 ubifs 装载文件系统分区。
[2.011376] nand:ID_DATA[00]:c2nand:ID_DATA[01]:dc
[2.016695] nand:ID_DATA[02]:90nand:ID_DATA[03]:95
[2.022042] nand:ID_DATA[04]:56n 和:ID_DATA[05]:00
[2.027357] nand:ID_DATA[06]:00nand:ID_DATA[07]:00
[2.032701] 与以下项相关:
[2.082728] Nand:找到器件、制造商 ID:0xC2、芯片 ID:0xdc
[2.089055] nand:Macronix MX30LF4G18AC
[2.092919] nand:512 mib,SLC,擦除大小:128 KiB,页大小:2048,OOB 大小:64
[2.100555] nand:使用 OMAP-ECC_BCH8_CODE_HW ECC 方案
[2.106100] 在 MTD 器件8000000.nand 上找到10个部件分区
[2.112227] 在"8000000.nand"上创建10个 MTD 分区:
[2.117625] 0x000000000000-0x000000020000:"NAND.SPL"
[2.126045] FTL_cs:未找到 FTL 标头。
[2.132164] 0x00000002000-0x000000040000:“NAND.SPL.Backup1”
[2.140914] FTL_cs:未找到 FTL 标头。
[2.146644] 0x000000040000-0x000000060000:"NAND.SPL.Backup2"
[2.155434] FTL_cs:未找到 FTL 标头。
[2.161227] 0x000000060000-0x000000080000:"NAND.SPL.backup3"
[2.169929] FTL_CS:未找到 FTL 标头。
[2.175714] 0x000000080000-0x0000000c0000:“NAND.u-boot-spl-OS”
[2.186903] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.194925] 0x0000000c0000-0x0000003c0000:“NAND.u-boot”
[2.206383] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.212611] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.218777] OMAP2-nand 80000.nand:找到不可纠正的位翻转
[2.224973] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.233012] 0x0000003c0000-0x0000003e0000:“NAND.u-boot-env”
[2.241943] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.249928]0x0000003e0000-00x000000400000 :“NAND.u-boot-env.Backup1”
[2.259392] FTL_cs:未找到 FTL 标头。
[2.265259] 0x000000400000-0x000000c00000:“NAND.kernel”
[2.277394] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.283627] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.289791] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.295988] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[2.303982] 0x000000c00000-0x000020000000:“NAND.FILE-SYSTEM”
[2.375159] OMAP2-nand 8000000.nand:uncorrectable bit-fli[4.93500] ubi0:连接 mtd9
[5.001073] ubi0:扫描完成
[5.004825] ubi0:检测到空 MTD 设备
[5.018710] ubi0错误:ubi_EARLY_GET_PEB:无可用的擦写块
[5.024795] ubi0错误:ubi_attach_MTD_dev:无法连接 mtd9,错误-28
[5.031905] UBI 错误:无法连接 mtd9
[5.044701] vmmcsd_fixed:正在禁用
[5.051153] UBIFS 错误(pid:1):无法打开“ubi0:rootfs”,错误-19VFS:无法打开根设备“ubi0:rootfs”或未知块(0、0):错误-19
[5.064368] 请附加正确的“root=”引导选项;以下是可用分区:
[5.072827] 1f00 128 mtdblock0 (驱动程序?)
[5.077889] 1f01 128 mtdblock1 (驱动程序?)
[5.083042] 1f02 128 mtdblock2 (驱动程序?)
[5.088094] 1f03 128 mtdblock3 (驱动程序?)
[5.093193] 1f04 256 mtdblock4 (驱动程序?)
[5.098246] 1f05 3072 mtdblock5 (驱动程序?)
[5.103338] 1f06 128 mtdblock6 (驱动程序?)
[5.108390] 1f07 128 mtdblock7 (驱动程序?)
[5.113481] 1f08 8192 mtdblock8 (驱动程序?)
[5.118532] 1f09 512000 mtdblock9 (驱动程序?)
[5.123617] 内核严重错误-未同步:VFS:无法在未知块(0、0)上安装根 FS
[5.131863] --[结束内核紧急状态-未同步:VFS:无法在未知块(0、0)上安装根 FS
如果我缺少任何内容、请告知。
谢谢、
Mubeen