From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp04.msg.oleane.net (smtp04.msg.oleane.net [62.161.4.4]) by ozlabs.org (Postfix) with ESMTP id 784B5DDFE1 for ; Tue, 12 Jun 2007 01:46:02 +1000 (EST) Received: from GEG2400 ([194.3.133.184]) (authenticated) by smtp04.msg.oleane.net (MTA) with ESMTP id l5BFKkP6029675 for ; Mon, 11 Jun 2007 17:20:47 +0200 From: "Laurent Lagrange" To: Subject: Linux 2.6.x, MTD drivers and NAND flashes Date: Mon, 11 Jun 2007 17:20:43 +0200 Message-ID: <000001c7ac3c$15e7da80$5201a8c0@GEG2400> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0001_01C7AC4C.D972F470" In-Reply-To: List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. ------=_NextPart_000_0001_01C7AC4C.D972F470 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hello, I use a Linux 2.6.9 on a 85xx custom board with a NAND flash. This flash has some bad blocks. NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit) Scanning device for bad blocks Bad eraseblock 8 at 0x00100000 Bad eraseblock 430 at 0x035c0000 ... Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x00000000-0x08000000 : "flash partition 1". I have selected in the kernel : 1) the MTD character and block supports for NAND, 2) the CRAMFS and JFFS2 supports for NAND. I can erase the flash but receive IO errors for each bad blocks (that seems right). I can mount an empty JFFS2 partition on the NAND and untar some directories and files in it. I would like to generate some JFFS2 images and program them in the flash with a character command like "cat img > /dev/mtd/0". If I dont encounter a bad block, it runs right else the command fails. This is a little bit annoying. So my question is simple : Is there a MTD character driver which can detect and ignore the bad blocks in a NAND flash ? Thanks for any tips. Bye Laurent ------=_NextPart_000_0001_01C7AC4C.D972F470 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
Hello,

I use a Linux 2.6.9 on a = 85xx custom=20 board with a NAND flash.
 
This flash has some bad = blocks.
NAND device: Manufacturer ID: 0xec, = Chip ID: 0xf1=20 (Samsung NAND 128MiB 3,3V 8-bit)
Scanning device for bad = blocks
Bad=20 eraseblock 8 at 0x00100000
Bad eraseblock 430 at = 0x035c0000
...
Creating 1 MTD partitions on = "NAND 128MiB=20 3,3V 8-bit":
0x00000000-0x08000000 : "flash partition = 1".
 
I have selected in the kernel = :
1) the MTD character and block supports = for=20 NAND,
2) the CRAMFS and JFFS2 supports for=20 NAND.
 
I can erase the flash but receive IO = errors for=20 each bad blocks (that seems right).
I can mount an empty JFFS2 partition on = the NAND=20 and untar some directories and files in it.
 
I would like to generate some JFFS2 = images and=20 program them in the flash with a = character=20
command like "cat img > /dev/mtd/0". = If I dont encounter a bad block, it = runs=20 right else the
command fails.
 
This is a little bit annoying. So = my question is simple :
Is there a MTD character driver which = can detect=20 and ignore the bad blocks in a NAND flash ? 
 
Thanks for any tips.
Bye
Laurent
 
 

------=_NextPart_000_0001_01C7AC4C.D972F470-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp122.sbc.mail.re3.yahoo.com (smtp122.sbc.mail.re3.yahoo.com [66.196.96.95]) by ozlabs.org (Postfix) with SMTP id 21DBBDDF1D for ; Tue, 12 Jun 2007 02:12:18 +1000 (EST) Message-ID: <466D7169.1000407@billgatliff.com> Date: Mon, 11 Jun 2007 10:59:37 -0500 From: Bill Gatliff MIME-Version: 1.0 To: Laurent Lagrange Subject: Re: Linux 2.6.x, MTD drivers and NAND flashes References: <000001c7ac3c$15e7da80$5201a8c0@GEG2400> In-Reply-To: <000001c7ac3c$15e7da80$5201a8c0@GEG2400> Content-Type: multipart/alternative; boundary="------------050102040909040701090807" Cc: linuxppc-embedded@ozlabs.org List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. --------------050102040909040701090807 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Laurent Lagrange wrote: > Hello, > > I use a Linux 2.6.9 on a 85xx custom board with a NAND flash. > > This flash has some bad blocks. > NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB > 3,3V 8-bit) > Scanning device for bad blocks > Bad eraseblock 8 at 0x00100000 > Bad eraseblock 430 at 0x035c0000 > ... > Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit": > 0x00000000-0x08000000 : "flash partition 1". > > I have selected in the kernel : > 1) the MTD character and block supports for NAND, > 2) the CRAMFS and JFFS2 supports for NAND. > > I can erase the flash but receive IO errors for each bad blocks (that > seems right). > I can mount an empty JFFS2 partition on the NAND and untar some > directories and files in it. > > I would like to generate some JFFS2 images and program them in the > flash with a character > command like "cat img > /dev/mtd/0". If I dont encounter a bad block, > it runs right else the > command fails. > > This is a little bit annoying. So my question is simple : > Is there a MTD character driver which can detect and ignore the bad > blocks in a NAND flash ? Wrong question. :) With NAND, working directly with the media is indeed a pain because of bad blocks. What's done instead is to leave that to the filesystem. Pick a NAND-aware one like YAFFS. b.g. -- Bill Gatliff bgat@billgatliff.com --------------050102040909040701090807 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Laurent Lagrange wrote:
Hello,

I use a Linux 2.6.9 on a 85xx custom board with a NAND flash.
 
This flash has some bad blocks.
NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
Scanning device for bad blocks
Bad eraseblock 8 at 0x00100000
Bad eraseblock 430 at 0x035c0000
...
Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit":
0x00000000-0x08000000 : "flash partition 1".
 
I have selected in the kernel :
1) the MTD character and block supports for NAND,
2) the CRAMFS and JFFS2 supports for NAND.
 
I can erase the flash but receive IO errors for each bad blocks (that seems right).
I can mount an empty JFFS2 partition on the NAND and untar some directories and files in it.
 
I would like to generate some JFFS2 images and program them in the flash with a character
command like "cat img > /dev/mtd/0". If I dont encounter a bad block, it runs right else the
command fails.
 
This is a little bit annoying. So my question is simple :
Is there a MTD character driver which can detect and ignore the bad blocks in a NAND flash ?

Wrong question.  :)

With NAND, working directly with the media is indeed a pain because of bad blocks.  What's done instead is to leave that to the filesystem.  Pick a NAND-aware one like YAFFS.


b.g.
-- 
Bill Gatliff
bgat@billgatliff.com
--------------050102040909040701090807-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from [205.229.50.10] (ntfw.echelon.com [205.229.50.10]) by ozlabs.org (Postfix) with ESMTP id 3053BDDEC6 for ; Tue, 12 Jun 2007 05:59:55 +1000 (EST) MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Subject: RE: Linux 2.6.x, MTD drivers and NAND flashes Date: Mon, 11 Jun 2007 12:59:53 -0700 Message-ID: In-reply-to: <466D7169.1000407@billgatliff.com> References: <000001c7ac3c$15e7da80$5201a8c0@GEG2400> <466D7169.1000407@billgatliff.com> From: "Gary Kenaley" To: "Bill Gatliff" , "Laurent Lagrange" Cc: linuxppc-embedded@ozlabs.org List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Laurent, Can't you just use the flashcp copy command from the mtd-utils package? ----------------------------------------------------------------------- flash_eraseall -j /dev/mtd0 mkfs.jffs2 -b -n --eraseblock=3D131072 --pagesize=3D2048 -p -r = /test_root -v -o test_root.img flashcp test_root.img /dev/mtd0 The other way is what Bill mentions: ------------------------------------ flash_eraseall -j /dev/mtd0 mount -t jffs2 /dev/mtdblock0 /tmp/mnt tar -xzf test_root.tgz -C /tmp/mnt umount /tmp/mnt Gary > > ________________________________________ > > From: linuxppc-embedded-bounces+gkenaley=3Dechelon.com@ozlabs.org > = > > [mailto:linuxppc-embedded-bounces+gkenaley=3Dechelon.com@ozlabs.org] = On Behalf > > Of Bill Gatliff > > Sent: Monday, June 11, 2007 9:00 AM > > To: Laurent Lagrange > > Cc: linuxppc-embedded@ozlabs.org > > Subject: Re: Linux 2.6.x, MTD drivers and NAND flashes > > > > Laurent Lagrange wrote:=20 > > Hello, > > > > I use a Linux 2.6.9 on a 85xx custom board with a NAND flash.=20 > >=A0 > > This flash has some bad blocks. > > NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND = 128MiB > > 3,3V 8-bit) > > Scanning device for bad blocks > > Bad eraseblock 8 at 0x00100000 > > Bad eraseblock 430 at 0x035c0000 > >... > > Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit": > > 0x00000000-0x08000000 : "flash partition 1". > >=A0 > > I have selected in the kernel : > > 1) the MTD character and block supports for NAND, > > 2) the CRAMFS and JFFS2 supports for NAND. > >=A0 > > I can erase the flash but receive IO errors for each bad blocks = (that > > seems right). > > I can mount an empty JFFS2 partition on the NAND and untar some > > = directories and files in it. > >=A0 > > I would like to generate some JFFS2 images and program them in the = flash > > with a character=20 > > command like "cat img > /dev/mtd/0". If I dont encounter a bad = block, it > > runs right=A0else the=20 > > command fails.=20 > >=A0 > > This is a little bit annoying. So my question is simple :=20 > > Is there a MTD character driver which can detect and ignore the bad = > blocks > in a NAND flash=A0?=20 > > > Wrong question.=A0 :) > With NAND, working directly with the media is indeed a pain because of = bad > blocks.=A0 What's done instead is to leave that to the = filesystem.=A0 Pick a > NAND-aware one like YAFFS. > > > b.g. > > --=20 > Bill Gatliff > bgat@billgatliff.com From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp02.msg.oleane.net (smtp02.msg.oleane.net [62.161.4.2]) by ozlabs.org (Postfix) with ESMTP id 1516CDDE02 for ; Tue, 12 Jun 2007 20:29:07 +1000 (EST) From: "Laurent Lagrange" To: "'Gary Kenaley'" , "'Bill Gatliff'" Subject: RE: Linux 2.6.x, MTD drivers and NAND flashes Date: Tue, 12 Jun 2007 12:06:29 +0200 Message-ID: <000f01c7acd9$633bc290$5201a8c0@GEG2400> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0010_01C7ACEA.26C70390" In-Reply-To: Cc: linuxppc-embedded@ozlabs.org List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. ------=_NextPart_000_0010_01C7ACEA.26C70390 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Gary and Bill, My need is to load a basic Linux kernel on boards to program multiple NOR and NAND flashes with CRAMFS and JFFS2 (perhaps YAFFS) images. I usually used mtd character accesses to do the job on NOR flashes. But flash_eraseall and flashcp seem to be excellent tools. I'll try them quickly. Many thanks for your help Bye Laurent > -----Message d'origine----- > De : Gary Kenaley [mailto:gkenaley@echelon.com] > Envoyé : lun. 11 juin 2007 21:00 > À : Bill Gatliff; Laurent Lagrange > Cc : linuxppc-embedded@ozlabs.org > Objet : RE: Linux 2.6.x, MTD drivers and NAND flashes > > > Laurent, > > Can't you just use the flashcp copy command from the > mtd-utils package? > -------------------------------------------------------------- > --------- > flash_eraseall -j /dev/mtd0 > > mkfs.jffs2 -b -n --eraseblock=131072 --pagesize=2048 -p -r > /test_root -v -o test_root.img > > flashcp test_root.img /dev/mtd0 > > > The other way is what Bill mentions: > ------------------------------------ > flash_eraseall -j /dev/mtd0 > mount -t jffs2 /dev/mtdblock0 /tmp/mnt > tar -xzf test_root.tgz -C /tmp/mnt > umount /tmp/mnt > > Gary ------=_NextPart_000_0010_01C7ACEA.26C70390 Content-Type: application/ms-tnef; name="winmail.dat" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="winmail.dat" eJ8+Ii8KAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy b3NvZnQgTWFpbC5Ob3RlADEIAQ2ABAACAAAAAgACAAEGgAMADgAAANcHBgAMAA0ABgAAAAIABQEB A5AGAFwIAAAmAAAACwACAAEAAAALACMAAAAAAAMAJgAAAAAACwApAAAAAAADAC4AAAAAAAMANgAA AAAAHgBwAAEAAAAqAAAATGludXggMi42LngsIE1URCBkcml2ZXJzIGFuZCBOQU5EIGZsYXNoZXMA AAACAXEAAQAAABYAAAABx6zZWENFfnyuVVlEmr1a32Xt8YFlAAACAR0MAQAAABwAAABTTVRQOkxB R1JBTkdFQEZSLk9MRUFORS5DT00ACwABDgAAAABAAAYOAJyfqOGsxwECAQoOAQAAABgAAAAAAAAA gZyZ5cGUYkGPnwbftvVnDsKAAAADABQOAQAAAAsAHw4BAAAAAgEJEAEAAADPAwAAywMAAGoGAABM WkZ11DzTBwMACgByY3BnMTI14jIDQ3RleAVBAQMB908KgAKkA+MCAGNoCsBz8GV0MCAHEwKAD/MA UH8EVghVB7IRxQ5RAwEQxzL3BgAGwxHFMwRGEMkS2xHT2wjvCfc7GL8OMDURwgxgzmMAUAsJAWQz NhFQC6ZLCuMKgEcKwHkgAHBkZCBCAxBsLB2UHZRNHR4gbgngHmAEACB0bwogGFBhHmBhIGJhCQ3R IEwLgHV4IGv9BJFlAyACICDQIIALICAjBnADYAnAYW0gbXUkbHQFIGxlHYVOTwJSHjNOQU5EIGaZ C2BzaAeRA/B0aBLAMFJBTUYF8B5CSkazJjAU4ChwBJAQ8HAEILRZQSaxKSAAAMBnB5CCLh7aSSB1 c3UHQP5sHiApUB/hDqAeYBDiANB3DrAFwADQYweQESAgI2THIFAlwCPQam9iIgIkUrMlJShlQnUF QCUjXwSQvSDwZSmBHjMlIw3wIBEg9mUjQCBBYiPQDsArIB6gnwnwBUAgQAbwKFZJJy7BTnQeESvx I0BxdQ3ga7spoChrTQBwMjIAcGsEICsCEAXAeQhhICVgbHDJLWV5ZR2UTGEIcDDB0R7aPiAtN7JN KzEoIaUrsCcFsGlnC4BlN7OlNzZEI9A6IB3zSwnwdQdAZR4gWwDAAxAgQDp2ZyGgOqNABZA1MQIg LgkFoG1dNzZFbnZv4HlcJ2U5OgEKQDxweCAxMSwgMrADoAHQMHI3PtAxOj7wNzY9oGNPEVA6EB6C OiF0bAaQZt47ITA2dEFBIxFuKDA3Ng5DISA98SFScHBjLQsv0DAwZAEAZEBvei0LYGIoUAWwZzc2 T2JmahEwOgFSRToQIUQyoC42LngsBdBUJQD6ZAUQdgSQBCAknj+HSM3XNmUexUkYQwBwJwVANOF9 PoFzBUAp0SvjLzYFoHD/HiA8kQOBLxEDYSvjNzYqIX4tLdADEAQgCrAy0CghP/83O1FvUn9Tj1P0 UK83Ni4NkC1qIC8BAHYvKiHLP3hPFmsD0C5qASAL8Hs3oCxQLQOgN7AuYwJgb2Ey0D0xMzE/AFnR LUMKsCgxaXplPQHQNLY4N6AvkC0K1DdyLw6wlUxwXwNgbwVALXY3oPsr0V2WLgdwRNdWGy+BXot7 V69JL1QsAV3wJWAFwHf2YR4gIBF3EPAFQEBzB4DlAjBpAiBzOlUPZw9Ub99Wj1efT2EIYDDRLQVA WZTPamZawxFQXXBtcGHwNraHN5ABkAXALXh6Zl55qHRnejegQ21PdWt0L21eNzYd8h2UfXOQAB4A QhABAAAARAAAADxEREJEN0IxN0RCMkVDRTQ4QkNEOTRDNTkzRjcyNTVCNDA0NkVBMTQ5QG1vbmsu ZWNoZWxvbi5lY2hjb3JwLmNvbT4AAwAJWQEAAAALAACACCAGAAAAAADAAAAAAAAARgAAAAADhQAA AAAAAAMAAoAIIAYAAAAAAMAAAAAAAABGAAAAABCFAAAAAAAAAwAPgAggBgAAAAAAwAAAAAAAAEYA AAAAUoUAAHN5AQAeABCACCAGAAAAAADAAAAAAAAARgAAAABUhQAAAQAAAAQAAAA5LjAACwARgAgg BgAAAAAAwAAAAAAAAEYAAAAABoUAAAAAAAADABKACCAGAAAAAADAAAAAAAAARgAAAAABhQAAAAAA AAsAG4AIIAYAAAAAAMAAAAAAAABGAAAAAA6FAAAAAAAAAwAcgAggBgAAAAAAwAAAAAAAAEYAAAAA EYUAAAAAAAADAB6ACCAGAAAAAADAAAAAAAAARgAAAAAYhQAAAAAAAAMAQIHLp3HGqdHLR4weyXjI xp+UAQAAACYAAABFAG0AbwBuACAAUwBjAGEAbgBuAGUAcgAgAEIAdQBpAGwAZAAAAAAA2EoPAAIB +A8BAAAAEAAAAIGcmeXBlGJBj58G37b1Zw4CAfoPAQAAABAAAACBnJnlwZRiQY+fBt+29WcOAgH7 DwEAAACNAAAAAAAAADihuxAF5RAaobsIACsqVsIAAG1zcHN0LmRsbAAAAAAATklUQfm/uAEAqgA3 2W4AAABDOlxEb2N1bWVudHMgYW5kIFNldHRpbmdzXGdlZ1xMb2NhbCBTZXR0aW5nc1xBcHBsaWNh dGlvbiBEYXRhXE1pY3Jvc29mdFxPdXRsb29rXGxhbC5wc3QAAAAAAwD+DwUAAAADAA00/TcAAAIB fwABAAAAMQAAADAwMDAwMDAwODE5Qzk5RTVDMTk0NjI0MThGOUYwNkRGQjZGNTY3MEVBNDgwMjYw MAAAAAADAAYQf/6RhwMABxCCAwAAAwAQEAAAAAADABEQAAAAAB4ACBABAAAAZQAAAEdBUllBTkRC SUxMLE1ZTkVFRElTVE9MT0FEQUJBU0lDTElOVVhLRVJORUxPTkJPQVJEU1RPUFJPR1JBTU1VTFRJ UExFTk9SQU5ETkFOREZMQVNIRVNXSVRIQ1JBTUZTQU5ESkYAAAAAYR4= ------=_NextPart_000_0010_01C7ACEA.26C70390-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTP id C7824DDDF8 for ; Tue, 12 Jun 2007 23:38:41 +1000 (EST) Received: from list by ciao.gmane.org with local (Exim 4.43) id 1Hy6ZZ-000078-Lu for linuxppc-embedded@ozlabs.org; Tue, 12 Jun 2007 15:38:13 +0200 Received: from p5497d0b8.dip.t-dialin.net ([84.151.208.184]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 12 Jun 2007 15:38:13 +0200 Received: from dzu by p5497d0b8.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 12 Jun 2007 15:38:13 +0200 To: linuxppc-embedded@ozlabs.org From: Detlev Zundel Subject: Re: Linux 2.6.x, MTD drivers and NAND flashes Date: Tue, 12 Jun 2007 15:37:43 +0200 Message-ID: References: <000001c7ac3c$15e7da80$5201a8c0@GEG2400> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: news List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi Laurent, > I use a Linux 2.6.9 on a 85xx custom board with a NAND flash. > > This flash has some bad blocks. > NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V > 8-bit) > Scanning device for bad blocks > Bad eraseblock 8 at 0x00100000 > Bad eraseblock 430 at 0x035c0000 > ... > Creating 1 MTD partitions on "NAND 128MiB 3,3V 8-bit": > 0x00000000-0x08000000 : "flash partition 1". > > I have selected in the kernel : > 1) the MTD character and block supports for NAND, > 2) the CRAMFS and JFFS2 supports for NAND. > > I can erase the flash but receive IO errors for each bad blocks (that seems > right). > I can mount an empty JFFS2 partition on the NAND and untar some directories and > files in it. > > I would like to generate some JFFS2 images and program them in the flash with a > character > command like "cat img > /dev/mtd/0". If I dont encounter a bad block, it runs > right else the > command fails. > > This is a little bit annoying. So my question is simple : > Is there a MTD character driver which can detect and ignore the bad blocks in a > NAND flash ? Actually there is the UBI[1] subsystem dedicated to this problem which entered mainline late in April. If you have that in your kernel, you can feed your flash to UBI and get an bad-block aware mtd device out of it. This should allow your intended usage. Of course you can have JFFS2 sit on top of that. Cheers Detlev [1] http://www.linux-mtd.infradead.org/faq/ubi.html -- I have always observed that the pretensions of all people are in exact inverse ratio to their merits; this is one of the axioms of morals. -- Joseph Lagrange -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu@denx.de