All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] board: axs10x - support v3 mother-board
@ 2015-04-09 17:01 Alexey Brodkin
  2015-04-10 15:47 ` Alexey Brodkin
  0 siblings, 1 reply; 2+ messages in thread
From: Alexey Brodkin @ 2015-04-09 17:01 UTC (permalink / raw)
  To: u-boot

There're 2 versions of motherboards that could be used in ARC SDP.
The only important difference for U-Boot is different NAND IC in use:
 [1] v2 board (we used to support up until now) sports MT29F4G08ABADAWP
while
 [2] v3 board sports MT29F4G16ABADAWP

They are almost the same except data bus width 8-bit in [1] and 16-bit
in [2]. And for proper support of 16-bit data bus we have to pass
NAND_BUSWIDTH_16 option to NAND driver core - which we do now knowing
board type we're running on.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 board/synopsys/axs101/axs101.c | 14 ++++++++++++++
 board/synopsys/axs101/axs10x.h | 16 ++++++++++++++++
 board/synopsys/axs101/nand.c   |  7 +++++++
 include/configs/axs101.h       |  6 ++++++
 4 files changed, 43 insertions(+)
 create mode 100644 board/synopsys/axs101/axs10x.h

diff --git a/board/synopsys/axs101/axs101.c b/board/synopsys/axs101/axs101.c
index 7742049..8c16410 100644
--- a/board/synopsys/axs101/axs101.c
+++ b/board/synopsys/axs101/axs101.c
@@ -9,6 +9,7 @@
 #include <malloc.h>
 #include <netdev.h>
 #include <phy.h>
+#include "axs10x.h"
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -42,3 +43,16 @@ int board_eth_init(bd_t *bis)
 
 	return 0;
 }
+
+
+#define AXS_MB_CREG	0xE0011000
+
+int board_early_init_f(void)
+{
+	if (readl((void __iomem *)AXS_MB_CREG + 0x234) & (1 << 28))
+		gd->board_type = AXS_MB_V3;
+	else
+		gd->board_type = AXS_MB_V2;
+
+	return 0;
+}
diff --git a/board/synopsys/axs101/axs10x.h b/board/synopsys/axs101/axs10x.h
new file mode 100644
index 0000000..8e8c41f
--- /dev/null
+++ b/board/synopsys/axs101/axs10x.h
@@ -0,0 +1,16 @@
+/*
+ * Copyright (C) 2015 Synopsys, Inc. All rights reserved.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef _BOARD_SYNOPSYS_AXS10X_H
+#define _BOARD_SYNOPSYS_AXS10X_H
+
+enum {
+	AXS_MB_V2,
+	AXS_MB_V3
+};
+
+#endif /* _BOARD_SYNOPSYS_AXS10X_H */
+
diff --git a/board/synopsys/axs101/nand.c b/board/synopsys/axs101/nand.c
index ff35286..4be52e2 100644
--- a/board/synopsys/axs101/nand.c
+++ b/board/synopsys/axs101/nand.c
@@ -9,6 +9,9 @@
 #include <malloc.h>
 #include <nand.h>
 #include <asm/io.h>
+#include "axs10x.h"
+
+DECLARE_GLOBAL_DATA_PTR;
 
 #define BUS_WIDTH	8		/* AXI data bus width in bytes	*/
 
@@ -232,5 +235,9 @@ int board_nand_init(struct nand_chip *nand)
 	nand->write_buf = axs101_nand_write_buf;
 	nand->read_buf = axs101_nand_read_buf;
 
+	/* MBv3 has NAND IC with 16-bit data bus */
+	if (gd->board_type == AXS_MB_V3)
+		nand->options |= NAND_BUSWIDTH_16;
+
 	return 0;
 }
diff --git a/include/configs/axs101.h b/include/configs/axs101.h
index 5fb8aca..8a7095c 100644
--- a/include/configs/axs101.h
+++ b/include/configs/axs101.h
@@ -34,6 +34,12 @@
 #define CONFIG_SYS_LOAD_ADDR		0x82000000
 
 /*
+ * This board might be of different versions so handle it
+ */
+#define CONFIG_BOARD_TYPES
+#define CONFIG_BOARD_EARLY_INIT_F
+
+/*
  * NAND Flash configuration
  */
 #define CONFIG_SYS_NO_FLASH
-- 
2.1.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [U-Boot] [PATCH] board: axs10x - support v3 mother-board
  2015-04-09 17:01 [U-Boot] [PATCH] board: axs10x - support v3 mother-board Alexey Brodkin
@ 2015-04-10 15:47 ` Alexey Brodkin
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey Brodkin @ 2015-04-10 15:47 UTC (permalink / raw)
  To: u-boot

On Thu, 2015-04-09 at 20:01 +0300, Alexey Brodkin wrote:
> There're 2 versions of motherboards that could be used in ARC SDP.
> The only important difference for U-Boot is different NAND IC in use:
>  [1] v2 board (we used to support up until now) sports MT29F4G08ABADAWP
> while
>  [2] v3 board sports MT29F4G16ABADAWP
> 
> They are almost the same except data bus width 8-bit in [1] and 16-bit
> in [2]. And for proper support of 16-bit data bus we have to pass
> NAND_BUSWIDTH_16 option to NAND driver core - which we do now knowing
> board type we're running on.
> 
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
>  board/synopsys/axs101/axs101.c | 14 ++++++++++++++
>  board/synopsys/axs101/axs10x.h | 16 ++++++++++++++++
>  board/synopsys/axs101/nand.c   |  7 +++++++
>  include/configs/axs101.h       |  6 ++++++
>  4 files changed, 43 insertions(+)
>  create mode 100644 board/synopsys/axs101/axs10x.h

Applied, thanks.

-Alexey

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-04-10 15:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-04-09 17:01 [U-Boot] [PATCH] board: axs10x - support v3 mother-board Alexey Brodkin
2015-04-10 15:47 ` Alexey Brodkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.