主题中讨论的其他器件:TPS65217
您好!
我在定制板中遇到与 nand flash 相关的问题。 Nand 芯片为 Toshiba TH58BVG3S0HTAI0。 nand 从 u-boot 运行正常、但当我尝试从 Linux 执行 ubiattach 时、我会收到以下消息:
ubiattach /dev/ubi_ctrl -m、5
[2464.815719] ubi0:连接 mtd5
[2465.071990] ubi0:扫描完成
[2465.075975] ubi0:检测到空 MTD 设备
[2465.081179] ubi0错误:ubi_EARLY_GET_PEB:无可用的擦块
[2465.087968] ubi0错误:ubi_attach_MTD_dev:无法连接 mtd5,错误-28
ubibattach:ubi_IOCATT:器件上没有剩余空间
DTS 配置为:
nandflash_pins_s0:nandflash_pins_s0{
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 *
>;
};
GPMC{
pinctrl-names ="default";
pinctrl-0 =</nandflash_pins_s0>;
范围=<0 0x08000000 0x20000000>;
状态="正常";
NAND@0、0{
兼容="ti、OMAP2-nand";
reg =<0 0 4>;
interrupt-parent =<&GPMC>;
中断=<0 IRQ_TYPE_None>、<1 IRQ_TYPE_None>;
RB-GPIO =<&GPMC 0 GPIO_ACTIVE_HIGH_>;
NAND-BUS 宽度=<8>;
TI、nand-ecc-opt ="bch8";
TI、nand-xfer-type ="轮询";
GPMC、DEVACE-NAND ="true";
GPMC、器件宽度=<1>;
GPMC、SYNC-clk-ps =<0>;
GPMC、cs-on-ns =<0>;
GPMC、cs-rd-Off-ns =<44>;
GPMC、cs-wr-off-ns =<44>;
GPMC、Adv-on-ns =<6>;
GPMC、Ad-rd -关闭-ns =<34>;
GPMC、AdV-wr-off-ns =<44>;
GPMC、WE-ON-ns =<0>;
GPMC、WE-OFF-ns =<40>;
GPMC、OE-ON-ns =<0>;
GPMC、OE-OFF-ns =<54>;
GPMC、ACCESS ns =<64>;
GPMC、第周期-ns =<82>;
GPMC、功率周期-ns =<82>;
GPMC、总线翻转-ns =<0>;
GPMC、cycle2cycle-delay-ns =<0>;
GPMC、clk-activation-ns =<0>;
GPMC、wr 访问-ns =<40>;
GPMC、wr-data-mux-bus-ns =<0>;
#address-cells =<1>;
大小单元格=<1>;
TI、elm-id =<和 elm>;
分区@0{
标签="NAND.SPL";
REG =<0x00000000 0x000040000>;
};
分区@1{
标签="NAND.u-BOOT";
REG =<0x00040000 0x00100000 >;
};
分区@2{
标签="NAND.u-boot-env";
REG =<0x00140000 0x00040000>;
};
分区@3{
标签="NAND.DTB";
REG =<0x00180000 0x00040000>;
};
分区@4{
标签="NAND.kernel";
REG =<0x001C0000 0x00800000>;
};
分区@5{
标签="NAND.rootfs";
REG =<0x009c0000 0x3f640000>;
};
};
};
内核引导的输出为:
[1.859673] OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
[1.865450] GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
[1.873889] Nand:找到器件、制造商 ID:0x98、芯片 ID:0xd3
[1.880695] Nand:Toshiba NAND 1GiB 3、3V 8位
[1.885385] Nand:1024 MIB、SLC、擦除大小:256 KiB、页面大小:4096、OOB 大小:128
[1.893573] nand:Using OMAP-ECC_BCH8_CODE_HW_DETECTing_SW
[1.904845]在 MTD 器件 OMAP2-nand.0上找到6个部件分区
[1.911268]在"OMAP2-nand.0"上创建6个 MTD 分区:
[1.916886] 0x000000000000-0x000000040000:“分区”
[1.931165] 0x000000040000-0x000000140000:“partition”
[1.945078] 0x000000140000-0x000000180000:"分区"
[1.955133] mmc0:主机不支持读取只读开关、假设已启用写入
[1.966589] 0x000000180000-0x0000001c0000:"分区"
[1.975140] mmc0:地址0001处的新高速 SDHC 卡
[1.985655] mmcblk0:mmc0:0001 team 29.5GiB
[1.996151] 0x0000001c0000-0x0000009c0000:“PARTITION”
[2.008685] mmcblk0:P1
[2.019145] 0x0000009c0000-0x000040000000:"分区"
[2.328784] tps65217 0-0024:TPS65217 ID 0xe 版本1.2
[2.334657] OMAP_i2c 44e0b000。i2c:总线0 rev0.11、频率为400kHz
我从 nand (MLO、uboot、dtb、kernel)引导设备,并使用 MMC 的 rootfs。 nand 芯片已使用"nand erase.chip"从 uboot 中擦除
非常感谢、
此致、
Ioannis