Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Oct 2014 10:43:50 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        Russell Haley <russ.haley@gmail.com>
Cc:        freebsd-arm@freebsd.org, Rui Paulo <rpaulo@me.com>
Subject:   Re: Digi CCWMX53
Message-ID:  <1412613830.12052.121.camel@revolution.hippie.lan>
In-Reply-To: <CABx9NuScNhPPMsHL_x8xuYR0Oz97CM9wmRxuXxFSRMT10RKXJQ@mail.gmail.com>
References:  <CABx9NuQr%2BdEb_yj3ypEe6Sb_qPY%2BqP74n0x1K5=_K6Zoio2vkw@mail.gmail.com> <C439A1ED-8AA0-4CA5-B375-D80E8BD4C624@me.com> <CABx9NuTU=E7ceQ=5=Qk%2B=e9jwLjnJZf2Lr70d7XbwAYRD5nd7Q@mail.gmail.com> <E12E12A8-32B9-4B26-B6C4-65DF9F43C396@me.com> <CABx9NuT31dVubDCCt7M5DGhoNqu0a9saxuB1fb9naq42Z8mi%2BA@mail.gmail.com> <A73CCB0A-2ED9-4505-BACD-264F768D2D72@bsdimp.com> <CABx9NuROVKvAcqj166=z%2BvP5zemjost6m12H5fLvEbKU8%2BA0xw@mail.gmail.com> <27A69721-D93D-4D4C-883A-718CFFF52B21@bsdimp.com> <CABx9NuRybC-8z4XTMO=0vu824%2BEzVhiDu-vsxteBr6zchorgmA@mail.gmail.com> <DD01C5E3-15BE-4953-A4AA-C0F67D2F0382@bsdimp.com> <CABx9NuRwenFSPkg-8o5ba=-_82WakXuOyCiiS=Rbxegwcp1GfQ@mail.gmail.com> <CABx9NuScNhPPMsHL_x8xuYR0Oz97CM9wmRxuXxFSRMT10RKXJQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <russ.haley@gmail.com> 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 <imp@bsdimp.com> 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 <russ.haley@gmail.com> 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 <imp@bsdimp.com> wrote:
> >>>
> >>> On Oct 1, 2014, at 12:48 AM, Russell Haley <russ.haley@gmail.com> 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 <imp@bsdimp.com> wr=
ote:
> >>> >
> >>> > On Sep 27, 2014, at 9:49 PM, Russell Haley <russ.haley@gmail.com>=
 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 <rpaulo@me.com> wrot=
e:
> >>> > >
> >>> > >> On Sep 27, 2014, at 13:31, Russell Haley <russ.haley@gmail.com=
> 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





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1412613830.12052.121.camel>