Dne Po 4. října 2010 01:45:16 Kyungmin Park napsal(a): > Hi, > > There's no OneNAND tree but all patches are mainlined by Scott Wood's tree. > > And related with patch. I wonder why it's problem with your board? > > As it's function pointer. It should be located the data section and it's > assigned at runtime.
The data section isn't writable, right ? > > Maybe your board runs the code at OneNAND directly. It's the reason do you > need to fixup. Yes, it runs the code directly from the first 1kb window in OneNAND. > > I'll prepare the patches to fix this issue. So don't delete the codes. Thanks! > > Thank you, > Kyungmin Park > > -----Original Message----- > From: Marek Vasut [mailto:marek.va...@gmail.com] > Sent: Monday, October 04, 2010 8:34 AM > To: Kyungmin Park > Cc: u-boot@lists.denx.de > Subject: Re: [U-Boot] [PATCH 4/4] OneNAND: Use generic_onenand_read_page in > IPL > > Dne Ne 3. října 2010 16:27:04 Marek Vasut napsal(a): > > Dne Ne 3. října 2010 08:40:19 Kyungmin Park napsal(a): > > > Hi, > > > > > > No it's used another place. that's reason not static function pointer. > > > I'll update it soon. > > > > Hey, my problem is this code hangs my CPU. If I apply this patch, it > > doesn't happen anymore. > > > > Where is this used and what's your proposed change? > > btw. who's the OneNAND maintainer (aka. who's supposed to pick up these > changes ?) > > > Thank you in advance > > > > > Thank you, > > > Kyungmin Park > > > > > > On Sun, Oct 3, 2010 at 2:33 AM, Marek Vasut <marek.va...@gmail.com> wrote: > > > > There apparantly is no reason for having "onenand_read_page" > > > > abstracted. Besides, it's static data which causes trouble. > > > > > > > > Signed-off-by: Marek Vasut <marek.va...@gmail.com> > > > > --- > > > > > > > > onenand_ipl/onenand_read.c | 9 +++------ > > > > 1 files changed, 3 insertions(+), 6 deletions(-) > > > > > > > > diff --git a/onenand_ipl/onenand_read.c b/onenand_ipl/onenand_read.c > > > > index 8d0df81..008d73a 100644 > > > > --- a/onenand_ipl/onenand_read.c > > > > +++ b/onenand_ipl/onenand_read.c > > > > @@ -37,8 +37,6 @@ > > > > > > > > extern void *memcpy32(void *dest, void *src, int size); > > > > #endif > > > > > > > > -int (*onenand_read_page)(ulong block, ulong page, u_char *buf, int > > > > pagesize); - > > > > > > > > /* read a page with ECC */ > > > > static int generic_onenand_read_page(ulong block, ulong page, > > > > > > > > u_char * buf, int pagesize) > > > > > > > > @@ -122,8 +120,6 @@ int onenand_read_block(unsigned char *buf) > > > > > > > > int pagesize, erasesize, erase_shift; > > > > int page_is_4KiB = 0; > > > > > > > > - onenand_read_page = generic_onenand_read_page; > > > > - > > > > > > > > onenand_generic_init(&page_is_4KiB, &page); > > > > > > > > if (page_is_4KiB) { > > > > > > > > @@ -139,10 +135,11 @@ int onenand_read_block(unsigned char *buf) > > > > > > > > /* NOTE: you must read page from page 1 of block 0 */ > > > > /* read the block page by page */ > > > > > > > > + > > > > > > > > for (block = 0; block < nblocks; block++) { > > > > > > > > for (; page < ONENAND_PAGES_PER_BLOCK; page++) { > > > > > > > > - if (onenand_read_page(block, page, buf + > > > > offset, - pagesize)) { > > > > + if (generic_onenand_read_page(block, page, > > > > + buf + offset, pagesize)) { > > > > > > > > /* This block is bad. Skip it > > > > > > > > * and read next block */ > > > > > > > > offset -= page * pagesize; > > > > > > > > -- > > > > 1.7.1 > > > > > > > > _______________________________________________ > > > > U-Boot mailing list > > > > U-Boot@lists.denx.de > > > > http://lists.denx.de/mailman/listinfo/u-boot _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot