Index: c/src/lib/libbsp/powerpc/gen5200/ChangeLog
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/ChangeLog	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/ChangeLog	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -1,2 +1,9 @@
+2008-09-20	Joel Sherrill <joel.sherrill@oarcorp.com>
+
+	* Makefile.am, include/bsp.h, network_5200/network.c, start/start.S,
+	startup/bspstart.c, startup/cpuinit.c: Use top level shared
+	bsp_get_work_area() implementation. Augment it to know about U-Boot.
+	* startup/bspgetworkarea.c: Removed.
+
 2008-09-18	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: c/src/lib/libbsp/powerpc/gen5200/Makefile.am
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/Makefile.am	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/Makefile.am	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -106,5 +106,5 @@
 	../shared/uboot_getenv.c \
 	startup/bspclean.c \
-	startup/bspgetworkarea.c \
+	../../shared/bspgetworkarea.c \
 	startup/bspstart.c \
 	startup/cpuinit.c  \
Index: c/src/lib/libbsp/powerpc/gen5200/include/bsp.h
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/include/bsp.h	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/include/bsp.h	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -150,6 +150,5 @@
 #include <u-boot.h>
 
-extern bd_t *uboot_bdinfo_ptr;
-extern bd_t uboot_bdinfo_copy;
+extern bd_t bsp_uboot_board_info;
 #endif
 
@@ -206,7 +205,7 @@
 /* clock settings */
 #if defined(HAS_UBOOT)
-#define IPB_CLOCK (uboot_bdinfo_ptr->bi_ipbfreq)
-#define XLB_CLOCK (uboot_bdinfo_ptr->bi_busfreq)
-#define G2_CLOCK  (uboot_bdinfo_ptr->bi_intfreq)
+#define IPB_CLOCK (bsp_uboot_board_info.bi_ipbfreq)
+#define XLB_CLOCK (bsp_uboot_board_info.bi_busfreq)
+#define G2_CLOCK  (bsp_uboot_board_info.bi_intfreq)
 #else
 #define IPB_CLOCK 33000000   /* 33 MHz */
@@ -216,5 +215,5 @@
 
 #if defined(HAS_UBOOT)
-#define GEN5200_CONSOLE_BAUD (uboot_bdinfo_ptr->bi_baudrate)
+#define GEN5200_CONSOLE_BAUD (bsp_uboot_board_info.bi_baudrate)
 #else
 #define GEN5200_CONSOLE_BAUD 9600
Index: c/src/lib/libbsp/powerpc/gen5200/network_5200/network.c
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/network_5200/network.c	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/network_5200/network.c	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -1770,5 +1770,9 @@
       (sc->arpcom.ac_enaddr[1] == 0) &&
       (sc->arpcom.ac_enaddr[2] == 0)) {
-      memcpy((void *)sc->arpcom.ac_enaddr, uboot_bdinfo_ptr->bi_enetaddr, ETHER_ADDR_LEN);    
+      memcpy(
+        (void *)sc->arpcom.ac_enaddr,
+        bsp_uboot_board_info.bi_enetaddr,
+        ETHER_ADDR_LEN
+      );
   }
 #endif
Index: c/src/lib/libbsp/powerpc/gen5200/start/start.S
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/start/start.S	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/start/start.S	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -168,5 +168,5 @@
 #if defined(HAS_UBOOT)
 /* store pointer to UBoot bd_info board info structure */	
-	LWI	r31,uboot_bdinfo_ptr
+	LWI	r31,bsp_uboot_board_info_ptr
 	stw	r3,0(r31)
 #endif /* defined(HAS_UBOOT) */
Index: src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/startup/bspgetworkarea.c	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ 	(revision )
@@ -1,50 +1,0 @@
-/*
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.com/license/LICENSE.
- *
- *  $Id$
- */
-
-#include <bsp.h>
-#include <bsp/bootcard.h>
-#include <stdint.h>
-
-/*
- *  These are provided by the linkcmds for ALL of the BSPs which use this file.
- */
-extern char RamBase[];
-extern char WorkAreaBase[];
-extern char HeapSize[];
-extern char RamSize[];
-
-#if defined(HAS_UBOOT)
-  extern bd_t *uboot_bdinfo_ptr;
-#endif
-
-/*
- *  This method returns the base address and size of the area which
- *  is to be allocated between the RTEMS Workspace and the C Program
- *  Heap.
- */
-
-void bsp_get_work_area(
-  void   **work_area_start,
-  size_t  *work_area_size,
-  void   **heap_start,
-  size_t  *heap_size
-)
-{
-  #ifdef HAS_UBOOT
-    char *ram_end = (char *) uboot_bdinfo_ptr->bi_memstart +
-                                 uboot_bdinfo_ptr->bi_memsize;
-  #else /* HAS_UBOOT */
-    char *ram_end = (uintptr_t)RamBase + (uintptr_t)RamSize;
-  #endif /* HAS_UBOOT */
-
-  *work_area_start = bsp_work_area_start;
-  *work_area_size = ram_end - bsp_work_area_start;
-  *heap_start = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
-  *heap_size = HeapSize;
-}
-
Index: c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/startup/bspstart.c	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -108,6 +108,8 @@
 
 #if defined(HAS_UBOOT)
-bd_t *uboot_bdinfo_ptr = (bd_t *)1; /* will be overwritten from startup code */
-bd_t uboot_bdinfo_copy;             /* will be overwritten with copy of bdinfo */
+/* will be overwritten from startup code */
+bd_t *bsp_uboot_board_info_ptr = (bd_t *)1;
+/* will be overwritten with copy of board information */
+bd_t bsp_uboot_board_info;
 #endif
 
@@ -143,6 +145,5 @@
 
   #if defined(HAS_UBOOT)
-    uboot_bdinfo_copy = *uboot_bdinfo_ptr;
-    uboot_bdinfo_ptr = &uboot_bdinfo_copy;
+    bsp_uboot_board_info = *bsp_uboot_board_info_ptr;
   #endif  
 
@@ -150,5 +151,5 @@
     {
       void dumpUBootBDInfo( bd_t * );
-      dumpUBootBDInfo( uboot_bdinfo_ptr );
+      dumpUBootBDInfo( bsp_uboot_board_info_ptr );
     }
   #endif
Index: c/src/lib/libbsp/powerpc/gen5200/startup/cpuinit.c
===================================================================
--- c/src/lib/libbsp/powerpc/gen5200/startup/cpuinit.c	(revision bb573f750f0136ac77d9514532f632adb01aa760)
+++ c/src/lib/libbsp/powerpc/gen5200/startup/cpuinit.c	(revision 144ad337741f463b0283875109c1ca7c1628a0f1)
@@ -177,6 +177,6 @@
   calc_dbat_regvals(
     &dbat,
-    uboot_bdinfo_ptr->bi_memstart,
-    uboot_bdinfo_ptr->bi_memsize,
+    bsp_uboot_board_info.bi_memstart,
+    bsp_uboot_board_info.bi_memsize,
     true,
     false,
@@ -194,14 +194,14 @@
    * corrects that.
    */
-  if ((uboot_bdinfo_ptr->bi_flashstart + uboot_bdinfo_ptr->bi_flashsize)
-    < uboot_bdinfo_ptr->bi_flashstart) {
-    start = 0 - uboot_bdinfo_ptr->bi_flashsize;
+  if ((bsp_uboot_board_info.bi_flashstart + bsp_uboot_board_info.bi_flashsize)
+    < bsp_uboot_board_info.bi_flashstart) {
+    start = 0 - bsp_uboot_board_info.bi_flashsize;
   } else {
-    start = uboot_bdinfo_ptr->bi_flashstart;
+    start = bsp_uboot_board_info.bi_flashstart;
   }
   calc_dbat_regvals(
     &dbat,
     start,
-    uboot_bdinfo_ptr->bi_flashsize,
+    bsp_uboot_board_info.bi_flashsize,
     true,
     false,
@@ -230,9 +230,9 @@
    * If there is SRAM, program BAT3 for that memory
    */
-  if (uboot_bdinfo_ptr->bi_sramsize != 0) {
+  if (bsp_uboot_board_info.bi_sramsize != 0) {
     calc_dbat_regvals(
       &dbat,
-      uboot_bdinfo_ptr->bi_sramstart,
-      uboot_bdinfo_ptr->bi_sramsize,
+      bsp_uboot_board_info.bi_sramstart,
+      bsp_uboot_board_info.bi_sramsize,
       false,
       true,
