From: marek.vasut@gmail.com (Marek Vasut)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 01/20] mtd: pxa3xx_nand: refuse the flash definition get from platform
Date: Mon, 24 May 2010 15:05:27 +0200 [thread overview]
Message-ID: <201005241505.27545.marek.vasut@gmail.com> (raw)
In-Reply-To: <AANLkTiniYaEI2lywcfYmfSyPjCeNxD9xPJ2pGxI3IbEb@mail.gmail.com>
Dne Po 24. kv?tna 2010 14:31:39 Lei Wen napsal(a):
> Hi Marek,
>
> On Mon, May 24, 2010 at 8:11 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> > Dne Po 24. kv?tna 2010 13:53:46 Lei Wen napsal(a):
> >> Hi Mike,
> >>
> >> On Mon, May 24, 2010 at 7:00 PM, Mike Rapoport <mike@compulab.co.il> wrote:
> >> > Hi Lei,
> >> >
> >> > Lei Wen wrote:
> >> >> Hi Mike,
> >> >>
> >> >> This patch set is applied to mtd-2.6 git. We submit the patch with a
> >> >> package in attachment already.
> >> >> http://permalink.gmane.org/gmane.linux.ports.arm.kernel/79818
> >> >
> >> > After applying the patch set I've reviewed the entire pxa3xx-nand as a
> >> > whole and there are several major points I don't like:
> >> > 1) Two chip selects support is not robust enough. You allocate a lot
> >> > of resources for both chip selects, although not necessarily both
> >> > have NAND chip connected
> >>
> >> I agree. I prepare to submit another patch set to fix it. Let more
> >> resource go to pxa3xx_nand structure instead of pxa3xx_nand_info.
> >>
> >> > 2) I don't like hadrcoding of NAND parameters into the driver. You
> >> > remove *deprecetad* CONFIG_MTD_NAND_PXA3xx_BUILTIN configuration
> >> > option and instead you enforce use of built-in definitions. The
> >> > driver in its current state is robust enough to allow platforms to
> >> > define optimized NAND timings either in the bootloader or in the
> >> > kernel. If you don't like that multiple platforms define the same
> >> > flash chip create an enumeration of built-in types and let platforms
> >> > to use this enumeration to select the NAND chip. But, anyway, there
> >> > should be a fallback mode that will support NAND chips that are not
> >> > defined in the driver, probably with suboptimal timings.
> >>
> >> Original driver also use hardcoding. And in bootloader, this timing
> >> parameter is also hard coding.
> >
> > Not necessarily. If you use uboot on pxa3xx, it passes the
> > bootrom-detected timing to the kernel.
> >
> >> We cannot deduce a parameter set only from the nand id, that is why we
> >> need a table to preset it.
> >> If one nand chip is not listed in that table, the chip id would still
> >> be printed out, so that we can do something for that.
> >> If we encourage people to continue on this, we would not able to
> >> really "driver" that nand.
> >>
> >> As I said, different nand chip may have different requirement. And in
> >> bootloader and kernel, may have different requirement
> >> of timing parameter.
> >
> > In bootloader and kernel? Why would that be so?
>
> The bootrom timing setting is not very satisfied. We have compared the
> most optimized timing setting and what the timing setting is set in
> bootrom. The read speed would be several times gap.(3x, or 4x).
That's expectable.
> For kernel is the place we want the most optimized performance, we may
> adjust the timing according to our need.
Yeah, that I'm aware of. But if that's the case, why don't you move the timing
setup into the bootloader altogether and be done with it ? Kernel relies on the
BootROM if the NAND chip definition is missing ... therefore if the platform set
it up correctly in the bootloader, all this goo could go away from the driver.
(And you can possibly only leave that 'platform can adjust NAND timing' part for
worst cases).
Maybe I'm missing something, it's hard to review. If that's the case, just
ignore what I said.
Cheers!
>
> Thanks,
> Lei
>
> >> > 3) The functions prepare_command_pool and alloc_nand_resource seem
> >> > overgrown too me. Consolidation of prepare_*_cmd into one huge
> >> > function does not seem right. And mixing between resource allocation
> >> > and mtd struct initialization does not seem right either.
> >>
> >> The reason why I consolidate those prepare_*_cmd into one is for if
> >> separate into several functions, it would create many code
> >> duplication.
> >> And with one function, the code execution path would be always one
> >> way. This would greatly promote the code quality, for the same code
> >> path is run by many commands in the same time. If not by this, some
> >> errors may not be discovered in the first time...
> >>
> >> Thanks,
> >> Lei
> >>
> >> _______________________________________________
> >> linux-arm-kernel mailing list
> >> linux-arm-kernel at lists.infradead.org
> >> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2010-05-24 13:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-14 6:11 [PATCH 01/20] mtd: pxa3xx_nand: refuse the flash definition get from platform Haojian Zhuang
2010-05-14 11:09 ` Marc Kleine-Budde
2010-05-24 7:31 ` Mike Rapoport
2010-05-24 8:27 ` Lei Wen
2010-05-24 11:00 ` Mike Rapoport
2010-05-24 11:53 ` Lei Wen
2010-05-24 12:11 ` Marek Vasut
2010-05-24 12:31 ` Lei Wen
2010-05-24 13:05 ` Marek Vasut [this message]
2010-05-24 13:18 ` Lei Wen
2010-05-24 13:21 ` Mike Rapoport
2010-05-24 13:40 ` Lei Wen
2010-05-24 15:44 ` Daniel Mack
2010-05-25 10:21 ` Mike Rapoport
2010-05-25 12:18 ` Marek Vasut
2010-05-25 13:01 ` Lei Wen
2010-05-25 13:21 ` Eric Miao
2010-05-26 13:35 ` Lei Wen
2010-05-26 9:57 ` Mike Rapoport
2010-05-26 13:42 ` Lei Wen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201005241505.27545.marek.vasut@gmail.com \
--to=marek.vasut@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).