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