diff --git a/CHANGELOG b/CHANGELOG
index c01f8a1..bdd08fc 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Fix various compiler warnings on ppc4xx builds (ELDK 4.0)
+  Patch by Stefan Roese, 18 Jan 2006
+
 * Add VGA support (CT69000) to CPCI750 board.
   Insert missing __le32_to_cpu() for filesize in ext2fs_read_file().
   Patch by Reinhard Arlt, 30 Dec 2005
diff --git a/board/amirix/ap1000/ap1000.c b/board/amirix/ap1000/ap1000.c
index dd836ce..7d11b29 100644
--- a/board/amirix/ap1000/ap1000.c
+++ b/board/amirix/ap1000/ap1000.c
@@ -36,8 +36,8 @@
 /** serial number and platform display at startup */
 int checkboard (void)
 {
-	unsigned char *s = getenv ("serial#");
-	unsigned char *e;
+	char *s = getenv ("serial#");
+	char *e;
 
 	/* After a loadace command, the SystemAce control register is left in a wonky state. */
 	/* this code did not work in board_pre_init */
@@ -135,13 +135,13 @@
 
 long int initdram (int board_type)
 {
-	unsigned char *s = getenv ("dramsize");
+	char *s = getenv ("dramsize");
 
 	if (s != NULL) {
 		if ((s[0] == '0') && ((s[1] == 'x') || (s[1] == 'X'))) {
 			s += 2;
 		}
-		return simple_strtoul (s, NULL, 16);
+		return (long int)simple_strtoul (s, NULL, 16);
 	} else {
 		/* give all 64 MB */
 		return 64 * 1024 * 1024;
@@ -293,7 +293,7 @@
 
 	printf ("Writing to Flash... ");
 	write_result =
-		flash_write (sector_buffer, SW_BYTE_SECTOR_ADDR,
+		flash_write ((char *)sector_buffer, SW_BYTE_SECTOR_ADDR,
 			     SW_BYTE_SECTOR_SIZE);
 	if (write_result != 0) {
 		flash_perror (write_result);
diff --git a/board/esd/cms700/cms700.c b/board/esd/cms700/cms700.c
index 649619d..e4cfe14 100644
--- a/board/esd/cms700/cms700.c
+++ b/board/esd/cms700/cms700.c
@@ -114,7 +114,7 @@
 
 int checkboard (void)
 {
-	unsigned char str[64];
+	char str[64];
 	int flashcnt;
 	int delay;
 	volatile unsigned char *led_reg = (unsigned char *)((ulong)CFG_PLD_BASE + 0x1000);
diff --git a/board/esd/common/auto_update.c b/board/esd/common/auto_update.c
index d48e972..1decc0e 100644
--- a/board/esd/common/auto_update.c
+++ b/board/esd/common/auto_update.c
@@ -283,7 +283,7 @@
 		 */
 		if (au_image[i].type != AU_NAND) {
 			debug ("flash_write(%p, %lx %x)\n", addr, start, nbytes);
-			rc = flash_write((uchar *)addr, start, nbytes);
+			rc = flash_write((char *)addr, start, nbytes);
 		} else {
 #if (CONFIG_COMMANDS & CFG_CMD_NAND)
 			debug ("nand_rw(%p, %lx %x)\n", addr, start, nbytes);
diff --git a/board/esd/hh405/hh405.c b/board/esd/hh405/hh405.c
index 3158803..9c582b1 100644
--- a/board/esd/hh405/hh405.c
+++ b/board/esd/hh405/hh405.c
@@ -590,7 +590,7 @@
 {
 	DECLARE_GLOBAL_DATA_PTR;
 
-	unsigned char str[64];
+	char str[64];
 	int i = getenv_r ("serial#", str, sizeof(str));
 
 	puts ("Board: ");
diff --git a/board/esd/vom405/vom405.c b/board/esd/vom405/vom405.c
index 445b8fc..bc5fa7c 100644
--- a/board/esd/vom405/vom405.c
+++ b/board/esd/vom405/vom405.c
@@ -97,7 +97,7 @@
 
 int checkboard (void)
 {
-	unsigned char str[64];
+	char str[64];
 	int i = getenv_r ("serial#", str, sizeof(str));
 	int flashcnt;
 	int delay;
diff --git a/board/xilinx/xilinx_enet/emac_adapter.c b/board/xilinx/xilinx_enet/emac_adapter.c
index 1076345..5c492eb 100644
--- a/board/xilinx/xilinx_enet/emac_adapter.c
+++ b/board/xilinx/xilinx_enet/emac_adapter.c
@@ -148,7 +148,7 @@
 	RecvFrameLength = PKTSIZE;
 	Result = XEmac_PollRecv(&Emac, (u8 *) etherrxbuff, &RecvFrameLength);
 	if (Result == XST_SUCCESS) {
-		NetReceive((uchar)etherrxbuff, RecvFrameLength);
+		NetReceive((uchar *)etherrxbuff, RecvFrameLength);
 		return (1);
 	} else {
 		return (0);
