[U-Boot] RFC: porting u-boot to sequoia based nand booting board

Stefan Roese
2011-05-17T15:37:30Z

Alex,

On Tuesday 17 May 2011 16:11:14 Alex Waterman wrote:
> > What changes did you have to make? Some 8/16 bit related changes? Or
> > something else?
>
> I changed the hard coded value of EBC0_CFG; I forced the chip->options
> field to have the 16 bit bus width flag set; in board_nand_select_device()
> I modified the value written to the NDFC_CCR register; I think that's
> primarily it. The hard coded registers could be made into CONFIG_SYS
> defines I think, but the bus width setting... Could we make a CONFIG_SYS
> define that specifies the width of the bus since during the spl we don't
> have access to the nand chip table?

I see no problem with such an approach. How about CONFIG_SYS_NDFC_16BIT? If
its not defined, then the currently used 8bit configuration is shall be
selected.

> > It should be the goal, to use *only* the common NDFC code. If you have
> > found some bugs, or you need some changes for 16bit devices, we should
> > try to integrate them into the common code.
>
> I have seen issues with the nand_read_byte16() function in nand_base.c; it
> seems like the cpu_to_le16() should be the other way around:
> le16_to_cpu(). Other than that no bugs as far as I am aware.

Hmmm. Not sure here. Perhaps this is PPC4xx specific. A better solution with
less impact on other platforms using nand_base.c would be to implement a
nand_read_byte() function in ndfc.c when CONFIG_SYS_NDFC_16BIT is defined.
This way the default implementation from nand_base will be overridden.

> >> Likewise much of our board specific support files are copies from the
> >> sequoia code. Would it be better to symlink to the ones that are not
> >> modified? Or is it OK to just copy the relevant source files into our
> >> own board directory and make minor adjustments as needed?
> >
> > Usually we copy those files into a new board directly. When the
> > similarities are too big, then we should probably think about splitting
> > to common parts into some other directory
> > (arch/powerpc/cpu/ppc4xx/ppc440epx.c ???).
>
> OK, I see. Most of the code in board/amcc/sequoia is the same except for
> some of the sdram initialization and the sequoia.c file (which I renamed
> to tiger.c). Also the linker script differs slightly. How would we go
> about making those board files common (init.S, chip_config.c)?

Hard to tell without being able to look at your code and the differences. I
suggest that you first create a patch with the NAND changes mentioned above
and with your new board support (tiger) in a separate directory. We can
discuss the details then on the list: if and how the sequoia code could/should
be re-used.

Best regards,
Stefan

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office at denx.de