]> www.infradead.org Git - users/rw/ppcboot.git/commitdiff
* Fix flash sector size for SMDK2400, and flash bank size for TRAB
authorwdenk <wdenk>
Mon, 30 Sep 2002 17:14:18 +0000 (17:14 +0000)
committerwdenk <wdenk>
Mon, 30 Sep 2002 17:14:18 +0000 (17:14 +0000)
* Fix undefined variables problem in lib_ppc/board.c for some boards

* Patch by Denis Peter, 30 Sep 2002:
  Fixed MPL (PIP405, MIP405) boards (do_bsp(..) calling convention)
  Cleaned up MPL (PIP405, MIP405) boards.

19 files changed:
CHANGELOG
board/mpl/common/common_util.c
board/mpl/common/pci.c
board/mpl/common/pci_parts.h
board/mpl/common/video.c
board/mpl/common/video.h
board/mpl/mip405/Makefile
board/mpl/mip405/cmd_mip405.c
board/mpl/mip405/mip405.c
board/mpl/pip405/Makefile
board/mpl/pip405/cmd_pip405.c
board/mpl/pip405/pip405.c
board/smdk2400/flash.c
board/trab/flash.c
common/env_flash.c
include/configs/MIP405.h
include/configs/PIP405.h
include/configs/smdk2400.h
lib_ppc/board.c

index 24df38e13d4a9672400cd2a7f1a78ade4b087ea1..a060ac963e74aea4fb9d43b1b16cc0ab392dc535 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,15 @@
+======================================================================
+Modifications since 1.2.0:
+======================================================================
+
+* Fix flash sector size for SMDK2400, and flash bank size for TRAB
+
+* Fix undefined variables problem in lib_ppc/board.c for some boards
+
+* Patch by Denis Peter, 30 Sep 2002:
+  Fixed MPL (PIP405, MIP405) boards (do_bsp(..) calling convention)
+  Cleaned up MPL (PIP405, MIP405) boards.
+
 ======================================================================
 Modifications for 1.2.0:
 ======================================================================
index 09c0034d671b81d9ab3624e8ed00db03044515a3..63214589cdb7a68873407f594aa3739907d6d6a4 100644 (file)
@@ -28,6 +28,8 @@
 #include <asm/processor.h>
 #include <i2c.h>
 #include <devices.h>
+#include <pci.h>
+#include "video.h"
 
 extern int  gunzip (void *, int, unsigned char *, int *);
 extern int mem_test(unsigned long start, unsigned long ramsize, int quiet);
@@ -391,7 +393,7 @@ int switch_cs(unsigned char boot)
 }
 
 
-int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_mplcommon(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
        ulong size,src,ld_addr;
        int result;
@@ -406,19 +408,19 @@ int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
 #if (CONFIG_COMMANDS & CFG_CMD_FDC)
                if (strcmp(argv[2], "floppy") == 0) {
                        char *local_args[3];
-                       extern int do_fdcboot (cmd_tbl_t *, bd_t *, int, int, char *[]);
+                       extern int do_fdcboot (cmd_tbl_t *, int, int, char *[]);
                        printf ("\nupdating bootloader image from floppy\n");
                        local_args[0] = argv[0];
                        if(argc==4) {
                                local_args[1] = argv[3];
                                local_args[2] = NULL;
                                ld_addr=simple_strtoul(argv[3], NULL, 16);
-                               result=do_fdcboot(cmdtp, bd, 0, 2, local_args);
+                               result=do_fdcboot(cmdtp, 0, 2, local_args);
                        }
                        else {
                                local_args[1] = NULL;
                                ld_addr=CFG_LOAD_ADDR;
-                               result=do_fdcboot(cmdtp, bd, 0, 1, local_args);
+                               result=do_fdcboot(cmdtp, 0, 1, local_args);
                        }
                        result=mpl_prg_image(ld_addr);
                        switch_cs(sw); /* Switch flash back */
@@ -470,7 +472,7 @@ int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                }while(result);
                return 0;
        }
-       if (strcmp(argv[1], "clearenvvalues") == 0)
+       if (strcmp(argv[1], "clearenvvalues") == 0)
        {
                if (strcmp(argv[2], "yes") == 0)
                {
@@ -492,42 +494,6 @@ int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                set_backup_values(1);
                return 0;
        }
-#if 0
-       if (strcmp(argv[1], "test") == 0) {
-               char *local_args[6];
-               int i;
-               extern int do_doc(cmd_tbl_t *, bd_t *, int, int, char *[]);
-               local_args[0] = argv[0];
-           for(i=1;i<5;i++) {
-               if(i+1<argc) {
-                               local_args[i]=argv[i+1];
-                       }
-                       else {
-                               local_args[i]=NULL;
-                       }
-               }
-               local_args[5]=NULL;
-               result=do_doc(cmdtp, bd, 0, argc-1, local_args);
-               return 0;
-       }
-       if (strcmp(argv[1], "test1") == 0) {
-               char *local_args[6];
-               int i;
-               extern int do_docboot(cmd_tbl_t *, bd_t *, int, int, char *[]);
-               local_args[0] = argv[0];
-           for(i=1;i<5;i++) {
-               if(i+1<argc) {
-                               local_args[i]=argv[i+1];
-                       }
-                       else {
-                               local_args[i]=NULL;
-                       }
-               }
-               local_args[5]=NULL;
-               result=do_docboot(cmdtp, bd, 0, argc-1, local_args);
-               return 0;
-       }
-#endif
        printf("Usage:\n%s\n", cmdtp->usage);
        return 1;
 }
@@ -540,3 +506,122 @@ void doc_init (void)
   doc_probe(MULTI_PURPOSE_SOCKET_ADDR);
 }
 #endif
+
+#ifdef CONFIG_VIDEO
+/******************************************************
+ * Routines to display the Board information
+ * to the screen (since the VGA will be initialized as last,
+ * we must resend the infos)
+ */
+
+void video_write_board_info (void)
+{
+       DECLARE_GLOBAL_DATA_PTR;
+
+       extern char version_string[];
+       unsigned long pvr = get_pvr ();
+       char buf[32], tmpbuf[80];
+       PPC405_SYS_INFO sys_info;
+       unsigned char *s = getenv ("serial#");
+       unsigned char *e;
+       unsigned char bc,sw;
+
+       /* first write PPCBOOT Info */
+       video_puts ("\n");
+       video_puts (version_string);
+       video_puts ("\n\n");
+       /* then CPU and board infos */
+       get_sys_info (&sys_info);
+       video_puts ("CPU:   IBM PowerPC 405GP Rev. ");
+       switch (pvr) {
+       case PVR_405GP_RB:
+               video_putc ('B');
+               break;
+       case PVR_405GP_RC:
+               video_putc ('C');
+               break;
+       case PVR_405GP_RD:
+               video_putc ('D');
+               break;
+       case PVR_405GP_RE:
+               video_putc ('E');
+               break;
+       default:
+               video_puts ("unknown");
+               break;
+       }
+       sprintf (tmpbuf, " at %s MHz (PLB=%lu, OPB=%lu, EBC=%lu MHz)\n",
+                strmhz (buf, gd->cpu_clk), sys_info.freqPLB / 1000000,
+                sys_info.freqPLB / sys_info.pllOpbDiv / 1000000,
+                sys_info.freqPLB / sys_info.pllExtBusDiv / 1000000);
+       video_puts (tmpbuf);
+       if (mfdcr (strap) & PSR_PCI_ASYNC_EN)
+               video_puts ("       PCI async ext clock used, ");
+       else {
+               sprintf (buf, "       PCI sync clock at %lu MHz, ",
+                        sys_info.freqPLB / sys_info.pllPciDiv / 1000000);
+               video_puts (buf);
+       }
+       if (mfdcr (strap) & PSR_PCI_ARBIT_EN)
+               video_puts ("internal PCI arbiter enabled\n");
+       else
+               video_puts ("external PCI arbiter enabled\n");
+       video_puts ("       16 kB I-Cache 8 kB D-Cache\n");
+       /* now some board infos */
+       video_puts ("Board: ");
+#ifdef CONFIG_PIP405
+       if (!s || strncmp (s, "PIP405", 6)) {
+               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
+               video_puts ("### No HW ID - assuming PIP405");
+       } 
+#endif
+#ifdef CONFIG_MIP405
+       if (!s || strncmp (s, "MIP405", 6)) {
+               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
+               video_puts ("### No HW ID - assuming MIP405");
+       } 
+#endif
+       else {
+               bc = video_set_attr (VGA_ATTR_CLR_GRN);
+               for (e = s; *e; ++e) {
+                       if (*e == ' ')
+                               break;
+               }
+               for (; s < e; ++s) {
+                       if (*s == '_') {
+                               ++s;
+                               break;
+                       }
+                       video_putc (*s);
+               }
+               video_puts ("  Serial No.: ");
+               for (; s < e; ++s) {
+                       video_putc (*s);
+               }
+       }
+       video_set_attr (bc);
+       bc = in8 (CONFIG_PORT_ADDR);
+       sprintf (buf, " Boot Config 0x%02X\n", bc);
+       video_puts (buf);
+       /* DRAM size    */
+       video_puts ("DRAM:  ");
+       sprintf (buf, "%lu MBytes\n", gd->bd->bi_memsize / 0x100000);
+       video_puts (buf);
+       /* flash size: */
+       video_puts ("FLASH: ");
+       sw = switch_cs (0);
+       switch_cs (sw);
+       if (sw == 0) {
+               bc = video_set_attr (VGA_ATTR_CLR_GRN);
+               video_puts ("(Flash boot)");
+               video_set_attr (bc);
+       } else {
+               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
+               video_puts ("(Multi Purpose Socket boot)");
+               video_set_attr (bc);
+       }
+       sprintf (buf, " %lu MBytes\n", gd->bd->bi_flashsize / 0x100000);
+       video_puts (buf);
+}
+
+#endif
index e5ca94e197dedabc5ce56e47961bd326a5930ad9..3ffcc9430766309075fe766fe1e2bdde34a8d65d 100644 (file)
@@ -61,16 +61,24 @@ void pci_pip405_write_regs(struct pci_controller *hose, pci_dev_t dev,
        }
 }
 
+
 static void pci_pip405_fixup_irq(struct pci_controller *hose, pci_dev_t dev)
 {
        unsigned char int_line = 0xff;
        /*
         * Write pci interrupt line register
         */
-       if(PCI_DEV_NUMBER(dev)>PCI_HIGHEST_ON_BOARD_ID) {
-               /* only external (PC104+) residing devices will be written */
+       if(PCI_DEV(dev)==0) /* Device0 = PPC405 -> skip */
+               return;
+       if(PCI_FUNC(dev)==0)
+       {
+               /* assuming all function 0 are using their INTA# Pin*/
                int_line=PCI_IRQ_VECTOR(dev);
                pci_hose_write_config_byte(hose, dev, PCI_INTERRUPT_LINE, int_line);
+#ifdef DEBUG                                                                                                         
+               printf("Fixup IRQ: dev %d (%x) int line %d 0x%x\n",
+                      PCI_DEV(dev),dev,int_line,int_line);
+#endif
        }
 }
 
@@ -84,6 +92,9 @@ static struct pci_controller hose = {
 
 void pci_init(void)
 {
+       /*we want the ptrs to RAM not flash (ie don't use init list)*/
+       hose.fixup_irq    = pci_pip405_fixup_irq;
+       hose.config_table = pci_pip405_config_table;
        pci_405gp_init(&hose);
 }
 
index 0cea5281cae61d0ec4f6335aeca5d373ea3b9a50..ee797f2ce6f277e36bffd092843766ec3fc780e1 100644 (file)
@@ -55,8 +55,9 @@
  *
  */
 #define PCI_HIGHEST_ON_BOARD_ID        19
-#define PCI_DEV_NUMBER(x)      (((x>>11) & 0x1f) + 10)
-#define PCI_IRQ_VECTOR(x)      (PCI_DEV_NUMBER(x) % 4) + 28
+/*#define PCI_DEV_NUMBER(x)    (((x>>11) & 0x1f) + 10) */
+#define PCI_IRQ_VECTOR(x)      ((PCI_DEV(x) + 10) % 4) + 28
+
 
 
 /* PCI Device List for PIP405 */
@@ -129,25 +130,6 @@ static struct pci_pip405_config_entry piix4_pmm_cntrl_f3[] = {
        {PCI_CFG_PIIX4_SMBBA,   0x00005000,     4}, /* set SMBBA to "valid" value */
        { }                                         /* end of device table      */
 };
-
-/* VGA Controller  ct69000 (logical device 0) */
-static struct pci_pip405_config_entry vga_ct69000[] = {
-       {PCI_BASE_ADDRESS_0,    0x80000000,     4}, /* Frame buffer access      */
-       {PCI_ROM_ADDRESS,       0x00000000,     4}, /* disable ROM              */
-       {PCI_INTERRUPT_LINE,    29,             1}, /* Int vector = 29          */
-       {PCI_COMMAND,           0x0003,         2}, /* enable IO access         */
-       { }                                         /* end of device table      */
-};
-
-/* Symbois 810 function 0 */
-static struct pci_pip405_config_entry symbois_810_f0[] = {
-       {PCI_BASE_ADDRESS_0,    0x00001001,     4}, /* IO Base address          */
-       {PCI_BASE_ADDRESS_1,    0x81000000,     4}, /* Memory Base address      */
-       {PCI_INTERRUPT_LINE,    30,             1}, /* Int vector = 30          */
-       {PCI_COMMAND,           0x0006,         2}, /* enable Memory access and busmaster */
-       {0xFFFF, 0,0}                               /* end of device table      */
-};
-
 /* PPC405 Dummy only used to prevent autosetup on this host bridge */
 static struct pci_pip405_config_entry ibm405_dummy[] = {
        { }                                         /* end of device table      */
@@ -155,7 +137,8 @@ static struct pci_pip405_config_entry ibm405_dummy[] = {
 
 void pci_405gp_setup_vga(struct pci_controller *hose, pci_dev_t dev, 
                         struct pci_config_table *entry);
-
+                        
 static struct pci_config_table pci_pip405_config_table[]={
        {PCI_VENDOR_ID_IBM,                     /* 405 dummy */
         PCI_DEVICE_ID_IBM_405GP,
@@ -187,19 +170,7 @@ static struct pci_config_table pci_pip405_config_table[]={
         PCI_ANY_ID, PCI_ANY_ID, 3,
         pci_pip405_write_regs, {(unsigned long) piix4_pmm_cntrl_f3}},
 
-       {PCI_VENDOR_ID_CT,                      /* VGA Controller  ct69000 (logical device 0) */
-        PCI_DEVICE_ID_CT_69000,
-        PCI_ANY_ID, 
-        PCI_ANY_ID, PCI_ANY_ID, 0, 
-        pci_pip405_write_regs, {(unsigned long) vga_ct69000}},
-
-       {PCI_VENDOR_ID_NCR,                     /* Symbois 810 function 0 */
-        PCI_DEVICE_ID_NCR_53C810,
-        PCI_ANY_ID,
-        PCI_ANY_ID, PCI_ANY_ID, 0, 
-        pci_pip405_write_regs, {(unsigned long) symbois_810_f0}},
-
-       {PCI_ANY_ID, 
+       {PCI_ANY_ID,
         PCI_ANY_ID, 
         PCI_CLASS_DISPLAY_VGA, 
         PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 
index 10ca8f679d1d0afce47ce86b175301d8824654b5..d92804aeb7b9288869bd15a0b6f92a51539b07fe 100644 (file)
@@ -29,6 +29,9 @@
  */
 
 #include <common.h>
+
+#ifdef CONFIG_VIDEO
+
 #include <command.h>
 #include <asm/processor.h>
 #include <devices.h>
@@ -37,6 +40,7 @@
 #include "vga_table.h"
 
 
+
 #ifdef CONFIG_VIDEO_CT69000
 #define VIDEO_VEND_ID 0x102C
 #define VIDEO_DEV_ID  0x00C0
@@ -124,28 +128,29 @@ void vga_set_font(void);
 int drv_video_init (void)
 {
        int error, devices = 1 ;
-  device_t vgadev ;
+       device_t vgadev ;
        int     busdevfunc;
 
        busdevfunc=pci_find_device(VIDEO_VEND_ID,VIDEO_DEV_ID,0); /* get PCI Device ID */
        if(busdevfunc==-1) {
+#ifdef CONFIG_VIDEO_ONBOARD
                printf("Error VGA Controller (%04X,%04X) not found\n",VIDEO_VEND_ID,VIDEO_DEV_ID);
+#endif
                return -1;
        }
        video_init(busdevfunc);
        video_write_board_info();
-  memset (&vgadev, 0, sizeof(vgadev));
-
-  strcpy(vgadev.name, "vga");
-  vgadev.flags =  DEV_FLAGS_OUTPUT | DEV_FLAGS_SYSTEM;
-  vgadev.putc = video_putc;
-  vgadev.puts = video_puts;
-  vgadev.getc = NULL;
-  vgadev.tstc = NULL;
+       memset (&vgadev, 0, sizeof(vgadev));
 
-  error = device_register (&vgadev);
+       strcpy(vgadev.name, "vga");
+       vgadev.flags =  DEV_FLAGS_OUTPUT | DEV_FLAGS_SYSTEM;
+       vgadev.putc = video_putc;
+       vgadev.puts = video_puts;
+       vgadev.getc = NULL;
+       vgadev.tstc = NULL;
+       error = device_register (&vgadev);
 
-  return (error == 0) ? devices : error ;
+       return (error == 0) ? devices : error ;
 }
 
 
@@ -732,6 +737,7 @@ void video_dump_reg(void)
 }
 #endif
 
+#endif /* CONFIG_VIDEO */
 
 
 
index 80535261fcae2d354bbaf0cf83d818cb1e7c5643..f1fa8ab01b1b8a9c35824fd3e64a5f1e13d03b2a 100644 (file)
@@ -22,6 +22,7 @@
  *
  */
 
+#ifdef CONFIG_VIDEO
 #ifndef _VIDEO_H
 #define _VIDEO_H
 
@@ -70,4 +71,5 @@ void video_write(unsigned short *buffer);
 
 #define VGA_ATTR_INVERT(A) ((((A)&0x7)<<4)|(((A)&0x70)>>4) |((A)&0x88))
 
-#endif
+#endif /* _VIDEO_H */
+#endif /* CONFIG_VIDEO */
index 839cafe21391d9c14d75c4ac2e820232a5466af6..a024952cdcc0b90474f7cbf46b78bee4dda349dd 100644 (file)
@@ -26,7 +26,8 @@ include $(TOPDIR)/config.mk
 LIB    = lib$(BOARD).a
 
 OBJS   = $(BOARD).o ../common/flash.o cmd_mip405.o ../common/pci.o \
-                       ../common/usb_uhci.o ../common/memtst.o ../common/common_util.o
+                       ../common/usb_uhci.o ../common/memtst.o ../common/common_util.o \
+                       ../common/video.o
 
 SOBJS  = init.o
 
index c79ce13d2c03d41388242b1795bcb3b6cc9dc6e9..6ec128fe09c4270f48d13129be40e9910be5eba7 100644 (file)
 
 
 extern void print_mip405_info(void);
-extern int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[]);
+extern int do_mplcommon(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 
 /* ------------------------------------------------------------------------- */
 
-int do_mip405(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_mip405(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 
        ulong led_on;
@@ -51,7 +51,7 @@ int do_mip405(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                user_led0(led_on);
                return 0;
        }
-       return (do_mplcommon(cmdtp, bd, flag, argc, argv));
+       return (do_mplcommon(cmdtp, flag, argc, argv));
 }
 
 /* ------------------------------------------------------------------------- */
index a673fc8d4b0ee54431d18a3a9f74176be59abb45..8bab47c107447fc2ac76d7e43e3edf6463db9f4c 100644 (file)
@@ -592,32 +592,10 @@ static int test_dram (unsigned long ramsize)
 
 int misc_init_r (void)
 {
-#if 0
-       unsigned char bc;
-       char buf[128];
-       unsigned char *s;
-
-       bc = in8 (PLD_EXT_CONF_REG);
-       bc >>= 4;
-       bc &= 0x0f;
-       sprintf (buf, "bootcmd%d", bc);
-       s = getenv (buf);
-       if (s) {
-               sprintf (buf, "%s", s);
-               setenv ("bootcmd", buf);
-       }
-       sprintf (buf, "bootargs%d", bc);
-       s = getenv (buf);
-       if (s) {
-               sprintf (buf, "%s", s);
-               setenv ("bootargs", buf);
-       }
-#endif
-       /* it is time to swap the flash permanently to the flash area */
-/*     switch_cs(FALSE); */
        return (0);
 }
 
+
 void print_mip405_rev (void)
 {
        unsigned char part, vers, cfg, rev;
@@ -653,7 +631,7 @@ int last_stage_init (void)
 
 int overwrite_console (void)
 {
-       return (in8 (PLD_EXT_CONF_REG) & 0x1);  /* return TRUE if console should be overwritten */
+       return ((in8 (PLD_EXT_CONF_REG) & 0x1)==0);     /* return TRUE if console should be overwritten */
 }
 
 
@@ -695,184 +673,3 @@ void print_mip405_info (void)
 }
 
 
-/******************************************************
- * Routines to display the Board information
- * to the screen (since the VGA will be initialized as last,
- * we must resend the infos)
- */
-#ifdef CONFIG_VIDEO
-void video_put_dev_string (block_dev_desc_t * dev_desc)
-{
-       char buf[80];
-       ldiv_t mb;
-       unsigned long lba512;           /* number of blocks if 512bytes block size */
-
-       if (dev_desc->type != DEV_TYPE_UNKNOWN) {
-               if (dev_desc->if_type == IF_TYPE_SCSI)
-                       sprintf (buf, "SCSI %d:  (%d:%d) ", dev_desc->dev,
-                                        dev_desc->target, dev_desc->lun);
-               else
-                       sprintf (buf, "IDE %d:   ", dev_desc->dev);
-               video_puts (buf);
-               switch (dev_desc->type & 0x1F) {
-               case DEV_TYPE_HARDDISK:
-                       video_puts ("Hard Disk");
-                       break;
-               case DEV_TYPE_CDROM:
-                       video_puts ("CD ROM");
-                       break;
-               case DEV_TYPE_OPDISK:
-                       video_puts ("Optical Device");
-                       break;
-               case DEV_TYPE_TAPE:
-                       video_puts ("Tape");
-                       break;
-               default:
-                       video_puts ("unknown");
-                       break;
-               }
-               video_puts (" ");
-               video_puts (dev_desc->vendor);
-               video_puts (" ");
-               if (dev_desc->if_type != IF_TYPE_IDE)
-                       video_puts (dev_desc->product);
-
-               if ((dev_desc->lba * dev_desc->blksz) > 0L) {
-                       lba512 = dev_desc->lba * (dev_desc->blksz / 512);
-                       mb = ldiv (lba512, 2048);       /* (1024 *1024 / 512 MB */
-                       /* round to 1 digit */
-                       mb.rem *= 10 * 512;
-                       mb.rem += 512 * 1024;
-                       mb.rem /= 1024 * 1024;
-                       sprintf (buf, " %ld x %ld Bytes = %ld.%ld MB\n", dev_desc->lba,
-                                        dev_desc->blksz, mb.quot, mb.rem);
-               } else {
-                       sprintf (buf, " Capacity: not available\n");
-               }
-               video_puts (buf);
-       }
-}
-
-void video_write_board_info (void)
-{
-       DECLARE_GLOBAL_DATA_PTR;
-
-       extern char version_string[];
-       unsigned long pvr = get_pvr ();
-       char buf[32], tmpbuf[80];
-       PPC405_SYS_INFO sys_info;
-       unsigned char *s = getenv ("serial#");
-       unsigned char *e;
-       unsigned char bc;
-       block_dev_desc_t *dev_desc;
-       int i;
-
-       /* first write PPCBOOT Info */
-       video_puts ("\n");
-       video_puts (version_string);
-       video_puts ("\n\n");
-       /* then CPU and board infos */
-       get_sys_info (&sys_info);
-       video_puts ("CPU:   IBM PowerPC 405GP Rev. ");
-       switch (pvr) {
-       case PVR_405GP_RB:
-               video_putc ('B');
-               break;
-       case PVR_405GP_RC:
-               video_putc ('C');
-               break;
-       case PVR_405GP_RD:
-               video_putc ('D');
-               break;
-       case PVR_405GP_RE:
-               video_putc ('E');
-               break;
-       default:
-               video_puts ("unknown");
-               break;
-       }
-       sprintf (tmpbuf, " at %s MHz (PLB=%lu, OPB=%lu, EBC=%lu MHz)\n",
-                        strmhz (buf, gd->cpu_clk), sys_info.freqPLB / 1000000,
-                        sys_info.freqPLB / sys_info.pllOpbDiv / 1000000,
-                        sys_info.freqPLB / sys_info.pllExtBusDiv / 1000000);
-       video_puts (tmpbuf);
-       if (mfdcr (strap) & PSR_PCI_ASYNC_EN)
-               video_puts ("       PCI async ext clock used, ");
-       else {
-               sprintf (buf, "       PCI sync clock at %lu MHz, ",
-                                sys_info.freqPLB / sys_info.pllPciDiv / 1000000);
-               video_puts (buf);
-       }
-       if (mfdcr (strap) & PSR_PCI_ARBIT_EN)
-               video_puts ("internal PCI arbiter enabled\n");
-       else
-               video_puts ("external PCI arbiter enabled\n");
-       video_puts ("       16 kB I-Cache 8 kB D-Cache\n");
-       /* now some board infos */
-       video_puts ("Board: ");
-       if (!s || strncmp (s, "PIP405", 6)) {
-               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
-               video_puts ("### No HW ID - assuming PIP405");
-       } else {
-               bc = video_set_attr (VGA_ATTR_CLR_GRN);
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
-                               break;
-               }
-               for (; s < e; ++s) {
-                       if (*s == '_') {
-                               ++s;
-                               break;
-                       }
-                       video_putc (*s);
-               }
-               video_puts ("  Serial No.: ");
-               for (; s < e; ++s) {
-                       video_putc (*s);
-               }
-       }
-       video_set_attr (bc);
-       bc = in8 (CONFIG_PORT_ADDR);
-       sprintf (buf, " Boot Config 0x%02X\n", bc);
-       video_puts (buf);
-       /* DRAM size    */
-#if 0
-       video_puts ("DRAM:    ");
-       sprintf (buf, "%lu MBytes\n", gd->bd->bi_memsize / 0x100000);
-       video_puts (buf);
-       /* flash size: */
-       video_puts ("FLASH:   ");
-       if (switch_cs (0) == 0) {
-               bc = video_set_attr (VGA_ATTR_CLR_GRN);
-               video_puts ("(Flash boot)");
-               video_set_attr (bc);
-       } else {
-               switch_cs (1);                  /* back to boot mode */
-               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
-               video_puts ("(Multi Purpose Socket boot)");
-               video_set_attr (bc);
-       }
-       sprintf (buf, " %lu MBytes\n", gd->bd->bi_flashsize / 0x100000);
-       video_puts (buf);
-       /* revisions */
-       video_puts ("Rev:     ");
-       sprintf (tmpbuf, "PCB Rev: %c PLD%d Rev %d PLD%d Rev %d\n\n",
-                        (in8 (PLD_BOARD_CFG_REG) & 0xf) + 'A',
-                        in8 (PLD_PART_REG) & 0xf, in8 (PLD_VERS_REG) & 0xf,
-                        (in8 (PLD_PART_REG) >> 4) & 0xf,
-                        (in8 (PLD_VERS_REG) >> 4) & 0xf);
-       video_puts (tmpbuf);
-       for (i = 0; i < CFG_IDE_MAXDEVICE; i++) {
-               dev_desc = (block_dev_desc_t *) ide_get_dev (i);
-               video_put_dev_string (dev_desc);
-       }
-       video_puts ("\n");
-       for (i = 0; i < CFG_SCSI_MAX_DEVICE; i++) {
-               dev_desc = (block_dev_desc_t *) scsi_get_dev (i);
-               video_put_dev_string (dev_desc);
-       }
-       video_puts ("\n");
-#endif /* 0 */
-}
-
-#endif /* CONFIG_VIDEO */
index 62b338574ccba6d985eb6f0cac53a174940c4fdf..48ecc4892e1bc87d23c06d96cc2511cd621a184d 100644 (file)
@@ -27,9 +27,9 @@ LIB   = lib$(BOARD).a
 
 OBJS   = $(BOARD).o \
          ../common/flash.o cmd_pip405.o ../common/pci.o \
-         ../common/isa.o ../common/kbd.o ../common/video.o \
+         ../common/isa.o ../common/kbd.o \
          ../common/usb_uhci.o \
-         ../common/memtst.o ../common/common_util.o
+         ../common/memtst.o ../common/common_util.o ../common/video.o 
 
 SOBJS  = init.o
 
index 0e9b2ac020ca19a6510cd95caafecf01fce93bc6..0d1ce11b0aaa56fd241b285b27478dbc5c4e5a2f 100644 (file)
 
 
 extern void print_pip405_info(void);
-extern int do_mplcommon(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[]);
+extern int do_mplcommon(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
 
 
 
 /* ------------------------------------------------------------------------- */
 
-int do_pip405(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
+int do_pip405(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 {
 
        ulong led_on,led_nr;
@@ -57,93 +57,7 @@ int do_pip405(cmd_tbl_t *cmdtp, bd_t *bd, int flag, int argc, char *argv[])
                return 0;
        }
 
-#if 0
-       if (strcmp(argv[1], "flash") == 0)
-       {
-               if (strcmp(argv[2], "floppy") == 0) {
-                       char *local_args[3];
-                       extern int do_fdcboot (cmd_tbl_t *, bd_t *, int, int, char *[]);
-                       printf ("\nupdating bootloader image from floppy\n");
-                       local_args[0] = argv[0];
-                       if(argc==4) {
-                               local_args[1] = argv[3];
-                               local_args[2] = NULL;
-                               load_addr=simple_strtoul(argv[3], NULL, 16);
-                               result=do_fdcboot(cmdtp, bd, 0, 2, local_args);
-                       }
-                       else {
-                               local_args[1] = NULL;
-                               load_addr=CFG_LOAD_ADDR;
-                               result=do_fdcboot(cmdtp, bd, 0, 1, local_args);
-                       }
-                       result=mpl_prg_image(load_addr);
-                       return result;
-               }
-               if (strcmp(argv[2], "mem") == 0) {
-                       if(argc==4) {
-                               load_addr=simple_strtoul(argv[3], NULL, 16);
-                       }
-                       else {
-                               load_addr=CFG_LOAD_ADDR;
-                       }
-                       printf ("\nupdating bootloader image from memory at %lX\n",load_addr);
-                       result=mpl_prg_image(load_addr);
-                       return result;
-               }
-               if (strcmp(argv[2], "mps") == 0) {
-                       printf ("\nupdating bootloader image from MSP\n");
-                       result=mpl_prg(src,size);
-                       return result;
-               }
-       }
-       if (strcmp(argv[1], "getback") == 0) {
-               get_backup_values(&back);
-               back.signature[3]=0;
-               back.serial_name[16]=0;
-               back.eth_addr[20]=0;
-               printf("GetBackUp: signature: %s\n",back.signature);
-               printf("           serial#:   %s\n",back.serial_name);
-               printf("           ethaddr:   %s\n",back.eth_addr);
-               return 0;
-       }
-       if (strcmp(argv[1], "setback") == 0) {
-               set_backup_values(1);
-               return 0;
-       }
-       if (strcmp(argv[1], "clearenvvalues") == 0)
-       {
-               if (strcmp(argv[2], "yes") == 0)
-               {
-                       clear_env_values();
-                       return 0;
-               }
-       }
-       if (strcmp(argv[1], "mem") == 0)
-       {
-               result=0;
-               if(argc==3)
-               {
-                       result = (int)simple_strtol(argv[2], NULL, 16);
-           }
-           src=(unsigned long)&result;
-           src-=CFG_MEMTEST_START;
-           src-=(100*1024); /* - 100k */
-           src&=0xfff00000;
-           size=0;
-           do {
-               size++;
-                       printf("Pass %ld\n",size);
-                       mem_test(CFG_MEMTEST_START,src,1);
-                       if(ctrlc())
-                               break;
-                       if(result>0)
-                               result--;
-
-               }while(result);
-               return 0;
-       }
- #endif
-       return (do_mplcommon(cmdtp, bd, flag, argc, argv));
+       return (do_mplcommon(cmdtp, flag, argc, argv));
 }
 
 /* ------------------------------------------------------------------------- */
index e75b28e96077f3aa5b0d75c265e6e9cb9f986d91..c01ba4ead1bc4122126cf172932b4e1807805b97 100644 (file)
@@ -29,7 +29,7 @@
 #include <asm/processor.h>
 #include <i2c.h>
 #include "../common/isa.h"
-#include "../common/video.h"
+//#include "../common/video.h"
 #include "../common/common_util.h"
 
 
@@ -665,25 +665,6 @@ static int test_dram (unsigned long ramsize)
 
 int misc_init_r (void)
 {
-       unsigned char bc;
-       char buf[128];
-       unsigned char *s;
-
-       bc = in8 (CONFIG_PORT_ADDR);
-       bc >>= 4;
-       bc &= 0x0f;
-       sprintf (buf, "bootcmd%d", bc);
-       s = getenv (buf);
-       if (s) {
-               sprintf (buf, "%s", s);
-               setenv ("bootcmd", buf);
-       }
-       sprintf (buf, "bootargs%d", bc);
-       s = getenv (buf);
-       if (s) {
-               sprintf (buf, "%s", s);
-               setenv ("bootargs", buf);
-       }
        return (0);
 }
 
@@ -969,165 +950,3 @@ void ide_set_reset (int idereset)
 }
 
 
-/******************************************************
- * Routines to display the Board information
- * to the screen (since the VGA will be initialized as last,
- * we must resend the infos)
- */
-
-void video_put_dev_string (block_dev_desc_t * dev_desc)
-{
-       char buf[80];
-       ldiv_t mb, gb;
-       unsigned long lba512;           /* number of blocks if 512bytes block size */
-
-       if (dev_desc->type != DEV_TYPE_UNKNOWN) {
-               if (dev_desc->if_type == IF_TYPE_SCSI)
-                       sprintf (buf, "SCSI %d:  (%d:%d) ", dev_desc->dev,
-                                        dev_desc->target, dev_desc->lun);
-               else
-                       sprintf (buf, "IDE %d:   ", dev_desc->dev);
-               video_puts (buf);
-               switch (dev_desc->type & 0x1F) {
-               case DEV_TYPE_HARDDISK:
-                       video_puts ("Hard Disk");
-                       break;
-               case DEV_TYPE_CDROM:
-                       video_puts ("CD ROM");
-                       break;
-               case DEV_TYPE_OPDISK:
-                       video_puts ("Optical Device");
-                       break;
-               case DEV_TYPE_TAPE:
-                       video_puts ("Tape");
-                       break;
-               default:
-                       video_puts ("unknown");
-                       break;
-               }
-               video_puts (" ");
-               video_puts (dev_desc->vendor);
-               video_puts (" ");
-               if (dev_desc->if_type != IF_TYPE_IDE)
-                       video_puts (dev_desc->product);
-
-               if ((dev_desc->lba * dev_desc->blksz) > 0L) {
-                       lba512 = (dev_desc->lba * (dev_desc->blksz / 512));
-                       mb = ldiv (lba512, 2048);       /* (1024 *1024 / 512 MB */
-                       /* we do NOT round, because if we round 0.95MByte up, we get 0.10MByte !! */
-                       mb.rem *= 10;
-                       mb.rem /= 2048;
-                       gb = ldiv (10 * mb.quot + mb.rem, 10240);
-                       gb.rem += 512;
-                       gb.rem /= 1024;
-                       printf ("            Capacity: %ld.%ld MB = %ld.%ld GB (%ld x %ld)\n",
-                               mb.quot, mb.rem,
-                               gb.quot, gb.rem,
-                               dev_desc->lba, dev_desc->blksz);
-               } else {
-                       sprintf (buf, " Capacity: not available\n");
-               }
-               video_puts (buf);
-       }
-}
-
-void video_write_board_info (void)
-{
-       DECLARE_GLOBAL_DATA_PTR;
-
-       extern char version_string[];
-       unsigned long pvr = get_pvr ();
-       char buf[32], tmpbuf[80];
-       PPC405_SYS_INFO sys_info;
-       unsigned char *s = getenv ("serial#");
-       unsigned char *e;
-       unsigned char bc,sw;
-
-       /* first write PPCBOOT Info */
-       video_puts ("\n");
-       video_puts (version_string);
-       video_puts ("\n\n");
-       /* then CPU and board infos */
-       get_sys_info (&sys_info);
-       video_puts ("CPU:   IBM PowerPC 405GP Rev. ");
-       switch (pvr) {
-       case PVR_405GP_RB:
-               video_putc ('B');
-               break;
-       case PVR_405GP_RC:
-               video_putc ('C');
-               break;
-       case PVR_405GP_RD:
-               video_putc ('D');
-               break;
-       case PVR_405GP_RE:
-               video_putc ('E');
-               break;
-       default:
-               video_puts ("unknown");
-               break;
-       }
-       sprintf (tmpbuf, " at %s MHz (PLB=%lu, OPB=%lu, EBC=%lu MHz)\n",
-                strmhz (buf, gd->cpu_clk), sys_info.freqPLB / 1000000,
-                sys_info.freqPLB / sys_info.pllOpbDiv / 1000000,
-                sys_info.freqPLB / sys_info.pllExtBusDiv / 1000000);
-       video_puts (tmpbuf);
-       if (mfdcr (strap) & PSR_PCI_ASYNC_EN)
-               video_puts ("       PCI async ext clock used, ");
-       else {
-               sprintf (buf, "       PCI sync clock at %lu MHz, ",
-                        sys_info.freqPLB / sys_info.pllPciDiv / 1000000);
-               video_puts (buf);
-       }
-       if (mfdcr (strap) & PSR_PCI_ARBIT_EN)
-               video_puts ("internal PCI arbiter enabled\n");
-       else
-               video_puts ("external PCI arbiter enabled\n");
-       video_puts ("       16 kB I-Cache 8 kB D-Cache\n");
-       /* now some board infos */
-       video_puts ("Board: ");
-       if (!s || strncmp (s, "PIP405", 6)) {
-               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
-               video_puts ("### No HW ID - assuming PIP405");
-       } else {
-               bc = video_set_attr (VGA_ATTR_CLR_GRN);
-               for (e = s; *e; ++e) {
-                       if (*e == ' ')
-                               break;
-               }
-               for (; s < e; ++s) {
-                       if (*s == '_') {
-                               ++s;
-                               break;
-                       }
-                       video_putc (*s);
-               }
-               video_puts ("  Serial No.: ");
-               for (; s < e; ++s) {
-                       video_putc (*s);
-               }
-       }
-       video_set_attr (bc);
-       bc = in8 (CONFIG_PORT_ADDR);
-       sprintf (buf, " Boot Config 0x%02X\n", bc);
-       video_puts (buf);
-       /* DRAM size    */
-       video_puts ("DRAM:  ");
-       sprintf (buf, "%lu MBytes\n", gd->bd->bi_memsize / 0x100000);
-       video_puts (buf);
-       /* flash size: */
-       video_puts ("FLASH: ");
-       sw = switch_cs (0);
-       switch_cs (sw);
-       if (sw == 0) {
-               bc = video_set_attr (VGA_ATTR_CLR_GRN);
-               video_puts ("(Flash boot)");
-               video_set_attr (bc);
-       } else {
-               bc = video_set_attr (VGA_ATTR_CLR_RED | VGA_ATTR_ITN);
-               video_puts ("(Multi Purpose Socket boot)");
-               video_set_attr (bc);
-       }
-       sprintf (buf, " %lu MBytes\n", gd->bd->bi_flashsize / 0x100000);
-       video_puts (buf);
-}
index af3b0b4de4f83187984750481f3f7b459d5c65fc..31cef07802ce48144b7e788747de418b3a40d036 100644 (file)
  * MA 02111-1307 USA
  */
 
+/* #define DEBUG */
+
 #include <common.h>
 
-#define FLASH_BANK_SIZE 0x800000
-#define MAIN_SECT_SIZE  0x20000
+#define FLASH_BANK_SIZE 0x1000000      /* 2 x   8 MB */
+#define MAIN_SECT_SIZE  0x40000                /* 2 x 128 kB */
 
 flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
 
@@ -233,6 +235,8 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
        int cflag;
 #endif
 
+       debug ("flash_erase: s_first %d  s_last %d\n", s_first, s_last);
+
        /* first look for protection bits */
 
        if (info->flash_id == FLASH_UNKNOWN)
@@ -276,9 +280,9 @@ int flash_erase (flash_info_t * info, int s_first, int s_last)
 
        /* Start erase on unprotected sectors */
        for (sect = s_first; sect <= s_last && !ctrlc (); sect++) {
-#if 0
-               printf ("Erasing sector %2d ... ", sect);
-#endif
+
+               debug ("Erasing sector %2d @ %08lX... ",
+                       sect, info->start[sect]);
 
                /* arm simple, non interrupt dependent timer */
                reset_timer_masked ();
index 5a8bb81cb5b6501c7c93d1e76a52aee5776cef1c..5331a19e9d776010b1d14c6b13b58f47e0441a4b 100644 (file)
@@ -26,9 +26,9 @@
 ulong myflush (void);
 
 
-#define FLASH_BANK_SIZE 0x800000       /* 8 MB */
+#define FLASH_BANK_SIZE        0x800000        /* 8 MB */
 /* this varies depending on the sector */
-#define MAIN_SECT_SIZE  0x10000        /* 64 KB */
+#define MAIN_SECT_SIZE  0x20000                /* 2 x 64 kB */
 
 flash_info_t flash_info[CFG_MAX_FLASH_BANKS];
 
index 492dbf0dbb6d70992cdcf72edc9a0113aa5cca59..4f1081ade3b6222a9330dfe5806526f799162e65 100644 (file)
@@ -24,6 +24,8 @@
  * MA 02111-1307 USA
  */
 
+/* #define DEBUG */
+
 #include <common.h>
 
 #if defined(CFG_ENV_IS_IN_FLASH) /* Environment is in Flash */
@@ -163,23 +165,32 @@ int saveenv(void)
 {
        int rc = 1;
 
-       if (flash_sect_protect (0, (ulong)flash_addr, end_addr))
-       {
+       debug ("Protect off %08lX ... %08lX\n",
+               (ulong)flash_addr, end_addr);
+
+       if (flash_sect_protect (0, (ulong)flash_addr, end_addr)) {
                goto Done;
        }
 
-       if (flash_sect_protect (0, (ulong)flash_addr_new, end_addr_new))
-       {
+       debug ("Protect off %08lX ... %08lX\n",
+               (ulong)flash_addr_new, end_addr_new);
+
+       if (flash_sect_protect (0, (ulong)flash_addr_new, end_addr_new)) {
                goto Done;
        }
 
        puts ("Erasing Flash...");
-       if (flash_sect_erase ((ulong)flash_addr_new, end_addr_new))
-       {
+       debug (" %08lX ... %08lX ...",
+               (ulong)flash_addr_new, end_addr_new);
+
+       if (flash_sect_erase ((ulong)flash_addr_new, end_addr_new)) {
                goto Done;
        }
 
        puts ("Writing to Flash... ");
+       debug (" %08lX ... %08lX ...",
+               (ulong)&(flash_addr_new->data),
+               sizeof(env_ptr->data)+(ulong)&(flash_addr_new->data));
        if (flash_write(env_ptr->data,
                        (ulong)&(flash_addr_new->data),
                        sizeof(env_ptr->data)) ||
index 8deededf2e301d3915ad101cea9f2b401212b0c5..4e88c2a57f0013171d1a982482e624bd844c1fac 100644 (file)
 #define CONFIG_BAUDRATE                9600    /* STD Baudrate */
 #define CONFIG_BOOTDELAY       5
 /* autoboot (do NOT change this set environment variable "bootdelay" to -1 instead) */
+#define CONFIG_BOOT_RETRY_TIME -10     /* feature is avaiable but not enabled */
+#define CONFIG_ZERO_BOOTDELAY_CHECK    /* check console even if bootdelay = 0 */
 
 #define CONFIG_BOOTCOMMAND     "diskboot 200000 0:1; bootm" /* autoboot command                */
 #define CONFIG_BOOTARGS                "console=ttyS0,9600 root=/dev/hda5" /* boot arguments */
 #define PER_UART1_ADDR         0xF4200000 /* smallest window is 1MByte 0x10 0000*/
 
 #define MULTI_PURPOSE_SOCKET_ADDR 0xF8000000
+#define CONFIG_PORT_ADDR       PER_PLD_ADDR + 5
 
 
 
 /************************************************************
  * Video support
  ************************************************************/
-#undef CONFIG_VIDEO                    /*To enable video controller support */
-#undef CONFIG_VIDEO_CT69000
+#define CONFIG_VIDEO                   /*To enable video controller support */
+#define CONFIG_VIDEO_CT69000
 
 /************************************************************
  * USB support EXPERIMENTAL
index e4fc4f2f0475d18d1a3cc77a99818b9d8c93ad0a..0477e49e6ad9b7666e43d392a924b9b128a45a24 100644 (file)
@@ -59,6 +59,7 @@
                        CFG_CMD_ELF     | \
                        CFG_CMD_USB     | \
                        CFG_CMD_MII     | \
+                       CFG_CMD_SDRAM   | \
                        CFG_CMD_DOC     | \
                        CFG_CMD_BSP     )
 /* this must be included AFTER the definition of CONFIG_COMMANDS  (if any) */
 
 #define CONFIG_BOOTDELAY       5
 /* autoboot (do NOT change this set environment variable "bootdelay" to -1 instead) */
+#define CONFIG_BOOT_RETRY_TIME -10     /* feature is avaiable but not enabled */
+#define CONFIG_ZERO_BOOTDELAY_CHECK    /* check console even if bootdelay = 0 */
+
 
 #define CONFIG_BOOTCOMMAND     "diskboot 200000 0:1; bootm" /* autoboot command                */
 #define CONFIG_BOOTARGS                "console=ttyS0,9600 root=/dev/hda5" /* boot arguments */
  ************************************************************/
 #define CONFIG_VIDEO                   /*To enable video controller support */
 #define CONFIG_VIDEO_CT69000
+#define CONFIG_VIDEO_ONBOARD           /* Video controller is on-board */
 
 /************************************************************
  * USB support
index 9ddf44836ef3fc0f49cb42d6e24a308e34eef650..1f0e39c00f8fe855ff7170a2cc958326ae9fb449 100644 (file)
 #define        CFG_ENV_IS_IN_FLASH     1
 
 /* Address and size of Primary Environment Sector      */
-#define CFG_ENV_ADDR           (PHYS_FLASH_1 + 0x20000)
-#define CFG_ENV_SIZE           0x20000
+#define CFG_ENV_ADDR           (PHYS_FLASH_1 + 0x40000)
+#define CFG_ENV_SIZE           0x40000
 
 /* Address and size of Redundant Environment Sector    */
 #define CFG_ENV_ADDR_REDUND    (CFG_ENV_ADDR + CFG_ENV_SIZE)
index a4a91ac639f2bd77d31c6b03619a6484b326b61e..defbb344c7fae99840f13c1640640c65097e70dd 100644 (file)
@@ -327,6 +327,11 @@ void board_init_f (ulong bootflag)
        ulong len, addr, addr_sp;
        gd_t *id;
        init_fnc_t **init_fnc_ptr;
+#ifdef CONFIG_PRAM
+       int i;
+       ulong reg;
+       uchar tmp[64];          /* long enough for environment variables */
+#endif
 
        /* Pointer is writable since we allocated a register for it */
        gd = (gd_t *) (CFG_INIT_RAM_ADDR + CFG_GBL_DATA_OFFSET);
@@ -585,8 +590,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        s = getenv ("eth1addr");
 
-       for (reg = 0; reg < 6; ++reg) {
-               bd->bi_enet1addr[reg] = s ? simple_strtoul (s, &e, 16) : 0;
+       for (i = 0; i < 6; ++i) {
+               bd->bi_enet1addr[i] = s ? simple_strtoul (s, &e, 16) : 0;
                if (s)
                        s = (*e) ? e + 1 : e;
        }
@@ -596,8 +601,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 
        s = getenv ("eth2addr");
 
-       for (reg = 0; reg < 6; ++reg) {
-               bd->bi_enet2addr[reg] = s ? simple_strtoul (s, &e, 16) : 0;
+       for (i = 0; i < 6; ++i) {
+               bd->bi_enet2addr[i] = s ? simple_strtoul (s, &e, 16) : 0;
                if (s)
                        s = (*e) ? e + 1 : e;
        }