diff --git a/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c b/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c
index dcfd83e..fad9c40 100644
--- a/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c
+++ b/board/BuS/EB+MCF-EV123/EB+MCF-EV123.c
@@ -39,7 +39,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int size,i;
 
diff --git a/board/LEOX/elpt860/elpt860.c b/board/LEOX/elpt860/elpt860.c
index 775db73..5f50631 100644
--- a/board/LEOX/elpt860/elpt860.c
+++ b/board/LEOX/elpt860/elpt860.c
@@ -35,7 +35,7 @@
 ** ------
 **              int             board_early_init_f(void)
 **              int             checkboard(void)
-**              long int        initdram(int board_type)
+**              phys_size_t     initdram(int board_type)
 ** called from 'board_init_f()' into 'common/board.c'
 **
 **              void            reset_phy(void)
@@ -179,7 +179,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/MAI/AmigaOneG3SE/AmigaOneG3SE.c b/board/MAI/AmigaOneG3SE/AmigaOneG3SE.c
index 3bbc09d..e118563 100644
--- a/board/MAI/AmigaOneG3SE/AmigaOneG3SE.c
+++ b/board/MAI/AmigaOneG3SE/AmigaOneG3SE.c
@@ -81,7 +81,7 @@
 	return 0;
 }
 
-long initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return articiaS_ram_init ();
 }
diff --git a/board/Marvell/db64360/sdram_init.c b/board/Marvell/db64360/sdram_init.c
index f04aaf9..ecadaf2 100644
--- a/board/Marvell/db64360/sdram_init.c
+++ b/board/Marvell/db64360/sdram_init.c
@@ -1728,7 +1728,7 @@
 
 /* ppcboot interface function to SDRAM init - this is where all the
  * controlling logic happens */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int s0 = 0, s1 = 0;
 	int checkbank[4] = {[0 ... 3] = 0 };
diff --git a/board/Marvell/db64460/sdram_init.c b/board/Marvell/db64460/sdram_init.c
index 1762202..f36f348 100644
--- a/board/Marvell/db64460/sdram_init.c
+++ b/board/Marvell/db64460/sdram_init.c
@@ -1737,7 +1737,7 @@
 
 /* ppcboot interface function to SDRAM init - this is where all the
  * controlling logic happens */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int s0 = 0, s1 = 0;
 	int checkbank[4] = {[0 ... 3] = 0 };
diff --git a/board/RPXClassic/RPXClassic.c b/board/RPXClassic/RPXClassic.c
index 49cb8ad..804635a 100644
--- a/board/RPXClassic/RPXClassic.c
+++ b/board/RPXClassic/RPXClassic.c
@@ -165,7 +165,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/RPXlite/RPXlite.c b/board/RPXlite/RPXlite.c
index f37e07b..bca31e4 100644
--- a/board/RPXlite/RPXlite.c
+++ b/board/RPXlite/RPXlite.c
@@ -102,7 +102,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/RPXlite_dw/RPXlite_dw.c b/board/RPXlite_dw/RPXlite_dw.c
index d3dc081..d6fabf0 100644
--- a/board/RPXlite_dw/RPXlite_dw.c
+++ b/board/RPXlite_dw/RPXlite_dw.c
@@ -104,7 +104,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/RRvision/RRvision.c b/board/RRvision/RRvision.c
index f46bb9e..c0b772d 100644
--- a/board/RRvision/RRvision.c
+++ b/board/RRvision/RRvision.c
@@ -110,7 +110,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/a3000/a3000.c b/board/a3000/a3000.c
index 737d35d..c1eceaa 100644
--- a/board/a3000/a3000.c
+++ b/board/a3000/a3000.c
@@ -38,7 +38,7 @@
 
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/adder/adder.c b/board/adder/adder.c
index 817c864..e8a5737 100644
--- a/board/adder/adder.c
+++ b/board/adder/adder.c
@@ -65,7 +65,7 @@
 	0xfffffc27, 0xfffffc04, 0xfffffc04, 0xfffffc04
 };
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long int msize;
 	volatile immap_t     *immap  = (volatile immap_t *)CFG_IMMR;
diff --git a/board/ads5121/ads5121.c b/board/ads5121/ads5121.c
index 2892665..ef66663 100644
--- a/board/ads5121/ads5121.c
+++ b/board/ads5121/ads5121.c
@@ -112,7 +112,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	u32 msize = 0;
 
diff --git a/board/alaska/alaska.c b/board/alaska/alaska.c
index 9531703..49a8f71 100644
--- a/board/alaska/alaska.c
+++ b/board/alaska/alaska.c
@@ -131,7 +131,7 @@
 	mtspr (DBAT7U, batu);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong size;
 
diff --git a/board/altera/dk1c20/dk1c20.c b/board/altera/dk1c20/dk1c20.c
index d0eb9ea..46695be 100644
--- a/board/altera/dk1c20/dk1c20.c
+++ b/board/altera/dk1c20/dk1c20.c
@@ -50,7 +50,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/altera/dk1s10/dk1s10.c b/board/altera/dk1s10/dk1s10.c
index c45e7f1..64d591e 100644
--- a/board/altera/dk1s10/dk1s10.c
+++ b/board/altera/dk1s10/dk1s10.c
@@ -54,7 +54,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/altera/ep1c20/ep1c20.c b/board/altera/ep1c20/ep1c20.c
index 2949139..c5bfb85 100644
--- a/board/altera/ep1c20/ep1c20.c
+++ b/board/altera/ep1c20/ep1c20.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/altera/ep1s10/ep1s10.c b/board/altera/ep1s10/ep1s10.c
index 9c7e28e..de9bf42 100644
--- a/board/altera/ep1s10/ep1s10.c
+++ b/board/altera/ep1s10/ep1s10.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/altera/ep1s40/ep1s40.c b/board/altera/ep1s40/ep1s40.c
index cb75550..c0eca17 100644
--- a/board/altera/ep1s40/ep1s40.c
+++ b/board/altera/ep1s40/ep1s40.c
@@ -29,7 +29,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/amcc/acadia/memory.c b/board/amcc/acadia/memory.c
index 3dec315..48a6725 100644
--- a/board/amcc/acadia/memory.c
+++ b/board/amcc/acadia/memory.c
@@ -59,7 +59,7 @@
 }
 #endif
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #if defined(CONFIG_NAND_SPL)
 	u32 reg;
diff --git a/board/amcc/bamboo/bamboo.c b/board/amcc/bamboo/bamboo.c
index 0c7d69e..f415701 100644
--- a/board/amcc/bamboo/bamboo.c
+++ b/board/amcc/bamboo/bamboo.c
@@ -453,7 +453,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #if !(defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL))
 	long dram_size;
diff --git a/board/amcc/bubinga/bubinga.c b/board/amcc/bubinga/bubinga.c
index 9d508b8..74a2a1c 100644
--- a/board/amcc/bubinga/bubinga.c
+++ b/board/amcc/bubinga/bubinga.c
@@ -70,7 +70,7 @@
   initdram(int board_type) reads EEPROM via I2c. EEPROM contains all of
   the necessary info for SDRAM controller configuration
    ------------------------------------------------------------------------- */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long int ret;
 
diff --git a/board/amcc/canyonlands/canyonlands.c b/board/amcc/canyonlands/canyonlands.c
index 4e3b349..e0e0211 100644
--- a/board/amcc/canyonlands/canyonlands.c
+++ b/board/amcc/canyonlands/canyonlands.c
@@ -205,7 +205,7 @@
  * I2C SPD DIMM autodetection/calibration doesn't fit into the 4k of boot
  * code.
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return CFG_MBYTES_SDRAM << 20;
 }
diff --git a/board/amcc/ebony/ebony.c b/board/amcc/ebony/ebony.c
index c6375ac..9bcdf59 100644
--- a/board/amcc/ebony/ebony.c
+++ b/board/amcc/ebony/ebony.c
@@ -104,7 +104,7 @@
 	return (0);
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/amcc/ocotea/ocotea.c b/board/amcc/ocotea/ocotea.c
index 79c1a1b..eea1e1e 100644
--- a/board/amcc/ocotea/ocotea.c
+++ b/board/amcc/ocotea/ocotea.c
@@ -201,7 +201,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/amcc/sequoia/sdram.c b/board/amcc/sequoia/sdram.c
index b43ec48..77e6c7b 100644
--- a/board/amcc/sequoia/sdram.c
+++ b/board/amcc/sequoia/sdram.c
@@ -52,7 +52,7 @@
  * initdram -- 440EPx's DDR controller is a DENALI Core
  *
  ************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
 #if !defined(CONFIG_NAND_SPL)
diff --git a/board/amcc/taihu/taihu.c b/board/amcc/taihu/taihu.c
index e4fdf4a..254e3eb 100644
--- a/board/amcc/taihu/taihu.c
+++ b/board/amcc/taihu/taihu.c
@@ -78,10 +78,10 @@
 }
 
 /*************************************************************************
- *  long int initdram
+ *  phys_size_t initdram
  *
  ************************************************************************/
-long int initdram(int board)
+phys_size_t initdram(int board)
 {
 	return CFG_SDRAM_SIZE_PER_BANK * CFG_SDRAM_BANKS; /* 128Mbytes */
 }
diff --git a/board/amcc/walnut/walnut.c b/board/amcc/walnut/walnut.c
index 641987e..28dcb66 100644
--- a/board/amcc/walnut/walnut.c
+++ b/board/amcc/walnut/walnut.c
@@ -89,7 +89,7 @@
  * initdram(int board_type) reads EEPROM via I2c. EEPROM contains all of
  * the necessary info for SDRAM controller configuration
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return spd_sdram();
 }
diff --git a/board/amcc/yosemite/yosemite.c b/board/amcc/yosemite/yosemite.c
index 8345537..3b1f8e2 100644
--- a/board/amcc/yosemite/yosemite.c
+++ b/board/amcc/yosemite/yosemite.c
@@ -281,7 +281,7 @@
 	*tr1_value = (first_good + last_bad) / 2;
 }
 
-long int initdram(int board)
+phys_size_t initdram(int board)
 {
 	register uint reg;
 	int tr1_bank1, tr1_bank2;
diff --git a/board/amirix/ap1000/ap1000.c b/board/amirix/ap1000/ap1000.c
index 7d11b29..55277e7 100644
--- a/board/amirix/ap1000/ap1000.c
+++ b/board/amirix/ap1000/ap1000.c
@@ -133,7 +133,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	char *s = getenv ("dramsize");
 
diff --git a/board/atc/atc.c b/board/atc/atc.c
index fe32155..79527f4 100644
--- a/board/atc/atc.c
+++ b/board/atc/atc.c
@@ -340,7 +340,7 @@
 	return (0);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/atmel/atngw100/atngw100.c b/board/atmel/atngw100/atngw100.c
index c649855..375f0e7 100644
--- a/board/atmel/atngw100/atngw100.c
+++ b/board/atmel/atngw100/atngw100.c
@@ -64,7 +64,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned long expected_size;
 	unsigned long actual_size;
diff --git a/board/atmel/atstk1000/atstk1000.c b/board/atmel/atstk1000/atstk1000.c
index 33bdba6..6371e2d 100644
--- a/board/atmel/atstk1000/atstk1000.c
+++ b/board/atmel/atstk1000/atstk1000.c
@@ -90,7 +90,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned long expected_size;
 	unsigned long actual_size;
diff --git a/board/atum8548/atum8548.c b/board/atum8548/atum8548.c
index 2f6ae29..4d8c6fb 100644
--- a/board/atum8548/atum8548.c
+++ b/board/atum8548/atum8548.c
@@ -98,7 +98,7 @@
 }
 #endif	/* !defined(CONFIG_SPD_EEPROM) */
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/barco/barco.c b/board/barco/barco.c
index becbd0a..72e7e0b 100644
--- a/board/barco/barco.c
+++ b/board/barco/barco.c
@@ -83,7 +83,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/barco/barco_svc.h b/board/barco/barco_svc.h
index 088f61e..bd924f2 100644
--- a/board/barco/barco_svc.h
+++ b/board/barco/barco_svc.h
@@ -59,7 +59,7 @@
 
 /* barcohydra.c */
 int checkboard(void);
-long int initdram(int board_type);
+phys_size_t initdram(int board_type);
 void pci_init_board(void);
 void check_flash(void);
 int write_flash(char *addr, char value);
diff --git a/board/bc3450/bc3450.c b/board/bc3450/bc3450.c
index 56a73fe..a728dc6 100644
--- a/board/bc3450/bc3450.c
+++ b/board/bc3450/bc3450.c
@@ -104,7 +104,7 @@
  */
 
 #if defined(CONFIG_MPC5200)
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
@@ -205,7 +205,7 @@
 
 #elif defined(CONFIG_MGT5100)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/bf533-ezkit/bf533-ezkit.c b/board/bf533-ezkit/bf533-ezkit.c
index 738f69c..583560a 100644
--- a/board/bf533-ezkit/bf533-ezkit.c
+++ b/board/bf533-ezkit/bf533-ezkit.c
@@ -39,7 +39,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #ifdef DEBUG
 	int brate;
diff --git a/board/bf533-stamp/bf533-stamp.c b/board/bf533-stamp/bf533-stamp.c
index c4dde92..7a17dfa 100644
--- a/board/bf533-stamp/bf533-stamp.c
+++ b/board/bf533-stamp/bf533-stamp.c
@@ -48,7 +48,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #ifdef DEBUG
 	printf("SDRAM attributes:\n");
diff --git a/board/bf537-stamp/bf537-stamp.c b/board/bf537-stamp/bf537-stamp.c
index e714177..cd7a04d 100644
--- a/board/bf537-stamp/bf537-stamp.c
+++ b/board/bf537-stamp/bf537-stamp.c
@@ -97,7 +97,7 @@
 }
 #endif				/* CONFIG_BFIN_IDE */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #ifdef DEBUG
 	int brate;
diff --git a/board/bf561-ezkit/bf561-ezkit.c b/board/bf561-ezkit/bf561-ezkit.c
index d504217..7345b42 100644
--- a/board/bf561-ezkit/bf561-ezkit.c
+++ b/board/bf561-ezkit/bf561-ezkit.c
@@ -39,7 +39,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #ifdef DEBUG
 	int brate;
diff --git a/board/bmw/bmw.c b/board/bmw/bmw.c
index 485e050..0431431 100644
--- a/board/bmw/bmw.c
+++ b/board/bmw/bmw.c
@@ -51,7 +51,7 @@
     return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
     return 64*1024*1024;
 }
diff --git a/board/c2mon/c2mon.c b/board/c2mon/c2mon.c
index ca8eb0c..7d2f746 100644
--- a/board/c2mon/c2mon.c
+++ b/board/c2mon/c2mon.c
@@ -108,7 +108,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/canmb/canmb.c b/board/canmb/canmb.c
index 1782b31..d3711d0 100644
--- a/board/canmb/canmb.c
+++ b/board/canmb/canmb.c
@@ -82,7 +82,7 @@
  */
 
 #if defined(CONFIG_MPC5200)
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
@@ -185,7 +185,7 @@
 
 #elif defined(CONFIG_MGT5100)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/cm5200/cm5200.c b/board/cm5200/cm5200.c
index 79fb71d..3e952d8 100644
--- a/board/cm5200/cm5200.c
+++ b/board/cm5200/cm5200.c
@@ -114,7 +114,7 @@
 /*
  * Initalize SDRAM - configure SDRAM controller, detect memory size.
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/cmi/cmi.c b/board/cmi/cmi.c
index cbf34f7..8501cae 100644
--- a/board/cmi/cmi.c
+++ b/board/cmi/cmi.c
@@ -62,7 +62,7 @@
 /*
  * Get RAM size.
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return (SRAM_SIZE);		/* We currently have a static size adapted for cmi board. */
 }
diff --git a/board/cobra5272/cobra5272.c b/board/cobra5272/cobra5272.c
index 86c7ee1..b928550 100644
--- a/board/cobra5272/cobra5272.c
+++ b/board/cobra5272/cobra5272.c
@@ -32,7 +32,7 @@
 	return 0;
 };
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile sdramctrl_t *sdp = (sdramctrl_t *) (MMAP_SDRAM);
 
diff --git a/board/cogent/mb.c b/board/cogent/mb.c
index 917132b..619aea3 100644
--- a/board/cogent/mb.c
+++ b/board/cogent/mb.c
@@ -233,7 +233,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #ifdef CONFIG_CMA111
 	return (32L * 1024L * 1024L);
diff --git a/board/cpc45/cpc45.c b/board/cpc45/cpc45.c
index 79eb473..f4e867c 100644
--- a/board/cpc45/cpc45.c
+++ b/board/cpc45/cpc45.c
@@ -61,7 +61,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int m, row, col, bank, i, ref;
 	unsigned long start, end;
diff --git a/board/cpu86/cpu86.c b/board/cpu86/cpu86.c
index 0eb94ef..9e76c72 100644
--- a/board/cpu86/cpu86.c
+++ b/board/cpu86/cpu86.c
@@ -273,7 +273,7 @@
 	return (size);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/cpu87/cpu87.c b/board/cpu87/cpu87.c
index a2fd193..f5a5de5 100644
--- a/board/cpu87/cpu87.c
+++ b/board/cpu87/cpu87.c
@@ -274,7 +274,7 @@
 	return (size);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/cray/L1/L1.c b/board/cray/L1/L1.c
index a72ba46..f0dfa07 100644
--- a/board/cray/L1/L1.c
+++ b/board/cray/L1/L1.c
@@ -170,7 +170,7 @@
 }
 
 /* ------------------------------------------------------------------------- */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (L1_MEMSIZE);
 }
diff --git a/board/csb272/csb272.c b/board/csb272/csb272.c
index 640412d..5a585ae 100644
--- a/board/csb272/csb272.c
+++ b/board/csb272/csb272.c
@@ -120,7 +120,7 @@
  * configured by initialization code
  *
  */
-long initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong tot_size;
 	ulong bank_size;
diff --git a/board/csb472/csb472.c b/board/csb472/csb472.c
index 1fbf17f..9dc130e 100644
--- a/board/csb472/csb472.c
+++ b/board/csb472/csb472.c
@@ -88,7 +88,7 @@
  * configured by initialization code
  *
  */
-long initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong tot_size;
 	ulong bank_size;
diff --git a/board/cu824/cu824.c b/board/cu824/cu824.c
index 3edd27a..ecf6328 100644
--- a/board/cu824/cu824.c
+++ b/board/cu824/cu824.c
@@ -45,7 +45,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/dave/PPChameleonEVB/PPChameleonEVB.c b/board/dave/PPChameleonEVB/PPChameleonEVB.c
index e8302d9..c9b288a 100644
--- a/board/dave/PPChameleonEVB/PPChameleonEVB.c
+++ b/board/dave/PPChameleonEVB/PPChameleonEVB.c
@@ -203,7 +203,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/dbau1x00/dbau1x00.c b/board/dbau1x00/dbau1x00.c
index 1be72a2..629dc31 100644
--- a/board/dbau1x00/dbau1x00.c
+++ b/board/dbau1x00/dbau1x00.c
@@ -27,7 +27,7 @@
 #include <asm/mipsregs.h>
 #include <asm/io.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Sdram is setup by assembler code */
 	/* If memory could be changed, we should return the true value here */
diff --git a/board/eXalion/eXalion.c b/board/eXalion/eXalion.c
index 2e3f519..385b498 100644
--- a/board/eXalion/eXalion.c
+++ b/board/eXalion/eXalion.c
@@ -52,7 +52,7 @@
 	return (0);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int i, cnt;
 	volatile uchar *base = CFG_SDRAM_BASE;
diff --git a/board/eltec/bab7xx/bab7xx.c b/board/eltec/bab7xx/bab7xx.c
index 555475e..af52352 100644
--- a/board/eltec/bab7xx/bab7xx.c
+++ b/board/eltec/bab7xx/bab7xx.c
@@ -162,7 +162,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return dram_size (board_type);
 }
diff --git a/board/eltec/elppc/elppc.c b/board/eltec/elppc/elppc.c
index 108adb1..1b70605 100644
--- a/board/eltec/elppc/elppc.c
+++ b/board/eltec/elppc/elppc.c
@@ -104,7 +104,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return dram_size (board_type);
 }
diff --git a/board/eltec/mhpc/mhpc.c b/board/eltec/mhpc/mhpc.c
index 0ffbdf0..3666791 100644
--- a/board/eltec/mhpc/mhpc.c
+++ b/board/eltec/mhpc/mhpc.c
@@ -251,7 +251,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/emk/top5200/top5200.c b/board/emk/top5200/top5200.c
index ccbd72a..2788626 100644
--- a/board/emk/top5200/top5200.c
+++ b/board/emk/top5200/top5200.c
@@ -32,7 +32,7 @@
  * initialize SDRAM/DDRAM controller.
  * TBD: get data from I2C EEPROM
  *****************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/emk/top860/top860.c b/board/emk/top860/top860.c
index 84afaaa..aca4991 100644
--- a/board/emk/top860/top860.c
+++ b/board/emk/top860/top860.c
@@ -76,7 +76,7 @@
 /*****************************************************************************
  * Initialize DRAM controller
  *****************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/ep8248/ep8248.c b/board/ep8248/ep8248.c
index 69975ca..4cfb2ac 100644
--- a/board/ep8248/ep8248.c
+++ b/board/ep8248/ep8248.c
@@ -208,7 +208,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	vu_char *bcsr = (vu_char *)CFG_BCSR;
 	long int msize = 16L << (bcsr[2] & 3);
diff --git a/board/ep8260/ep8260.c b/board/ep8260/ep8260.c
index b9e1df4..0e43c6d 100644
--- a/board/ep8260/ep8260.c
+++ b/board/ep8260/ep8260.c
@@ -243,7 +243,7 @@
 /* ------------------------------------------------------------------------- */
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/ep82xxm/ep82xxm.c b/board/ep82xxm/ep82xxm.c
index 27443d3..03baf0b 100644
--- a/board/ep82xxm/ep82xxm.c
+++ b/board/ep82xxm/ep82xxm.c
@@ -219,7 +219,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Size in MB of SDRAM populated on board*/
 	long int msize = 256;
diff --git a/board/ep88x/ep88x.c b/board/ep88x/ep88x.c
index 5f57f36..92e5f0c 100644
--- a/board/ep88x/ep88x.c
+++ b/board/ep88x/ep88x.c
@@ -86,7 +86,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long int msize;
 	volatile immap_t     *immap  = (volatile immap_t *)CFG_IMMR;
diff --git a/board/eric/eric.c b/board/eric/eric.c
index 14ba9b0..972d485 100644
--- a/board/eric/eric.c
+++ b/board/eric/eric.c
@@ -121,7 +121,7 @@
 */
 /* ------------------------------------------------------------------------- */
 /* ------------------------------------------------------------------------- */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #ifndef CONFIG_ERIC
 	int i;
diff --git a/board/esd/adciop/adciop.c b/board/esd/adciop/adciop.c
index 7a11a12..0f655b7 100644
--- a/board/esd/adciop/adciop.c
+++ b/board/esd/adciop/adciop.c
@@ -79,7 +79,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (16 * 1024 * 1024);
 }
diff --git a/board/esd/apc405/apc405.c b/board/esd/apc405/apc405.c
index 2cb743e..83657c8 100644
--- a/board/esd/apc405/apc405.c
+++ b/board/esd/apc405/apc405.c
@@ -423,7 +423,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/ash405/ash405.c b/board/esd/ash405/ash405.c
index 8a5b03b..25360a6 100644
--- a/board/esd/ash405/ash405.c
+++ b/board/esd/ash405/ash405.c
@@ -207,7 +207,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/cms700/cms700.c b/board/esd/cms700/cms700.c
index 3d4f237..ba27c03 100644
--- a/board/esd/cms700/cms700.c
+++ b/board/esd/cms700/cms700.c
@@ -141,7 +141,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/cpci2dp/cpci2dp.c b/board/esd/cpci2dp/cpci2dp.c
index 36bf329..54de0b8 100644
--- a/board/esd/cpci2dp/cpci2dp.c
+++ b/board/esd/cpci2dp/cpci2dp.c
@@ -117,7 +117,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/cpci405/cpci405.c b/board/esd/cpci405/cpci405.c
index 69cb8ce..b856705 100644
--- a/board/esd/cpci405/cpci405.c
+++ b/board/esd/cpci405/cpci405.c
@@ -495,7 +495,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/cpci5200/cpci5200.c b/board/esd/cpci5200/cpci5200.c
index adb8597..20130ac 100644
--- a/board/esd/cpci5200/cpci5200.c
+++ b/board/esd/cpci5200/cpci5200.c
@@ -84,7 +84,7 @@
  *            is something else than 0x00000000.
  */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 	ulong test1, test2;
diff --git a/board/esd/cpci750/sdram_init.c b/board/esd/cpci750/sdram_init.c
index f43e83f..a479f0f 100644
--- a/board/esd/cpci750/sdram_init.c
+++ b/board/esd/cpci750/sdram_init.c
@@ -1602,7 +1602,7 @@
 
 /* ppcboot interface function to SDRAM init - this is where all the
  * controlling logic happens */
-long int
+phys_size_t
 initdram(int board_type)
 {
 	int s0 = 0, s1 = 0;
diff --git a/board/esd/cpciiser4/cpciiser4.c b/board/esd/cpciiser4/cpciiser4.c
index fcb8cbb..204117e 100644
--- a/board/esd/cpciiser4/cpciiser4.c
+++ b/board/esd/cpciiser4/cpciiser4.c
@@ -186,7 +186,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (16 * 1024 * 1024);
 }
diff --git a/board/esd/dasa_sim/dasa_sim.c b/board/esd/dasa_sim/dasa_sim.c
index 2f8ab1a..fb0c77e 100644
--- a/board/esd/dasa_sim/dasa_sim.c
+++ b/board/esd/dasa_sim/dasa_sim.c
@@ -206,7 +206,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (16 * 1024 * 1024);
 }
diff --git a/board/esd/dp405/dp405.c b/board/esd/dp405/dp405.c
index 240ab78..bb3baa4 100644
--- a/board/esd/dp405/dp405.c
+++ b/board/esd/dp405/dp405.c
@@ -122,7 +122,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/du405/du405.c b/board/esd/du405/du405.c
index 6943213..78ae4ba 100644
--- a/board/esd/du405/du405.c
+++ b/board/esd/du405/du405.c
@@ -200,7 +200,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (16 * 1024 * 1024);
 }
diff --git a/board/esd/hh405/hh405.c b/board/esd/hh405/hh405.c
index 279d921..802491a 100644
--- a/board/esd/hh405/hh405.c
+++ b/board/esd/hh405/hh405.c
@@ -644,7 +644,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/hub405/hub405.c b/board/esd/hub405/hub405.c
index 25c8068..03b87c9 100644
--- a/board/esd/hub405/hub405.c
+++ b/board/esd/hub405/hub405.c
@@ -229,7 +229,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/mecp5200/mecp5200.c b/board/esd/mecp5200/mecp5200.c
index ea49f26..6d776b7 100644
--- a/board/esd/mecp5200/mecp5200.c
+++ b/board/esd/mecp5200/mecp5200.c
@@ -84,7 +84,7 @@
  *            is something else than 0x00000000.
  */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 	ulong test1, test2;
diff --git a/board/esd/ocrtc/ocrtc.c b/board/esd/ocrtc/ocrtc.c
index 261b8a5..7b0edd5 100644
--- a/board/esd/ocrtc/ocrtc.c
+++ b/board/esd/ocrtc/ocrtc.c
@@ -101,7 +101,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/pci405/pci405.c b/board/esd/pci405/pci405.c
index c4ab072..f740d59 100644
--- a/board/esd/pci405/pci405.c
+++ b/board/esd/pci405/pci405.c
@@ -358,7 +358,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/pf5200/pf5200.c b/board/esd/pf5200/pf5200.c
index 48b80bf..7970f89 100644
--- a/board/esd/pf5200/pf5200.c
+++ b/board/esd/pf5200/pf5200.c
@@ -84,7 +84,7 @@
  *            is something else than 0x00000000.
  */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 	ulong test1, test2;
diff --git a/board/esd/plu405/plu405.c b/board/esd/plu405/plu405.c
index 57762b5..fc71e9a 100644
--- a/board/esd/plu405/plu405.c
+++ b/board/esd/plu405/plu405.c
@@ -232,7 +232,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/pmc405/pmc405.c b/board/esd/pmc405/pmc405.c
index 7499671..326d560 100644
--- a/board/esd/pmc405/pmc405.c
+++ b/board/esd/pmc405/pmc405.c
@@ -157,7 +157,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/pmc440/sdram.c b/board/esd/pmc440/sdram.c
index 624c457..c7294c9 100644
--- a/board/esd/pmc440/sdram.c
+++ b/board/esd/pmc440/sdram.c
@@ -50,7 +50,7 @@
  * initdram -- 440EPx's DDR controller is a DENALI Core
  *
  ************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #if !defined(CONFIG_NAND_U_BOOT) || defined(CONFIG_NAND_SPL)
 #if !defined(CONFIG_NAND_SPL)
diff --git a/board/esd/tasreg/tasreg.c b/board/esd/tasreg/tasreg.c
index 1672400..fabb746 100644
--- a/board/esd/tasreg/tasreg.c
+++ b/board/esd/tasreg/tasreg.c
@@ -77,7 +77,7 @@
 };
 
 
-long int initdram (int board_type) {
+phys_size_t initdram (int board_type) {
 	unsigned long	junk = 0xa5a59696;
 
 	/*
diff --git a/board/esd/voh405/voh405.c b/board/esd/voh405/voh405.c
index 87a5849..5253422 100644
--- a/board/esd/voh405/voh405.c
+++ b/board/esd/voh405/voh405.c
@@ -305,7 +305,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/vom405/vom405.c b/board/esd/vom405/vom405.c
index 8be552e..af8efcf 100644
--- a/board/esd/vom405/vom405.c
+++ b/board/esd/vom405/vom405.c
@@ -129,7 +129,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esd/wuh405/wuh405.c b/board/esd/wuh405/wuh405.c
index dba3ce8..0590fc7 100644
--- a/board/esd/wuh405/wuh405.c
+++ b/board/esd/wuh405/wuh405.c
@@ -205,7 +205,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long val;
 
diff --git a/board/esteem192e/esteem192e.c b/board/esteem192e/esteem192e.c
index 3959eea..f3c8662 100644
--- a/board/esteem192e/esteem192e.c
+++ b/board/esteem192e/esteem192e.c
@@ -101,7 +101,7 @@
 /* ------------------------------------------------------------------------- */
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/etin/debris/debris.c b/board/etin/debris/debris.c
index 67375e9..763760f 100644
--- a/board/etin/debris/debris.c
+++ b/board/etin/debris/debris.c
@@ -53,7 +53,7 @@
 }
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int m, row, col, bank, i;
 	unsigned long start, end;
diff --git a/board/etin/kvme080/kvme080.c b/board/etin/kvme080/kvme080.c
index de62fa0..bfd6854 100644
--- a/board/etin/kvme080/kvme080.c
+++ b/board/etin/kvme080/kvme080.c
@@ -93,7 +93,7 @@
 	return (1 << (col + row + 3) ) * bank * m;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned int msr;
 	long int size = 0;
diff --git a/board/etx094/etx094.c b/board/etx094/etx094.c
index eb58b5d..7806519 100644
--- a/board/etx094/etx094.c
+++ b/board/etx094/etx094.c
@@ -125,7 +125,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/evb64260/sdram_init.c b/board/evb64260/sdram_init.c
index fae6d10..9ae4465 100644
--- a/board/evb64260/sdram_init.c
+++ b/board/evb64260/sdram_init.c
@@ -524,7 +524,7 @@
 
 /* U-Boot interface function to SDRAM init - this is where all the
  * controlling logic happens */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong checkbank[4] = {[0 ... 3] = 0 };
 	int bank_no;
diff --git a/board/exbitgen/exbitgen.c b/board/exbitgen/exbitgen.c
index 49031cf..0b08a39 100644
--- a/board/exbitgen/exbitgen.c
+++ b/board/exbitgen/exbitgen.c
@@ -71,7 +71,7 @@
 }
 
 /* ************************************************************************ */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 /* ------------------------------------------------------------------------ --
  * Purpose     : Determines size of mounted DRAM.
  * Remarks     : Size is determined by reading SDRAM configuration registers as
diff --git a/board/fads/fads.c b/board/fads/fads.c
index 8f5736b..9e601df 100644
--- a/board/fads/fads.c
+++ b/board/fads/fads.c
@@ -600,7 +600,7 @@
 
 /* ========================================================================= */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	uint sdramsz = 0;	/* size of sdram in Mbytes */
 	uint base = 0;		/* base of dram in bytes */
diff --git a/board/flagadm/flagadm.c b/board/flagadm/flagadm.c
index 9c55367..7caedc9 100644
--- a/board/flagadm/flagadm.c
+++ b/board/flagadm/flagadm.c
@@ -96,7 +96,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/freescale/m52277evb/m52277evb.c b/board/freescale/m52277evb/m52277evb.c
index 98424c8..e5f47d2 100644
--- a/board/freescale/m52277evb/m52277evb.c
+++ b/board/freescale/m52277evb/m52277evb.c
@@ -36,7 +36,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdramc_t *sdram = (volatile sdramc_t *)(MMAP_SDRAM);
 	u32 dramsize, i;
diff --git a/board/freescale/m5235evb/m5235evb.c b/board/freescale/m5235evb/m5235evb.c
index 585854c..c2c8fe8 100644
--- a/board/freescale/m5235evb/m5235evb.c
+++ b/board/freescale/m5235evb/m5235evb.c
@@ -37,7 +37,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdram_t *sdram = (volatile sdram_t *)(MMAP_SDRAM);
 	volatile gpio_t *gpio = (volatile gpio_t *)(MMAP_GPIO);
diff --git a/board/freescale/m5249evb/m5249evb.c b/board/freescale/m5249evb/m5249evb.c
index e8f621b..c9ed341 100644
--- a/board/freescale/m5249evb/m5249evb.c
+++ b/board/freescale/m5249evb/m5249evb.c
@@ -49,7 +49,7 @@
 };
 
 
-long int initdram (int board_type) {
+phys_size_t initdram (int board_type) {
 	unsigned long	junk = 0xa5a59696;
 
 	/*
diff --git a/board/freescale/m5253evbe/m5253evbe.c b/board/freescale/m5253evbe/m5253evbe.c
index 43aa84d..f80a47c 100644
--- a/board/freescale/m5253evbe/m5253evbe.c
+++ b/board/freescale/m5253evbe/m5253evbe.c
@@ -34,7 +34,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	int i;
 
diff --git a/board/freescale/m5275evb/m5275evb.c b/board/freescale/m5275evb/m5275evb.c
index a1b2902..be19e02 100644
--- a/board/freescale/m5275evb/m5275evb.c
+++ b/board/freescale/m5275evb/m5275evb.c
@@ -36,7 +36,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdramctrl_t *sdp = (sdramctrl_t *)(MMAP_SDRAM);
 	volatile gpio_t *gpio_reg = (gpio_t *)(MMAP_GPIO);
diff --git a/board/freescale/m5329evb/m5329evb.c b/board/freescale/m5329evb/m5329evb.c
index 242eb1a..f9fa9fb 100644
--- a/board/freescale/m5329evb/m5329evb.c
+++ b/board/freescale/m5329evb/m5329evb.c
@@ -37,7 +37,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdram_t *sdram = (volatile sdram_t *)(MMAP_SDRAM);
 	u32 dramsize, i;
diff --git a/board/freescale/m5373evb/m5373evb.c b/board/freescale/m5373evb/m5373evb.c
index 26b87b9..a269ee6 100644
--- a/board/freescale/m5373evb/m5373evb.c
+++ b/board/freescale/m5373evb/m5373evb.c
@@ -37,7 +37,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdram_t *sdram = (volatile sdram_t *)(MMAP_SDRAM);
 	u32 dramsize, i;
diff --git a/board/freescale/m54455evb/m54455evb.c b/board/freescale/m54455evb/m54455evb.c
index 6a02782..0480b54 100644
--- a/board/freescale/m54455evb/m54455evb.c
+++ b/board/freescale/m54455evb/m54455evb.c
@@ -37,7 +37,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile sdramc_t *sdram = (volatile sdramc_t *)(MMAP_SDRAM);
 	volatile gpio_t *gpio = (volatile gpio_t *)(MMAP_GPIO);
diff --git a/board/freescale/m547xevb/m547xevb.c b/board/freescale/m547xevb/m547xevb.c
index 539da78..6d7d270 100644
--- a/board/freescale/m547xevb/m547xevb.c
+++ b/board/freescale/m547xevb/m547xevb.c
@@ -38,7 +38,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile siu_t *siu = (siu_t *) (MMAP_SIU);
 	volatile sdram_t *sdram = (volatile sdram_t *)(MMAP_SDRAM);
diff --git a/board/freescale/m548xevb/m548xevb.c b/board/freescale/m548xevb/m548xevb.c
index 0372807..e6510c9 100644
--- a/board/freescale/m548xevb/m548xevb.c
+++ b/board/freescale/m548xevb/m548xevb.c
@@ -38,7 +38,7 @@
 	return 0;
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile siu_t *siu = (siu_t *) (MMAP_SIU);
 	volatile sdram_t *sdram = (volatile sdram_t *)(MMAP_SDRAM);
diff --git a/board/freescale/mpc7448hpc2/mpc7448hpc2.c b/board/freescale/mpc7448hpc2/mpc7448hpc2.c
index f6cd192..b3d83cc 100644
--- a/board/freescale/mpc7448hpc2/mpc7448hpc2.c
+++ b/board/freescale/mpc7448hpc2/mpc7448hpc2.c
@@ -81,7 +81,7 @@
 	return 0x20000000;	/* 256M bytes */
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return dram_size (board_type);
 }
diff --git a/board/freescale/mpc8260ads/mpc8260ads.c b/board/freescale/mpc8260ads/mpc8260ads.c
index 548d813..6f683f0 100644
--- a/board/freescale/mpc8260ads/mpc8260ads.c
+++ b/board/freescale/mpc8260ads/mpc8260ads.c
@@ -304,7 +304,7 @@
 
 #define ns2clk(ns) (ns / (1000000000 / CONFIG_8260_CLKIN) + 1)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #if   CONFIG_ADSTYPE == CFG_PQ2FADS
 	long int msize = 32;
diff --git a/board/freescale/mpc8266ads/mpc8266ads.c b/board/freescale/mpc8266ads/mpc8266ads.c
index 8f7273c..090a534 100644
--- a/board/freescale/mpc8266ads/mpc8266ads.c
+++ b/board/freescale/mpc8266ads/mpc8266ads.c
@@ -251,7 +251,7 @@
     return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Autoinit part stolen from board/sacsng/sacsng.c */
     volatile immap_t *immap         = (immap_t *)CFG_IMMR;
diff --git a/board/freescale/mpc8313erdb/sdram.c b/board/freescale/mpc8313erdb/sdram.c
index 16ec4bb..afd8b9d 100644
--- a/board/freescale/mpc8313erdb/sdram.c
+++ b/board/freescale/mpc8313erdb/sdram.c
@@ -104,7 +104,7 @@
 	return msize;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (volatile immap_t *)CFG_IMMR;
 	volatile lbus83xx_t *lbc = &im->lbus;
diff --git a/board/freescale/mpc8315erdb/sdram.c b/board/freescale/mpc8315erdb/sdram.c
index f97e3c7..07e6486 100644
--- a/board/freescale/mpc8315erdb/sdram.c
+++ b/board/freescale/mpc8315erdb/sdram.c
@@ -101,7 +101,7 @@
 	return msize;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (volatile immap_t *)CFG_IMMR;
 	u32 msize;
diff --git a/board/freescale/mpc8323erdb/mpc8323erdb.c b/board/freescale/mpc8323erdb/mpc8323erdb.c
index afc0eee..f5220ab 100644
--- a/board/freescale/mpc8323erdb/mpc8323erdb.c
+++ b/board/freescale/mpc8323erdb/mpc8323erdb.c
@@ -73,7 +73,7 @@
 
 int fixed_sdram(void);
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc832xemds/mpc832xemds.c b/board/freescale/mpc832xemds/mpc832xemds.c
index c10b30f..4ad6e9d 100644
--- a/board/freescale/mpc832xemds/mpc832xemds.c
+++ b/board/freescale/mpc832xemds/mpc832xemds.c
@@ -94,7 +94,7 @@
 
 int fixed_sdram(void);
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc8349emds/mpc8349emds.c b/board/freescale/mpc8349emds/mpc8349emds.c
index e18e68e..4d57faf 100644
--- a/board/freescale/mpc8349emds/mpc8349emds.c
+++ b/board/freescale/mpc8349emds/mpc8349emds.c
@@ -59,7 +59,7 @@
 
 #define ns2clk(ns) (ns / (1000000000 / CONFIG_8349_CLKIN) + 1)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *im = (immap_t *)CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc8349itx/mpc8349itx.c b/board/freescale/mpc8349itx/mpc8349itx.c
index 0317bfe..d3fc560 100644
--- a/board/freescale/mpc8349itx/mpc8349itx.c
+++ b/board/freescale/mpc8349itx/mpc8349itx.c
@@ -128,7 +128,7 @@
 };
 #endif				/* CONFIG_PCI */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc8360emds/mpc8360emds.c b/board/freescale/mpc8360emds/mpc8360emds.c
index 2119320..5c3b5db 100644
--- a/board/freescale/mpc8360emds/mpc8360emds.c
+++ b/board/freescale/mpc8360emds/mpc8360emds.c
@@ -122,7 +122,7 @@
 int fixed_sdram(void);
 void sdram_init(void);
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc8360erdk/mpc8360erdk.c b/board/freescale/mpc8360erdk/mpc8360erdk.c
index 3bcdda7..61d7000 100644
--- a/board/freescale/mpc8360erdk/mpc8360erdk.c
+++ b/board/freescale/mpc8360erdk/mpc8360erdk.c
@@ -266,7 +266,7 @@
 	return msize;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 #if defined(CONFIG_DDR_ECC) && !defined(CONFIG_ECC_INIT_VIA_DDRC)
 	extern void ddr_enable_ecc(unsigned int dram_size);
diff --git a/board/freescale/mpc837xemds/mpc837xemds.c b/board/freescale/mpc837xemds/mpc837xemds.c
index 40a505b..40f1e63 100644
--- a/board/freescale/mpc837xemds/mpc837xemds.c
+++ b/board/freescale/mpc837xemds/mpc837xemds.c
@@ -75,7 +75,7 @@
 #endif
 int fixed_sdram(void);
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc837xerdb/mpc837xerdb.c b/board/freescale/mpc837xerdb/mpc837xerdb.c
index f73fd5a..aaefc18 100644
--- a/board/freescale/mpc837xerdb/mpc837xerdb.c
+++ b/board/freescale/mpc837xerdb/mpc837xerdb.c
@@ -64,7 +64,7 @@
 #endif
 int fixed_sdram(void);
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/freescale/mpc8540ads/mpc8540ads.c b/board/freescale/mpc8540ads/mpc8540ads.c
index 051f985..4f068cc 100644
--- a/board/freescale/mpc8540ads/mpc8540ads.c
+++ b/board/freescale/mpc8540ads/mpc8540ads.c
@@ -61,7 +61,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8541cds/mpc8541cds.c b/board/freescale/mpc8541cds/mpc8541cds.c
index 420a89a..3669ba9 100644
--- a/board/freescale/mpc8541cds/mpc8541cds.c
+++ b/board/freescale/mpc8541cds/mpc8541cds.c
@@ -240,7 +240,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8544ds/mpc8544ds.c b/board/freescale/mpc8544ds/mpc8544ds.c
index 5041426..f615b23 100644
--- a/board/freescale/mpc8544ds/mpc8544ds.c
+++ b/board/freescale/mpc8544ds/mpc8544ds.c
@@ -59,7 +59,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8548cds/mpc8548cds.c b/board/freescale/mpc8548cds/mpc8548cds.c
index ad29734..0b037cc 100644
--- a/board/freescale/mpc8548cds/mpc8548cds.c
+++ b/board/freescale/mpc8548cds/mpc8548cds.c
@@ -88,7 +88,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8555cds/mpc8555cds.c b/board/freescale/mpc8555cds/mpc8555cds.c
index 74e20cb..9a65101 100644
--- a/board/freescale/mpc8555cds/mpc8555cds.c
+++ b/board/freescale/mpc8555cds/mpc8555cds.c
@@ -238,7 +238,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8560ads/mpc8560ads.c b/board/freescale/mpc8560ads/mpc8560ads.c
index 144b584..2c14a88 100644
--- a/board/freescale/mpc8560ads/mpc8560ads.c
+++ b/board/freescale/mpc8560ads/mpc8560ads.c
@@ -264,7 +264,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8568mds/mpc8568mds.c b/board/freescale/mpc8568mds/mpc8568mds.c
index f1928ab..2ccff7d 100644
--- a/board/freescale/mpc8568mds/mpc8568mds.c
+++ b/board/freescale/mpc8568mds/mpc8568mds.c
@@ -140,7 +140,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8610hpcd/mpc8610hpcd.c b/board/freescale/mpc8610hpcd/mpc8610hpcd.c
index ce563dc..c85f373 100644
--- a/board/freescale/mpc8610hpcd/mpc8610hpcd.c
+++ b/board/freescale/mpc8610hpcd/mpc8610hpcd.c
@@ -113,7 +113,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/freescale/mpc8641hpcn/mpc8641hpcn.c b/board/freescale/mpc8641hpcn/mpc8641hpcn.c
index 915fb58..cf540fc 100644
--- a/board/freescale/mpc8641hpcn/mpc8641hpcn.c
+++ b/board/freescale/mpc8641hpcn/mpc8641hpcn.c
@@ -53,7 +53,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/funkwerk/vovpn-gw/vovpn-gw.c b/board/funkwerk/vovpn-gw/vovpn-gw.c
index 9b5429a..1c3f627 100644
--- a/board/funkwerk/vovpn-gw/vovpn-gw.c
+++ b/board/funkwerk/vovpn-gw/vovpn-gw.c
@@ -318,7 +318,7 @@
 
 #define ns2clk(ns) (ns / (1000000000 / CONFIG_8260_CLKIN) + 1)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #ifndef CFG_RAMBOOT
 	volatile immap_t *immap;
diff --git a/board/g2000/g2000.c b/board/g2000/g2000.c
index 9fcab74..647f4b7 100644
--- a/board/g2000/g2000.c
+++ b/board/g2000/g2000.c
@@ -131,7 +131,7 @@
  }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long int ret;
 
diff --git a/board/gaisler/gr_cpci_ax2000/gr_cpci_ax2000.c b/board/gaisler/gr_cpci_ax2000/gr_cpci_ax2000.c
index d99b455..105a747 100644
--- a/board/gaisler/gr_cpci_ax2000/gr_cpci_ax2000.c
+++ b/board/gaisler/gr_cpci_ax2000/gr_cpci_ax2000.c
@@ -22,7 +22,7 @@
 #include <config.h>
 #include <asm/leon.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return 1;
 }
diff --git a/board/gaisler/gr_ep2s60/gr_ep2s60.c b/board/gaisler/gr_ep2s60/gr_ep2s60.c
index e8617f0..2904d32 100644
--- a/board/gaisler/gr_ep2s60/gr_ep2s60.c
+++ b/board/gaisler/gr_ep2s60/gr_ep2s60.c
@@ -22,7 +22,7 @@
 #include <config.h>
 #include <asm/leon.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return 1;
 }
diff --git a/board/gaisler/gr_xc3s_1500/gr_xc3s_1500.c b/board/gaisler/gr_xc3s_1500/gr_xc3s_1500.c
index 1ee7024..fc8cf84 100644
--- a/board/gaisler/gr_xc3s_1500/gr_xc3s_1500.c
+++ b/board/gaisler/gr_xc3s_1500/gr_xc3s_1500.c
@@ -22,7 +22,7 @@
 #include <config.h>
 #include <asm/leon.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return 1;
 }
diff --git a/board/gaisler/grsim/grsim.c b/board/gaisler/grsim/grsim.c
index 70a2f23..deccd3d 100644
--- a/board/gaisler/grsim/grsim.c
+++ b/board/gaisler/grsim/grsim.c
@@ -26,7 +26,7 @@
 #include <common.h>
 #include <asm/leon.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return 1;
 }
diff --git a/board/gaisler/grsim_leon2/grsim_leon2.c b/board/gaisler/grsim_leon2/grsim_leon2.c
index 55dfe82..61445fe 100644
--- a/board/gaisler/grsim_leon2/grsim_leon2.c
+++ b/board/gaisler/grsim_leon2/grsim_leon2.c
@@ -26,7 +26,7 @@
 #include <common.h>
 #include <asm/leon.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return 1;
 }
diff --git a/board/gen860t/gen860t.c b/board/gen860t/gen860t.c
index 73cc16d..e3d0e43 100644
--- a/board/gen860t/gen860t.c
+++ b/board/gen860t/gen860t.c
@@ -158,7 +158,7 @@
 /*
  * Initialize SDRAM
  */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immr = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immr->im_memctl;
diff --git a/board/genietv/genietv.c b/board/genietv/genietv.c
index c75507f..fc21169 100644
--- a/board/genietv/genietv.c
+++ b/board/genietv/genietv.c
@@ -118,7 +118,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &im->im_memctl;
diff --git a/board/gth/gth.c b/board/gth/gth.c
index b1fcbf5..788a6a0 100644
--- a/board/gth/gth.c
+++ b/board/gth/gth.c
@@ -265,7 +265,7 @@
 #endif
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	u32 *i;
 	u32 j;
diff --git a/board/gth2/gth2.c b/board/gth2/gth2.c
index 3e56678..cea65c6 100644
--- a/board/gth2/gth2.c
+++ b/board/gth2/gth2.c
@@ -83,7 +83,7 @@
 	}
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Sdram is setup by assembler code */
 	/* If memory could be changed, we should return the true value here */
diff --git a/board/gw8260/gw8260.c b/board/gw8260/gw8260.c
index 2719a95..42c9e0d 100644
--- a/board/gw8260/gw8260.c
+++ b/board/gw8260/gw8260.c
@@ -606,7 +606,7 @@
 /*								     */
 /*								     */
 /*********************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/hermes/hermes.c b/board/hermes/hermes.c
index 8fd081f..f9b5720 100644
--- a/board/hermes/hermes.c
+++ b/board/hermes/hermes.c
@@ -134,7 +134,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/hidden_dragon/hidden_dragon.c b/board/hidden_dragon/hidden_dragon.c
index daab833..5713a33 100644
--- a/board/hidden_dragon/hidden_dragon.c
+++ b/board/hidden_dragon/hidden_dragon.c
@@ -44,7 +44,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/hmi1001/hmi1001.c b/board/hmi1001/hmi1001.c
index 8bdfe78..8cfd75b 100644
--- a/board/hmi1001/hmi1001.c
+++ b/board/hmi1001/hmi1001.c
@@ -80,7 +80,7 @@
  *	      is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/hymod/hymod.c b/board/hymod/hymod.c
index 13e60e2..91aaab1 100644
--- a/board/hymod/hymod.c
+++ b/board/hymod/hymod.c
@@ -364,7 +364,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long
+phys_size_t
 initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
diff --git a/board/icecube/icecube.c b/board/icecube/icecube.c
index 07ba245..760db73 100644
--- a/board/icecube/icecube.c
+++ b/board/icecube/icecube.c
@@ -134,7 +134,7 @@
  */
 
 #if defined(CONFIG_MPC5200)
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
@@ -259,7 +259,7 @@
 
 #elif defined(CONFIG_MGT5100)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/icu862/icu862.c b/board/icu862/icu862.c
index 8da9d1c..18aa8bf 100644
--- a/board/icu862/icu862.c
+++ b/board/icu862/icu862.c
@@ -94,7 +94,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/idmr/idmr.c b/board/idmr/idmr.c
index 081c375..4f073fc 100644
--- a/board/idmr/idmr.c
+++ b/board/idmr/idmr.c
@@ -29,7 +29,7 @@
 	return 0;
 };
 
-long int initdram (int board_type) {
+phys_size_t initdram (int board_type) {
 	int i;
 
 	/*
diff --git a/board/ids8247/ids8247.c b/board/ids8247/ids8247.c
index 7176770..8ec4cd7 100644
--- a/board/ids8247/ids8247.c
+++ b/board/ids8247/ids8247.c
@@ -276,7 +276,7 @@
 	return (size);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/incaip/incaip.c b/board/incaip/incaip.c
index dc51373..ac7ad8f 100644
--- a/board/incaip/incaip.c
+++ b/board/incaip/incaip.c
@@ -53,7 +53,7 @@
 	return size;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	int   rows, cols, best_val = *INCA_IP_SDRAM_MC_CFGPB0;
 	ulong size, max_size       = 0;
diff --git a/board/inka4x0/inka4x0.c b/board/inka4x0/inka4x0.c
index 46074e4..a2e35ff 100644
--- a/board/inka4x0/inka4x0.c
+++ b/board/inka4x0/inka4x0.c
@@ -92,7 +92,7 @@
  *	      is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/ip860/ip860.c b/board/ip860/ip860.c
index 9dd809b..375cd4d 100644
--- a/board/ip860/ip860.c
+++ b/board/ip860/ip860.c
@@ -137,7 +137,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/iphase4539/iphase4539.c b/board/iphase4539/iphase4539.c
index 0ca9cf5..e5d0254 100644
--- a/board/iphase4539/iphase4539.c
+++ b/board/iphase4539/iphase4539.c
@@ -193,7 +193,7 @@
 	 }
 };
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/ispan/ispan.c b/board/ispan/ispan.c
index d39b8cd..12fb91f 100644
--- a/board/ispan/ispan.c
+++ b/board/ispan/ispan.c
@@ -356,7 +356,7 @@
 	return id;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long maxsize = hwc_main_sdram_size();
 
diff --git a/board/ivm/ivm.c b/board/ivm/ivm.c
index 7927ea9..4882f04 100644
--- a/board/ivm/ivm.c
+++ b/board/ivm/ivm.c
@@ -159,7 +159,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immr = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immr->im_memctl;
diff --git a/board/jse/sdram.c b/board/jse/sdram.c
index 9060d97..8ba6c45 100644
--- a/board/jse/sdram.c
+++ b/board/jse/sdram.c
@@ -30,7 +30,7 @@
  * in lib_ppc/board.c to initialize the memory and return what I
  * found.
  */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	/* Configure the SDRAMS */
 
diff --git a/board/jupiter/jupiter.c b/board/jupiter/jupiter.c
index efdc333..7913c75 100644
--- a/board/jupiter/jupiter.c
+++ b/board/jupiter/jupiter.c
@@ -92,7 +92,7 @@
  *            is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/kup/kup4k/kup4k.c b/board/kup/kup4k/kup4k.c
index 4e377a1..66d6180 100644
--- a/board/kup/kup4k/kup4k.c
+++ b/board/kup/kup4k/kup4k.c
@@ -137,7 +137,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/kup/kup4x/kup4x.c b/board/kup/kup4x/kup4x.c
index cd9ed13..f07ef18 100644
--- a/board/kup/kup4x/kup4x.c
+++ b/board/kup/kup4x/kup4x.c
@@ -134,7 +134,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/lantec/lantec.c b/board/lantec/lantec.c
index 417dbbb..46f4da9 100644
--- a/board/lantec/lantec.c
+++ b/board/lantec/lantec.c
@@ -109,7 +109,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/linkstation/linkstation.c b/board/linkstation/linkstation.c
index f6bc0a9..241cf03 100644
--- a/board/linkstation/linkstation.c
+++ b/board/linkstation/linkstation.c
@@ -50,7 +50,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE));
 }
diff --git a/board/lwmon/lwmon.c b/board/lwmon/lwmon.c
index c68978a..4a2d8e4 100644
--- a/board/lwmon/lwmon.c
+++ b/board/lwmon/lwmon.c
@@ -192,7 +192,7 @@
 }
 
 /***********************************************************************
-F* Function:     long int initdram (int board_type) P*A*Z*
+F* Function:     phys_size_t initdram (int board_type) P*A*Z*
  *
 P* Parameters:   int board_type
 P*                - Usually type of the board - ignored here.
@@ -209,7 +209,7 @@
 C* Coding:       wd@denx.de
 V* Verification: dzu@denx.de
  ***********************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immr = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immr->im_memctl;
diff --git a/board/lwmon5/sdram.c b/board/lwmon5/sdram.c
index 36b5100..0a13831 100644
--- a/board/lwmon5/sdram.c
+++ b/board/lwmon5/sdram.c
@@ -158,7 +158,7 @@
  * initdram -- 440EPx's DDR controller is a DENALI Core
  *
  ************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #if 0 /* test-only: will remove this define later, when ECC problems are solved! */
 	/* CL=3 */
diff --git a/board/m5271evb/m5271evb.c b/board/m5271evb/m5271evb.c
index 9caad63..e089d5f 100644
--- a/board/m5271evb/m5271evb.c
+++ b/board/m5271evb/m5271evb.c
@@ -29,7 +29,7 @@
 	return 0;
 };
 
-long int initdram (int board_type) {
+phys_size_t initdram (int board_type) {
 
 	int i;
 
diff --git a/board/m5272c3/m5272c3.c b/board/m5272c3/m5272c3.c
index 6dcda4f..d17cb2e 100644
--- a/board/m5272c3/m5272c3.c
+++ b/board/m5272c3/m5272c3.c
@@ -31,7 +31,7 @@
 	return 0;
 	};
 
-long int initdram (int board_type) {
+phys_size_t initdram (int board_type) {
 	volatile sdramctrl_t * sdp = (sdramctrl_t *)(MMAP_SDRAM);
 
 	sdp->sdram_sdtr = 0xf539;
diff --git a/board/m5282evb/m5282evb.c b/board/m5282evb/m5282evb.c
index 7d6d1d6..50e5e77 100644
--- a/board/m5282evb/m5282evb.c
+++ b/board/m5282evb/m5282evb.c
@@ -32,7 +32,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	u32 dramsize, i, dramclk;
 
diff --git a/board/mbx8xx/mbx8xx.c b/board/mbx8xx/mbx8xx.c
index 9a9bf80..414d879 100644
--- a/board/mbx8xx/mbx8xx.c
+++ b/board/mbx8xx/mbx8xx.c
@@ -304,7 +304,7 @@
 	return size;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/mcc200/mcc200.c b/board/mcc200/mcc200.c
index a4c4644..77ee3d7 100644
--- a/board/mcc200/mcc200.c
+++ b/board/mcc200/mcc200.c
@@ -96,7 +96,7 @@
  *	      is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/mgcoge/mgcoge.c b/board/mgcoge/mgcoge.c
index e7c3fa0..89ced1e 100644
--- a/board/mgcoge/mgcoge.c
+++ b/board/mgcoge/mgcoge.c
@@ -249,7 +249,7 @@
 	return (size);
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/mgsuvd/mgsuvd.c b/board/mgsuvd/mgsuvd.c
index e0123bf..d81cafb 100644
--- a/board/mgsuvd/mgsuvd.c
+++ b/board/mgsuvd/mgsuvd.c
@@ -66,7 +66,7 @@
 	return (0);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/ml2/ml2.c b/board/ml2/ml2.c
index f32e512..981e1de 100644
--- a/board/ml2/ml2.c
+++ b/board/ml2/ml2.c
@@ -53,7 +53,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return 32 * 1024 * 1024;
 }
diff --git a/board/motionpro/motionpro.c b/board/motionpro/motionpro.c
index 68257b8..3b34062 100644
--- a/board/motionpro/motionpro.c
+++ b/board/motionpro/motionpro.c
@@ -132,7 +132,7 @@
 /*
  * Initalize SDRAM - configure SDRAM controller, detect memory size.
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/mousse/mousse.c b/board/mousse/mousse.c
index 7208a17..f8f1529 100644
--- a/board/mousse/mousse.c
+++ b/board/mousse/mousse.c
@@ -55,7 +55,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return CFG_RAM_SIZE;
 }
diff --git a/board/mpc8540eval/mpc8540eval.c b/board/mpc8540eval/mpc8540eval.c
index 8328b3a..1ac333c 100644
--- a/board/mpc8540eval/mpc8540eval.c
+++ b/board/mpc8540eval/mpc8540eval.c
@@ -61,7 +61,7 @@
 	return (0);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/mpl/mip405/mip405.c b/board/mpl/mip405/mip405.c
index 9e8f9bb..cf0afd1 100644
--- a/board/mpl/mip405/mip405.c
+++ b/board/mpl/mip405/mip405.c
@@ -620,7 +620,7 @@
 /* ------------------------------------------------------------------------- */
 static int test_dram (unsigned long ramsize);
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 
 	unsigned long bank_reg[4], tmp, bank_size;
diff --git a/board/mpl/pati/pati.c b/board/mpl/pati/pati.c
index 7893d61..475741d 100644
--- a/board/mpl/pati/pati.c
+++ b/board/mpl/pati/pati.c
@@ -149,7 +149,7 @@
 /*
  * Get RAM size.
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned char board_rev;
 	unsigned long reg;
diff --git a/board/mpl/pip405/pip405.c b/board/mpl/pip405/pip405.c
index 3828608..6cba892 100644
--- a/board/mpl/pip405/pip405.c
+++ b/board/mpl/pip405/pip405.c
@@ -608,7 +608,7 @@
 /* ------------------------------------------------------------------------- */
 static int test_dram (unsigned long ramsize);
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned long bank_reg[4], tmp, bank_size;
 	int i, ds;
diff --git a/board/munices/munices.c b/board/munices/munices.c
index 395909d..162f89c 100644
--- a/board/munices/munices.c
+++ b/board/munices/munices.c
@@ -74,7 +74,7 @@
  *            is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/musenki/musenki.c b/board/musenki/musenki.c
index 4408b07..b2b70e7 100644
--- a/board/musenki/musenki.c
+++ b/board/musenki/musenki.c
@@ -45,7 +45,7 @@
 }
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/mvblm7/mvblm7.c b/board/mvblm7/mvblm7.c
index c02c59c..41cb39d 100644
--- a/board/mvblm7/mvblm7.c
+++ b/board/mvblm7/mvblm7.c
@@ -73,7 +73,7 @@
 	return CFG_DDR_SIZE;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *im = (immap_t *) CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/mvblue/mvblue.c b/board/mvblue/mvblue.c
index ee8f3e3..a979102 100644
--- a/board/mvblue/mvblue.c
+++ b/board/mvblue/mvblue.c
@@ -76,7 +76,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/mvs1/mvs1.c b/board/mvs1/mvs1.c
index f8a8cb7..58b84f5 100644
--- a/board/mvs1/mvs1.c
+++ b/board/mvs1/mvs1.c
@@ -136,7 +136,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/nc650/nc650.c b/board/nc650/nc650.c
index 707e4b9..657abc4 100644
--- a/board/nc650/nc650.c
+++ b/board/nc650/nc650.c
@@ -128,7 +128,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/netphone/netphone.c b/board/netphone/netphone.c
index 1072b3f..38eb7c8 100644
--- a/board/netphone/netphone.c
+++ b/board/netphone/netphone.c
@@ -404,7 +404,7 @@
 	}
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/netstal/hcu4/hcu4.c b/board/netstal/hcu4/hcu4.c
index 42c7c16..c144741 100644
--- a/board/netstal/hcu4/hcu4.c
+++ b/board/netstal/hcu4/hcu4.c
@@ -154,7 +154,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long dram_size = 0;
 	u16 boardVersReg = in_be16((u16 *)HCU_MACH_VERSIONS_REGISTER);
diff --git a/board/netstal/hcu5/sdram.c b/board/netstal/hcu5/sdram.c
index d8817b8..80e84ae 100644
--- a/board/netstal/hcu5/sdram.c
+++ b/board/netstal/hcu5/sdram.c
@@ -199,7 +199,7 @@
  * initdram -- 440EPx's DDR controller is a DENALI Core
  *
  ************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned int dram_size = 0;
 
diff --git a/board/netstal/mcu25/mcu25.c b/board/netstal/mcu25/mcu25.c
index 07891f6..ed171bf 100644
--- a/board/netstal/mcu25/mcu25.c
+++ b/board/netstal/mcu25/mcu25.c
@@ -161,7 +161,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned int dram_size = 64*1024*1024;
 	init_ppc405_sdram(dram_size);
diff --git a/board/netta/netta.c b/board/netta/netta.c
index 5a75e53..1183f33 100644
--- a/board/netta/netta.c
+++ b/board/netta/netta.c
@@ -337,7 +337,7 @@
 	}
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/netta2/netta2.c b/board/netta2/netta2.c
index b216c5a..a97c14c 100644
--- a/board/netta2/netta2.c
+++ b/board/netta2/netta2.c
@@ -402,7 +402,7 @@
 	}
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/netvia/netvia.c b/board/netvia/netvia.c
index 856b776..4140bac 100644
--- a/board/netvia/netvia.c
+++ b/board/netvia/netvia.c
@@ -245,7 +245,7 @@
 #define MCR_MCLF(x)		((unsigned long)((x) & 15) << (31 - 23))
 #define MCR_MCLF_MASK		MCR_MCLF(15)
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/nx823/nx823.c b/board/nx823/nx823.c
index 4a426ec..18840ff 100644
--- a/board/nx823/nx823.c
+++ b/board/nx823/nx823.c
@@ -157,7 +157,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/o2dnt/o2dnt.c b/board/o2dnt/o2dnt.c
index 81a2700..a4eed3a 100644
--- a/board/o2dnt/o2dnt.c
+++ b/board/o2dnt/o2dnt.c
@@ -67,7 +67,7 @@
  *            use of CFG_SDRAM_BASE. The code does not work if CFG_SDRAM_BASE
  *            is something else than 0x00000000.
  */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/oxc/oxc.c b/board/oxc/oxc.c
index 6cc3cc5..b61d399 100644
--- a/board/oxc/oxc.c
+++ b/board/oxc/oxc.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #ifndef CFG_RAMBOOT
 	long size;
diff --git a/board/pb1x00/pb1x00.c b/board/pb1x00/pb1x00.c
index 82b7235..82e2613 100644
--- a/board/pb1x00/pb1x00.c
+++ b/board/pb1x00/pb1x00.c
@@ -27,7 +27,7 @@
 #include <asm/mipsregs.h>
 #include <asm/io.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Sdram is setup by assembler code */
 	/* If memory could be changed, we should return the true value here */
diff --git a/board/pcippc2/pcippc2.c b/board/pcippc2/pcippc2.c
index 1148c6a..c1917c1 100644
--- a/board/pcippc2/pcippc2.c
+++ b/board/pcippc2/pcippc2.c
@@ -63,7 +63,7 @@
 	return in32 (REG (CPC0, RGBAN1));
 }
 
-long initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return cpc710_ram_init ();
 }
diff --git a/board/pcs440ep/pcs440ep.c b/board/pcs440ep/pcs440ep.c
index 2b8992e..f66f3f2 100644
--- a/board/pcs440ep/pcs440ep.c
+++ b/board/pcs440ep/pcs440ep.c
@@ -537,7 +537,7 @@
 	}
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/pm520/pm520.c b/board/pm520/pm520.c
index 14c3f1d..83d9bcd 100644
--- a/board/pm520/pm520.c
+++ b/board/pm520/pm520.c
@@ -84,7 +84,7 @@
  */
 
 #if defined(CONFIG_MPC5200)
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
@@ -187,7 +187,7 @@
 
 #elif defined(CONFIG_MGT5100)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/pm826/pm826.c b/board/pm826/pm826.c
index 1420e64..7ee3ab6 100644
--- a/board/pm826/pm826.c
+++ b/board/pm826/pm826.c
@@ -279,7 +279,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/pm828/pm828.c b/board/pm828/pm828.c
index 98cd80b..6038e97 100644
--- a/board/pm828/pm828.c
+++ b/board/pm828/pm828.c
@@ -312,7 +312,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/pm854/pm854.c b/board/pm854/pm854.c
index 5d32525..555f6c0 100644
--- a/board/pm854/pm854.c
+++ b/board/pm854/pm854.c
@@ -71,7 +71,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/pm856/pm856.c b/board/pm856/pm856.c
index 6386abc..bf325f8 100644
--- a/board/pm856/pm856.c
+++ b/board/pm856/pm856.c
@@ -225,7 +225,7 @@
 }
 
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/pn62/pn62.c b/board/pn62/pn62.c
index b2f348d..d905b29 100644
--- a/board/pn62/pn62.c
+++ b/board/pn62/pn62.c
@@ -75,7 +75,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/ppmc7xx/ppmc7xx.c b/board/ppmc7xx/ppmc7xx.c
index 402ac5e..061e01e 100644
--- a/board/ppmc7xx/ppmc7xx.c
+++ b/board/ppmc7xx/ppmc7xx.c
@@ -29,7 +29,7 @@
  * the SDRAM was already initialised by board_asm_init (see init.S) so we just
  * return the size of RAM.
  */
-long initdram( int board_type )
+phys_size_t initdram( int board_type )
 {
     return CFG_SDRAM_SIZE;
 }
diff --git a/board/ppmc8260/ppmc8260.c b/board/ppmc8260/ppmc8260.c
index 2b20c26..f3c8509 100644
--- a/board/ppmc8260/ppmc8260.c
+++ b/board/ppmc8260/ppmc8260.c
@@ -199,7 +199,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/prodrive/p3mx/sdram_init.c b/board/prodrive/p3mx/sdram_init.c
index 0464860..d881d38 100644
--- a/board/prodrive/p3mx/sdram_init.c
+++ b/board/prodrive/p3mx/sdram_init.c
@@ -160,7 +160,7 @@
 #define SDRAM_NOP			0x5
 #define SDRAM_SELF_REFRESH		0x7
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	int tmp;
 	int start;
diff --git a/board/psyent/pci5441/pci5441.c b/board/psyent/pci5441/pci5441.c
index ea80dd1..0afef6f 100644
--- a/board/psyent/pci5441/pci5441.c
+++ b/board/psyent/pci5441/pci5441.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/psyent/pk1c20/pk1c20.c b/board/psyent/pk1c20/pk1c20.c
index 1924ae3..95b48bc 100644
--- a/board/psyent/pk1c20/pk1c20.c
+++ b/board/psyent/pk1c20/pk1c20.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/purple/purple.c b/board/purple/purple.c
index 72d5734..9775591 100644
--- a/board/purple/purple.c
+++ b/board/purple/purple.c
@@ -124,7 +124,7 @@
 	}
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* The only supported number of SDRAM banks is 4.
 	 */
diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
index 6e6eab2..7a69a00 100644
--- a/board/qemu-mips/qemu-mips.c
+++ b/board/qemu-mips/qemu-mips.c
@@ -26,7 +26,7 @@
 #include <asm/mipsregs.h>
 #include <asm/io.h>
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/* Sdram is setup by assembler code */
 	/* If memory could be changed, we should return the true value here */
diff --git a/board/quad100hd/quad100hd.c b/board/quad100hd/quad100hd.c
index 638bd6c..8118678 100644
--- a/board/quad100hd/quad100hd.c
+++ b/board/quad100hd/quad100hd.c
@@ -87,7 +87,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return CFG_SDRAM_SIZE;
 }
diff --git a/board/quantum/quantum.c b/board/quantum/quantum.c
index afa6e11..345f127 100644
--- a/board/quantum/quantum.c
+++ b/board/quantum/quantum.c
@@ -102,7 +102,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/r360mpi/r360mpi.c b/board/r360mpi/r360mpi.c
index ffb4c0e..c51e412 100644
--- a/board/r360mpi/r360mpi.c
+++ b/board/r360mpi/r360mpi.c
@@ -103,7 +103,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/rattler/rattler.c b/board/rattler/rattler.c
index be7977d..ad75c21 100644
--- a/board/rattler/rattler.c
+++ b/board/rattler/rattler.c
@@ -185,7 +185,7 @@
     }
 };
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long int msize = CFG_SDRAM_SIZE;
 
diff --git a/board/rbc823/rbc823.c b/board/rbc823/rbc823.c
index 9e60c2b..5b62af6 100644
--- a/board/rbc823/rbc823.c
+++ b/board/rbc823/rbc823.c
@@ -142,7 +142,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/rmu/rmu.c b/board/rmu/rmu.c
index 8cb03c7..e22dc52 100644
--- a/board/rmu/rmu.c
+++ b/board/rmu/rmu.c
@@ -92,7 +92,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/rpxsuper/rpxsuper.c b/board/rpxsuper/rpxsuper.c
index b4331f1..f633c5c 100644
--- a/board/rpxsuper/rpxsuper.c
+++ b/board/rpxsuper/rpxsuper.c
@@ -225,7 +225,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
     volatile immap_t *immap  = (immap_t *)CFG_IMMR;
     volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/rsdproto/rsdproto.c b/board/rsdproto/rsdproto.c
index 312d4b8..eeec3b4 100644
--- a/board/rsdproto/rsdproto.c
+++ b/board/rsdproto/rsdproto.c
@@ -282,7 +282,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/sacsng/sacsng.c b/board/sacsng/sacsng.c
index e85a0fc..ecbe021 100644
--- a/board/sacsng/sacsng.c
+++ b/board/sacsng/sacsng.c
@@ -159,7 +159,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
     volatile immap_t *immap  = (immap_t *)CFG_IMMR;
     volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/sandburst/common/sb_common.c b/board/sandburst/common/sb_common.c
index 8a831fa..51b1c75 100644
--- a/board/sandburst/common/sb_common.c
+++ b/board/sandburst/common/sb_common.c
@@ -200,7 +200,7 @@
  *  Initialize sdram
  *
  ************************************************************************/
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/sandpoint/sandpoint.c b/board/sandpoint/sandpoint.c
index aeb10a7..7429647 100644
--- a/board/sandpoint/sandpoint.c
+++ b/board/sandpoint/sandpoint.c
@@ -50,7 +50,7 @@
 }
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/sbc405/sbc405.c b/board/sbc405/sbc405.c
index 0ae6d0b..7818cd7 100644
--- a/board/sbc405/sbc405.c
+++ b/board/sbc405/sbc405.c
@@ -96,7 +96,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return  spd_sdram ();
 }
diff --git a/board/sbc8240/sbc8240.c b/board/sbc8240/sbc8240.c
index 8a52f67..175720d 100644
--- a/board/sbc8240/sbc8240.c
+++ b/board/sbc8240/sbc8240.c
@@ -45,7 +45,7 @@
 	return 0;
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/sbc8260/sbc8260.c b/board/sbc8260/sbc8260.c
index 48aefa0..5781f62 100644
--- a/board/sbc8260/sbc8260.c
+++ b/board/sbc8260/sbc8260.c
@@ -208,7 +208,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/sbc8349/sbc8349.c b/board/sbc8349/sbc8349.c
index e89b6e8..4a44fda 100644
--- a/board/sbc8349/sbc8349.c
+++ b/board/sbc8349/sbc8349.c
@@ -52,7 +52,7 @@
 
 #define ns2clk(ns) (ns / (1000000000 / CONFIG_8349_CLKIN) + 1)
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *im = (immap_t *)CFG_IMMR;
 	u32 msize = 0;
diff --git a/board/sbc8548/sbc8548.c b/board/sbc8548/sbc8548.c
index 9c8c673..91b40e5 100644
--- a/board/sbc8548/sbc8548.c
+++ b/board/sbc8548/sbc8548.c
@@ -81,7 +81,7 @@
 	return 0;
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	long dram_size = 0;
diff --git a/board/sbc8560/sbc8560.c b/board/sbc8560/sbc8560.c
index 8df4f3a..2946ca1 100644
--- a/board/sbc8560/sbc8560.c
+++ b/board/sbc8560/sbc8560.c
@@ -257,7 +257,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/sbc8641d/sbc8641d.c b/board/sbc8641d/sbc8641d.c
index 519f332..c724eff 100644
--- a/board/sbc8641d/sbc8641d.c
+++ b/board/sbc8641d/sbc8641d.c
@@ -57,7 +57,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/sc3/sc3.c b/board/sc3/sc3.c
index fbdc1d7..3d1a654 100644
--- a/board/sc3/sc3.c
+++ b/board/sc3/sc3.c
@@ -579,7 +579,7 @@
 static unsigned int mbcf[] = {mem_mb0cf, mem_mb1cf, mem_mb2cf, mem_mb3cf};
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	unsigned int mems=0;
 	unsigned long ul1;
diff --git a/board/siemens/CCM/ccm.c b/board/siemens/CCM/ccm.c
index 5a32e45..d653763 100644
--- a/board/siemens/CCM/ccm.c
+++ b/board/siemens/CCM/ccm.c
@@ -155,7 +155,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
     volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
     volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/siemens/IAD210/IAD210.c b/board/siemens/IAD210/IAD210.c
index e498937..9c0ff02 100644
--- a/board/siemens/IAD210/IAD210.c
+++ b/board/siemens/IAD210/IAD210.c
@@ -100,7 +100,7 @@
 /* ------------------------------------------------------------------------- */
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/siemens/SCM/scm.c b/board/siemens/SCM/scm.c
index 8783aaf..6a9dd25 100644
--- a/board/siemens/SCM/scm.c
+++ b/board/siemens/SCM/scm.c
@@ -306,7 +306,7 @@
 	return gd->reset_status & RSR_CSRS ? 0 : 1;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/siemens/pcu_e/pcu_e.c b/board/siemens/pcu_e/pcu_e.c
index 2309069..5647f7a 100644
--- a/board/siemens/pcu_e/pcu_e.c
+++ b/board/siemens/pcu_e/pcu_e.c
@@ -156,7 +156,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immr = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immr->im_memctl;
diff --git a/board/sixnet/sixnet.c b/board/sixnet/sixnet.c
index 798e185..dcd3472 100644
--- a/board/sixnet/sixnet.c
+++ b/board/sixnet/sixnet.c
@@ -496,7 +496,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t     *immap = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/sl8245/sl8245.c b/board/sl8245/sl8245.c
index 593eb4e..8647887 100644
--- a/board/sl8245/sl8245.c
+++ b/board/sl8245/sl8245.c
@@ -34,7 +34,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 #ifndef CFG_RAMBOOT
 	long size;
diff --git a/board/snmc/qs850/qs850.c b/board/snmc/qs850/qs850.c
index 637f125..ba5a8fb 100644
--- a/board/snmc/qs850/qs850.c
+++ b/board/snmc/qs850/qs850.c
@@ -143,7 +143,7 @@
 #define REFRESH_INIT_LOOPS (0)
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/snmc/qs860t/qs860t.c b/board/snmc/qs860t/qs860t.c
index a11d863..17c9356 100644
--- a/board/snmc/qs860t/qs860t.c
+++ b/board/snmc/qs860t/qs860t.c
@@ -115,7 +115,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/socrates/sdram.c b/board/socrates/sdram.c
index 329eacc..768fe05 100644
--- a/board/socrates/sdram.c
+++ b/board/socrates/sdram.c
@@ -76,7 +76,7 @@
 }
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 #if defined(CONFIG_SPD_EEPROM)
diff --git a/board/sorcery/sorcery.c b/board/sorcery/sorcery.c
index 165e9e2..2b789d4 100644
--- a/board/sorcery/sorcery.c
+++ b/board/sorcery/sorcery.c
@@ -27,7 +27,7 @@
 #include <asm/mmu.h>
 #include <pci.h>
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong size;
 
diff --git a/board/spc1920/spc1920.c b/board/spc1920/spc1920.c
index 1f5dcb5..a32aad0 100644
--- a/board/spc1920/spc1920.c
+++ b/board/spc1920/spc1920.c
@@ -82,7 +82,7 @@
 	_NOT_USED_, _NOT_USED_, _NOT_USED_,
 };
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immr = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immr->im_memctl;
diff --git a/board/spd8xx/spd8xx.c b/board/spd8xx/spd8xx.c
index c79b9b0..6387f8a 100644
--- a/board/spd8xx/spd8xx.c
+++ b/board/spd8xx/spd8xx.c
@@ -143,7 +143,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/ssv/adnpesc1/adnpesc1.c b/board/ssv/adnpesc1/adnpesc1.c
index 3ee8ba5..71de208 100644
--- a/board/ssv/adnpesc1/adnpesc1.c
+++ b/board/ssv/adnpesc1/adnpesc1.c
@@ -57,7 +57,7 @@
 	return 0;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return (0);
 }
diff --git a/board/stxgp3/stxgp3.c b/board/stxgp3/stxgp3.c
index f04ffa8..218e805 100644
--- a/board/stxgp3/stxgp3.c
+++ b/board/stxgp3/stxgp3.c
@@ -275,7 +275,7 @@
 	next_led_update += (get_tbclk() / 4);
 }
 
-long int
+phys_size_t
 initdram (int board_type)
 {
 	long dram_size = 0;
diff --git a/board/stxssa/stxssa.c b/board/stxssa/stxssa.c
index 08177e1..2c4b546 100644
--- a/board/stxssa/stxssa.c
+++ b/board/stxssa/stxssa.c
@@ -291,7 +291,7 @@
 	next_led_update += (get_tbclk() / 4);
 }
 
-long int
+phys_size_t
 initdram (int board_type)
 {
 	long dram_size = 0;
diff --git a/board/stxxtc/stxxtc.c b/board/stxxtc/stxxtc.c
index 87a2022..a750374 100644
--- a/board/stxxtc/stxxtc.c
+++ b/board/stxxtc/stxxtc.c
@@ -399,7 +399,7 @@
 
 #define DO_LOOP do { for (;;) asm volatile ("nop" : : : "memory"); } while(0)
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/svm_sc8xx/svm_sc8xx.c b/board/svm_sc8xx/svm_sc8xx.c
index b900e6b..06fb18b 100644
--- a/board/svm_sc8xx/svm_sc8xx.c
+++ b/board/svm_sc8xx/svm_sc8xx.c
@@ -100,7 +100,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/tb0229/tb0229.c b/board/tb0229/tb0229.c
index d08b422..921bd3a 100644
--- a/board/tb0229/tb0229.c
+++ b/board/tb0229/tb0229.c
@@ -32,7 +32,7 @@
 }
 #endif
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	return get_ram_size (CFG_SDRAM_BASE, 0x8000000);
 }
diff --git a/board/total5200/total5200.c b/board/total5200/total5200.c
index c8d4c67..868ebd5 100644
--- a/board/total5200/total5200.c
+++ b/board/total5200/total5200.c
@@ -36,7 +36,7 @@
 #include "mt48lc16m16a2-75.h"
 #endif
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	sdram_conf_t sdram_conf;
 
diff --git a/board/tqc/tqm5200/tqm5200.c b/board/tqc/tqm5200/tqm5200.c
index f9891db..8b8e461 100644
--- a/board/tqc/tqm5200/tqm5200.c
+++ b/board/tqc/tqm5200/tqm5200.c
@@ -104,7 +104,7 @@
  *	      is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/tqc/tqm8260/tqm8260.c b/board/tqc/tqm8260/tqm8260.c
index 736c410..f201045 100644
--- a/board/tqc/tqm8260/tqm8260.c
+++ b/board/tqc/tqm8260/tqm8260.c
@@ -283,7 +283,7 @@
 	return (size);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/tqc/tqm8272/tqm8272.c b/board/tqc/tqm8272/tqm8272.c
index ec1a37c..29099f5 100644
--- a/board/tqc/tqm8272/tqm8272.c
+++ b/board/tqc/tqm8272/tqm8272.c
@@ -555,7 +555,7 @@
 	return (size);
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8260_t *memctl = &immap->im_memctl;
diff --git a/board/tqc/tqm834x/tqm834x.c b/board/tqc/tqm834x/tqm834x.c
index aea985c..278780d 100644
--- a/board/tqc/tqm834x/tqm834x.c
+++ b/board/tqc/tqm834x/tqm834x.c
@@ -85,7 +85,7 @@
 /**************************************************************************
  * DRAM initalization and size detection
  */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long bank_size;
 	long size;
diff --git a/board/tqc/tqm85xx/sdram.c b/board/tqc/tqm85xx/sdram.c
index 442ff66..33bc407 100644
--- a/board/tqc/tqm85xx/sdram.c
+++ b/board/tqc/tqm85xx/sdram.c
@@ -286,7 +286,7 @@
 	}
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 	int casl;
diff --git a/board/tqc/tqm8xx/tqm8xx.c b/board/tqc/tqm8xx/tqm8xx.c
index 18bf2a8..96b6103 100644
--- a/board/tqc/tqm8xx/tqm8xx.c
+++ b/board/tqc/tqm8xx/tqm8xx.c
@@ -139,7 +139,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/uc100/uc100.c b/board/uc100/uc100.c
index a5dd95d..896f969 100644
--- a/board/uc100/uc100.c
+++ b/board/uc100/uc100.c
@@ -169,7 +169,7 @@
 /*
  * Initialize SDRAM
  */
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	volatile immap_t *immap = (immap_t *) CFG_IMMR;
 	volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/uc101/uc101.c b/board/uc101/uc101.c
index f726513..69ba507 100644
--- a/board/uc101/uc101.c
+++ b/board/uc101/uc101.c
@@ -146,7 +146,7 @@
  *	      is something else than 0x00000000.
  */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	ulong dramsize = 0;
 #ifndef CFG_RAMBOOT
diff --git a/board/utx8245/utx8245.c b/board/utx8245/utx8245.c
index 834fd84..e2a961a 100644
--- a/board/utx8245/utx8245.c
+++ b/board/utx8245/utx8245.c
@@ -46,7 +46,7 @@
 }
 
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	long size;
 	long new_bank0_end;
diff --git a/board/v37/v37.c b/board/v37/v37.c
index 2e47573..2067fed 100644
--- a/board/v37/v37.c
+++ b/board/v37/v37.c
@@ -90,7 +90,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
     volatile immap_t     *immap  = (immap_t *)CFG_IMMR;
     volatile memctl8xx_t *memctl = &immap->im_memctl;
diff --git a/board/v38b/v38b.c b/board/v38b/v38b.c
index ec032ee..8815a0c 100644
--- a/board/v38b/v38b.c
+++ b/board/v38b/v38b.c
@@ -71,7 +71,7 @@
 #endif /* !CFG_RAMBOOT */
 
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong dramsize = 0;
 	ulong dramsize2 = 0;
diff --git a/board/w7o/w7o.c b/board/w7o/w7o.c
index 7a3d63a..0e3b84c 100644
--- a/board/w7o/w7o.c
+++ b/board/w7o/w7o.c
@@ -152,7 +152,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	/*
 	 * ToDo: Move the asm init routine sdram_init() to this C file,
diff --git a/board/westel/amx860/amx860.c b/board/westel/amx860/amx860.c
index 8826667..4742aaf 100644
--- a/board/westel/amx860/amx860.c
+++ b/board/westel/amx860/amx860.c
@@ -61,7 +61,7 @@
 
 /* ------------------------------------------------------------------------- */
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 
 	volatile immap_t     *immap = (immap_t *)CFG_IMMR;
diff --git a/board/xilinx/ml300/ml300.c b/board/xilinx/ml300/ml300.c
index 58bfac0..5d493ee 100644
--- a/board/xilinx/ml300/ml300.c
+++ b/board/xilinx/ml300/ml300.c
@@ -79,7 +79,7 @@
 	return (0);
 }
 
-long int
+phys_size_t
 initdram(int board_type)
 {
 	return 128 * 1024 * 1024;
diff --git a/board/xpedite1k/xpedite1k.c b/board/xpedite1k/xpedite1k.c
index 8411cf0..bc7e3bd 100644
--- a/board/xpedite1k/xpedite1k.c
+++ b/board/xpedite1k/xpedite1k.c
@@ -104,7 +104,7 @@
 }
 
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	long dram_size = 0;
 
diff --git a/board/zeus/zeus.c b/board/zeus/zeus.c
index 1239ea0..0113d48 100644
--- a/board/zeus/zeus.c
+++ b/board/zeus/zeus.c
@@ -208,7 +208,7 @@
 	return size;
 }
 
-long int initdram (int board_type)
+phys_size_t initdram (int board_type)
 {
 	return detect_sdram_size();
 }
diff --git a/board/zpc1900/zpc1900.c b/board/zpc1900/zpc1900.c
index 7db535e..103ef71 100644
--- a/board/zpc1900/zpc1900.c
+++ b/board/zpc1900/zpc1900.c
@@ -220,7 +220,7 @@
 }
 #endif /* CFG_NVRAM_ACCESS_ROUTINE */
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	vu_char *bcsr = (vu_char *)CFG_BCSR;
 	volatile immap_t *immap = (immap_t *)CFG_IMMR;
diff --git a/cpu/ppc4xx/44x_spd_ddr2.c b/cpu/ppc4xx/44x_spd_ddr2.c
index 5214918..c28fc46 100644
--- a/cpu/ppc4xx/44x_spd_ddr2.c
+++ b/cpu/ppc4xx/44x_spd_ddr2.c
@@ -389,7 +389,7 @@
  *		 banks appropriately. If Auto Memory Configuration is
  *		 not used, it is assumed that no DIMM is plugged
  *-----------------------------------------------------------------------------*/
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned char iic0_dimm_addr[] = SPD_EEPROM_ADDRESS;
 	unsigned char spd0[MAX_SPD_BYTES];
@@ -3081,7 +3081,7 @@
  * 		banks. The configuration is performed using static, compile-
  *		time parameters.
  *---------------------------------------------------------------------------*/
-long initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/*
 	 * Only run this SDRAM init code once. For NAND booting
diff --git a/cpu/ppc4xx/denali_spd_ddr2.c b/cpu/ppc4xx/denali_spd_ddr2.c
index ad805b9..3bd6375 100644
--- a/cpu/ppc4xx/denali_spd_ddr2.c
+++ b/cpu/ppc4xx/denali_spd_ddr2.c
@@ -1022,7 +1022,7 @@
  *		 banks appropriately. If Auto Memory Configuration is
  *		 not used, it is assumed that no DIMM is plugged
  *-----------------------------------------------------------------------------*/
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	unsigned char const iic0_dimm_addr[] = SPD_EEPROM_ADDRESS;
 	unsigned long dimm_ranks[MAXDIMMS];
diff --git a/cpu/ppc4xx/sdram.c b/cpu/ppc4xx/sdram.c
index c7771ad..7d60ad6 100644
--- a/cpu/ppc4xx/sdram.c
+++ b/cpu/ppc4xx/sdram.c
@@ -164,7 +164,7 @@
 /*
  * Autodetect onboard SDRAM on 405 platforms
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	ulong speed;
 	ulong sdtr1;
@@ -346,7 +346,7 @@
  *	 so this should be extended for other future boards
  *	 using this routine!
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	int i;
 	int tr1_bank1;
diff --git a/include/common.h b/include/common.h
index 8fa339d..fd5adb3 100644
--- a/include/common.h
+++ b/include/common.h
@@ -202,7 +202,7 @@
 void	hang		(void) __attribute__ ((noreturn));
 
 /* */
-long int initdram (int);
+phys_size_t initdram (int);
 int	display_options (void);
 void	print_size (phys_size_t, const char *);
 int	print_buffer (ulong addr, void* data, uint width, uint count, uint linelen);
diff --git a/nand_spl/board/amcc/bamboo/sdram.c b/nand_spl/board/amcc/bamboo/sdram.c
index ca25252..adede44 100644
--- a/nand_spl/board/amcc/bamboo/sdram.c
+++ b/nand_spl/board/amcc/bamboo/sdram.c
@@ -36,7 +36,7 @@
 }
 
 /*
- * long int initdram(int board_type)
+ * phys_size_t initdram(int board_type)
  *
  * As the name already indicates, this function is called very early
  * from start.S and configures the SDRAM with fixed values. This is needed,
@@ -51,7 +51,7 @@
  * modules are still plugged in. So it is recommended to remove the DIMM
  * modules while using the NAND booting code with the fixed SDRAM setup!
  */
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/*
 	 * Soft-reset SDRAM controller.
diff --git a/nand_spl/board/amcc/canyonlands/ddr2_fixed.c b/nand_spl/board/amcc/canyonlands/ddr2_fixed.c
index 9010fca..29d7d3f 100644
--- a/nand_spl/board/amcc/canyonlands/ddr2_fixed.c
+++ b/nand_spl/board/amcc/canyonlands/ddr2_fixed.c
@@ -35,7 +35,7 @@
 	} while (!(val & 0x80000000));
 }
 
-long int initdram(int board_type)
+phys_size_t initdram(int board_type)
 {
 	/*
 	 * Reset the DDR-SDRAM controller.
