|
@@ -1384,14 +1384,94 @@ trap_reloc:
|
|
|
/**************************************************************************/
|
|
|
#ifdef CONFIG_405EP
|
|
|
ppc405ep_init:
|
|
|
+
|
|
|
+#ifdef CONFIG_BUBINGA405EP
|
|
|
+ /*
|
|
|
+ * Initialize EBC chip selects 1 & 4 and GPIO pins (for alternate
|
|
|
+ * function) to support FPGA and NVRAM accesses below.
|
|
|
+ */
|
|
|
+
|
|
|
+ lis r3,GPIO0_OSRH@h /* config GPIO output select */
|
|
|
+ ori r3,r3,GPIO0_OSRH@l
|
|
|
+ lis r4,CFG_GPIO0_OSRH@h
|
|
|
+ ori r4,r4,CFG_GPIO0_OSRH@l
|
|
|
+ stw r4,0(r3)
|
|
|
+ lis r3,GPIO0_OSRL@h
|
|
|
+ ori r3,r3,GPIO0_OSRL@l
|
|
|
+ lis r4,CFG_GPIO0_OSRL@h
|
|
|
+ ori r4,r4,CFG_GPIO0_OSRL@l
|
|
|
+ stw r4,0(r3)
|
|
|
+
|
|
|
+ lis r3,GPIO0_ISR1H@h /* config GPIO input select */
|
|
|
+ ori r3,r3,GPIO0_ISR1H@l
|
|
|
+ lis r4,CFG_GPIO0_ISR1H@h
|
|
|
+ ori r4,r4,CFG_GPIO0_ISR1H@l
|
|
|
+ stw r4,0(r3)
|
|
|
+ lis r3,GPIO0_ISR1L@h
|
|
|
+ ori r3,r3,GPIO0_ISR1L@l
|
|
|
+ lis r4,CFG_GPIO0_ISR1L@h
|
|
|
+ ori r4,r4,CFG_GPIO0_ISR1L@l
|
|
|
+ stw r4,0(r3)
|
|
|
+
|
|
|
+ lis r3,GPIO0_TSRH@h /* config GPIO three-state select */
|
|
|
+ ori r3,r3,GPIO0_TSRH@l
|
|
|
+ lis r4,CFG_GPIO0_TSRH@h
|
|
|
+ ori r4,r4,CFG_GPIO0_TSRH@l
|
|
|
+ stw r4,0(r3)
|
|
|
+ lis r3,GPIO0_TSRL@h
|
|
|
+ ori r3,r3,GPIO0_TSRL@l
|
|
|
+ lis r4,CFG_GPIO0_TSRL@h
|
|
|
+ ori r4,r4,CFG_GPIO0_TSRL@l
|
|
|
+ stw r4,0(r3)
|
|
|
+
|
|
|
+ lis r3,GPIO0_TCR@h /* config GPIO driver output enables */
|
|
|
+ ori r3,r3,GPIO0_TCR@l
|
|
|
+ lis r4,CFG_GPIO0_TCR@h
|
|
|
+ ori r4,r4,CFG_GPIO0_TCR@l
|
|
|
+ stw r4,0(r3)
|
|
|
+
|
|
|
+ li r3,pb1ap /* program EBC bank 1 for RTC access */
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB1AP@h
|
|
|
+ ori r3,r3,CFG_EBC_PB1AP@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+ li r3,pb1cr
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB1CR@h
|
|
|
+ ori r3,r3,CFG_EBC_PB1CR@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+
|
|
|
+ li r3,pb1ap /* program EBC bank 1 for RTC access */
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB1AP@h
|
|
|
+ ori r3,r3,CFG_EBC_PB1AP@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+ li r3,pb1cr
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB1CR@h
|
|
|
+ ori r3,r3,CFG_EBC_PB1CR@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+
|
|
|
+ li r3,pb4ap /* program EBC bank 4 for FPGA access */
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB4AP@h
|
|
|
+ ori r3,r3,CFG_EBC_PB4AP@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+ li r3,pb4cr
|
|
|
+ mtdcr ebccfga,r3
|
|
|
+ lis r3,CFG_EBC_PB4CR@h
|
|
|
+ ori r3,r3,CFG_EBC_PB4CR@l
|
|
|
+ mtdcr ebccfgd,r3
|
|
|
+#endif
|
|
|
+
|
|
|
+ addi r3,0,CPC0_PCI_HOST_CFG_EN
|
|
|
+#ifdef CONFIG_BUBINGA405EP
|
|
|
/*
|
|
|
!-----------------------------------------------------------------------
|
|
|
! Check FPGA for PCI internal/external arbitration
|
|
|
! If board is set to internal arbitration, update cpc0_pci
|
|
|
!-----------------------------------------------------------------------
|
|
|
*/
|
|
|
- addi r3,0,CPC0_PCI_HOST_CFG_EN
|
|
|
-#ifdef CONFIG_BUBINGA405EP
|
|
|
addis r5,r0,FPGA_REG1@h /* set offset for FPGA_REG1 */
|
|
|
ori r5,r5,FPGA_REG1@l
|
|
|
lbz r5,0x0(r5) /* read to get PCI arb selection */
|