请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:AM3352 工具/软件:Linux
您好!
我有 一个带有 NAND 芯片的 BeagleBone Black 开发板:MT29F8G08ABACAH4 (4K 页、SLC、8位总线宽度)
uBoot 与 bch16 nand ECC(uboot:am335x_evm.h #define CONFIG_NAND_OMAP-ECCSCHEME OMA_ECC_BCH16_CODE_HW)搭配使用
Linux 可以安装 ubifs、但会显示以下 nand 错误消息、
获取错误 dmesg:
--------
OMAP-GPMC 50000000。GPMC:找不到节点/ocp/l4_wkup@44c00000/CSCM@210000/ pinmux@800/nandflash_pins_default 的 pctldev、推迟探针
(笑声)
[7.882490] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
[7.895575] OMAP2-nand 8000000.nand:找到不可纠正的位翻转
请帮助我找到问题。 谢谢
在 Linux 4-4 AM335x-boneblack.dts 中、我添加了以下内容,
----------------------------------
am33xx_pinmux{(am33xx_pinmux)}
(笑声)
/*I add nand support,以下文件来自 AM335x-evm.dts */
nandflash_pins_default:nandflash_pins_default{
pinctrl-single、pins =<
0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD0.GPMC_AD0 */
0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD1.GPMC_AD1 */
0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD2.GPMC_AD2 *
0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD3.GPMC_AD3 *
0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD4.GPMC_AD4 */
0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD5.GPMC_AD5 *
0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD6.GPMC_AD6 *
0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_AD7.GPMC_AD7 *
0x70 (PIN_INPUT_PULLUP | MUX_MODE0) /* GPMC_wait0.GPMC_wait0 */
0x74 (PIN_INPUT_PULLUP | 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 | 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 *
>;
};
nandflash_pines_sleep:nandflash_pines_sleep{
pinctrl-single、pins =< nandflash_pines_sleep:nandflash_pines_sleep{
0x0 (PIN_INPUT_PULLUGD | MUX_MODE7)
0x4 (PIN_INPUT 下拉| MUX_MODE7)
0x8 (PIN_INPUT 下拉| MUX_MODE7)
0xc (PIN_INPUT_PULLUGD | MUX_MODE7)
0x10 (PIN_INPUT 下拉| MUX_MODE7)
0x14 (PIN_INPUT_PULLUX | MUX_MODE7)
0x18 (PIN_INPUT 下拉| MUX_MODE7)
0x1c (PIN_INPUT_PULLUX | MUX_MODE7)
0x70 (PIN_INPUT 下拉| MUX_MODE7)
0x74 (PIN_INPUT 下拉| MUX_MODE7)
0x7c (PIN_INPUT_PULLUP | MUX_MODE7)
0x90 (PIN_INPUT 下拉| MUX_MODE7)
0x94 (PIN_INPUT 下拉| MUX_MODE7)
0x98 (PIN_INPUT 下拉| MUX_MODE7)
0x9C (PIN_INPUT_PULLUX | MUX_MODE7)
>;
};
};
GPMC{
状态="正常";
pinctrl-names ="default"、"sleep";
pinctrl-0 =<和 flash_pins_default>;
pinctrl-1 =<和 flash_pins_sleep>;
范围=<0 0x08000000 0x1000000>; // CS0:16MB (用于 NAND)*/
NAND@0、0{
兼容="ti、OMAP2-nand";
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 ="bch16";
TI、elm-id =<和 elm>;
NAND-BUS 宽度=<8>;
GPMC、器件宽度=<1>;
GPMC、SYNC-clk-ps =<0>;
GPMC、cs-on-ns =<0>;
GPMC、cs-rd-Off-ns =<40>;
GPMC、cs-wr-off-ns =<40>;
GPMC、Adv-on-ns =<0>;
GPMC、Ad-rd -关闭-ns =<25>;
GPMC、Adv-wr-off-ns =<25>;
GPMC、WE-ON-ns =<0>;
GPMC、WE-OFF-ns =<20>;
GPMC、OE-ON-ns =<3>;
GPMC、OE-OFF-ns =<30>;
GPMC、ACCESS ns =<30>;
GPMC、第周期-ns =<40>;
GPMC、功率周期-ns =<40>;
GPMC、总线翻转-ns =<0>;
GPMC、cycle2cycle-delay-ns =<0>;
GPMC、clk-activation-ns =<0>;
GPMC、wr 访问-ns =<40>;
GPMC、wr-data-mux-bus-ns =<0>;
/* MTD 分区表*/
/*所有 SPL-*分区的大小均为最小长度
可独立编程。 原因
* NAND 闪存这等于擦除块的大小*/
#address-cells =<1>;
大小单元格=<1>;
分区@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 0x00100000>;
};
分区@6{
标签="NAND.u-boot-env";
REG =<0x001C0000 0x00020000>;
};
分区@7{
标签="NAND.u-boot-env.Backup1";
REG =<0x001E0000 0x00020000>;
};
分区@8{
标签="NAND.kernel";
REG =<0x00200000 0x00800000>;
};
分区@9{
标签="NAND.file-system";
REG =<0x00A00000 0x0F600000>;
};
};
};
等距{(&E)
状态="正常";
状态="正常";
};
谢谢、
James