On Monday 08 August 2011, Mark Salter wrote: > Signed-off-by: Mark Salter <msalter@xxxxxxxxxx> > --- > arch/c6x/platforms/board-dsk6455.c | 102 ++++++++++++++++++++++++++++++++++++ > arch/c6x/platforms/board-evm6457.c | 51 ++++++++++++++++++ > arch/c6x/platforms/board-evm6472.c | 51 ++++++++++++++++++ > arch/c6x/platforms/board-evm6474.c | 53 +++++++++++++++++++ > 4 files changed, 257 insertions(+), 0 deletions(-) I would argue that none of these should exist. When you have device tree probing, you should be able to do all the initialization according to the device tree contents. > >+ c6455_setup_arch(); >+ >+ /* CPLD */ >+ emif_config_ce(2, EMIFA_CFG_ASYNC | >+ EMIFA_CFG_W_SETUP(1) | >+ EMIFA_CFG_W_STROBE(10) | >+ EMIFA_CFG_W_HOLD(1) | >+ EMIFA_CFG_R_SETUP(1) | >+ EMIFA_CFG_R_STROBE(10) | >+ EMIFA_CFG_R_HOLD(1) | >+ EMIFA_CFG_WIDTH_8); >+ >+ /* NOR Flash */ >+ emif_config_ce(3, EMIFA_CFG_ASYNC | >+ EMIFA_CFG_W_SETUP(1) | >+ EMIFA_CFG_W_STROBE(10) | >+ EMIFA_CFG_W_HOLD(1) | >+ EMIFA_CFG_R_SETUP(1) | >+ EMIFA_CFG_R_STROBE(10) | >+ EMIFA_CFG_R_HOLD(1) | >+ EMIFA_CFG_WIDTH_8); >+ >+ /* Daughter Card */ >+ emif_config_ce(4, EMIFA_CFG_ASYNC | >+ EMIFA_CFG_W_SETUP(1) | >+ EMIFA_CFG_W_STROBE(10) | >+ EMIFA_CFG_W_HOLD(1) | >+ EMIFA_CFG_R_SETUP(1) | >+ EMIFA_CFG_R_STROBE(10) | >+ EMIFA_CFG_R_HOLD(1) | >+ EMIFA_CFG_WIDTH_32); >+ >+ /* Daughter Card */ >+ emif_config_ce(5, EMIFA_CFG_ASYNC | >+ EMIFA_CFG_W_SETUP(1) | >+ EMIFA_CFG_W_STROBE(10) | >+ EMIFA_CFG_W_HOLD(1) | >+ EMIFA_CFG_R_SETUP(1) | >+ EMIFA_CFG_R_STROBE(10) | >+ EMIFA_CFG_R_HOLD(1) | >+ EMIFA_CFG_WIDTH_32); >+ >+ /* Raise priority of waiting bus commands after 255 transfers */ >+ emif_set_burst_prio(255); This code definitely needs more explanation. Why is this all done in Linux instead of the boot loader? If it's device specific, why not do it in the device driver? Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html