Minor reformatting
authorwdenk <wdenk>
Tue, 9 Dec 2003 20:22:16 +0000 (20:22 +0000)
committerwdenk <wdenk>
Tue, 9 Dec 2003 20:22:16 +0000 (20:22 +0000)
board/bubinga405ep/flash.c
common/cmd_reginfo.c

index d4bd7eef7ecfb4573ea68a523e4a870dae0646a8..85179d0f2fef0ff81b70f29aa320473400548566 100644 (file)
@@ -77,153 +77,144 @@ unsigned long flash_init (void)
        unsigned long base_b0, base_b1;
 
        /* Init: no FLASHes known */
-       for (i=0; i<CFG_MAX_FLASH_BANKS; ++i) {
+       for (i = 0; i < CFG_MAX_FLASH_BANKS; ++i) {
                flash_info[i].flash_id = FLASH_UNKNOWN;
        }
 
        /* Static FLASH Bank configuration here - FIXME XXX */
 
-       size_b0 = flash_get_size((vu_long *)FLASH_BASE0_PRELIM, &flash_info[0]);
+       size_b0 = flash_get_size ((vu_long *) FLASH_BASE0_PRELIM, &flash_info[0]);
 
        if (flash_info[0].flash_id == FLASH_UNKNOWN) {
                printf ("## Unknown FLASH on Bank 0 - Size = 0x%08lx = %ld MB\n",
-                       size_b0, size_b0<<20);
+                       size_b0, size_b0 << 20);
        }
 
        /* Only one bank */
-       if (CFG_MAX_FLASH_BANKS == 1)
-         {
-           /* Setup offsets */
-           flash_get_offsets (FLASH_BASE0_PRELIM, &flash_info[0]);
-
-           /* Monitor protection ON by default */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               FLASH_BASE0_PRELIM,
-                               FLASH_BASE0_PRELIM+CFG_MONITOR_LEN-1,
-                               &flash_info[0]);
-           /* Also protect sector containing initial power-up instruction */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               0xFFFFFFFC,
-                               0xFFFFFFFF,
-                               &flash_info[0]);
-           size_b1 = 0 ;
-           flash_info[0].size = size_b0;
-         }
+       if (CFG_MAX_FLASH_BANKS == 1) {
+               /* Setup offsets */
+               flash_get_offsets (FLASH_BASE0_PRELIM, &flash_info[0]);
+
+               /* Monitor protection ON by default */
+               (void) flash_protect (FLAG_PROTECT_SET,
+                                     FLASH_BASE0_PRELIM,
+                                     FLASH_BASE0_PRELIM + CFG_MONITOR_LEN - 1,
+                                     &flash_info[0]);
+               /* Also protect sector containing initial power-up instruction */
+               (void) flash_protect (FLAG_PROTECT_SET,
+                                     0xFFFFFFFC, 0xFFFFFFFF, &flash_info[0]);
+               size_b1 = 0;
+               flash_info[0].size = size_b0;
+       }
 
        /* 2 banks */
-       else
-         {
-           size_b1 = flash_get_size((vu_long *)FLASH_BASE1_PRELIM, &flash_info[1]);
-
-           /* Re-do sizing to get full correct info */
-
-           if (size_b1)
-             {
-               mtdcr(ebccfga, pb0cr);
-               pbcr = mfdcr(ebccfgd);
-               mtdcr(ebccfga, pb0cr);
-               base_b1 = -size_b1;
-               pbcr = (pbcr & 0x0001ffff) | base_b1 | (((size_b1/1024/1024)-1)<<17);
-               mtdcr(ebccfgd, pbcr);
-               /*          printf("pb1cr = %x\n", pbcr); */
-             }
-
-           if (size_b0)
-             {
-               mtdcr(ebccfga, pb1cr);
-               pbcr = mfdcr(ebccfgd);
-               mtdcr(ebccfga, pb1cr);
-               base_b0 = base_b1 - size_b0;
-               pbcr = (pbcr & 0x0001ffff) | base_b0 | (((size_b0/1024/1024)-1)<<17);
-               mtdcr(ebccfgd, pbcr);
-               /*            printf("pb0cr = %x\n", pbcr); */
-             }
-
-           size_b0 = flash_get_size((vu_long *)base_b0, &flash_info[0]);
-
-           flash_get_offsets (base_b0, &flash_info[0]);
-
-           /* monitor protection ON by default */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               base_b0+size_b0-CFG_MONITOR_LEN,
-                               base_b0+size_b0-1,
-                               &flash_info[0]);
-           /* Also protect sector containing initial power-up instruction */
-           /* (flash_protect() checks address range - other call ignored) */
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               0xFFFFFFFC,
-                               0xFFFFFFFF,
-                               &flash_info[0]);
-           (void)flash_protect(FLAG_PROTECT_SET,
-                               0xFFFFFFFC,
-                               0xFFFFFFFF,
-                               &flash_info[1]);
-
-           if (size_b1) {
-             /* Re-do sizing to get full correct info */
-             size_b1 = flash_get_size((vu_long *)base_b1, &flash_info[1]);
-
-             flash_get_offsets (base_b1, &flash_info[1]);
-
-             /* monitor protection ON by default */
-             (void)flash_protect(FLAG_PROTECT_SET,
-                                 base_b1+size_b1-CFG_MONITOR_LEN,
-                                 base_b1+size_b1-1,
-                                 &flash_info[1]);
-             /* monitor protection OFF by default (one is enough) */
-             (void)flash_protect(FLAG_PROTECT_CLEAR,
-                                 base_b0+size_b0-CFG_MONITOR_LEN,
-                                 base_b0+size_b0-1,
-                                 &flash_info[0]);
-           } else {
-             flash_info[1].flash_id = FLASH_UNKNOWN;
-             flash_info[1].sector_count = -1;
-           }
-
-           flash_info[0].size = size_b0;
-           flash_info[1].size = size_b1;
-         }/* else 2 banks */
+       else {
+               size_b1 = flash_get_size ((vu_long *) FLASH_BASE1_PRELIM, &flash_info[1]);
+
+               /* Re-do sizing to get full correct info */
+
+               if (size_b1) {
+                       mtdcr (ebccfga, pb0cr);
+                       pbcr = mfdcr (ebccfgd);
+                       mtdcr (ebccfga, pb0cr);
+                       base_b1 = -size_b1;
+                       pbcr = (pbcr & 0x0001ffff) | base_b1 |
+                               (((size_b1 / 1024 / 1024) - 1) << 17);
+                       mtdcr (ebccfgd, pbcr);
+                       /*          printf("pb1cr = %x\n", pbcr); */
+               }
+
+               if (size_b0) {
+                       mtdcr (ebccfga, pb1cr);
+                       pbcr = mfdcr (ebccfgd);
+                       mtdcr (ebccfga, pb1cr);
+                       base_b0 = base_b1 - size_b0;
+                       pbcr = (pbcr & 0x0001ffff) | base_b0 |
+                               (((size_b0 / 1024 / 1024) - 1) << 17);
+                       mtdcr (ebccfgd, pbcr);
+                       /*            printf("pb0cr = %x\n", pbcr); */
+               }
+
+               size_b0 = flash_get_size ((vu_long *) base_b0, &flash_info[0]);
+
+               flash_get_offsets (base_b0, &flash_info[0]);
+
+               /* monitor protection ON by default */
+               (void) flash_protect (FLAG_PROTECT_SET,
+                                     base_b0 + size_b0 - CFG_MONITOR_LEN,
+                                     base_b0 + size_b0 - 1, &flash_info[0]);
+               /* Also protect sector containing initial power-up instruction */
+               /* (flash_protect() checks address range - other call ignored) */
+               (void) flash_protect (FLAG_PROTECT_SET,
+                                     0xFFFFFFFC, 0xFFFFFFFF, &flash_info[0]);
+               (void) flash_protect (FLAG_PROTECT_SET,
+                                     0xFFFFFFFC, 0xFFFFFFFF, &flash_info[1]);
+
+               if (size_b1) {
+                       /* Re-do sizing to get full correct info */
+                       size_b1 = flash_get_size ((vu_long *) base_b1, &flash_info[1]);
+
+                       flash_get_offsets (base_b1, &flash_info[1]);
+
+                       /* monitor protection ON by default */
+                       (void) flash_protect (FLAG_PROTECT_SET,
+                                             base_b1 + size_b1 - CFG_MONITOR_LEN,
+                                             base_b1 + size_b1 - 1,
+                                             &flash_info[1]);
+                       /* monitor protection OFF by default (one is enough) */
+                       (void) flash_protect (FLAG_PROTECT_CLEAR,
+                                             base_b0 + size_b0 - CFG_MONITOR_LEN,
+                                             base_b0 + size_b0 - 1,
+                                             &flash_info[0]);
+               } else {
+                       flash_info[1].flash_id = FLASH_UNKNOWN;
+                       flash_info[1].sector_count = -1;
+               }
+
+               flash_info[0].size = size_b0;
+               flash_info[1].size = size_b1;
+       }                       /* else 2 banks */
        return (size_b0 + size_b1);
 }
 
 
 /*-----------------------------------------------------------------------
  */
-static void flash_get_offsets (ulong base, flash_info_t *info)
+static void flash_get_offsets (ulong base, flash_info_t * info)
 {
        int i;
 
        /* set up sector start address table */
        if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
-           (info->flash_id  == FLASH_AM040)){
-           for (i = 0; i < info->sector_count; i++)
-               info->start[i] = base + (i * 0x00010000);
+           (info->flash_id == FLASH_AM040)) {
+               for (i = 0; i < info->sector_count; i++)
+                       info->start[i] = base + (i * 0x00010000);
        } else {
-           if (info->flash_id & FLASH_BTYPE) {
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00004000;
-               info->start[2] = base + 0x00006000;
-               info->start[3] = base + 0x00008000;
-               for (i = 4; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00010000) - 0x00030000;
-               }
-           } else {
-               /* set sector offsets for top boot block type           */
-               i = info->sector_count - 1;
-               info->start[i--] = base + info->size - 0x00004000;
-               info->start[i--] = base + info->size - 0x00006000;
-               info->start[i--] = base + info->size - 0x00008000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00010000;
+               if (info->flash_id & FLASH_BTYPE) {
+                       /* set sector offsets for bottom boot block type        */
+                       info->start[0] = base + 0x00000000;
+                       info->start[1] = base + 0x00004000;
+                       info->start[2] = base + 0x00006000;
+                       info->start[3] = base + 0x00008000;
+                       for (i = 4; i < info->sector_count; i++) {
+                               info->start[i] = base + (i * 0x00010000) - 0x00030000;
+                       }
+               } else {
+                       /* set sector offsets for top boot block type           */
+                       i = info->sector_count - 1;
+                       info->start[i--] = base + info->size - 0x00004000;
+                       info->start[i--] = base + info->size - 0x00006000;
+                       info->start[i--] = base + info->size - 0x00008000;
+                       for (; i >= 0; i--) {
+                               info->start[i] = base + i * 0x00010000;
+                       }
                }
-           }
        }
 }
 
 /*-----------------------------------------------------------------------
  */
-void flash_print_info  (flash_info_t *info)
+void flash_print_info (flash_info_t * info)
 {
        int i;
        int k;
@@ -274,39 +265,35 @@ void flash_print_info  (flash_info_t *info)
                info->size >> 10, info->sector_count);
 
        printf ("  Sector Start Addresses:");
-       for (i=0; i<info->sector_count; ++i) {
+       for (i = 0; i < info->sector_count; ++i) {
                /*
                 * Check if whole sector is erased
                 */
-               if (i != (info->sector_count-1))
-                 size = info->start[i+1] - info->start[i];
+               if (i != (info->sector_count - 1))
+                       size = info->start[i + 1] - info->start[i];
                else
-                 size = info->start[0] + info->size - info->start[i];
+                       size = info->start[0] + info->size - info->start[i];
                erased = 1;
-               flash = (volatile unsigned long *)info->start[i];
-               size = size >> 2;        /* divide by 4 for longword access */
-               for (k=0; k<size; k++)
-                 {
-                   if (*flash++ != 0xffffffff)
-                     {
-                       erased = 0;
-                       break;
-                     }
-                 }
+               flash = (volatile unsigned long *) info->start[i];
+               size = size >> 2;       /* divide by 4 for longword access */
+               for (k = 0; k < size; k++) {
+                       if (*flash++ != 0xffffffff) {
+                               erased = 0;
+                               break;
+                       }
+               }
 
                if ((i % 5) == 0)
                        printf ("\n   ");
-#if 0 /* test-only */
+#if 0                          /* test-only */
                printf (" %08lX%s",
-                       info->start[i],
-                       info->protect[i] ? " (RO)" : "     "
+                       info->start[i], info->protect[i] ? " (RO)" : "     "
 #else
                printf (" %08lX%s%s",
                        info->start[i],
-                       erased ? " E" : "  ",
-                       info->protect[i] ? "RO " : "   "
+                       erased ? " E" : "  ", info->protect[i] ? "RO " : "   "
 #endif
-               );
+                       );
        }
        printf ("\n");
        return;
@@ -322,17 +309,17 @@ void flash_print_info  (flash_info_t *info)
 /*
  * The following code cannot be run from FLASH!
  */
-static ulong flash_get_size (vu_long *addr, flash_info_t *info)
+static ulong flash_get_size (vu_long * addr, flash_info_t * info)
 {
        short i;
        FLASH_WORD_SIZE value;
-       ulong base = (ulong)addr;
-       volatile FLASH_WORD_SIZE *addr2 = (FLASH_WORD_SIZE *)addr;
+       ulong base = (ulong) addr;
+       volatile FLASH_WORD_SIZE *addr2 = (FLASH_WORD_SIZE *) addr;
 
        /* Write auto select command: read Manufacturer ID */
-       addr2[ADDR0] = (FLASH_WORD_SIZE)0x00AA00AA;
-       addr2[ADDR1] = (FLASH_WORD_SIZE)0x00550055;
-       addr2[ADDR0] = (FLASH_WORD_SIZE)0x00900090;
+       addr2[ADDR0] = (FLASH_WORD_SIZE) 0x00AA00AA;
+       addr2[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
+       addr2[ADDR0] = (FLASH_WORD_SIZE) 0x00900090;
 
 #ifdef CONFIG_ADCIOP
        value = addr2[2];
@@ -341,126 +328,126 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info)
 #endif
 
        switch (value) {
-       case (FLASH_WORD_SIZE)AMD_MANUFACT:
+       case (FLASH_WORD_SIZE) AMD_MANUFACT:
                info->flash_id = FLASH_MAN_AMD;
                break;
-       case (FLASH_WORD_SIZE)FUJ_MANUFACT:
+       case (FLASH_WORD_SIZE) FUJ_MANUFACT:
                info->flash_id = FLASH_MAN_FUJ;
                break;
-       case (FLASH_WORD_SIZE)SST_MANUFACT:
+       case (FLASH_WORD_SIZE) SST_MANUFACT:
                info->flash_id = FLASH_MAN_SST;
                break;
        default:
                info->flash_id = FLASH_UNKNOWN;
                info->sector_count = 0;
                info->size = 0;
-               return (0);                     /* no or unknown flash  */
+               return (0);     /* no or unknown flash  */
        }
 
 #ifdef CONFIG_ADCIOP
-       value = addr2[0];                       /* device ID            */
+       value = addr2[0];       /* device ID            */
        /*        printf("\ndev_code=%x\n", value); */
 #else
-       value = addr2[1];                       /* device ID            */
+       value = addr2[1];       /* device ID            */
 #endif
 
        switch (value) {
-       case (FLASH_WORD_SIZE)AMD_ID_F040B:
+       case (FLASH_WORD_SIZE) AMD_ID_F040B:
                info->flash_id += FLASH_AM040;
                info->sector_count = 8;
-               info->size = 0x0080000; /* => 512 ko */
+               info->size = 0x0080000; /* => 512 ko */
                break;
-       case (FLASH_WORD_SIZE)AMD_ID_LV400T:
+       case (FLASH_WORD_SIZE) AMD_ID_LV400T:
                info->flash_id += FLASH_AM400T;
                info->sector_count = 11;
                info->size = 0x00080000;
-               break;                          /* => 0.5 MB            */
+               break;          /* => 0.5 MB            */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV400B:
+       case (FLASH_WORD_SIZE) AMD_ID_LV400B:
                info->flash_id += FLASH_AM400B;
                info->sector_count = 11;
                info->size = 0x00080000;
-               break;                          /* => 0.5 MB            */
+               break;          /* => 0.5 MB            */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV800T:
+       case (FLASH_WORD_SIZE) AMD_ID_LV800T:
                info->flash_id += FLASH_AM800T;
                info->sector_count = 19;
                info->size = 0x00100000;
-               break;                          /* => 1 MB              */
+               break;          /* => 1 MB              */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV800B:
+       case (FLASH_WORD_SIZE) AMD_ID_LV800B:
                info->flash_id += FLASH_AM800B;
                info->sector_count = 19;
                info->size = 0x00100000;
-               break;                          /* => 1 MB              */
+               break;          /* => 1 MB              */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV160T:
+       case (FLASH_WORD_SIZE) AMD_ID_LV160T:
                info->flash_id += FLASH_AM160T;
                info->sector_count = 35;
                info->size = 0x00200000;
-               break;                          /* => 2 MB              */
+               break;          /* => 2 MB              */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV160B:
+       case (FLASH_WORD_SIZE) AMD_ID_LV160B:
                info->flash_id += FLASH_AM160B;
                info->sector_count = 35;
                info->size = 0x00200000;
-               break;                          /* => 2 MB              */
-#if 0  /* enable when device IDs are available */
-       case (FLASH_WORD_SIZE)AMD_ID_LV320T:
+               break;          /* => 2 MB              */
+#if 0                          /* enable when device IDs are available */
+       case (FLASH_WORD_SIZE) AMD_ID_LV320T:
                info->flash_id += FLASH_AM320T;
                info->sector_count = 67;
                info->size = 0x00400000;
-               break;                          /* => 4 MB              */
+               break;          /* => 4 MB              */
 
-       case (FLASH_WORD_SIZE)AMD_ID_LV320B:
+       case (FLASH_WORD_SIZE) AMD_ID_LV320B:
                info->flash_id += FLASH_AM320B;
                info->sector_count = 67;
                info->size = 0x00400000;
-               break;                          /* => 4 MB              */
+               break;          /* => 4 MB              */
 #endif
-       case (FLASH_WORD_SIZE)SST_ID_xF800A:
+       case (FLASH_WORD_SIZE) SST_ID_xF800A:
                info->flash_id += FLASH_SST800A;
                info->sector_count = 16;
                info->size = 0x00100000;
-               break;                          /* => 1 MB              */
+               break;          /* => 1 MB              */
 
-       case (FLASH_WORD_SIZE)SST_ID_xF160A:
+       case (FLASH_WORD_SIZE) SST_ID_xF160A:
                info->flash_id += FLASH_SST160A;
                info->sector_count = 32;
                info->size = 0x00200000;
-               break;                          /* => 2 MB              */
+               break;          /* => 2 MB              */
 
        default:
                info->flash_id = FLASH_UNKNOWN;
-               return (0);                     /* => no or unknown flash */
+               return (0);     /* => no or unknown flash */
 
        }
 
        /* set up sector start address table */
        if (((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) ||
-           (info->flash_id  == FLASH_AM040)){
-           for (i = 0; i < info->sector_count; i++)
-               info->start[i] = base + (i * 0x00010000);
+           (info->flash_id == FLASH_AM040)) {
+               for (i = 0; i < info->sector_count; i++)
+                       info->start[i] = base + (i * 0x00010000);
        } else {
-           if (info->flash_id & FLASH_BTYPE) {
-               /* set sector offsets for bottom boot block type        */
-               info->start[0] = base + 0x00000000;
-               info->start[1] = base + 0x00004000;
-               info->start[2] = base + 0x00006000;
-               info->start[3] = base + 0x00008000;
-               for (i = 4; i < info->sector_count; i++) {
-                       info->start[i] = base + (i * 0x00010000) - 0x00030000;
-               }
-           } else {
-               /* set sector offsets for top boot block type           */
-               i = info->sector_count - 1;
-               info->start[i--] = base + info->size - 0x00004000;
-               info->start[i--] = base + info->size - 0x00006000;
-               info->start[i--] = base + info->size - 0x00008000;
-               for (; i >= 0; i--) {
-                       info->start[i] = base + i * 0x00010000;
+               if (info->flash_id & FLASH_BTYPE) {
+                       /* set sector offsets for bottom boot block type        */
+                       info->start[0] = base + 0x00000000;
+                       info->start[1] = base + 0x00004000;
+                       info->start[2] = base + 0x00006000;
+                       info->start[3] = base + 0x00008000;
+                       for (i = 4; i < info->sector_count; i++) {
+                               info->start[i] = base + (i * 0x00010000) - 0x00030000;
+                       }
+               } else {
+                       /* set sector offsets for top boot block type           */
+                       i = info->sector_count - 1;
+                       info->start[i--] = base + info->size - 0x00004000;
+                       info->start[i--] = base + info->size - 0x00006000;
+                       info->start[i--] = base + info->size - 0x00008000;
+                       for (; i >= 0; i--) {
+                               info->start[i] = base + i * 0x00010000;
+                       }
                }
-           }
        }
 
        /* check for protected sectors */
@@ -468,14 +455,14 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info)
                /* read sector protection at sector address, (A7 .. A0) = 0x02 */
                /* D0 = 1 if protected */
 #ifdef CONFIG_ADCIOP
-               addr2 = (volatile FLASH_WORD_SIZE *)(info->start[i]);
+               addr2 = (volatile FLASH_WORD_SIZE *) (info->start[i]);
                info->protect[i] = addr2[4] & 1;
 #else
-               addr2 = (volatile FLASH_WORD_SIZE *)(info->start[i]);
+               addr2 = (volatile FLASH_WORD_SIZE *) (info->start[i]);
                if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST)
-                 info->protect[i] = 0;
+                       info->protect[i] = 0;
                else
-                 info->protect[i] = addr2[2] & 1;
+                       info->protect[i] = addr2[2] & 1;
 #endif
        }
 
@@ -483,39 +470,39 @@ static ulong flash_get_size (vu_long *addr, flash_info_t *info)
         * Prevent writes to uninitialized FLASH.
         */
        if (info->flash_id != FLASH_UNKNOWN) {
-#if 0 /* test-only */
+#if 0                          /* test-only */
 #ifdef CONFIG_ADCIOP
-               addr2 = (volatile unsigned char *)info->start[0];
+               addr2 = (volatile unsigned char *) info->start[0];
                addr2[ADDR0] = 0xAA;
                addr2[ADDR1] = 0x55;
-               addr2[ADDR0] = 0xF0;  /* reset bank */
+               addr2[ADDR0] = 0xF0;    /* reset bank */
 #else
-               addr2 = (FLASH_WORD_SIZE *)info->start[0];
-               *addr2 = (FLASH_WORD_SIZE)0x00F000F0;   /* reset bank */
+               addr2 = (FLASH_WORD_SIZE *) info->start[0];
+               *addr2 = (FLASH_WORD_SIZE) 0x00F000F0;  /* reset bank */
 #endif
-#else /* test-only */
-               addr2 = (FLASH_WORD_SIZE *)info->start[0];
-               *addr2 = (FLASH_WORD_SIZE)0x00F000F0;   /* reset bank */
+#else  /* test-only */
+               addr2 = (FLASH_WORD_SIZE *) info->start[0];
+               *addr2 = (FLASH_WORD_SIZE) 0x00F000F0;  /* reset bank */
 #endif /* test-only */
        }
 
        return (info->size);
 }
 
-int wait_for_DQ7(flash_info_t *info, int sect)
+int wait_for_DQ7 (flash_info_t * info, int sect)
 {
        ulong start, now, last;
-       volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[sect]);
+       volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *) (info->start[sect]);
 
        start = get_timer (0);
-       last  = 0;
-       while ((addr[0] & (FLASH_WORD_SIZE)0x00800080) != (FLASH_WORD_SIZE)0x00800080) {
-               if ((now = get_timer(start)) > CFG_FLASH_ERASE_TOUT) {
+       last = 0;
+       while ((addr[0] & (FLASH_WORD_SIZE) 0x00800080) != (FLASH_WORD_SIZE) 0x00800080) {
+               if ((now = get_timer (start)) > CFG_FLASH_ERASE_TOUT) {
                        printf ("Timeout\n");
                        return -1;
                }
                /* show that we're waiting */
-               if ((now - last) > 1000) {  /* every second */
+               if ((now - last) > 1000) {      /* every second */
                        putc ('.');
                        last = now;
                }
@@ -526,9 +513,9 @@ int wait_for_DQ7(flash_info_t *info, int sect)
 /*-----------------------------------------------------------------------
  */
 
-int    flash_erase (flash_info_t *info, int s_first, int s_last)
+int flash_erase (flash_info_t * info, int s_first, int s_last)
 {
-       volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *)(info->start[0]);
+       volatile FLASH_WORD_SIZE *addr = (FLASH_WORD_SIZE *) (info->start[0]);
        volatile FLASH_WORD_SIZE *addr2;
        int flag, prot, sect, l_sect;
        int i;
@@ -548,15 +535,14 @@ int       flash_erase (flash_info_t *info, int s_first, int s_last)
        }
 
        prot = 0;
-       for (sect=s_first; sect<=s_last; ++sect) {
+       for (sect = s_first; sect <= s_last; ++sect) {
                if (info->protect[sect]) {
                        prot++;
                }
        }
 
        if (prot) {
-               printf ("- Warning: %d protected sectors will not be erased!\n",
-                       prot);
+               printf ("- Warning: %d protected sectors will not be erased!\n", prot);
        } else {
                printf ("\n");
        }
@@ -564,46 +550,46 @@ int       flash_erase (flash_info_t *info, int s_first, int s_last)
        l_sect = -1;
 
        /* Disable interrupts which might cause a timeout here */
-       flag = disable_interrupts();
+       flag = disable_interrupts ();
 
        /* Start erase on unprotected sectors */
-       for (sect = s_first; sect<=s_last; sect++) {
+       for (sect = s_first; sect <= s_last; sect++) {
                if (info->protect[sect] == 0) { /* not protected */
-                   addr2 = (FLASH_WORD_SIZE *)(info->start[sect]);
-                   printf("Erasing sector %p\n", addr2);       /* CLH */
-
-                   if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) {
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00AA00AA;
-                       addr[ADDR1] = (FLASH_WORD_SIZE)0x00550055;
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00800080;
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00AA00AA;
-                       addr[ADDR1] = (FLASH_WORD_SIZE)0x00550055;
-                       addr2[0] = (FLASH_WORD_SIZE)0x00500050;  /* block erase */
-                       for (i=0; i<50; i++)
-                               udelay(1000);  /* wait 1 ms */
-                   } else {
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00AA00AA;
-                       addr[ADDR1] = (FLASH_WORD_SIZE)0x00550055;
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00800080;
-                       addr[ADDR0] = (FLASH_WORD_SIZE)0x00AA00AA;
-                       addr[ADDR1] = (FLASH_WORD_SIZE)0x00550055;
-                       addr2[0] = (FLASH_WORD_SIZE)0x00300030;  /* sector erase */
-                   }
-                   l_sect = sect;
-                   /*
-                    * Wait for each sector to complete, it's more
-                    * reliable.  According to AMD Spec, you must
-                    * issue all erase commands within a specified
-                    * timeout.  This has been seen to fail, especially
-                    * if printf()s are included (for debug)!!
-                    */
-                   wait_for_DQ7(info, sect);
+                       addr2 = (FLASH_WORD_SIZE *) (info->start[sect]);
+                       printf ("Erasing sector %p\n", addr2);  /* CLH */
+
+                       if ((info->flash_id & FLASH_VENDMASK) == FLASH_MAN_SST) {
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00AA00AA;
+                               addr[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00800080;
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00AA00AA;
+                               addr[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
+                               addr2[0] = (FLASH_WORD_SIZE) 0x00500050;        /* block erase */
+                               for (i = 0; i < 50; i++)
+                                       udelay (1000);  /* wait 1 ms */
+                       } else {
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00AA00AA;
+                               addr[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00800080;
+                               addr[ADDR0] = (FLASH_WORD_SIZE) 0x00AA00AA;
+                               addr[ADDR1] = (FLASH_WORD_SIZE) 0x00550055;
+                               addr2[0] = (FLASH_WORD_SIZE) 0x00300030;        /* sector erase */
+                       }
+                       l_sect = sect;
+                       /*
+                        * Wait for each sector to complete, it's more
+                        * reliable.  According to AMD Spec, you must
+                        * issue all erase commands within a specified
+                        * timeout.  This has been seen to fail, especially
+                        * if printf()s are included (for debug)!!
+                        */
+                       wait_for_DQ7 (info, sect);
                }
        }
 
        /* re-enable interrupts if necessary */
        if (flag)
-               enable_interrupts();
+               enable_interrupts ();
 
        /* wait at least 80us - let's wait 1 ms */
        udelay (1000);
@@ -614,13 +600,13 @@ int       flash_erase (flash_info_t *info, int s_first, int s_last)
         */
        if (l_sect < 0)
                goto DONE;
-       wait_for_DQ7(info, l_sect);
+       wait_for_DQ7 (info, l_sect);
 
-DONE:
+      DONE:
 #endif
        /* reset to read mode */
-       addr = (FLASH_WORD_SIZE *)info->start[0];
-       addr[0] = (FLASH_WORD_SIZE)0x00F000F0;  /* reset bank */
+       addr = (FLASH_WORD_SIZE *) info->start[0];
+       addr[0] = (FLASH_WORD_SIZE) 0x00F000F0; /* reset bank */
 
        printf (" done\n");
        return 0;
@@ -633,7 +619,7 @@ DONE:
  * 2 - Flash not erased
  */
 
-int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
+int write_buff (flash_info_t * info, uchar * src, ulong addr, ulong cnt)
 {
        ulong cp, wp, data;
        int i, l, rc;
@@ -645,19 +631,19 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
         */
        if ((l = addr - wp) != 0) {
                data = 0;
-               for (i=0, cp=wp; i<l; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
+               for (i = 0, cp = wp; i < l; ++i, ++cp) {
+                       data = (data << 8) | (*(uchar *) cp);
                }
-               for (; i<4 && cnt>0; ++i) {
+               for (; i < 4 && cnt > 0; ++i) {
                        data = (data << 8) | *src++;
                        --cnt;
                        ++cp;
                }
-               for (; cnt==0 && i<4; ++i, ++cp) {
-                       data = (data << 8) | (*(uchar *)cp);
+               for (; cnt == 0 && i < 4; ++i, ++cp) {
+                       data = (data << 8) | (*(uchar *) cp);
                }
 
-               if ((rc = write_word(info, wp, data)) != 0) {
+               if ((rc = write_word (info, wp, data)) != 0) {
                        return (rc);
                }
                wp += 4;
@@ -668,13 +654,13 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
         */
        while (cnt >= 4) {
                data = 0;
-               for (i=0; i<4; ++i) {
+               for (i = 0; i < 4; ++i) {
                        data = (data << 8) | *src++;
                }
-               if ((rc = write_word(info, wp, data)) != 0) {
+               if ((rc = write_word (info, wp, data)) != 0) {
                        return (rc);
                }
-               wp  += 4;
+               wp += 4;
                cnt -= 4;
        }
 
@@ -686,15 +672,15 @@ int write_buff (flash_info_t *info, uchar *src, ulong addr, ulong cnt)
         * handle unaligned tail bytes
         */
        data = 0;
-       for (i=0, cp=wp; i<4 && cnt>0; ++i, ++cp) {
+       for (i = 0, cp = wp; i < 4 && cnt > 0; ++i, ++cp) {
                data = (data << 8) | *src++;
                --cnt;
        }
-       for (; i<4; ++i, ++cp) {
-               data = (data << 8) | (*(uchar *)cp);
+       for (; i < 4; ++i, ++cp) {
+               data = (data << 8) | (*(uchar *) cp);
        }
 
-       return (write_word(info, wp, data));
+       return (write_word (info, wp, data));
 }
 
 /*-----------------------------------------------------------------------
@@ -713,7 +699,7 @@ static int write_word (flash_info_t * info, ulong dest, ulong data)
 
        /* Check if Flash is (sufficiently) erased */
        if ((*((volatile FLASH_WORD_SIZE *) dest) &
-           (FLASH_WORD_SIZE) data) != (FLASH_WORD_SIZE) data) {
+            (FLASH_WORD_SIZE) data) != (FLASH_WORD_SIZE) data) {
                return (2);
        }
 
index edc572801fc4f9540a2be7c84fdefaf4f3b8967a..2b84dd9ea9b7bb22935ec2748bf37e6a8345acfc 100644 (file)
@@ -90,11 +90,11 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 
 /* DBU[dave@cray.com]   For the CRAY-L1, but should be generically 405gp */
 #elif defined (CONFIG_405GP)
-       printf("\n405GP registers; MSR=%08x\n",mfmsr());
-               printf ("\nUniversal Interrupt Controller Regs\n"
-"uicsr    uicsrs   uicer    uiccr    uicpr    uictr    uicmsr   uicvr    uicvcr"
-"\n"
-"%08x %08x %08x %08x %08x %08x %08x %08x %08x\n",
+       printf ("\n405GP registers; MSR=%08x\n",mfmsr());
+       printf ("\nUniversal Interrupt Controller Regs\n"
+           "uicsr    uicsrs   uicer    uiccr    uicpr    uictr    uicmsr   uicvr    uicvcr"
+           "\n"
+           "%08x %08x %08x %08x %08x %08x %08x %08x %08x\n",
        mfdcr(uicsr),
        mfdcr(uicsrs),
        mfdcr(uicer),
@@ -106,7 +106,7 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        mfdcr(uicvcr));
 
        printf ("\nMemory (SDRAM) Configuration\n"
-"besra    besrsa   besrb    besrsb   bear     mcopt1   rtr      pmit\n");
+           "besra    besrsa   besrb    besrsb   bear     mcopt1   rtr      pmit\n");
 
        mtdcr(memcfga,mem_besra);       printf ("%08x ", mfdcr(memcfgd));
        mtdcr(memcfga,mem_besrsa);      printf ("%08x ", mfdcr(memcfgd));
@@ -118,7 +118,7 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        mtdcr(memcfga,mem_pmit);        printf ("%08x ", mfdcr(memcfgd));
 
        printf ("\n"
-"mb0cf    mb1cf    mb2cf    mb3cf    sdtr1    ecccf    eccerr\n");
+           "mb0cf    mb1cf    mb2cf    mb3cf    sdtr1    ecccf    eccerr\n");
        mtdcr(memcfga,mem_mb0cf);       printf ("%08x ", mfdcr(memcfgd));
        mtdcr(memcfga,mem_mb1cf);       printf ("%08x ", mfdcr(memcfgd));
        mtdcr(memcfga,mem_mb2cf);       printf ("%08x ", mfdcr(memcfgd));
@@ -128,30 +128,33 @@ int do_reginfo (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
        mtdcr(memcfga,mem_eccerr);      printf ("%08x ", mfdcr(memcfgd));
 
        printf ("\n\n"
-"DMA Channels\n"
-"dmasr    dmasgc   dmaadr\n"                                           "%08x %08x %08x\n"
-"dmacr_0  dmact_0  dmada_0  dmasa_0  dmasb_0\n"        "%08x %08x %08x %08x %08x\n"
-"dmacr_1  dmact_1  dmada_1  dmasa_1  dmasb_1\n"        "%08x %08x %08x %08x %08x\n",
-mfdcr(dmasr),  mfdcr(dmasgc),mfdcr(dmaadr),
-mfdcr(dmacr0), mfdcr(dmact0),mfdcr(dmada0), mfdcr(dmasa0), mfdcr(dmasb0),
-mfdcr(dmacr1), mfdcr(dmact1),mfdcr(dmada1), mfdcr(dmasa1), mfdcr(dmasb1));
+           "DMA Channels\n"
+           "dmasr    dmasgc   dmaadr\n"
+           "%08x %08x %08x\n"
+           "dmacr_0  dmact_0  dmada_0  dmasa_0  dmasb_0\n"
+           "%08x %08x %08x %08x %08x\n"
+           "dmacr_1  dmact_1  dmada_1  dmasa_1  dmasb_1\n"
+           "%08x %08x %08x %08x %08x\n",
+       mfdcr(dmasr),  mfdcr(dmasgc),mfdcr(dmaadr),
+       mfdcr(dmacr0), mfdcr(dmact0),mfdcr(dmada0), mfdcr(dmasa0), mfdcr(dmasb0),
+       mfdcr(dmacr1), mfdcr(dmact1),mfdcr(dmada1), mfdcr(dmasa1), mfdcr(dmasb1));
 
        printf (
-"dmacr_2  dmact_2  dmada_2  dmasa_2  dmasb_2\n"        "%08x %08x %08x %08x %08x\n"
-"dmacr_3  dmact_3  dmada_3  dmasa_3  dmasb_3\n"        "%08x %08x %08x %08x %08x\n",
-mfdcr(dmacr2), mfdcr(dmact2),mfdcr(dmada2), mfdcr(dmasa2), mfdcr(dmasb2),
-mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
+           "dmacr_2  dmact_2  dmada_2  dmasa_2  dmasb_2\n"     "%08x %08x %08x %08x %08x\n"
+           "dmacr_3  dmact_3  dmada_3  dmasa_3  dmasb_3\n"     "%08x %08x %08x %08x %08x\n",
+       mfdcr(dmacr2), mfdcr(dmact2),mfdcr(dmada2), mfdcr(dmasa2), mfdcr(dmasb2),
+       mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
 
        printf ("\n"
-"External Bus\n"
-"pbear    pbesr0   pbesr1   epcr\n");
+           "External Bus\n"
+           "pbear    pbesr0   pbesr1   epcr\n");
        mtdcr(ebccfga,pbear);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pbesr0);  printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pbesr1);  printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,epcr);    printf ("%08x ", mfdcr(ebccfgd));
 
        printf ("\n"
-"pb0cr    pb0ap    pb1cr    pb1ap    pb2cr    pb2ap    pb3cr    pb3ap\n");
+           "pb0cr    pb0ap    pb1cr    pb1ap    pb2cr    pb2ap    pb3cr    pb3ap\n");
        mtdcr(ebccfga,pb0cr);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb0ap);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb1cr);   printf ("%08x ", mfdcr(ebccfgd));
@@ -162,7 +165,7 @@ mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
        mtdcr(ebccfga,pb3ap);   printf ("%08x ", mfdcr(ebccfgd));
 
        printf ("\n"
-"pb4cr    pb4ap    pb5cr    bp5ap    pb6cr    pb6ap    pb7cr    pb7ap\n");
+           "pb4cr    pb4ap    pb5cr    bp5ap    pb6cr    pb6ap    pb7cr    pb7ap\n");
        mtdcr(ebccfga,pb4cr);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb4ap);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb5cr);   printf ("%08x ", mfdcr(ebccfgd));
@@ -175,11 +178,11 @@ mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
        printf ("\n\n");
 /* For the BUBINGA (IBM 405EP eval) but should be generically 405ep */
 #elif defined(CONFIG_405EP)
-       printf("\n405EP registers; MSR=%08x\n",mfmsr());
-               printf ("\nUniversal Interrupt Controller Regs\n"
-"uicsr    uicer    uiccr    uicpr    uictr    uicmsr   uicvr    uicvcr"
-"\n"
-"%08x %08x %08x %08x %08x %08x %08x %08x\n",
+       printf ("\n405EP registers; MSR=%08x\n",mfmsr());
+       printf ("\nUniversal Interrupt Controller Regs\n"
+           "uicsr    uicer    uiccr    uicpr    uictr    uicmsr   uicvr    uicvcr"
+           "\n"
+           "%08x %08x %08x %08x %08x %08x %08x %08x\n",
        mfdcr(uicsr),
        mfdcr(uicer),
        mfdcr(uiccr),
@@ -190,7 +193,7 @@ mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
        mfdcr(uicvcr));
 
        printf ("\nMemory (SDRAM) Configuration\n"
-"mcopt1   rtr      pmit     mb0cf    mb1cf    sdtr1\n");
+           "mcopt1   rtr      pmit     mb0cf    mb1cf    sdtr1\n");
 
        mtdcr(memcfga,mem_mcopt1);      printf ("%08x ", mfdcr(memcfgd));
        mtdcr(memcfga,mem_rtr);         printf ("%08x ", mfdcr(memcfgd));
@@ -200,30 +203,30 @@ mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
        mtdcr(memcfga,mem_sdtr1);       printf ("%08x ", mfdcr(memcfgd));
 
        printf ("\n\n"
-"DMA Channels\n"
-"dmasr    dmasgc   dmaadr\n"                                           "%08x %08x %08x\n"
-"dmacr_0  dmact_0  dmada_0  dmasa_0  dmasb_0\n"        "%08x %08x %08x %08x %08x\n"
-"dmacr_1  dmact_1  dmada_1  dmasa_1  dmasb_1\n"        "%08x %08x %08x %08x %08x\n",
-mfdcr(dmasr),  mfdcr(dmasgc),mfdcr(dmaadr),
-mfdcr(dmacr0), mfdcr(dmact0),mfdcr(dmada0), mfdcr(dmasa0), mfdcr(dmasb0),
-mfdcr(dmacr1), mfdcr(dmact1),mfdcr(dmada1), mfdcr(dmasa1), mfdcr(dmasb1));
+           "DMA Channels\n"
+           "dmasr    dmasgc   dmaadr\n"                        "%08x %08x %08x\n"
+           "dmacr_0  dmact_0  dmada_0  dmasa_0  dmasb_0\n"     "%08x %08x %08x %08x %08x\n"
+           "dmacr_1  dmact_1  dmada_1  dmasa_1  dmasb_1\n"     "%08x %08x %08x %08x %08x\n",
+       mfdcr(dmasr),  mfdcr(dmasgc),mfdcr(dmaadr),
+       mfdcr(dmacr0), mfdcr(dmact0),mfdcr(dmada0), mfdcr(dmasa0), mfdcr(dmasb0),
+       mfdcr(dmacr1), mfdcr(dmact1),mfdcr(dmada1), mfdcr(dmasa1), mfdcr(dmasb1));
 
        printf (
-"dmacr_2  dmact_2  dmada_2  dmasa_2  dmasb_2\n"        "%08x %08x %08x %08x %08x\n"
-"dmacr_3  dmact_3  dmada_3  dmasa_3  dmasb_3\n"        "%08x %08x %08x %08x %08x\n",
-mfdcr(dmacr2), mfdcr(dmact2),mfdcr(dmada2), mfdcr(dmasa2), mfdcr(dmasb2),
-mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
+           "dmacr_2  dmact_2  dmada_2  dmasa_2  dmasb_2\n"     "%08x %08x %08x %08x %08x\n"
+           "dmacr_3  dmact_3  dmada_3  dmasa_3  dmasb_3\n"     "%08x %08x %08x %08x %08x\n",
+       mfdcr(dmacr2), mfdcr(dmact2),mfdcr(dmada2), mfdcr(dmasa2), mfdcr(dmasb2),
+       mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
 
        printf ("\n"
-"External Bus\n"
-"pbear    pbesr0   pbesr1   epcr\n");
+           "External Bus\n"
+           "pbear    pbesr0   pbesr1   epcr\n");
        mtdcr(ebccfga,pbear);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pbesr0);  printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pbesr1);  printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,epcr);    printf ("%08x ", mfdcr(ebccfgd));
 
        printf ("\n"
-"pb0cr    pb0ap    pb1cr    pb1ap    pb2cr    pb2ap    pb3cr    pb3ap\n");
+           "pb0cr    pb0ap    pb1cr    pb1ap    pb2cr    pb2ap    pb3cr    pb3ap\n");
        mtdcr(ebccfga,pb0cr);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb0ap);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb1cr);   printf ("%08x ", mfdcr(ebccfgd));
@@ -234,7 +237,7 @@ mfdcr(dmacr3), mfdcr(dmact3),mfdcr(dmada3), mfdcr(dmasa3), mfdcr(dmasb3) );
        mtdcr(ebccfga,pb3ap);   printf ("%08x ", mfdcr(ebccfgd));
 
        printf ("\n"
-"pb4cr    pb4ap\n");
+           "pb4cr    pb4ap\n");
        mtdcr(ebccfga,pb4cr);   printf ("%08x ", mfdcr(ebccfgd));
        mtdcr(ebccfga,pb4ap);   printf ("%08x ", mfdcr(ebccfgd));