added interrupt service routine for PCI errors. Fixed XLB macros (contained double undescores for _MBAR)

This commit is contained in:
Markus Fröschle
2013-11-08 13:59:39 +00:00
parent 527f443758
commit 722b6213aa
3 changed files with 20 additions and 13 deletions

View File

@@ -24,17 +24,17 @@
*********************************************************************/ *********************************************************************/
/* Register read/write macros */ /* Register read/write macros */
#define MCF_XLB_XARB_CFG (*(volatile uint32_t*)(&__MBAR[0x240])) #define MCF_XLB_XARB_CFG (*(volatile uint32_t*)(&_MBAR[0x240]))
#define MCF_XLB_XARB_VER (*(volatile uint32_t*)(&__MBAR[0x244])) #define MCF_XLB_XARB_VER (*(volatile uint32_t*)(&_MBAR[0x244]))
#define MCF_XLB_XARB_SR (*(volatile uint32_t*)(&__MBAR[0x248])) #define MCF_XLB_XARB_SR (*(volatile uint32_t*)(&_MBAR[0x248]))
#define MCF_XLB_XARB_IMR (*(volatile uint32_t*)(&__MBAR[0x24C])) #define MCF_XLB_XARB_IMR (*(volatile uint32_t*)(&_MBAR[0x24C]))
#define MCF_XLB_XARB_ADRCAP (*(volatile uint32_t*)(&__MBAR[0x250])) #define MCF_XLB_XARB_ADRCAP (*(volatile uint32_t*)(&_MBAR[0x250]))
#define MCF_XLB_XARB_SIGCAP (*(volatile uint32_t*)(&__MBAR[0x254])) #define MCF_XLB_XARB_SIGCAP (*(volatile uint32_t*)(&_MBAR[0x254]))
#define MCF_XLB_XARB_ADRTO (*(volatile uint32_t*)(&__MBAR[0x258])) #define MCF_XLB_XARB_ADRTO (*(volatile uint32_t*)(&_MBAR[0x258]))
#define MCF_XLB_XARB_DATTO (*(volatile uint32_t*)(&__MBAR[0x25C])) #define MCF_XLB_XARB_DATTO (*(volatile uint32_t*)(&_MBAR[0x25C]))
#define MCF_XLB_XARB_BUSTO (*(volatile uint32_t*)(&__MBAR[0x260])) #define MCF_XLB_XARB_BUSTO (*(volatile uint32_t*)(&_MBAR[0x260]))
#define MCF_XLB_XARB_PRIEN (*(volatile uint32_t*)(&__MBAR[0x264])) #define MCF_XLB_XARB_PRIEN (*(volatile uint32_t*)(&_MBAR[0x264]))
#define MCF_XLB_XARB_PRI (*(volatile uint32_t*)(&__MBAR[0x268])) #define MCF_XLB_XARB_PRI (*(volatile uint32_t*)(&_MBAR[0x268]))
/* Bit definitions and macros for MCF_XLB_XARB_CFG */ /* Bit definitions and macros for MCF_XLB_XARB_CFG */

View File

@@ -23,9 +23,9 @@
*/ */
#include <stdint.h> #include <stdint.h>
#include "MCF5475.h"
#include "bas_utils.h" #include "bas_utils.h"
#include "interrupts.h" #include "interrupts.h"
#include "MCF5475.h"
extern uint8_t _rtl_vbr[]; extern uint8_t _rtl_vbr[];
#define VBR ((uint32_t **) &_rtl_vbr[0]) #define VBR ((uint32_t **) &_rtl_vbr[0])
@@ -93,3 +93,10 @@ int register_handler(uint8_t priority, uint8_t intr, void (*func)())
return 0; return 0;
} }
__attribute__((interrupt)) void pci_arb_interrupt(void)
{
xprintf("XLBARB slave error interrupt\r\n");
MCF_XLB_XARB_SR |= ~MCF_XLB_XARB_SR_SEA;
}

View File

@@ -447,7 +447,7 @@ void init_eport(void)
MCF_EPORT_EPPAR_EPPA1(MCF_EPORT_EPPAR_FALLING); MCF_EPORT_EPPAR_EPPA1(MCF_EPORT_EPPAR_FALLING);
MCF_EPORT_EPDDR = 0; /* clear data direction register. All pins as input */ MCF_EPORT_EPDDR = 0; /* clear data direction register. All pins as input */
MCF_EPORT_EPFR = 0; /* clear all EPORT interrupt flags */ MCF_EPORT_EPFR = 0; /* clear all EPORT interrupt flags */
MCF_EPORT_EPIER = 0; /* disable all EPORT interrupts (for now) */ MCF_EPORT_EPIER = 0xfe; /* enable all EPORT interrupts (for now) */
} }
void init_xlbus_arbiter(void) void init_xlbus_arbiter(void)