Index: c/src/lib/libbsp/powerpc/haleakala/ChangeLog
===================================================================
--- c/src/lib/libbsp/powerpc/haleakala/ChangeLog	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/haleakala/ChangeLog	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -1,2 +1,8 @@
+2008-09-16	Joel Sherrill <joel.sherrill@oarcorp.com>
+
+	* Makefile.am, startup/linkcmds: Use top level shared
+	bsp_get_work_area() implementation.
+	* startup/bspgetworkarea.c: Removed.
+
 2008-09-14	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: c/src/lib/libbsp/powerpc/haleakala/Makefile.am
===================================================================
--- c/src/lib/libbsp/powerpc/haleakala/Makefile.am	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/haleakala/Makefile.am	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -31,5 +31,5 @@
 startup_SOURCES = startup/bspclean.c ../../shared/bsplibc.c \
     ../../shared/bsppost.c startup/bspstart.c ../../shared/bootcard.c \
-    ../../shared/bsppredriverhook.c startup/bspgetworkarea.c \
+    ../../shared/bsppredriverhook.c ../../shared/bspgetworkarea.c \
     ../../shared/bsppretaskinghook.c ../../shared/sbrk.c \
     ../../shared/gnatinstallhandler.c
Index: src/lib/libbsp/powerpc/haleakala/startup/bspgetworkarea.c
===================================================================
--- c/src/lib/libbsp/powerpc/haleakala/startup/bspgetworkarea.c	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ 	(revision )
@@ -1,37 +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>
-
-extern void *_WorkspaceStart;
-extern void *_RAMEnd;
-
-/*
- *  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
-)
-{
-  uintptr_t size;
-
-  size = (uintptr_t)&_RAMEnd - (uintptr_t)&_WorkspaceStart;
-
-  *work_area_start = (void *)&_WorkspaceStart;
-  *work_area_size  = size;
-  *heap_start      = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
-  *heap_size       = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
-}
-
Index: c/src/lib/libbsp/powerpc/haleakala/startup/linkcmds
===================================================================
--- c/src/lib/libbsp/powerpc/haleakala/startup/linkcmds	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/haleakala/startup/linkcmds	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -18,4 +18,8 @@
 kIntrStackSize = 16K;
 kMainStackSize = 64K;
+
+RamBase = DEFINED(RamBase) ? RamBase : 0;
+RamSize = DEFINED(RamSize) ? RamSize : 256M;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
 
 MEMORY {
@@ -239,8 +243,5 @@
 
 	/* RTEMS workspace: size specified by application */
-	_WorkspaceStart = ALIGN(0x20);
-
-	/* Heap: from end of the workspace to _RAMEnd */
-	_RAMEnd = ORIGIN(RAM) + LENGTH(RAM);
+	WorkAreaBase = ALIGN(0x20);
 
 	/* Debugging information */
Index: c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog
===================================================================
--- c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -1,2 +1,8 @@
+2008-09-16	Joel Sherrill <joel.sherrill@oarcorp.com>
+
+	* Makefile.am, startup/linkcmds: Use top level shared
+	bsp_get_work_area() implementation.
+	* startup/bspgetworkarea.c: Removed.
+
 2008-09-16	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: c/src/lib/libbsp/powerpc/mbx8xx/Makefile.am
===================================================================
--- c/src/lib/libbsp/powerpc/mbx8xx/Makefile.am	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mbx8xx/Makefile.am	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -36,5 +36,5 @@
 startup_SOURCES = ../../shared/bspclean.c ../../shared/bsplibc.c \
     ../../shared/bsppost.c ../../shared/bsppredriverhook.c \
-    ../../shared/bsppretaskinghook.c startup/bspgetworkarea.c \
+    ../../shared/bsppretaskinghook.c ../../shared/bspgetworkarea.c \
     startup/bspstart.c ../../shared/bootcard.c \
     startup/imbx8xx.c startup/mmutlbtab.c \
Index: src/lib/libbsp/powerpc/mbx8xx/startup/bspgetworkarea.c
===================================================================
--- c/src/lib/libbsp/powerpc/mbx8xx/startup/bspgetworkarea.c	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ 	(revision )
@@ -1,39 +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>
-
-extern void *RamBase;
-extern void *RamSize;
-extern void *WorkspaceBase;
-
-/*
- *  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
-)
-{
-  uintptr_t size;
-
-  size = (uintptr_t)&RamBase + (uintptr_t)&RamSize
-         - (uintptr_t)&WorkspaceBase;
-
-  *work_area_start = (void *)&WorkspaceBase;
-  *work_area_size  = size;
-  *heap_start      = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
-  *heap_size       = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
-}
-
Index: c/src/lib/libbsp/powerpc/mbx8xx/startup/linkcmds
===================================================================
--- c/src/lib/libbsp/powerpc/mbx8xx/startup/linkcmds	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mbx8xx/startup/linkcmds	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -18,5 +18,6 @@
 StackSize = DEFINED(StackSize) ? StackSize : 0x1000;
 RamBase = DEFINED(RamBase) ? RamBase : 0;
-RamSize = DEFINED(RamSized) ? RamSize : 4M;
+RamSize = DEFINED(RamSize) ? RamSize : 4M;
+HeapSize = DEFINED(HeapSize) ? HeapSize : 0x0;
  
 MEMORY
@@ -264,5 +265,5 @@
   PROVIDE(intrStackPtr = intrStack);
 
-  WorkspaceBase = .;
+  WorkAreaBase = .;
 
   dpram : 
Index: c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog
===================================================================
--- c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mpc8260ads/ChangeLog	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -1,2 +1,8 @@
+2008-09-16	Joel Sherrill <joel.sherrill@oarcorp.com>
+
+	* Makefile.am, startup/linkcmds: Use top level shared
+	bsp_get_work_area() implementation.
+	* startup/bspgetworkarea.c: Removed.
+
 2008-09-15	Joel Sherrill <joel.sherrill@oarcorp.com>
 
Index: c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am
===================================================================
--- c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mpc8260ads/Makefile.am	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -40,5 +40,5 @@
     startup/bspstart.c ../../shared/bootcard.c ../../shared/sbrk.c \
     ../../shared/gnatinstallhandler.c startup/cpuinit.c \
-    startup/bspgetworkarea.c ../../shared/bsppretaskinghook.c
+    ../../shared/bspgetworkarea.c ../../shared/bsppretaskinghook.c
 
 vectors_SOURCES = vectors/vectors_init.c vectors/vectors.h \
Index: src/lib/libbsp/powerpc/mpc8260ads/startup/bspgetworkarea.c
===================================================================
--- c/src/lib/libbsp/powerpc/mpc8260ads/startup/bspgetworkarea.c	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ 	(revision )
@@ -1,39 +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>
-
-extern void *RamBase;
-extern void *RamSize;
-extern void *WorkspaceBase;
-
-/*
- *  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
-)
-{
-  uintptr_t size;
-
-  size = (uintptr_t)&RamBase + (uintptr_t)&RamSize
-         - (uintptr_t)&WorkspaceBase;
-
-  *work_area_start = (void *)&WorkspaceBase;
-  *work_area_size  = size;
-  *heap_start      = BSP_BOOTCARD_HEAP_USES_WORK_AREA;
-  *heap_size       = BSP_BOOTCARD_HEAP_SIZE_DEFAULT;
-}
-
Index: c/src/lib/libbsp/powerpc/mpc8260ads/startup/linkcmds
===================================================================
--- c/src/lib/libbsp/powerpc/mpc8260ads/startup/linkcmds	(revision 91b8fcfb81dba802c715bfa9bedf8979c57c4298)
+++ c/src/lib/libbsp/powerpc/mpc8260ads/startup/linkcmds	(revision 284ed06a28de2736b2bc18d84150f5d958b8324c)
@@ -21,4 +21,5 @@
 RamBase     = DEFINED(RamBase) ? RamBase : 0x0;
 RamSize     = DEFINED(RamSize) ? RamDiskSize : 0x0800000; /* 8M program ram */
+HeapSize    = DEFINED(HeapSize) ? HeapSize : 0x0;
 RamDiskBase = DEFINED(RamDiskBase) ? RamDiskBase : 0x0800000;
 RamDiskSize = DEFINED(RamDiskSize) ? RamDiskSize : 0x0800000; /* 8M ram disk */
@@ -271,5 +272,5 @@
     clear_end = .;
 
-    WorkspaceBase = .;
+    WorkAreaBase = .;
 
     /* Sections for compressed .text and .data         */
