Mercurial > ecos
view packages/hal/arm/iq80310/current/include/hal_platform_ints.h @ 154:e2d866e32dac
Merge from eCos master repository on 2001-02-26-23:18:05-GMT
| author | jlarmour |
|---|---|
| date | Tue, 27 Feb 2001 01:21:45 +0000 |
| parents | f935b880e96c |
| children | e0c0827131d1 |
line wrap: on
line source
#ifndef CYGONCE_HAL_PLATFORM_INTS_H #define CYGONCE_HAL_PLATFORM_INTS_H //========================================================================== // // hal_platform_ints.h // // HAL Interrupt and clock support // //========================================================================== //####COPYRIGHTBEGIN#### // // ------------------------------------------- // The contents of this file are subject to the Red Hat eCos Public License // Version 1.1 (the "License"); you may not use this file except in // compliance with the License. You may obtain a copy of the License at // http://www.redhat.com/ // // Software distributed under the License is distributed on an "AS IS" // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the // License for the specific language governing rights and limitations under // the License. // // The Original Code is eCos - Embedded Configurable Operating System, // released September 30, 1998. // // The Initial Developer of the Original Code is Red Hat. // Portions created by Red Hat are // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. // All Rights Reserved. // ------------------------------------------- // //####COPYRIGHTEND#### //========================================================================== //#####DESCRIPTIONBEGIN#### // // Author(s): msalter // Contributors: // Date: 2000-10-10 // Purpose: Define Interrupt support // Description: The interrupt details for the IQ80310 are defined here. // Usage: // #include <cyg/hal/hal_platform_ints.h> // ... // // //####DESCRIPTIONEND#### // //========================================================================== // *** 80200 CPU *** #define CYGNUM_HAL_INTERRUPT_reserved0 0 #define CYGNUM_HAL_INTERRUPT_PMU_PMN0_OVFL 1 // See Ch.12 - Performance Mon. #define CYGNUM_HAL_INTERRUPT_PMU_PMN1_OVFL 2 // PMU counter 0/1 overflow #define CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL 3 // PMU clock overflow #define CYGNUM_HAL_INTERRUPT_BCU_INTERRUPT 4 // See Ch.11 - Bus Control Unit #define CYGNUM_HAL_INTERRUPT_NIRQ 5 // external IRQ #define CYGNUM_HAL_INTERRUPT_NFIQ 6 // external FIQ // *** XINT6 interrupts *** #define CYGNUM_HAL_INTERRUPT_DMA_0 7 #define CYGNUM_HAL_INTERRUPT_DMA_1 8 #define CYGNUM_HAL_INTERRUPT_DMA_2 9 #define CYGNUM_HAL_INTERRUPT_GTSC 10 // Global Time Stamp Counter #define CYGNUM_HAL_INTERRUPT_PEC 11 // Performance Event Counter #define CYGNUM_HAL_INTERRUPT_AAIP 12 // application accelerator unit // *** XINT7 interrupts *** // I2C interrupts #define CYGNUM_HAL_INTERRUPT_I2C_TX_EMPTY 13 #define CYGNUM_HAL_INTERRUPT_I2C_RX_FULL 14 #define CYGNUM_HAL_INTERRUPT_I2C_BUS_ERR 15 #define CYGNUM_HAL_INTERRUPT_I2C_STOP 16 #define CYGNUM_HAL_INTERRUPT_I2C_LOSS 17 #define CYGNUM_HAL_INTERRUPT_I2C_ADDRESS 18 // Messaging Unit interrupts #define CYGNUM_HAL_INTERRUPT_MESSAGE_0 19 #define CYGNUM_HAL_INTERRUPT_MESSAGE_1 20 #define CYGNUM_HAL_INTERRUPT_DOORBELL 21 #define CYGNUM_HAL_INTERRUPT_NMI_DOORBELL 22 // FIQ #define CYGNUM_HAL_INTERRUPT_QUEUE_POST 23 #define CYGNUM_HAL_INTERRUPT_OUTBOUND_QUEUE_FULL 24 // FIQ #define CYGNUM_HAL_INTERRUPT_INDEX_REGISTER 25 // PCI Address Translation Unit #define CYGNUM_HAL_INTERRUPT_BIST 26 // *** External board interrupts (XINT3) *** #define CYGNUM_HAL_INTERRUPT_TIMER 27 // external timer #define CYGNUM_HAL_INTERRUPT_ETHERNET 28 // onboard enet #define CYGNUM_HAL_INTERRUPT_SERIAL_A 29 // 16x50 uart A #define CYGNUM_HAL_INTERRUPT_SERIAL_B 30 // 16x50 uart B #define CYGNUM_HAL_INTERRUPT_PCI_S_INTD 31 // secondary PCI INTD // The hardware doesn't (yet?) provide masking or status for these // even though they can trigger cpu interrupts. ISRs will need to // poll the device to see if the device actually triggered the // interrupt. #define CYGNUM_HAL_INTERRUPT_PCI_S_INTC 32 // secondary PCI INTC #define CYGNUM_HAL_INTERRUPT_PCI_S_INTB 33 // secondary PCI INTB #define CYGNUM_HAL_INTERRUPT_PCI_S_INTA 34 // secondary PCI INTA // *** NMI Interrupts go to FIQ *** #define CYGNUM_HAL_INTERRUPT_MCU_ERR 35 #define CYGNUM_HAL_INTERRUPT_PATU_ERR 36 #define CYGNUM_HAL_INTERRUPT_SATU_ERR 37 #define CYGNUM_HAL_INTERRUPT_PBDG_ERR 38 #define CYGNUM_HAL_INTERRUPT_SBDG_ERR 39 #define CYGNUM_HAL_INTERRUPT_DMA0_ERR 40 #define CYGNUM_HAL_INTERRUPT_DMA1_ERR 41 #define CYGNUM_HAL_INTERRUPT_DMA2_ERR 42 #define CYGNUM_HAL_INTERRUPT_MU_ERR 43 #define CYGNUM_HAL_INTERRUPT_reserved52 44 #define CYGNUM_HAL_INTERRUPT_AAU_ERR 45 #define CYGNUM_HAL_INTERRUPT_BIU_ERR 46 // *** ATU FIQ sources *** #define CYGNUM_HAL_INTERRUPT_P_SERR 47 #define CYGNUM_HAL_INTERRUPT_S_SERR 48 #define CYGNUM_HAL_ISR_MIN 0 #define CYGNUM_HAL_ISR_MAX 48 #define CYGNUM_HAL_ISR_COUNT (CYGNUM_HAL_ISR_MAX+1) // The vector used by the Real time clock #define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_TIMER //#define CYGNUM_HAL_INTERRUPT_RTC CYGNUM_HAL_INTERRUPT_PMU_CCNT_OVFL extern void hal_delay_us(cyg_uint32 usecs); #define HAL_DELAY_US(n) hal_delay_us(n); //---------------------------------------------------------------------------- // Reset. #include <cyg/hal/hal_iq80310.h> // registers #include <cyg/hal/hal_io.h> // IO macros // FIXME - Can we reset the board? #define HAL_PLATFORM_RESET() CYG_EMPTY_STATEMENT #define HAL_PLATFORM_RESET_ENTRY 0x00000000 #endif // CYGONCE_HAL_PLATFORM_INTS_H
