|
|
|
@ -45,6 +45,7 @@ |
|
|
|
|
#include "mpsc.h" |
|
|
|
|
#include "64460.h" |
|
|
|
|
#include "mv_regs.h" |
|
|
|
|
#include "p3mx.h" |
|
|
|
|
|
|
|
|
|
DECLARE_GLOBAL_DATA_PTR; |
|
|
|
|
|
|
|
|
@ -79,6 +80,7 @@ extern flash_info_t flash_info[]; |
|
|
|
|
void board_prebootm_init (void); |
|
|
|
|
unsigned int INTERNAL_REG_BASE_ADDR = CFG_GT_REGS; |
|
|
|
|
int display_mem_map (void); |
|
|
|
|
void set_led(int); |
|
|
|
|
|
|
|
|
|
/* ------------------------------------------------------------------------- */ |
|
|
|
|
|
|
|
|
@ -246,7 +248,6 @@ int board_early_init_f (void) |
|
|
|
|
* that if it's not at the power-on location, it's where we put |
|
|
|
|
* it last time. (huber) |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
my_remap_gt_regs (CFG_DFL_GT_REGS, CFG_GT_REGS); |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_PCI |
|
|
|
@ -287,6 +288,8 @@ int board_early_init_f (void) |
|
|
|
|
|
|
|
|
|
GT_REG_WRITE (GPP_LEVEL_CONTROL, CFG_GPP_LEVEL_CONTROL); |
|
|
|
|
|
|
|
|
|
set_led(LED_RED); |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -332,6 +335,7 @@ void after_reloc (ulong dest_addr, gd_t * gd) |
|
|
|
|
/* display_mem_map(); */ |
|
|
|
|
|
|
|
|
|
/* now, jump to the main U-Boot board init code */ |
|
|
|
|
set_led(LED_GREEN); |
|
|
|
|
board_init_r (gd, dest_addr); |
|
|
|
|
/* NOTREACHED */ |
|
|
|
|
} |
|
|
|
@ -356,15 +360,66 @@ int checkboard (void) |
|
|
|
|
return (0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* utility functions */ |
|
|
|
|
void debug_led (int led, int mode) |
|
|
|
|
void set_led(int col) |
|
|
|
|
{ |
|
|
|
|
int tmp; |
|
|
|
|
int on_pin; |
|
|
|
|
int off_pin; |
|
|
|
|
|
|
|
|
|
/* Program Mpp[22] as Gpp[22]
|
|
|
|
|
* Program Mpp[23] as Gpp[23] |
|
|
|
|
*/ |
|
|
|
|
tmp = GTREGREAD(MPP_CONTROL2); |
|
|
|
|
tmp &= 0x00ffffff; |
|
|
|
|
GT_REG_WRITE(MPP_CONTROL2,tmp); |
|
|
|
|
|
|
|
|
|
/* Program Gpp[22] and Gpp[23] as output
|
|
|
|
|
*/ |
|
|
|
|
tmp = GTREGREAD(GPP_IO_CONTROL); |
|
|
|
|
tmp |= 0x00C00000; |
|
|
|
|
GT_REG_WRITE(GPP_IO_CONTROL, tmp); |
|
|
|
|
|
|
|
|
|
/* Program Gpp[22] and Gpp[23] as active high
|
|
|
|
|
*/ |
|
|
|
|
tmp = GTREGREAD(GPP_LEVEL_CONTROL); |
|
|
|
|
tmp &= 0xff3fffff; |
|
|
|
|
GT_REG_WRITE(GPP_LEVEL_CONTROL, tmp); |
|
|
|
|
|
|
|
|
|
switch(col) { |
|
|
|
|
default: |
|
|
|
|
case LED_OFF : |
|
|
|
|
on_pin = 0; |
|
|
|
|
off_pin = ((1 << 23) | (1 << 22)); |
|
|
|
|
break; |
|
|
|
|
case LED_RED : |
|
|
|
|
on_pin = (1 << 23); |
|
|
|
|
off_pin = (1 << 22); |
|
|
|
|
break; |
|
|
|
|
case LED_GREEN : |
|
|
|
|
on_pin = (1 << 22); |
|
|
|
|
off_pin = (1 << 23); |
|
|
|
|
break; |
|
|
|
|
case LED_ORANGE : |
|
|
|
|
on_pin = ((1 << 23) | (1 << 22)); |
|
|
|
|
off_pin = 0; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* Set output Gpp[22] and Gpp[23]
|
|
|
|
|
*/ |
|
|
|
|
tmp = GTREGREAD(GPP_VALUE); |
|
|
|
|
tmp |= on_pin; |
|
|
|
|
tmp &= ~off_pin; |
|
|
|
|
GT_REG_WRITE(GPP_VALUE, tmp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int display_mem_map (void) |
|
|
|
|
{ |
|
|
|
|
int i, j; |
|
|
|
|
int i; |
|
|
|
|
unsigned int base, size, width; |
|
|
|
|
#ifdef CONFIG_PCI |
|
|
|
|
int j; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* SDRAM */ |
|
|
|
|
printf ("SD (DDR) RAM\n"); |
|
|
|
|