X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=board%2Fpn62%2Fpn62.c;h=b2f348d4d6d5b24d101d831a1f279c0a34bb5c22;hb=b86d7622b33892b1dafe761a7a9eaeeab9f3816b;hp=9b1fc00e30ded66c934d941a76c38e3fd6e87362;hpb=ad10dd9aaf573fefe1cbd9d446a24f07f8b87428;p=u-boot diff --git a/board/pn62/pn62.c b/board/pn62/pn62.c index 9b1fc00e30..b2f348d4d6 100644 --- a/board/pn62/pn62.c +++ b/board/pn62/pn62.c @@ -26,6 +26,7 @@ #include "pn62.h" +DECLARE_GLOBAL_DATA_PTR; static int get_serial_number (char *string, int size); static int get_mac_address (int id, u8 * mac, char *string, int size); @@ -76,55 +77,26 @@ int checkboard (void) long int initdram (int board_type) { - int i, cnt; - volatile uchar *base = CFG_SDRAM_BASE; - volatile ulong *addr; - ulong save[32]; - ulong val, ret = 0; + long size; + long new_bank0_end; + long mear1; + long emear1; show_startup_phase (2); - for (i = 0, cnt = (CFG_MAX_RAM_SIZE / sizeof (long)) >> 1; cnt > 0; - cnt >>= 1) { - addr = (volatile ulong *) base + cnt; - save[i++] = *addr; - *addr = ~cnt; - } - - addr = (volatile ulong *) base; - save[i] = *addr; - *addr = 0; - - if (*addr != 0) { - *addr = save[i]; - goto Done; - } + size = get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE); - for (cnt = 1; cnt <= CFG_MAX_RAM_SIZE / sizeof (long); cnt <<= 1) { - addr = (volatile ulong *) base + cnt; - val = *addr; - *addr = save[--i]; - if (val != ~cnt) { - ulong new_bank0_end = cnt * sizeof (long) - 1; - ulong mear1 = mpc824x_mpc107_getreg (MEAR1); - ulong emear1 = mpc824x_mpc107_getreg (EMEAR1); - - mear1 = (mear1 & 0xFFFFFF00) | - ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT); - emear1 = (emear1 & 0xFFFFFF00) | - ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT); - mpc824x_mpc107_setreg (MEAR1, mear1); - mpc824x_mpc107_setreg (EMEAR1, emear1); - - ret = cnt * sizeof (long); - goto Done; - } - } + new_bank0_end = size - 1; + mear1 = mpc824x_mpc107_getreg (MEAR1); + emear1 = mpc824x_mpc107_getreg (EMEAR1); + mear1 = (mear1 & 0xFFFFFF00) | + ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT); + emear1 = (emear1 & 0xFFFFFF00) | + ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT); + mpc824x_mpc107_setreg (MEAR1, mear1); + mpc824x_mpc107_setreg (EMEAR1, emear1); - ret = CFG_MAX_RAM_SIZE; - Done: - show_startup_phase (3); - return ret; + return (size); } /* @@ -151,8 +123,6 @@ void pci_init_board (void) int misc_init_r (void) { - DECLARE_GLOBAL_DATA_PTR; - char str[20]; u8 mac[6]; @@ -174,11 +144,13 @@ int misc_init_r (void) } show_startup_phase (10); +#ifdef CONFIG_HAS_ETH1 if (getenv ("eth1addr") == NULL && get_mac_address (1, mac, str, sizeof (str)) > 0) { setenv ("eth1addr", str); memcpy (gd->bd->bi_enet1addr, mac, 6); } +#endif /* CONFIG_HAS_ETH1 */ show_startup_phase (11); /* Tell everybody that U-Boot is up and runnig */ @@ -194,7 +166,7 @@ static int get_serial_number (char *string, int size) if (size < I2155X_VPD_SN_SIZE) size = I2155X_VPD_SN_SIZE; for (i = 0; i < (size - 1); i++) { - i2155x_read_vpd (I2155X_VPD_SN_START + i, 1, &c); + i2155x_read_vpd (I2155X_VPD_SN_START + i, 1, (uchar *)&c); if (c == '\0') break; string[i] = c;