Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Oct 2014 21:58:51 -0700
From:      Russell Haley <russ.haley@gmail.com>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-arm@freebsd.org, Rui Paulo <rpaulo@me.com>
Subject:   Re: Digi CCWMX53
Message-ID:  <CABx9NuScNhPPMsHL_x8xuYR0Oz97CM9wmRxuXxFSRMT10RKXJQ@mail.gmail.com>
In-Reply-To: <CABx9NuRwenFSPkg-8o5ba=-_82WakXuOyCiiS=Rbxegwcp1GfQ@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>

next in thread | previous in thread | raw e-mail | index | archive | help
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...)

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:

static device_method_t at91_nand_methods[] =3D {
DEVMETHOD(device_probe, at91_nand_probe),
DEVMETHOD(device_attach, at91_nand_attach),

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),

DEVMETHOD_END
};


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?

Thanks,

Russ



On Sat, Oct 4, 2014 at 4:15 PM, Russell Haley <russ.haley@gmail.com> wrote:
> 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 write a =
full NFC for this chip is present. The programming and read sequences and i=
nformation about ECC error rates appear to be readily available. The exact =
ECC used, however, appears opaque. This may or may not be a problem. It eve=
n appears to have command sequencing built into the controller. This is a g=
reat feature, but one the current code doesn=E2=80=99t make use of.
>>
>> Warner
>>
>> On Oct 2, 2014, at 10:44 PM, Russell Haley <russ.haley@gmail.com> wrote:
>>
>>> Warner,
>>>
>>> I was looking for a Digi reference but it turns out the Nand Flash Cont=
roller is part of the Freescale Processor. Here is the link to the Referenc=
e 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.freebsd=
.org/NAND
>>>
>>> I also found something called CHFS for NetBSD that looks interesting: h=
ttp://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> wrote=
:
>>>
>>> > Warner,
>>> >
>>> > First, I was just watching your 2010 talk on supporting FreeBSD in a =
commercial environment. Has there been any updates in the process of mainta=
ining a commercial branch in the last 4 years (not that I have any commerci=
al ventures yet! lolz)?
>>> >
>>> > Anyway, I talked to an Engineer about the NAND controller spec and he=
 chided me for being naive (poor little software developer, in way over his=
 head. tisk tisk). He mentioned a FIVE THOUSAND page reference manual, whic=
h I have yet to find on the Digi site.
>>>
>>> URL + section number. 5k pages doesn=E2=80=99t necessarily mean it will=
 be 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 memory. =
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 connect=
ors.
>>>
>>> This basically says nothing more useful than =E2=80=9CThere=E2=80=99s N=
AND on this board that=E2=80=99s 4Gbits on CS0.=E2=80=9D which is useful, b=
ut far from sufficient. How do I program the DMA so that ECC is added to th=
e OOB areas of that NAND? How do I set different ECC tables? How do I do EC=
C error correction and detection? If you can=E2=80=99t answer that sort of =
question from the docs you have, then they aren=E2=80=99t helpful enough.
>>>
>>> > There are pin references to NAND further down in the section "GPIO mu=
ltiplexing 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: http=
s://github.com/Varcain/uboot-ccwmx53-digi
>>> >
>>> > With what seems to be the information about booting from NAND here: h=
ttps://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 more di=
rected question at work and also perform a better search.
>>> >
>>> > I have also started looking over the Architecture handbook as well be=
cause I have a feeling there is going to be lots of driver code in my futur=
e.
>>>
>>> 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, but some=
times really long specs have 1-2 page descriptions of things like the SD co=
ntroller or the NAND controller that you need special NDAs + business arran=
gements to get, so it is hard to say=E2=80=A6
>>>
>>> Warner
>>>
>>> >
>>> > On Sun, Sep 28, 2014 at 12:12 AM, Warner Losh <imp@bsdimp.com> wrote:
>>> >
>>> > On Sep 27, 2014, at 9:49 PM, Russell Haley <russ.haley@gmail.com> wro=
te:
>>> >
>>> > > I will attempt to load the kernel from tftp as soon as I can. I wil=
l need
>>> > > to figure out how to get ethernet to the unit.
>>> > >
>>> > > I know nothing about u-boot so forgive my ignorance but I was hopin=
g 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=E2=80=A6  =
Is one about?
>>> >
>>> > Warner
>>> >
>>> >
>>> > > BTW, I thought your wireless mesh stuff was pretty cool. Ah, so man=
y cool
>>> > > projects, so little time...
>>> > >
>>> > > Thanks,
>>> > >
>>> > > Russ
>>> > >
>>> > > On Sat, Sep 27, 2014 at 2:35 PM, Rui Paulo <rpaulo@me.com> wrote:
>>> > >
>>> > >> On Sep 27, 2014, at 13:31, Russell Haley <russ.haley@gmail.com> wr=
ote:
>>> > >>>
>>> > >>> Rui,
>>> > >>>
>>> > >>> So no MTD means the NAND on the SOM is out, but can I boot the ke=
rnel
>>> > >> and load rootfs from the microSD, like in this example:
>>> > >>>      =E2=80=A2
>>> > >>> ARNDALE5250 # setenv bootcmd "fatload mmc 0:1 0x40f00000 kernel.b=
in; go
>>> > >> 0x40f00000"
>>> > >>>
>>> > >>> ARNDALE5250 # saveenv
>>> > >>>
>>> > >>> ARNDALE5250 # boot
>>> > >>
>>> > >> You can't use the Arndale config since the load addresses are diff=
erent.
>>> > >> 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@freebsd.o=
rg"
>>> >
>>> >
>>>
>>>
>>



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