X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=board%2Foxc%2Foxc.c;h=1a2bdf430dcae95d3651cdc1a6a3638931c2932f;hb=579129398605fbde65b1612ad01d81874ac411ae;hp=5f5e59a3ad253d1651a6d4badd8aa03b54485f3a;hpb=ad10dd9aaf573fefe1cbd9d446a24f07f8b87428;p=u-boot diff --git a/board/oxc/oxc.c b/board/oxc/oxc.c index 5f5e59a3ad..1a2bdf430d 100644 --- a/board/oxc/oxc.c +++ b/board/oxc/oxc.c @@ -25,6 +25,9 @@ #include #include #include +#include + +DECLARE_GLOBAL_DATA_PTR; int checkboard (void) { @@ -32,53 +35,27 @@ int checkboard (void) return 0; } -long int initdram (int board_type) +phys_size_t initdram (int board_type) { -#ifndef CFG_RAMBOOT - int i, cnt; - volatile uchar * base= CFG_SDRAM_BASE; - volatile ulong * addr; - ulong save[32]; - ulong val, ret = 0; - - 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; - } - - 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; - } - } - - ret = CFG_MAX_RAM_SIZE; -Done: - return ret; +#ifndef CONFIG_SYS_RAMBOOT + long size; + long new_bank0_end; + long mear1; + long emear1; + + size = get_ram_size(CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_MAX_RAM_SIZE); + + 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); + + return (size); #else /* if U-Boot starts from RAM, then suppose we have 16Mb of RAM */ return (16 << 20); @@ -113,16 +90,16 @@ void pci_init_board (void) pci_mpc824x_init(&hose); } -int board_pre_init (void) +int board_early_init_f (void) { - *(volatile unsigned char *)(CFG_CPLD_RESET) = 0x89; + *(volatile unsigned char *)(CONFIG_SYS_CPLD_RESET) = 0x89; return 0; } #ifdef CONFIG_WATCHDOG void oxc_wdt_reset(void) { - *(volatile unsigned char *)(CFG_CPLD_WATCHDOG) = 0xff; + *(volatile unsigned char *)(CONFIG_SYS_CPLD_WATCHDOG) = 0xff; } void watchdog_reset(void) @@ -156,6 +133,12 @@ void oxc_toggle_activeled(void) ledtoggle++; } +void board_show_activity (ulong timestamp) +{ + if ((timestamp % (CONFIG_SYS_HZ / 10)) == 0) + oxc_toggle_activeled (); +} + void show_activity(int arg) { static unsigned char led = 0; @@ -165,9 +148,9 @@ void show_activity(int arg) if ((ledtoggle > (2 * arg)) && ledstatus) { led ^= 0x80; - oxc_get_expander(CFG_I2C_EXPANDER0_ADDR, &val); + oxc_get_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, &val); udelay(200); - oxc_set_expander(CFG_I2C_EXPANDER0_ADDR, (val & 0x7F) | led); + oxc_set_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, (val & 0x7F) | led); ledtoggle = 0; } } @@ -182,13 +165,13 @@ void show_boot_progress(int arg) if (arg > 0 && ledstatus) { ledstatus = 0; - oxc_get_expander(CFG_I2C_EXPANDER0_ADDR, &val); + oxc_get_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, &val); udelay(200); - oxc_set_expander(CFG_I2C_EXPANDER0_ADDR, val | 0x80); + oxc_set_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, val | 0x80); } else if (arg < 0) { - oxc_get_expander(CFG_I2C_EXPANDER0_ADDR, &val); + oxc_get_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, &val); udelay(200); - oxc_set_expander(CFG_I2C_EXPANDER0_ADDR, val & 0x7F); + oxc_set_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, val & 0x7F); ledstatus = 1; } } @@ -197,23 +180,21 @@ void show_boot_progress(int arg) int misc_init_r (void) { /* check whether the i2c expander #0 is accessible */ - if (!oxc_set_expander(CFG_I2C_EXPANDER0_ADDR, 0x7F)) { + if (!oxc_set_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, 0x7F)) { udelay(200); expander0alive = 1; } -#ifdef CFG_OXC_GENERATE_IP +#ifdef CONFIG_SYS_OXC_GENERATE_IP { - DECLARE_GLOBAL_DATA_PTR; - char str[32]; - unsigned long ip = CFG_OXC_IPMASK; + unsigned long ip = CONFIG_SYS_OXC_IPMASK; bd_t *bd = gd->bd; if (expander0alive) { unsigned char val; - if (!oxc_get_expander(CFG_I2C_EXPANDER0_ADDR, &val)) { + if (!oxc_get_expander(CONFIG_SYS_I2C_EXPANDER0_ADDR, &val)) { ip = (ip & 0xffffff00) | ((val & 0x7c) >> 2); } } @@ -235,3 +216,8 @@ int misc_init_r (void) #endif return (0); } + +int board_eth_init(bd_t *bis) +{ + return pci_eth_init(bis); +}