X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=board%2Fmvblue%2Fmvblue.c;h=69abb06251e4e4e6cb64a8f47ee3043c15b0a410;hb=17659d7de9e4905f8d06966c2354c87cdeb8b703;hp=0cec63f59ab35d0661065605e1460d8a660de510;hpb=d4ca31c40e8888b36635967522ec7ea03fd7e70b;p=oweals%2Fu-boot.git diff --git a/board/mvblue/mvblue.c b/board/mvblue/mvblue.c index 0cec63f59a..69abb06251 100644 --- a/board/mvblue/mvblue.c +++ b/board/mvblue/mvblue.c @@ -9,11 +9,14 @@ #include #include #include +#include #ifdef CONFIG_PCI #include #endif +DECLARE_GLOBAL_DATA_PTR; + u32 get_BoardType (void); #define PCI_CONFIG(b,d,f,r) cpu_to_le32(0x80000000 | ((b&0xff)<<16) \ @@ -35,8 +38,8 @@ u32 get_BoardType () void init_2nd_DUART (void) { - NS16550_t console = (NS16550_t) CFG_NS16550_COM2; - int clock_divisor = CFG_NS16550_CLK / 16 / CONFIG_BAUDRATE; + NS16550_t console = (NS16550_t) CONFIG_SYS_NS16550_COM2; + int clock_divisor = CONFIG_SYS_NS16550_CLK / 16 / CONFIG_BAUDRATE; *(u8 *) (0xfc004511) = 0x1; NS16550_init (console, clock_divisor); @@ -50,7 +53,6 @@ void hw_watchdog_reset (void) } int checkboard (void) { - DECLARE_GLOBAL_DATA_PTR; ulong busfreq = get_bus_freq (0); char buf[32]; u32 BoardType = get_BoardType (); @@ -75,55 +77,26 @@ int checkboard (void) return 0; } -long int initdram (int board_type) +phys_size_t initdram (int board_type) { - 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; + 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); } /* ------------------------------------------------------------------------- */ @@ -174,12 +147,12 @@ void pci_mvblue_clear_base (struct pci_controller *hose, pci_dev_t dev) void duart_setup (u32 base, u16 divisor) { printf ("duart setup ..."); - out_8 ((u8 *) (CFG_ISA_IO + base + 3), 0x80); - out_8 ((u8 *) (CFG_ISA_IO + base + 0), divisor & 0xff); - out_8 ((u8 *) (CFG_ISA_IO + base + 1), divisor >> 8); - out_8 ((u8 *) (CFG_ISA_IO + base + 3), 0x03); - out_8 ((u8 *) (CFG_ISA_IO + base + 4), 0x03); - out_8 ((u8 *) (CFG_ISA_IO + base + 2), 0x07); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 3), 0x80); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 0), divisor & 0xff); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 1), divisor >> 8); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 3), 0x03); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 4), 0x03); + out_8 ((u8 *) (CONFIG_SYS_ISA_IO + base + 2), 0x07); printf ("done\n"); } @@ -273,4 +246,9 @@ void pci_init_board (void) { pci_mpc824x_init (&hose); } + +int board_eth_init(bd_t *bis) +{ + return pci_eth_init(bis); +} #endif