void hal_plf_pci_init(void) { #if defined(CYG_HAL_STARTUP_ROM) || defined(CYG_HAL_STARTUP_ROMRAM) HAL_PCI_RESET_ASSERT(); HAL_PCI_CLOCK_DISABLE(); // Set GPIO line direction HAL_GPIO_OUTPUT_ENABLE(PCI_CLK_GPIO); HAL_GPIO_OUTPUT_ENABLE(PCI_RESET_GPIO); HAL_GPIO_OUTPUT_DISABLE(PCI_INTA_GPIO); HAL_GPIO_OUTPUT_DISABLE(PCI_INTB_GPIO); HAL_GPIO_OUTPUT_DISABLE(PCI_INTC_GPIO); HAL_GPIO_OUTPUT_DISABLE(PCI_INTD_GPIO); // configure PCI interrupt lines for active low irq HAL_INTERRUPT_CONFIGURE(INTA, 1, 0); HAL_INTERRUPT_CONFIGURE(INTB, 1, 0); HAL_INTERRUPT_CONFIGURE(INTC, 1, 0); HAL_INTERRUPT_CONFIGURE(INTD, 1, 0); // wait 1ms to satisfy "minimum reset assertion time" of the PCI spec. HAL_DELAY_US(1000); HAL_PCI_CLOCK_CONFIG(); HAL_PCI_CLOCK_ENABLE(); // wait 100us to satisfy "minimum reset assertion time from clock stable" // requirement of the PCI spec. HAL_DELAY_US(100); HAL_PCI_RESET_DEASSERT(); #endif }
static cyg_uint8 eeprom_getb(int more) { int i; cyg_uint8 b = 0; HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA); hal_delay_us(5); for (i = 7; i >= 0; i--) { b <<= 1; if (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) b |= 1; CLK_HI(); hal_delay_us(5); CLK_LO(); hal_delay_us(5); } HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA); if (more) DATA_LO(); else DATA_HI(); hal_delay_us(5); CLK_HI(); hal_delay_us(5); CLK_LO(); hal_delay_us(5); return b; }
static int eeprom_putb(cyg_uint8 b) { int i; for (i = 7; i >= 0; i--) { if (b & (1 << i)) DATA_HI(); else DATA_LO(); CLK_HI(); hal_delay_us(5); CLK_LO(); hal_delay_us(5); } HAL_GPIO_OUTPUT_DISABLE(GPIO_EEPROM_SDA); CLK_HI(); hal_delay_us(5); i = (*IXP425_GPINR & (1 << GPIO_EEPROM_SDA)) ? 0 : 1; CLK_LO(); hal_delay_us(5); DATA_HI(); HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA); return i; }
// // Platform specific initialization // void plf_hardware_init(void) { // GPIO(15) used for ENET clock HAL_GPIO_OUTPUT_ENABLE(15); *IXP425_GPCLKR |= GPCLKR_CLK1_ENABLE; *IXP425_GPCLKR |= GPCLKR_CLK1_PCLK2; HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SCL); HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SCL); HAL_GPIO_OUTPUT_SET(GPIO_EEPROM_SDA); HAL_GPIO_OUTPUT_ENABLE(GPIO_EEPROM_SDA); // ENET-0 IRQ line HAL_GPIO_OUTPUT_DISABLE(GPIO_ENET0_INT_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_ETH0, 1, 0); // ENET-1 IRQ line HAL_GPIO_OUTPUT_DISABLE(GPIO_ENET1_INT_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_ETH1, 1, 0); // HSS IRQ lines HAL_GPIO_OUTPUT_DISABLE(GPIO_HSS0_INT_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_HSS0, 1, 0); HAL_GPIO_OUTPUT_DISABLE(GPIO_HSS1_INT_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_HSS1, 1, 0); // DSL IRQ line HAL_GPIO_OUTPUT_DISABLE(GPIO_DSL_INT_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSL, 1, 0); *IXP425_EXP_CS4 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN); *IXP425_EXP_CS5 = (EXP_ADDR_T(3) | EXP_SETUP_T(3) | EXP_STROBE_T(15) | EXP_HOLD_T(3) | \ EXP_RECOVERY_T(15) | EXP_SZ_512 | EXP_WR_EN | EXP_CS_EN); #ifdef CYGPKG_IO_PCI extern void hal_plf_pci_init(void); hal_plf_pci_init(); #endif }
void plf_hardware_init(void) { // POWER_FAIL IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_PWR_FAIL_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_PWR_FAIL, 1, 0); // DSL IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_DSL_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSL, 1, 0); // SLIC_A IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_SLIC_A_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_SLIC_A, 1, 0); // SLIC_B IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_SLIC_B_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_SLIC_B, 1, 0); // DSP IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_DSP_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_DSP, 1, 0); // IDE IRQ HAL_GPIO_OUTPUT_DISABLE(GPIO_IDE_IRQ_N); HAL_INTERRUPT_CONFIGURE(CYGNUM_HAL_INTERRUPT_IDE, 1, 0); // IO RESET_N (DSP/SLICs) HAL_GPIO_OUTPUT_SET(GPIO_IO_RESET_N); HAL_GPIO_OUTPUT_ENABLE(GPIO_IO_RESET_N); // SPI_CS1_N HAL_GPIO_OUTPUT_SET(GPIO_SPI_CS1_N); HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_CS1_N); // Eth PHY // SPI_CS0_N HAL_GPIO_OUTPUT_SET(GPIO_SPI_CS0_N); HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_CS0_N); // SLICs // SPI_SCK HAL_GPIO_OUTPUT_CLEAR(GPIO_SPI_SCK); HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_SCK); // SPI_SDI HAL_GPIO_OUTPUT_CLEAR(GPIO_SPI_SDI); HAL_GPIO_OUTPUT_ENABLE(GPIO_SPI_SDI); // SPI_SDI HAL_GPIO_OUTPUT_DISABLE(GPIO_SPI_SDI); #ifdef CYGPKG_IO_PCI extern void hal_plf_pci_init(void); hal_plf_pci_init(); #endif }