Re: [U-Boot] [PATCH v7 3/4] OMAP: networking support for SPL

2012-09-20 Thread Joe Hershberger
Hi Ilya,

On Tue, Sep 18, 2012 at 5:22 AM, Ilya Yanok
ilya.ya...@cogentembedded.com wrote:
 This patch adds support for networking in SPL. Some devices are
 capable of loading SPL via network so it makes sense to load the
 main U-Boot binary via network too. This patch tries to use
 existing network code as much as possible. Unfortunately, it depends
 on environment which in turn depends on other code so SPL size
 is increased significantly. No effort was done to decouple network
 code and environment so far.

 Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com

 ---
 Changes in v3:
  - use BOOTP in SPL regardless of CONFIG_CMD_DHCP
  - add support for setting different VCI in SPL

 Changes in v4:
  - fix compilation of SPL's libcommon with CONFIG_HUSH_PARSER
and CONFIG_BOOTD defined
  - rename spl_eth.c to spl_net.c
  - set ethact variable if device name is passed

 Changes in v5:
  - set up guards in cmd_nvedit.c more carefully
  - now we don't need command.c and only need main.c for
show_boot_progress() so defined it to be noop and remove
both files from SPL sources
  - SPL guards in command.c and main.c are no longer needed
  - add some guards in env_common.c
  - qsort.c is no longer needed
  - add guard to hashtable.c to save some space
  - undefine unneeded CONFIG_CMD_* while building SPL to save space

 Changes in v6:
  - remove some unneeded changes introduced by earlier versions
  - switch clauses and use ifdef instead of ifndef
  - create new header config_uncmd_spl.h which undefines CONFIG_CMD_*
options unneeded in SPL and include it last from config.h
  - remove explicit undefs from net/net.c and net/bootp.c

 Changes in v7:
  - remove explicit cmd undef from net/tftp.c also
  - add GPLv2 header to config_uncmd_spl.h
  - remove CONFIG_SPL_BUILD clause at hang() (not needed)

Acked-by: Joe Hershberger joe.hershber...@ni.com
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v7 3/4] OMAP: networking support for SPL

2012-09-18 Thread Ilya Yanok
This patch adds support for networking in SPL. Some devices are
capable of loading SPL via network so it makes sense to load the
main U-Boot binary via network too. This patch tries to use
existing network code as much as possible. Unfortunately, it depends
on environment which in turn depends on other code so SPL size
is increased significantly. No effort was done to decouple network
code and environment so far.

Signed-off-by: Ilya Yanok ilya.ya...@cogentembedded.com

---
Changes in v3:
 - use BOOTP in SPL regardless of CONFIG_CMD_DHCP
 - add support for setting different VCI in SPL

Changes in v4:
 - fix compilation of SPL's libcommon with CONFIG_HUSH_PARSER
   and CONFIG_BOOTD defined
 - rename spl_eth.c to spl_net.c
 - set ethact variable if device name is passed

Changes in v5:
 - set up guards in cmd_nvedit.c more carefully
 - now we don't need command.c and only need main.c for
   show_boot_progress() so defined it to be noop and remove
   both files from SPL sources
 - SPL guards in command.c and main.c are no longer needed
 - add some guards in env_common.c
 - qsort.c is no longer needed
 - add guard to hashtable.c to save some space
 - undefine unneeded CONFIG_CMD_* while building SPL to save space

Changes in v6:
 - remove some unneeded changes introduced by earlier versions
 - switch clauses and use ifdef instead of ifndef
 - create new header config_uncmd_spl.h which undefines CONFIG_CMD_*
   options unneeded in SPL and include it last from config.h
 - remove explicit undefs from net/net.c and net/bootp.c

Changes in v7:
 - remove explicit cmd undef from net/tftp.c also
 - add GPLv2 header to config_uncmd_spl.h
 - remove CONFIG_SPL_BUILD clause at hang() (not needed)

 arch/arm/cpu/armv7/omap-common/Makefile  |3 ++
 arch/arm/cpu/armv7/omap-common/spl.c |9 ++
 arch/arm/cpu/armv7/omap-common/spl_net.c |   52 ++
 arch/arm/include/asm/omap_common.h   |4 +++
 common/Makefile  |4 +++
 common/cmd_nvedit.c  |8 +
 common/env_common.c  |7 ++--
 include/bootstage.h  |6 +++-
 include/config_uncmd_spl.h   |   44 +
 lib/Makefile |9 --
 lib/hashtable.c  |2 ++
 mkconfig |1 +
 net/bootp.c  |7 +++-
 spl/Makefile |3 ++
 14 files changed, 153 insertions(+), 6 deletions(-)
 create mode 100644 arch/arm/cpu/armv7/omap-common/spl_net.c
 create mode 100644 include/config_uncmd_spl.h

diff --git a/arch/arm/cpu/armv7/omap-common/Makefile 
b/arch/arm/cpu/armv7/omap-common/Makefile
index d37b22d..f042078 100644
--- a/arch/arm/cpu/armv7/omap-common/Makefile
+++ b/arch/arm/cpu/armv7/omap-common/Makefile
@@ -53,6 +53,9 @@ endif
 ifdef CONFIG_SPL_YMODEM_SUPPORT
 COBJS  += spl_ymodem.o
 endif
+ifdef CONFIG_SPL_NET_SUPPORT
+COBJS  += spl_net.o
+endif
 endif
 
 ifndef CONFIG_SPL_BUILD
diff --git a/arch/arm/cpu/armv7/omap-common/spl.c 
b/arch/arm/cpu/armv7/omap-common/spl.c
index f0d766c..53b9261 100644
--- a/arch/arm/cpu/armv7/omap-common/spl.c
+++ b/arch/arm/cpu/armv7/omap-common/spl.c
@@ -178,6 +178,15 @@ void board_init_r(gd_t *id, ulong dummy)
spl_ymodem_load_image();
break;
 #endif
+#ifdef CONFIG_SPL_ETH_SUPPORT
+   case BOOT_DEVICE_CPGMAC:
+#ifdef CONFIG_SPL_ETH_DEVICE
+   spl_net_load_image(CONFIG_SPL_ETH_DEVICE);
+#else
+   spl_net_load_image(NULL);
+#endif
+   break;
+#endif
default:
printf(SPL: Un-supported Boot Device - %d!!!\n, boot_device);
hang();
diff --git a/arch/arm/cpu/armv7/omap-common/spl_net.c 
b/arch/arm/cpu/armv7/omap-common/spl_net.c
new file mode 100644
index 000..cbb3087
--- /dev/null
+++ b/arch/arm/cpu/armv7/omap-common/spl_net.c
@@ -0,0 +1,52 @@
+/*
+ * (C) Copyright 2000-2004
+ * Wolfgang Denk, DENX Software Engineering, w...@denx.de.
+ *
+ * (C) Copyright 2012
+ * Ilya Yanok ilya.ya...@gmail.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * 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.
+ */
+#include common.h
+#include net.h
+#include asm/omap_common.h
+
+DECLARE_GLOBAL_DATA_PTR;
+