version 1.3.4.2, 2012/11/28 22:40:22 |
version 1.4, 2013/10/28 22:51:16 |
Line 101 static const struct bcm_locators bcmccb_ |
|
Line 101 static const struct bcm_locators bcmccb_ |
|
{ "bcmtmr", TIMER1_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 2, { IRQ_TIMER1_1, IRQ_TIMER1_2 } }, |
{ "bcmtmr", TIMER1_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 2, { IRQ_TIMER1_1, IRQ_TIMER1_2 } }, |
{ "bcmsw", SRAB_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, }, |
{ "bcmsw", SRAB_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, }, |
{ "bcmcom", UART2_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_UART2 } }, |
{ "bcmcom", UART2_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_UART2 } }, |
{ "bcmi2c", SMBUS_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_SMBUS } }, |
#ifdef BCM5301X |
|
{ "bcmi2c", SMBUS1_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_SMBUS1 } }, |
|
#endif |
|
#ifdef BCM536XX |
|
{ "bcmi2c", SMBUS1_BASE, 0x1000, 1, 1, { IRQ_SMBUS1 } }, |
|
{ "bcmi2c", SMBUS2_BASE, 0x1000, 2, 1, { IRQ_SMBUS2 } }, |
|
#endif |
{ "bcmcru", CRU_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT }, |
{ "bcmcru", CRU_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT }, |
{ "bcmdmu", DMU_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT }, |
{ "bcmdmu", DMU_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT }, |
{ "bcmddr", DDR_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_DDR_CONTROLLER } }, |
{ "bcmddr", DDR_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_DDR_CONTROLLER } }, |
{ "bcmeth", GMAC0_BASE, 0x1000, 0, 1, { IRQ_GMAC0 }, }, |
{ "bcmeth", GMAC0_BASE, 0x1000, 0, 1, { IRQ_GMAC0 }, }, |
{ "bcmeth", GMAC1_BASE, 0x1000, 1, 1, { IRQ_GMAC1 }, }, |
{ "bcmeth", GMAC1_BASE, 0x1000, 1, 1, { IRQ_GMAC1 }, }, |
|
#ifdef GMAC2_BASE |
{ "bcmeth", GMAC2_BASE, 0x1000, 2, 1, { IRQ_GMAC2 }, }, |
{ "bcmeth", GMAC2_BASE, 0x1000, 2, 1, { IRQ_GMAC2 }, }, |
|
#endif |
// { "bcmeth", GMAC3_BASE, 0x1000, 3, 1, { IRQ_GMAC3 }, }, |
// { "bcmeth", GMAC3_BASE, 0x1000, 3, 1, { IRQ_GMAC3 }, }, |
{ "bcmpax", PCIE0_BASE, 0x1000, 0, 6, { IRQ_PCIE_INT0 }, }, |
{ "bcmpax", PCIE0_BASE, 0x1000, 0, 6, { IRQ_PCIE_INT0 }, }, |
{ "bcmpax", PCIE1_BASE, 0x1000, 1, 6, { IRQ_PCIE_INT1 }, }, |
{ "bcmpax", PCIE1_BASE, 0x1000, 1, 6, { IRQ_PCIE_INT1 }, }, |
|
#ifdef PCIE2_BASE |
{ "bcmpax", PCIE2_BASE, 0x1000, 2, 6, { IRQ_PCIE_INT2 }, }, |
{ "bcmpax", PCIE2_BASE, 0x1000, 2, 6, { IRQ_PCIE_INT2 }, }, |
|
#endif |
|
#ifdef SDIO_BASE |
{ "sdhc", SDIO_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_SDIO } }, |
{ "sdhc", SDIO_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_SDIO } }, |
|
#endif |
|
{ "bcmnand", NAND_BASE, 0x1000, BCMCCBCF_PORT_DEFAULT, 8, |
|
{ IRQ_NAND_RD_MISS, IRQ_NAND_BLK_ERASE_COMP, |
|
IRQ_NAND_COPY_BACK_COMP, IRQ_NAND_PGM_PAGE_COMP, |
|
IRQ_NAND_RO_CTLR_READY, IRQ_NAND_RB_B, |
|
IRQ_NAND_ECC_MIPS_UNCORR, IRQ_NAND_ECC_MIPS_CORR } }, |
{ "bcmusb", EHCI_BASE, 0x2000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_USB2 } }, |
{ "bcmusb", EHCI_BASE, 0x2000, BCMCCBCF_PORT_DEFAULT, 1, { IRQ_USB2 } }, |
}; |
}; |
|
|
Line 159 bcmccb_mainbus_attach(device_t parent, d |
|
Line 176 bcmccb_mainbus_attach(device_t parent, d |
|
aprint_naive("\n"); |
aprint_naive("\n"); |
aprint_normal("\n"); |
aprint_normal("\n"); |
|
|
bcm53xx_srab_init(); // need this for ethernet. |
|
|
|
for (size_t i = 0; i < __arraycount(bcmccb_locators); i++) { |
for (size_t i = 0; i < __arraycount(bcmccb_locators); i++) { |
|
const struct bcm_locators *loc = &bcmccb_locators[i]; |
|
|
|
#ifdef BCM5301X |
|
if (strcmp(loc->loc_name, "bcmsw") == 0) { |
|
bcm53xx_srab_init(); // need this for ethernet. |
|
} |
|
#endif |
|
|
struct bcmccb_attach_args ccbaa = { |
struct bcmccb_attach_args ccbaa = { |
.ccbaa_ccb_bst = sc->sc_bst, |
.ccbaa_ccb_bst = sc->sc_bst, |
.ccbaa_ccb_bsh = sc->sc_bsh, |
.ccbaa_ccb_bsh = sc->sc_bsh, |
.ccbaa_dmat = &bcm53xx_dma_tag, |
.ccbaa_dmat = &bcm53xx_dma_tag, |
.ccbaa_loc = bcmccb_locators[i], |
.ccbaa_loc = *loc, |
}; |
}; |
|
|
/* |
/* |
* If the device might be in reset, let's try to take it |
* If the device might be in reset, let's try to take it |
* out of it. If it fails or is unavailable, skip it. |
* out of it. If it fails or is unavailable, skip it. |
*/ |
*/ |
if (!bcm53xx_idm_device_init(&bcmccb_locators[i], |
if (!bcm53xx_idm_device_init(loc, sc->sc_bst, sc->sc_bsh)) |
sc->sc_bst, sc->sc_bsh)) |
|
continue; |
continue; |
|
|
cfdata_t cf = config_search_ia(bcmccb_find, self, "bcmccb", |
cfdata_t cf = config_search_ia(bcmccb_find, self, "bcmccb", |