diff options
| author | wdenk <wdenk> | 2003-05-22 22:52:13 +0000 | 
|---|---|---|
| committer | wdenk <wdenk> | 2003-05-22 22:52:13 +0000 | 
| commit | 5d232d0e7ea982d859d028ab482d95eb68460b19 (patch) | |
| tree | a02c773fa4be5687f8f97d053ebd9afebbfaa54f /board/mpc8266ads/mpc8266ads.c | |
| parent | c8c3a8be2dd09e51d7dc33f431e3a638ac5688f2 (diff) | |
| download | olio-uboot-2014.01-5d232d0e7ea982d859d028ab482d95eb68460b19.tar.xz olio-uboot-2014.01-5d232d0e7ea982d859d028ab482d95eb68460b19.zip | |
* Patch by Dave Ellis, 22 May 2003:LABEL_2003_05_23_0055
  Fix problem with only partially cleared .bss segment
* Patch by Rune Torgersen, 12 May 2003:
  get PCI to work on a MPC8266ADS board; incorporate change to
  cpu/mpc8260/pci.c to enable overrides of PCI memory parameters
Diffstat (limited to 'board/mpc8266ads/mpc8266ads.c')
| -rw-r--r-- | board/mpc8266ads/mpc8266ads.c | 47 | 
1 files changed, 35 insertions, 12 deletions
| diff --git a/board/mpc8266ads/mpc8266ads.c b/board/mpc8266ads/mpc8266ads.c index 796b37de1..3e34828b7 100644 --- a/board/mpc8266ads/mpc8266ads.c +++ b/board/mpc8266ads/mpc8266ads.c @@ -32,6 +32,7 @@  #include <ioports.h>  #include <i2c.h>  #include <mpc8260.h> +#include <pci.h>  /*   * PBI Page Based Interleaving @@ -155,8 +156,8 @@ const iop_conf_t iop_conf_tab[4][32] = {  	/* PC13 */ {   0,   0,   0,   1,   0,   0   }, /* PC13 */  	/* PC12 */ {   0,   1,   0,   1,   0,   0   }, /* PC12 */  	/* PC11 */ {   0,   0,   0,   1,   0,   0   }, /* LXT971 transmit control */ -	/* PC10 */ {   1,   1,   0,   0,   0,   0   }, /* LXT970 FETHMDC */ -	/* PC9  */ {   1,   1,   0,   0,   0,   0   }, /* LXT970 FETHMDIO */ +	/* PC10 */ {   1,   0,   0,   1,   0,   0   }, /* LXT970 FETHMDC */ +	/* PC9  */ {   1,   0,   0,   0,   0,   0   }, /* LXT970 FETHMDIO */  	/* PC8  */ {   0,   0,   0,   1,   0,   0   }, /* PC8 */  	/* PC7  */ {   0,   0,   0,   1,   0,   0   }, /* PC7 */  	/* PC6  */ {   0,   0,   0,   1,   0,   0   }, /* PC6 */ @@ -216,6 +217,11 @@ typedef struct bscr_ {  	unsigned long bcsr7;  } bcsr_t; +typedef struct pci_ic_s { +	unsigned long pci_int_stat; +	unsigned long pci_int_mask; +} pci_ic_t; +  void reset_phy(void)  {      volatile bcsr_t  *bcsr           = (bcsr_t *)CFG_BCSR; @@ -229,8 +235,13 @@ void reset_phy(void)  int board_pre_init (void)  {      volatile bcsr_t  *bcsr         = (bcsr_t *)CFG_BCSR; -    bcsr->bcsr1                    = ~FETHIEN & ~RS232EN_1; +    volatile pci_ic_t *pci_ic      = (pci_ic_t *) CFG_PCI_INT; + +    bcsr->bcsr1                    = ~FETHIEN & ~RS232EN_1 & ~RS232EN_2; +    /* mask all PCI interrupts */ +    pci_ic->pci_int_mask |= 0xfff00000; +          return 0;  } @@ -250,7 +261,7 @@ long int initdram(int board_type)      uint  psdmr = CFG_PSDMR;      int i; -    uint   psrt = 14;					/* for no SPD */ +    uint   psrt = 0x21;					/* for no SPD */      uint   chipselects = 1;				/* for no SPD */      uint   sdram_size = CFG_SDRAM_SIZE * 1024 * 1024;	/* for no SPD */      uint   or = CFG_OR2_PRELIM;				/* for no SPD */ @@ -270,7 +281,7 @@ long int initdram(int board_type)      int    j;      /* Keep the compiler from complaining about potentially uninitialized vars */ -    data_width = chipselects = rows = banks = cols = caslatency = psrt = 0; +    data_width = rows = banks = cols = caslatency = 0;      /*       * Read the SDRAM SPD EEPROM via I2C. @@ -294,17 +305,18 @@ long int initdram(int board_type)  		{  			/*  				 * Refresh rate: this assumes the prescaler is set to -			 * approximately 1uSec per tick. +			 * approximately 0.39uSec per tick and the target refresh period  +			 * is about 85% of maximum.  			 */  			switch(data & 0x7F)   			{  					default: -					case 0:  psrt =  16; /*  15.625uS */  break; -					case 1:  psrt =   2;  /*   3.9uS   */  break; -					case 2:  psrt =   6;  /*   7.8uS   */  break; -					case 3:  psrt =  29;  /*  31.3uS   */  break; -					case 4:  psrt =  60;  /*  62.5uS   */  break; -					case 5:  psrt = 120;  /* 125uS     */  break; +					case 0:  psrt = 0x21; /*  15.625uS */  break; +					case 1:  psrt = 0x07; /*   3.9uS   */  break; +					case 2:  psrt = 0x0F; /*   7.8uS   */  break; +					case 3:  psrt = 0x43; /*  31.3uS   */  break; +					case 4:  psrt = 0x87; /*  62.5uS   */  break; +					case 5:  psrt = 0xFF; /* 125uS     */  break;  			}  		}  		else if(j == 17) banks       = data; @@ -563,3 +575,14 @@ long int initdram(int board_type)      return (sdram_size * chipselects);  	/*return (16 * 1024 * 1024);*/  } + +#ifdef	CONFIG_PCI +struct pci_controller hose; + +extern void pci_mpc8250_init(struct pci_controller *); + +void pci_init_board(void) +{ +	pci_mpc8250_init(&hose); +} +#endif |