From owner-freebsd-arm@FreeBSD.ORG Mon Oct 6 16:43:55 2014 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 30794A28 for ; Mon, 6 Oct 2014 16:43:55 +0000 (UTC) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E121C809 for ; Mon, 6 Oct 2014 16:43:54 +0000 (UTC) Received: from [73.34.117.227] (helo=ilsoft.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1XbBO4-000Aba-QJ; Mon, 06 Oct 2014 16:43:53 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by ilsoft.org (8.14.9/8.14.9) with ESMTP id s96GhpHR028577; Mon, 6 Oct 2014 10:43:51 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 73.34.117.227 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX198H/EKTq+IHQZgPcshNEPA X-Authentication-Warning: paranoia.hippie.lan: Host revolution.hippie.lan [172.22.42.240] claimed to be [172.22.42.240] Subject: Re: Digi CCWMX53 From: Ian Lepore To: Russell Haley In-Reply-To: References: <27A69721-D93D-4D4C-883A-718CFFF52B21@bsdimp.com> Content-Type: text/plain; charset="windows-1251" Date: Mon, 06 Oct 2014 10:43:50 -0600 Message-ID: <1412613830.12052.121.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: quoted-printable X-MIME-Autoconverted: from 8bit to quoted-printable by ilsoft.org id s96GhpHR028577 Cc: freebsd-arm@freebsd.org, Rui Paulo X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: "Porting FreeBSD to ARM processors." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Oct 2014 16:43:55 -0000 On Sun, 2014-10-05 at 21:58 -0700, Russell Haley wrote: > Alright, well night one of my crash course in C and it wasn't quite as > painful as I thought. For shits and giggles I started looking in the > /sys/dev/nand directory. Nand.h then led me to ../../sys/bus.h and > then back to some nfc classes where, EUREKA, I found nfc_91.h/c. I > have been reading up on the atmel board support package so I > recognized the at91 moniker. (pretty pleased with myself for that > one...) >=20 > So what I can tell is someone needs to write a mx53/mx6 nand flash > controller that works in roughly the same way as the at91 "prototype". > It would implement various functions and then assign them using: >=20 > static device_method_t at91_nand_methods[] =3D { > DEVMETHOD(device_probe, at91_nand_probe), > DEVMETHOD(device_attach, at91_nand_attach), >=20 > DEVMETHOD(nfc_send_command, at91_nand_send_command), > DEVMETHOD(nfc_send_address, at91_nand_send_address), > DEVMETHOD(nfc_read_byte, at91_nand_read_byte), > DEVMETHOD(nfc_read_buf, at91_nand_read_buf), > DEVMETHOD(nfc_write_buf, at91_nand_write_buf), > DEVMETHOD(nfc_select_cs, at91_nand_select_cs), > DEVMETHOD(nfc_read_rnb, at91_nand_read_rnb), >=20 > DEVMETHOD_END > }; >=20 >=20 > Or some rough order of magnitude in that direction? That would be > where some of the "pre-canded jobs" mentioned in the spec would come > in handy? >=20 > Thanks, >=20 > Russ >=20 If the flash parts in use on your board can use 1-bit Hamming code for ECC, all you need to do is write a nearly-trivial nfc driver similar to at91_nfc. If the flash chips are modern and require multi-bit BCH code, we don't have a software implementation of that, and the current NFC interface has no provisions for using the hardware accellerator on the imx chip. I can't find any definitive info on what chips that board uses, but I will mention that 1-bit ECC was used on old chips with small capacities long ago and probably isn't used on any modern boards. -- Ian >=20 >=20 > On Sat, Oct 4, 2014 at 4:15 PM, Russell Haley wr= ote: > > Warner, > > That's great news! I had a scan and it seemed pretty thorough (albiet > > from a novice point of view). The pre-canned jobs looked promising. > > > > As much as I'm hoping your intention is to fix this FOR me, could you > > point me towards the code for the mtd support? > > > > Many thanks to everyone for helping. I've had more progress in the > > last two weeks than I have in the previous six months. lolz > > > > Russ > > > > > > On Sat, Oct 4, 2014 at 11:05 AM, Warner Losh wrote: > >> Hey Russ, > >> > >> A quick read suggests all, or nearly all, of the data needed to writ= e a full NFC for this chip is present. The programming and read sequences= and information about ECC error rates appear to be readily available. Th= e exact ECC used, however, appears opaque. This may or may not be a probl= em. It even appears to have command sequencing built into the controller.= This is a great feature, but one the current code doesn=92t make use of. > >> > >> Warner > >> > >> On Oct 2, 2014, at 10:44 PM, Russell Haley wr= ote: > >> > >>> Warner, > >>> > >>> I was looking for a Digi reference but it turns out the Nand Flash = Controller is part of the Freescale Processor. Here is the link to the Re= ference Manual: > >>> > >>> cache.freescale.com/files/32bit/doc/ref_manual/iMX53RM.pdf > >>> > >>> The NAND Flash Controller is in Chapter 51 page 3571 to page 3647. > >>> > >>> Is this relevant to what you are looking at doing? https://wiki.fre= ebsd.org/NAND > >>> > >>> I also found something called CHFS for NetBSD that looks interestin= g: http://chewiefs.sed.hu/home > >>> > >>> Thanks, > >>> Russ > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> On Thu, Oct 2, 2014 at 2:34 PM, Warner Losh wrote: > >>> > >>> On Oct 1, 2014, at 12:48 AM, Russell Haley w= rote: > >>> > >>> > Warner, > >>> > > >>> > First, I was just watching your 2010 talk on supporting FreeBSD i= n a commercial environment. Has there been any updates in the process of = maintaining a commercial branch in the last 4 years (not that I have any = commercial ventures yet! lolz)? > >>> > > >>> > Anyway, I talked to an Engineer about the NAND controller spec an= d he chided me for being naive (poor little software developer, in way ov= er his head. tisk tisk). He mentioned a FIVE THOUSAND page reference manu= al, which I have yet to find on the Digi site. > >>> > >>> URL + section number. 5k pages doesn=92t necessarily mean it will b= e useful, though. :( > >>> > >>> > I have however found this hardware reference: > >>> > > >>> > http://ftp1.digi.com/support/documentation/90001270_E.pdf > >>> > > >>> > From Page 41: > >>> > > >>> > NAND flash memory > >>> > The ConnectCore for i.MX53 module provides 8GB of NAND flash memo= ry. On the module in > >>> > the development kits a 512MByte, 2Kbyte page, NAND flash chip is = used. This NAND flash > >>> > device is connected to NAND flash Chip Select 0. > >>> > The NAND flash controller signals are available on the module con= nectors. > >>> > >>> This basically says nothing more useful than =93There=92s NAND on t= his board that=92s 4Gbits on CS0.=94 which is useful, but far from suffic= ient. How do I program the DMA so that ECC is added to the OOB areas of t= hat NAND? How do I set different ECC tables? How do I do ECC error correc= tion and detection? If you can=92t answer that sort of question from the = docs you have, then they aren=92t helpful enough. > >>> > >>> > There are pin references to NAND further down in the section "GPI= O multiplexing table in the ConnectCore for i.MX53 module" on page 44 and= 49. > >>> > > >>> > I fear this is not the information we are looking for. > >>> > >>> Not really. The GPIO info might be mildly helpful in a few cases > >>> > >>> > I have found another u-boot fork for the CCWMX53 on github here: = https://github.com/Varcain/uboot-ccwmx53-digi > >>> > > >>> > With what seems to be the information about booting from NAND her= e: https://github.com/Varcain/uboot-ccwmx53-digi/tree/master/nand_spl > >>> > > >>> > If you can let me know what I am looking for I can both ask a mor= e directed question at work and also perform a better search. > >>> > > >>> > I have also started looking over the Architecture handbook as wel= l because I have a feeling there is going to be lots of driver code in my= future. > >>> > >>> A good first step would be to get a URL or search string to get the= URL for that big spec. It is of the right size to possibly be useful, bu= t sometimes really long specs have 1-2 page descriptions of things like t= he SD controller or the NAND controller that you need special NDAs + busi= ness arrangements to get, so it is hard to say=85 > >>> > >>> Warner > >>> > >>> > > >>> > On Sun, Sep 28, 2014 at 12:12 AM, Warner Losh wr= ote: > >>> > > >>> > On Sep 27, 2014, at 9:49 PM, Russell Haley = wrote: > >>> > > >>> > > I will attempt to load the kernel from tftp as soon as I can. I= will need > >>> > > to figure out how to get ethernet to the unit. > >>> > > > >>> > > I know nothing about u-boot so forgive my ignorance but I was h= oping to > >>> > > modify the Arndale configuration to work such as: > >>> > > > >>> > > # mmc read 1 0x70800000 0x800 0x1800; > >>> > > #go 0x70800000; > >>> > > > >>> > > and then point the rootfs to /dev/da1s1 > >>> > > > >>> > > On another note, do you know where I could find out more about = the missing > >>> > > MTD support? > >>> > > >>> > A spec for the NAND controller is needed to make that work=85 Is= one about? > >>> > > >>> > Warner > >>> > > >>> > > >>> > > BTW, I thought your wireless mesh stuff was pretty cool. Ah, so= many cool > >>> > > projects, so little time... > >>> > > > >>> > > Thanks, > >>> > > > >>> > > Russ > >>> > > > >>> > > On Sat, Sep 27, 2014 at 2:35 PM, Rui Paulo wrot= e: > >>> > > > >>> > >> On Sep 27, 2014, at 13:31, Russell Haley wrote: > >>> > >>> > >>> > >>> Rui, > >>> > >>> > >>> > >>> So no MTD means the NAND on the SOM is out, but can I boot th= e kernel > >>> > >> and load rootfs from the microSD, like in this example: > >>> > >>> =95 > >>> > >>> ARNDALE5250 # setenv bootcmd "fatload mmc 0:1 0x40f00000 kern= el.bin; go > >>> > >> 0x40f00000" > >>> > >>> > >>> > >>> ARNDALE5250 # saveenv > >>> > >>> > >>> > >>> ARNDALE5250 # boot > >>> > >> > >>> > >> You can't use the Arndale config since the load addresses are = different. > >>> > >> You should be able to load a kernel from the network. Can you= do that? > >>> > >> > >>> > >> -- > >>> > >> Rui Paulo > >>> > >> > >>> > >> > >>> > >> > >>> > >> > >>> > > _______________________________________________ > >>> > > freebsd-arm@freebsd.org mailing list > >>> > > http://lists.freebsd.org/mailman/listinfo/freebsd-arm > >>> > > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freeb= sd.org" > >>> > > >>> > > >>> > >>> > >> > _______________________________________________ > freebsd-arm@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org" >=20