Thread (51 messages) 51 messages, 4 authors, 2011-08-17

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

From: Arnd Bergmann <arnd@arndb.de>
Date: 2011-08-09 17:04:48

On Monday 08 August 2011, Mark Salter wrote:
Signed-off-by: Mark Salter <redacted>
---
 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help