Patchwork [U-Boot,V2,1/2] Davinci 8xx: Move common functions to share code

login
register
mail settings
Submitter Stefano Babic
Date Nov. 19, 2010, 2:35 p.m.
Message ID <1290177339-6916-1-git-send-email-sbabic@denx.de>
Download mbox | patch
Permalink /patch/72252/
State Accepted
Headers show

Comments

Stefano Babic - Nov. 19, 2010, 2:35 p.m.
As more Davinci 8xx board can be added, move common code
to be shared between boards.

Signed-off-by: Stefano Babic <sbabic@denx.de>

 * rebased ontop of Sugosh's patches
 * moving the HAWKBOARD_KICK{0,1}_UNLOCK defines to
   arch/arm/include/asm/arch-davinci/davinci_misc.h from to
   arch/arm/include/asm/arch-davinci/da8xx_common.h
 * don't define dram functions in PRELOADER
 * move sync_env_enetaddr into existing EMAC ifdef
 * use misc.c in hawkboard nand_spl

Signed-off-by: Ben Gardiner <bengardiner@nanometrics.ca>
---
The patch was rebased by Ben Gardiner on top of the other
patches actually posted to the ML. Thanks Ben for your work !

 arch/arm/include/asm/arch-davinci/da8xx_common.h |   37 ------------
 arch/arm/include/asm/arch-davinci/davinci_misc.h |   15 +++++
 board/davinci/common/misc.c                      |   54 +++++++++++++++++-
 board/davinci/da8xxevm/Makefile                  |    1 -
 board/davinci/da8xxevm/common.c                  |   69 ----------------------
 board/davinci/da8xxevm/da830evm.c                |    1 -
 board/davinci/da8xxevm/da850evm.c                |    3 +-
 board/davinci/da8xxevm/hawkboard.c               |    1 -
 board/davinci/da8xxevm/hawkboard_nand_spl.c      |    1 -
 nand_spl/board/davinci/da8xxevm/Makefile         |    6 +-
 10 files changed, 72 insertions(+), 116 deletions(-)
 delete mode 100644 arch/arm/include/asm/arch-davinci/da8xx_common.h
 delete mode 100644 board/davinci/da8xxevm/common.c
Ben Gardiner - Nov. 19, 2010, 3:16 p.m.
Sugosh and Stefano,

On Fri, Nov 19, 2010 at 2:23 AM, Sughosh Ganu <urwithsughosh@gmail.com> wrote:
>  Thanks for all the work. I will be able to test these changes only
>  next week. I will test them on hawkboard and update you. Thanks.

You're very welcome. Looking forward to it.

On Fri, Nov 19, 2010 at 9:35 AM, Stefano Babic <sbabic@denx.de> wrote:
> [...]
> The patch was rebased by Ben Gardiner on top of the other
> patches actually posted to the ML. Thanks Ben for your work !

You're very welcome. I'm glad you found it useful.

We are happy to see the omap-L138 support in u-boot moving forward. We
would like to get either SD or USB (or both) omapL138 support upstream
next. Does the ea20 have USB or SD? Will the hawkboard u-boot support
include USB or SD support?

Best Regards,
Ben Gardiner

---
Nanometrics Inc.
http://www.nanometrics.ca
Stefano Babic - Nov. 22, 2010, 7:28 a.m.
On 11/19/2010 04:16 PM, Ben Gardiner wrote:
> You're very welcome. I'm glad you found it useful.
> 
> We are happy to see the omap-L138 support in u-boot moving forward. We
> would like to get either SD or USB (or both) omapL138 support upstream
> next. Does the ea20 have USB or SD?

Hi Ben,

there is at the moment no plan to add support to ea20 for USB or SD.
However, Things could be changed when a new revision of hardware will
become available (at the beginning of next years).

Patches to add SD support was already sent to the ML, I see the ACK by
the MMC maintainer:

http://www.mail-archive.com/u-boot@lists.denx.de/msg32375.html

It seems to me the only reason the patch did not go to the mainline was
to understand who should merge it and then push to Wolfgang.

Probably what we need is to check again the status of this patch. I
cannot find it on patchwork, it looks like it was missed ;-(.

I see a patch to enable USB in da850evm, too::

http://patchwork.ozlabs.org/patch/71817/

Best regards,
Stefano Babic
Ben Gardiner - Nov. 22, 2010, 2:33 p.m.
Hi Stefano,

On Mon, Nov 22, 2010 at 2:28 AM, Stefano Babic <sbabic@denx.de> wrote:
>> [...]
> there is at the moment no plan to add support to ea20 for USB or SD.
> However, Things could be changed when a new revision of hardware will
> become available (at the beginning of next years).

Thank you for the follow-up.

> Patches to add SD support was already sent to the ML, I see the ACK by
> the MMC maintainer:
>
> http://www.mail-archive.com/u-boot@lists.denx.de/msg32375.html
>
> It seems to me the only reason the patch did not go to the mainline was
> to understand who should merge it and then push to Wolfgang.
>
> Probably what we need is to check again the status of this patch. I
> cannot find it on patchwork, it looks like it was missed ;-(.
>
> I see a patch to enable USB in da850evm, too::
>
> http://patchwork.ozlabs.org/patch/71817/

Nice finds. Both of those patches look applicable -- thank you,
Stefano. I can't say that I will be starting an effort to apply/port
these to da850evm immeadiately. But now I have a great place to start
when I do.

Best Regards,
Ben Gardiner

---
Nanometrics Inc.
http://www.nanometrics.ca
Sandeep Paulraj - Nov. 22, 2010, 3:52 p.m.
> 
> http://www.mail-archive.com/u-boot@lists.denx.de/msg32375.html

Sadly that patch never made it to the mainline
> 
> It seems to me the only reason the patch did not go to the mainline was
> to understand who should merge it and then push to Wolfgang.

Usually I take small changes to the other subsystems with an ACK from the maintainer and I merge it myself. The series in question was part of a set of I believe 9 patches which made quite a few changes to the MMC subsystem.

I asked the author to resubmit patches quite a few times but have not received a response. If anybody can do the rebasing and testing that would be welcome.

> 
> Probably what we need is to check again the status of this patch. I
> cannot find it on patchwork, it looks like it was missed ;-(.
> 
> I see a patch to enable USB in da850evm, too::
> 
> http://patchwork.ozlabs.org/patch/71817/
> 

--Sandeep
Sughosh Ganu - Nov. 24, 2010, 7:23 a.m.
hi Ben,

On Fri Nov 19, 2010 at 10:16:09AM -0500, Ben Gardiner wrote:
> We are happy to see the omap-L138 support in u-boot moving forward. We
> would like to get either SD or USB (or both) omapL138 support upstream
> next. Does the ea20 have USB or SD? Will the hawkboard u-boot support
> include USB or SD support?

  Sorry for the late response. I will start working on getting the USB
  stuff in after the base port has gone into mainline. This might take
  some time though, as i am not much familiar with the USB related
  code.

-sughosh
Ben Gardiner - Nov. 24, 2010, 4:27 p.m.
Hi Sugosh,

On Wed, Nov 24, 2010 at 2:23 AM, Sughosh Ganu <urwithsughosh@gmail.com> wrote:
> hi Ben,
>
> On Fri Nov 19, 2010 at 10:16:09AM -0500, Ben Gardiner wrote:
>> We are happy to see the omap-L138 support in u-boot moving forward. We
>> would like to get either SD or USB (or both) omapL138 support upstream
>> next. Does the ea20 have USB or SD? Will the hawkboard u-boot support
>> include USB or SD support?
>
>  Sorry for the late response. I will start working on getting the USB
>  stuff in after the base port has gone into mainline. This might take
>  some time though, as i am not much familiar with the USB related
>  code.

No problem. That's great news. We'll be happy to help test and/or
review those patches when you're ready.

Best Regards,
Ben Gardiner

---
Nanometrics Inc.
http://www.nanometrics.ca

Patch

diff --git a/arch/arm/include/asm/arch-davinci/da8xx_common.h b/arch/arm/include/asm/arch-davinci/da8xx_common.h
deleted file mode 100644
index e52f613..0000000
--- a/arch/arm/include/asm/arch-davinci/da8xx_common.h
+++ /dev/null
@@ -1,37 +0,0 @@ 
-/*
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef __COMMON_H
-#define __COMMON_H
-
-#define	HAWKBOARD_KICK0_UNLOCK		0x83e70b13
-#define	HAWKBOARD_KICK1_UNLOCK		0x95a4f1e0
-
-struct lpsc_resource {
-	const int	lpsc_no;
-};
-
-void irq_init(void);
-int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
-				    int n_items);
-
-#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM)
-void da850_emac_mii_mode_sel(int mode_sel);
-#endif
-
-#endif /* __COMMON_H */
diff --git a/arch/arm/include/asm/arch-davinci/davinci_misc.h b/arch/arm/include/asm/arch-davinci/davinci_misc.h
index a6ac3b9..347aa89 100644
--- a/arch/arm/include/asm/arch-davinci/davinci_misc.h
+++ b/arch/arm/include/asm/arch-davinci/davinci_misc.h
@@ -45,10 +45,25 @@  struct pinmux_resource {
 				.n_pins = ARRAY_SIZE(item) \
 			  }
 
+#define HAWKBOARD_KICK0_UNLOCK          0x83e70b13
+#define HAWKBOARD_KICK1_UNLOCK          0x95a4f1e0
+
+struct lpsc_resource {
+	const int	lpsc_no;
+};
+
 int dvevm_read_mac_address(uint8_t *buf);
 void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr);
 int davinci_configure_pin_mux(const struct pinmux_config *pins, int n_pins);
 int davinci_configure_pin_mux_items(const struct pinmux_resource *item,
 				    int n_items);
+#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM)
+void davinci_emac_mii_mode_sel(int mode_sel);
+#endif
+#if defined(CONFIG_SOC_DA8XX)
+void irq_init(void);
+int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
+				    const int n_items);
+#endif
 
 #endif /* __MISC_H */
diff --git a/board/davinci/common/misc.c b/board/davinci/common/misc.c
index f25ad7e..08c898f 100644
--- a/board/davinci/common/misc.c
+++ b/board/davinci/common/misc.c
@@ -33,6 +33,7 @@ 
 
 DECLARE_GLOBAL_DATA_PTR;
 
+#ifndef CONFIG_PRELOADER
 int dram_init(void)
 {
 	/* dram_init must store complete ramsize in gd->ram_size */
@@ -47,6 +48,7 @@  void dram_init_banksize(void)
 	gd->bd->bi_dram[0].start = CONFIG_SYS_SDRAM_BASE;
 	gd->bd->bi_dram[0].size = gd->ram_size;
 }
+#endif
 
 #ifdef CONFIG_DRIVER_TI_EMAC
 
@@ -76,6 +78,22 @@  err:
 }
 
 /*
+ * Set the mii mode as MII or RMII
+ */
+#if defined(CONFIG_DRIVER_TI_EMAC)
+void davinci_emac_mii_mode_sel(int mode_sel)
+{
+	int val;
+
+	val = readl(&davinci_syscfg_regs->cfgchip3);
+	if (mode_sel == 0)
+		val &= ~(1 << 8);
+	else
+		val |= (1 << 8);
+	writel(val, &davinci_syscfg_regs->cfgchip3);
+}
+#endif
+/*
  * If there is no MAC address in the environment, then it will be initialized
  * (silently) from the value in the EEPROM.
  */
@@ -94,4 +112,38 @@  void davinci_sync_env_enetaddr(uint8_t *rom_enetaddr)
 	}
 }
 
-#endif	/* DAVINCI_EMAC */
+#endif	/* CONFIG_DRIVER_TI_EMAC */
+
+#if defined(CONFIG_SOC_DA8XX)
+#ifndef CONFIG_USE_IRQ
+void irq_init(void)
+{
+	/*
+	 * Mask all IRQs by clearing the global enable and setting
+	 * the enable clear for all the 90 interrupts.
+	 */
+
+	writel(0, &davinci_aintc_regs->ger);
+
+	writel(0, &davinci_aintc_regs->hier);
+
+	writel(0xffffffff, &davinci_aintc_regs->ecr1);
+	writel(0xffffffff, &davinci_aintc_regs->ecr2);
+	writel(0xffffffff, &davinci_aintc_regs->ecr3);
+}
+#endif
+
+/*
+ * Enable PSC for various peripherals.
+ */
+int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
+				    const int n_items)
+{
+	int i;
+
+	for (i = 0; i < n_items; i++)
+		lpsc_on(item[i].lpsc_no);
+
+	return 0;
+}
+#endif
diff --git a/board/davinci/da8xxevm/Makefile b/board/davinci/da8xxevm/Makefile
index 1a67351..fbe29db 100644
--- a/board/davinci/da8xxevm/Makefile
+++ b/board/davinci/da8xxevm/Makefile
@@ -27,7 +27,6 @@  include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(BOARD).a
 
-COBJS-y	+= common.o
 COBJS-$(CONFIG_MACH_DAVINCI_DA830_EVM)	+= da830evm.o
 COBJS-$(CONFIG_MACH_DAVINCI_DA850_EVM)	+= da850evm.o
 COBJS-$(CONFIG_MACH_DAVINCI_HAWK)	+= hawkboard.o
diff --git a/board/davinci/da8xxevm/common.c b/board/davinci/da8xxevm/common.c
deleted file mode 100644
index 2d9a64b..0000000
--- a/board/davinci/da8xxevm/common.c
+++ /dev/null
@@ -1,69 +0,0 @@ 
-/*
- * Miscellaneous DA8XX functions.
- *
- * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include <asm/io.h>
-#include <asm/arch/hardware.h>
-#include <asm/arch/da8xx_common.h>
-
-#ifndef CONFIG_USE_IRQ
-void irq_init(void)
-{
-	/*
-	 * Mask all IRQs by clearing the global enable and setting
-	 * the enable clear for all the 90 interrupts.
-	 */
-
-	writel(0, &davinci_aintc_regs->ger);
-
-	writel(0, &davinci_aintc_regs->hier);
-
-	writel(0xffffffff, &davinci_aintc_regs->ecr1);
-	writel(0xffffffff, &davinci_aintc_regs->ecr2);
-	writel(0xffffffff, &davinci_aintc_regs->ecr3);
-}
-#endif
-
-/*
- * Enable PSC for various peripherals.
- */
-int da8xx_configure_lpsc_items(const struct lpsc_resource *item,
-				    const int n_items)
-{
-	int i;
-
-	for (i = 0; i < n_items; i++)
-		lpsc_on(item[i].lpsc_no);
-
-	return 0;
-}
-
-#if defined(CONFIG_DRIVER_TI_EMAC) && defined(CONFIG_MACH_DAVINCI_DA850_EVM)
-void da850_emac_mii_mode_sel(int mode_sel)
-{
-	int val;
-
-	val = readl(&davinci_syscfg_regs->cfgchip3);
-	if (mode_sel == 0)
-		val &= ~(1 << 8);
-	else
-		val |= (1 << 8);
-	writel(val, &davinci_syscfg_regs->cfgchip3);
-}
-#endif
diff --git a/board/davinci/da8xxevm/da830evm.c b/board/davinci/da8xxevm/da830evm.c
index b6b7e37..0650653 100644
--- a/board/davinci/da8xxevm/da830evm.c
+++ b/board/davinci/da8xxevm/da830evm.c
@@ -41,7 +41,6 @@ 
 #include <asm/arch/emac_defs.h>
 #include <asm/io.h>
 #include <asm/arch/davinci_misc.h>
-#include <asm/arch/da8xx_common.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/davinci/da8xxevm/da850evm.c b/board/davinci/da8xxevm/da850evm.c
index a6e2dab..8bfd272 100644
--- a/board/davinci/da8xxevm/da850evm.c
+++ b/board/davinci/da8xxevm/da850evm.c
@@ -30,7 +30,6 @@ 
 #include <asm/arch/emac_defs.h>
 #include <asm/io.h>
 #include <asm/arch/davinci_misc.h>
-#include <asm/arch/da8xx_common.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -187,7 +186,7 @@  int board_init(void)
 	if (davinci_configure_pin_mux(emac_pins, ARRAY_SIZE(emac_pins)) != 0)
 		return 1;
 
-	da850_emac_mii_mode_sel(HAS_RMII);
+	davinci_emac_mii_mode_sel(HAS_RMII);
 #endif /* CONFIG_DRIVER_TI_EMAC */
 
 	/* enable the console UART */
diff --git a/board/davinci/da8xxevm/hawkboard.c b/board/davinci/da8xxevm/hawkboard.c
index b672c9d..f34830e 100644
--- a/board/davinci/da8xxevm/hawkboard.c
+++ b/board/davinci/da8xxevm/hawkboard.c
@@ -28,7 +28,6 @@ 
 #include <asm/io.h>
 #include <asm/arch/davinci_misc.h>
 #include <ns16550.h>
-#include <asm/arch/da8xx_common.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/board/davinci/da8xxevm/hawkboard_nand_spl.c b/board/davinci/da8xxevm/hawkboard_nand_spl.c
index 74eec13..9155236 100644
--- a/board/davinci/da8xxevm/hawkboard_nand_spl.c
+++ b/board/davinci/da8xxevm/hawkboard_nand_spl.c
@@ -28,7 +28,6 @@ 
 #include <asm/io.h>
 #include <asm/arch/davinci_misc.h>
 #include <ns16550.h>
-#include <asm/arch/da8xx_common.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
diff --git a/nand_spl/board/davinci/da8xxevm/Makefile b/nand_spl/board/davinci/da8xxevm/Makefile
index 6102675..4cae223 100644
--- a/nand_spl/board/davinci/da8xxevm/Makefile
+++ b/nand_spl/board/davinci/da8xxevm/Makefile
@@ -35,7 +35,7 @@  CFLAGS	+= -DCONFIG_PRELOADER -DCONFIG_NAND_SPL
 
 SOBJS	= start.o _udivsi3.o _divsi3.o
 COBJS	= cpu.o davinci_nand.o ns16550.o div0.o davinci_pinmux.o psc.o	\
-	common.o hawkboard_nand_spl.o nand_boot.o
+	misc.o hawkboard_nand_spl.o nand_boot.o
 
 SRCS	:= $(addprefix $(obj),$(SOBJS:.o=.S) $(COBJS:.o=.c))
 OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
@@ -116,9 +116,9 @@  $(obj)hawkboard_nand_spl.c:
 	ln -s $(TOPDIR)/board/davinci/da8xxevm/hawkboard_nand_spl.c $@
 
 # from board directory
-$(obj)common.c:
+$(obj)misc.c:
 	@rm -f $@
-	ln -s $(TOPDIR)/board/davinci/da8xxevm/common.c $@
+	ln -s $(TOPDIR)/board/davinci/common/misc.c $@
 
 $(obj)psc.c:
 	@rm -f $@