DOC 2000 on Linux 2.6 cannot boot

Charles Mao CMao at metocean.com
Thu Apr 19 12:10:15 EDT 2007


Hi All,
 
I am new to MTD subsystems and I need your help to make my DiskOnChip
2000 work on a PC-104 system.
My CPU board is Tri-M's TMZ104. I have a 128MB DOC 2000 TSOP(INFTL). 

I built the mtd into kernel 2.6.20.6 and system created the following 9
device files
[root at sales03 linux-2.6.20.6]# ls /dev/mtd*
/dev/mtd0  /dev/mtd0ro  /dev/mtd1  /dev/mtd1ro  /dev/mtd2  /dev/mtd2ro
/dev/mtdblock0  /dev/mtdblock1  /dev/mtdblock2

Then I check partitions and get the following output
[root at sales03 linux-2.6.20.6]# docfdisk /dev/mtd0
Device size is 134217728 bytes.  Erasesize is 16384 bytes.
Found INFTL Media Header at block 1:
  bootRecordID          = BNAND
  NoOfBootImageBlocks   = -1
  NoOfBinaryPartitions  = 1
  NoOfBDTLPartitions    = 1
  BlockMultiplierBits   = 0
  FormatFlags           = 1
  OsakVersion           = 5.1.4.0
  PercentUsed           = 98
Unitsize is 16384 bytes.  Device has 8192 units.
  Partition 1   (BDK): 5242880 bytes
    virtualUnits  = 320
    firstUnit     = 2
    lastUnit      = 321
    flags         = 0x20000000
    spareUnits    = 0
  Unpartitioned space: 32768 bytes
    virtualUnits  = 2
    firstUnit     = 322
    lastUnit      = 323
  Partition 2  (BDTL): 126205952 bytes
    virtualUnits  = 7703
    firstUnit     = 324
    lastUnit      = 8191
    flags         = 0xc0000000
    spareUnits    = 2

Next, when I try to program the BIOS rom, I got the error shown below
[root at sales03 linux-2.6.20.6]# doc_loadbios /dev/mtd0
/usr/docboot/bios_ext
Performing Flash Erase of length 16384 at offset 0
ioctl(MEMERASE): Input/output error
nand_erase: attempt to erase a bad block at page 0x00000000
[root at sales03 linux-2.6.20.6]#

Could anybody tell me what's wrong ?

Thanks,

Charles Mao


P.s. I attached my MTD configuration for the kernel, could you check
anything incorrect?

#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
CONFIG_MTD_DEBUG=y
CONFIG_MTD_DEBUG_VERBOSE=3
CONFIG_MTD_CONCAT=y
CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CMDLINE_PARTS is not set

#
# User Modules And Translation Layers
#
CONFIG_MTD_CHAR=y
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_FTL=m
CONFIG_NFTL=m
CONFIG_NFTL_RW=y
CONFIG_INFTL=m
# CONFIG_RFD_FTL is not set
# CONFIG_SSFDC is not set

#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
CONFIG_MTD_MAP_BANK_WIDTH_2=y
CONFIG_MTD_MAP_BANK_WIDTH_4=y
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
CONFIG_MTD_CFI_I1=y
CONFIG_MTD_CFI_I2=y
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_I8 is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set

#
# Mapping drivers for chip access
#
CONFIG_MTD_COMPLEX_MAPPINGS=y
# CONFIG_MTD_TS5500 is not set
# CONFIG_MTD_PCI is not set
# CONFIG_MTD_PLATRAM is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_PHRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLOCK2MTD is not set

#
# Disk-On-Chip Device Drivers
#
CONFIG_MTD_DOC2000=m
# CONFIG_MTD_DOC2001 is not set
# CONFIG_MTD_DOC2001PLUS is not set
CONFIG_MTD_DOCPROBE=m
CONFIG_MTD_DOCECC=m
# CONFIG_MTD_DOCPROBE_ADVANCED is not set
CONFIG_MTD_DOCPROBE_ADDRESS=0

#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
# CONFIG_MTD_NAND_ECC_SMC is not set
CONFIG_MTD_NAND_IDS=y
CONFIG_MTD_NAND_DISKONCHIP=y
# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE=y
# CONFIG_MTD_NAND_CAFE is not set
# CONFIG_MTD_NAND_CS553X is not set
# CONFIG_MTD_NAND_NANDSIM is not set

#
# OneNAND Flash Device Drivers
#
# CONFIG_MTD_ONENAND is not set




More information about the linux-mtd mailing list