Re: [PATCH 22/24] C6X: specific board support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Kernel Newbies]     [x86 Platform Driver]     [Netdev]     [Linux Wireless]     [Netfilter]     [Bugtraq]     [Linux Filesystems]     [Yosemite Discussion]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]

  Powered by Linux