| 1 | /* |
|---|
| 2 | #************************************************************************ |
|---|
| 3 | #* InitEbi: Initializes the EBI for proper chip-select operation * |
|---|
| 4 | #* * |
|---|
| 5 | #* SYNTAX: void InitEbi(void); * |
|---|
| 6 | #* RETURNS: * |
|---|
| 7 | #* * |
|---|
| 8 | #************************************************************************ |
|---|
| 9 | */ |
|---|
| 10 | |
|---|
| 11 | InitEbi: |
|---|
| 12 | .set noreorder |
|---|
| 13 | |
|---|
| 14 | li t1,BCM_PHYS_TO_K1(BCHP_PHYSICAL_OFFSET) |
|---|
| 15 | lw t0,BCHP_EBI_CS_CONFIG_0(t1) |
|---|
| 16 | andi t0,t0,EBI_WORD_WIDE |
|---|
| 17 | bnez t0,InitEbi_2 |
|---|
| 18 | nop |
|---|
| 19 | |
|---|
| 20 | /* Executing from boot ROM */ |
|---|
| 21 | /**************************/ |
|---|
| 22 | /* Chip Select # 0, ROM */ |
|---|
| 23 | /**************************/ |
|---|
| 24 | /* Don't need to have non-os update EBI_CS_BASE_0. It is set by the HW. */ |
|---|
| 25 | /* li t2,0x1FC00000 | BCHP_EBI_CS_BASE_0_size_SIZE_1MB */ |
|---|
| 26 | /* sw t2,BCHP_EBI_CS_BASE_0(t1) */ /* //# CS[1] Base */ |
|---|
| 27 | |
|---|
| 28 | /**************************/ |
|---|
| 29 | /* Chip Select # 1, FLASH */ |
|---|
| 30 | /**************************/ |
|---|
| 31 | li t2,CPU_PHYS_FLASH_BASE | BCHP_EBI_CS_BASE_1_size_SIZE_32MB |
|---|
| 32 | sw t2,BCHP_EBI_CS_BASE_1(t1) /* //# CS[1] Base */ |
|---|
| 33 | #ifdef LITTLE_ENDIAN |
|---|
| 34 | li t2,EBI_WAIT(7)|EBI_WORD_WIDE|EBI_ENABLE|EBI_REV_END |
|---|
| 35 | #else |
|---|
| 36 | li t2,EBI_WAIT(7)|EBI_WORD_WIDE|EBI_ENABLE |
|---|
| 37 | #endif |
|---|
| 38 | sw t2,BCHP_EBI_CS_CONFIG_1(t1) /* //# CS[1] Control */ |
|---|
| 39 | |
|---|
| 40 | InitEbi_2: |
|---|
| 41 | |
|---|
| 42 | /*************************/ |
|---|
| 43 | /* Chip Select # 2, POD1A */ |
|---|
| 44 | /*************************/ |
|---|
| 45 | /* CS is programmed in the driver */ |
|---|
| 46 | |
|---|
| 47 | /*************************/ |
|---|
| 48 | /* Chip Select # 3, POD1B */ |
|---|
| 49 | /*************************/ |
|---|
| 50 | /* CS is programmed in the driver */ |
|---|
| 51 | |
|---|
| 52 | nop |
|---|
| 53 | .set reorder |
|---|
| 54 | |
|---|