Kernel hangs when trying to probe AM29LV160DB flash device
Hi,
I am trying to get an AM29LV160DB flash device to work with the MTD
drivers under uClinux. The device is connected in a 16-bit bus fashion to a Motorola MC68VZ328.
The AM29LV160DB is supported by mtd/chips/jedec_probe.c
In my map file I have:
mymtd = do_map_probe("jedec_probe", &em1vz328_map);
The do_map_probe function calls get_mtd_chip_driver in mtd/mtd/chipreg.c and that is where things seem to hang. The get_mtd_chip_driver function never returns and hangs the kernel.
Here is a snippet of the boot messages:
---------------------------------------------------------
.
.
EMDG em1-vz328 mapping:size 200000 at 2000000
EMDG: MTD Debug: Calling the do_map_probe function...
EMDG: MTD Debug: Calling get_mtd_chip_driver function...
---------------------------------------------------------
I looked through the archives and I noticed someone else had a similar problem with this flash device under uClinux, but I could not find what the solution was.
If anyone has any ideas I would be grateful.
Thanks,
David
Kernel config:
#
# Memory Technology Devices (MTD)
#CONFIG_MTD=yCONFIG_MTD_DEBUG=yCONFIG_MTD_DEBUG_VERBOSE=3CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_CONCAT is not set
# 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_BLOCK is not setCONFIG_MTD_BLOCK_RO=y
# CONFIG_FTL is not set
# CONFIG_NFTL is not set
#
# RAM/ROM/Flash chip drivers
#CONFIG_MTD_CFI=yCONFIG_MTD_JEDECPROBE=yCONFIG_MTD_GEN_PROBE=yCONFIG_MTD_CFI_ADV_OPTIONS=yCONFIG_MTD_CFI_NOSWAP=y
# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
# CONFIG_MTD_CFI_LE_BYTE_SWAP is not setCONFIG_MTD_CFI_GEOMETRY=y
# CONFIG_MTD_CFI_B1 is not setCONFIG_MTD_CFI_B2=y
# CONFIG_MTD_CFI_B4 is not setCONFIG_MTD_CFI_I1=y
# CONFIG_MTD_CFI_I2 is not set
# CONFIG_MTD_CFI_I4 is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not setCONFIG_MTD_RAM=y
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
Signature · 3 lines
David A. Jones Phone: 720-971-6381 Embedded Minds Design Group Fax: 303-926-0208 www.EmbeddedMinds.com Email: david at EmbeddedMinds.com
You don't mention which kernel + patches you are using. Lately I have "fixed" some device probing which is in the CVS tree - although I don't think this is related to the problem you are seeing.
Quoted 78 lines · David Jones
Hi,
I am trying to get an AM29LV160DB flash device to work with the MTD
drivers under uClinux. The device is connected in a 16-bit bus fashion to a Motorola MC68VZ328.The AM29LV160DB is supported by
mtd/chips/jedec_probe.cIn my map file I have:
mymtd =do_map_probe("jedec_probe", &em1vz328_map);The
do_map_probefunction callsget_mtd_chip_driverinmtd/mtd/chipreg.cand that is where things seem to hang. Theget_mtd_chip_driverfunction never returns and hangs the kernel.Here is a snippet of the boot messages:
---------------------------------------------------------
.
.
EMDG em1-vz328 mapping:size 200000 at 2000000
EMDG: MTD Debug: Calling thedo_map_probefunction...
EMDG: MTD Debug: Callingget_mtd_chip_driverfunction...---------------------------------------------------------
I looked through the archives and I noticed someone else had a similar problem with this flash device under uClinux, but I could not find what the solution was.
If anyone has any ideas I would be grateful.
Thanks,
DavidKernel config:
#
# Memory Technology Devices (MTD)
#CONFIG_MTD=yCONFIG_MTD_DEBUG=yCONFIG_MTD_DEBUG_VERBOSE=3CONFIG_MTD_PARTITIONS=y
#CONFIG_MTD_CONCATis not set
#CONFIG_MTD_REDBOOT_PARTSis not set
#CONFIG_MTD_CMDLINE_PARTSis not set#
# User Modules And Translation Layers
#CONFIG_MTD_CHAR=y
#CONFIG_MTD_BLOCKis not setCONFIG_MTD_BLOCK_RO=y
#CONFIG_FTLis not set
#CONFIG_NFTLis not set#
# RAM/ROM/Flash chip drivers
#CONFIG_MTD_CFI=yCONFIG_MTD_JEDECPROBE=yCONFIG_MTD_GEN_PROBE=yCONFIG_MTD_CFI_ADV_OPTIONS=yCONFIG_MTD_CFI_NOSWAP=y
#CONFIG_MTD_CFI_BE_BYTE_SWAPis not set
#CONFIG_MTD_CFI_LE_BYTE_SWAPis not setCONFIG_MTD_CFI_GEOMETRY=y
#CONFIG_MTD_CFI_B1is not setCONFIG_MTD_CFI_B2=y
#CONFIG_MTD_CFI_B4is not setCONFIG_MTD_CFI_I1=y
#CONFIG_MTD_CFI_I2is not set
#CONFIG_MTD_CFI_I4is not set
#CONFIG_MTD_CFI_INTELEXTis not set
#CONFIG_MTD_CFI_AMDSTDis not setCONFIG_MTD_RAM=y
#CONFIG_MTD_ROMis not set
#CONFIG_MTD_ABSENTis not set
#CONFIG_MTD_OBSOLETE_CHIPSis not set
Signature · 2 lines
Thayne Harbaugh Linux Networx
I am using a pre-packed uClinux development environment which includes Kernel 2.4.19-uc1. The mtd patches were already applied so I am trying to figure out exactly what version of mtd I have.
My understanding is that MTD is now included with the Linux kernel source right?
David
Quoted 4 lines · Thayne Harbaugh
You don't mention which kernel + patches you are using. Lately I have "fixed" some device probing which is in the CVS tree - although I don't think this is related to the problem you are seeing.
Signature · 3 lines
David A. Jones Phone: 720-971-6381 Embedded Minds Design Group Fax: 303-926-0208 www.EmbeddedMinds.com Email: [email protected]