summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/sparc/shared
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-07 14:34:18 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-09-07 14:34:18 +0000
commit13279f5dcfec1e9efedaa01a8c53e510aec8e5fe (patch)
treed887079dfd8ca2c43fa0e8a42472578e76521cbd /c/src/lib/libbsp/sparc/shared
parent2007-09-07 Daniel Hellstrom <daniel@gaisler.com> (diff)
downloadrtems-13279f5dcfec1e9efedaa01a8c53e510aec8e5fe.tar.bz2
2007-09-07 Daniel Hellstrom <daniel@gaisler.com>
* shared/1553/b1553brm.c, shared/can/grcan.c, shared/can/grcan_rasta.c, shared/can/occan.c, shared/spw/grspw.c, shared/spw/grspw_pci.c, shared/uart/apbuart.c: Remove warnings.
Diffstat (limited to 'c/src/lib/libbsp/sparc/shared')
-rw-r--r--c/src/lib/libbsp/sparc/shared/1553/b1553brm.c51
-rw-r--r--c/src/lib/libbsp/sparc/shared/can/grcan.c3
-rw-r--r--c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c8
-rw-r--r--c/src/lib/libbsp/sparc/shared/can/occan.c31
-rw-r--r--c/src/lib/libbsp/sparc/shared/spw/grspw.c12
-rw-r--r--c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c1
-rw-r--r--c/src/lib/libbsp/sparc/shared/uart/apbuart.c6
7 files changed, 60 insertions, 52 deletions
diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
index f60cfa5771..6093f0b806 100644
--- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
+++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c
@@ -39,6 +39,8 @@
#ifndef B1553BRM_REG_INT
#define B1553BRM_REG_INT(handler,irqno,arg) set_vector(handler,(irqno)+0x10,1)
+ #undef B1553BRM_DEFINE_INTHANDLER
+ #define B1553BRM_DEFINE_INTHANDLER
#endif
/* default to 128K memory layout */
@@ -126,6 +128,11 @@ struct circ_buf_1 {
};
#endif
+struct irq_log_list {
+ volatile unsigned short iiw;
+ volatile unsigned short iaw;
+};
+
typedef struct {
unsigned int memarea_base;
@@ -167,10 +174,7 @@ typedef struct {
unsigned short unused[(8*1024-(128*8+128*32))-16*2];
#endif
/* interrupt log at 64 bytes from end */
- struct {
- unsigned short iiw;
- unsigned short iaw;
- } irq_logs[16];
+ struct irq_log_list irq_logs[16];
} *bcmem;
#if defined(DMA_MEM_128K)
@@ -203,10 +207,7 @@ typedef struct {
unsigned short unused[(64*1024-(4*32*4+4*32*9*34))-16*2];
/* interrupt log at 64 bytes from end */
- struct {
- unsigned short iiw;
- unsigned short iaw;
- } irq_logs[16];
+ struct irq_log_list irq_logs[16];
} *rtmem;
#elif defined(DMA_MEM_16K)
/* Memory structure of a RT being inited, just used
@@ -239,20 +240,14 @@ typedef struct {
unsigned short unused[8*1024 -(4*32*4 +3*32*2*34 +1*32*1*34) -16*2];
/* interrupt log at 64 bytes from end */
- struct {
- unsigned short iiw;
- unsigned short iaw;
- } irq_logs[16];
+ struct irq_log_list irq_logs[16];
} *rtmem;
#else
#error You must define one DMA_MEM_???K
#endif
/* Interrupt log list */
- struct irq_log_list {
- volatile unsigned short iiw;
- volatile unsigned short iaw;
- } *irq_log;
+ struct irq_log_list *irq_log;
unsigned int irq;
/* Received events waiting to be read */
@@ -291,7 +286,9 @@ static unsigned int allbrm_cfg_clkdiv;
static unsigned int allbrm_cfg_freq;
static void brm_interrupt(brm_priv *brm);
+#ifdef B1553BRM_DEFINE_INTHANDLER
static void b1553brm_interrupt_handler(rtems_vector_number v);
+#endif
#define OFS(ofs) (((unsigned int)&ofs & 0x1ffff)>>1)
@@ -361,7 +358,7 @@ int B1553BRM_PREFIX(_register)(amba_confarea_type *bus, unsigned int clksel, uns
#ifdef B1553BRM_LOCAL_MEM
allbrm_memarea = B1553BRM_LOCAL_MEM_ADR;
#else
- allbrm_memarea = NULL;
+ allbrm_memarea = 0;
#endif
/* Save clksel, clkdiv and brm_freq for later use */
@@ -419,7 +416,7 @@ static rtems_device_driver rt_init(brm_priv *brm) {
return RTEMS_NO_MEMORY;
}
- brm->irq_log = &brm->rtmem->irq_logs[0];
+ brm->irq_log = (struct irq_log_list *)&brm->rtmem->irq_logs[0];
brm->regs->ctrl = 0x1912; /* enable both buses, circular 1 bufmode, broadcast, interrupt log */
brm->regs->oper = 0x0900; /* configure as RT, with addr 1 */
@@ -496,7 +493,7 @@ static rtems_device_driver bc_init(brm_priv *brm){
brm->bcmem = (void *)brm->mem;
brm->rtmem = NULL;
- brm->irq_log = &brm->bcmem->irq_logs[0];
+ brm->irq_log = (struct irq_log_list *)&brm->bcmem->irq_logs[0];
brm->head = brm->tail = 0;
brm->rx_blocking = brm->tx_blocking = 1;
@@ -543,7 +540,7 @@ static rtems_device_driver bm_init(brm_priv *brm) {
}
/* end of 16K, fits all current modes (128K, 16K) */
- brm->irq_log = &brm->mem[8*1024-16*2];
+ brm->irq_log = (struct irq_log_list *)&brm->mem[8*1024-16*2];
brm->regs->ctrl = 0x0006; /* ping pong enable and enable interrupt log */
brm->regs->oper = 0x0A00; /* configure as BM */
@@ -589,7 +586,7 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
}
/* allocate & zero memory for the brm devices */
- brms = malloc(sizeof(*brms)*dev_cnt);
+ brms = (brm_priv *)malloc(sizeof(*brms)*dev_cnt);
if ( !brms ){
printk("BRM: Failed to allocate SW memory\n\r");
return -1;
@@ -601,10 +598,10 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
*/
#define BRM_DESCS_PER_CTRL 128
if ( allbrm_memarea ){
- mem = allbrm_memarea;
+ mem = (char *)allbrm_memarea;
}else{
/* sizeof(struct desc_table) * BRM_DESCS_PER_CTRL * dev_cnt */
- mem = malloc( (128*1024) * (dev_cnt+1)); /* 128k per core + 128k for alignment */
+ mem = (char *)malloc( (128*1024) * (dev_cnt+1)); /* 128k per core + 128k for alignment */
if ( !mem ){
free(brms);
printk("BRM: Failed to allocate HW memory\n\r");
@@ -680,7 +677,7 @@ static rtems_device_driver brm_initialize(rtems_device_major_number major, rtems
brm->memarea_base = (unsigned int)&mem[(128*1024) * minor];
brm->desc = (struct desc_table *) brm->memarea_base;
brm->mem = (volatile unsigned short *) brm->memarea_base;
- brm->irq_log = (void *)(brm->memarea_base + (0xFFE0<<1)); /* last 64byte */
+ brm->irq_log = (struct irq_log_list *)(brm->memarea_base + (0xFFE0<<1)); /* last 64byte */
brm->bm_event = NULL;
brm->rt_event = NULL;
@@ -1126,6 +1123,7 @@ static rtems_device_driver brm_control(rtems_device_major_number major, rtems_de
return RTEMS_SUCCESSFUL;
}
+#ifdef B1553BRM_DEFINE_INTHANDLER
static void b1553brm_interrupt_handler(rtems_vector_number v){
int i;
/* find minor */
@@ -1136,14 +1134,15 @@ static void b1553brm_interrupt_handler(rtems_vector_number v){
}
}
}
+#endif
static void brm_interrupt(brm_priv *brm) {
unsigned short descriptor, current, pending, miw, wc, tmp;
unsigned short msgadr, iaw, iiw;
int len;
int signal_event=0;
- unsigned int event_status;
- #define SET_ERROR_DESCRIPTOR(descriptor) (event_status = (event_status & 0x0000ffff) | descriptor<<16);
+ unsigned int event_status=0;
+ #define SET_ERROR_DESCRIPTOR(descriptor) (event_status = (event_status & 0x0000ffff) | descriptor<<16)
while( (iiw=READ_REG(&brm->irq_log[brm->irq].iiw)) != 0xffff ){
iaw=READ_REG(&brm->irq_log[brm->irq].iaw);
diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan.c b/c/src/lib/libbsp/sparc/shared/can/grcan.c
index 2482414165..9ebe00a1d4 100644
--- a/c/src/lib/libbsp/sparc/shared/can/grcan.c
+++ b/c/src/lib/libbsp/sparc/shared/can/grcan.c
@@ -82,6 +82,8 @@
#ifndef GRCAN_REG_INT
#define GRCAN_REG_INT(handler,irqno,arg) set_vector(handler,irqno+0x10,1)
+ #undef GRCAN_DEFINE_INTHANDLER
+ #define GRCAN_DEFINE_INTHANDLER
#endif
#ifndef GRCAN_DEFAULT_BAUD
@@ -227,7 +229,6 @@ struct grcan_priv {
static int grcan_core_cnt;
struct grcan_priv *grcans;
static amba_confarea_type *amba_bus;
-static unsigned int ram_base;
struct grcan_device_info *grcan_cores;
static int grcan_core_cnt;
diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c b/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
index 5f6701fa4c..9dd9e55f20 100644
--- a/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
+++ b/c/src/lib/libbsp/sparc/shared/can/grcan_rasta.c
@@ -58,17 +58,17 @@ void (*grcan_rasta_int_reg)(void *handler, int irq, void *arg) = 0;
#define RX_BUF_SIZE 4096
#define STATIC_TX_BUF_ADDR(core) \
- (grcan_rasta_rambase+(core)*(STATIC_TX_BUF_SIZE+STATIC_RX_BUF_SIZE))
+ ((unsigned int *)\
+ (grcan_rasta_rambase+(core)*(STATIC_TX_BUF_SIZE+STATIC_RX_BUF_SIZE)))
#define STATIC_RX_BUF_ADDR(core) \
- (grcan_rasta_rambase+(core)*(STATIC_TX_BUF_SIZE+STATIC_RX_BUF_SIZE)+STATIC_RX_BUF_SIZE)
+ ((unsigned int *) \
+ (grcan_rasta_rambase+(core)*(STATIC_TX_BUF_SIZE+STATIC_RX_BUF_SIZE)+STATIC_RX_BUF_SIZE))
#define GRCAN_DEVNAME "/dev/grcan0"
#define GRCAN_DEVNAME_NO(devstr,no) ((devstr)[10]='0'+(no))
-static int grcan_rasta_calc_memoffs(int maxcores, int corenum, unsigned int *mem_base, unsigned int *mem_end, unsigned int *bdtable_base);
-
void grcan_rasta_interrupt_handler(int irq, void *pDev);
unsigned int grcan_rasta_rambase;
diff --git a/c/src/lib/libbsp/sparc/shared/can/occan.c b/c/src/lib/libbsp/sparc/shared/can/occan.c
index 3227957d9d..6b9dd47601 100644
--- a/c/src/lib/libbsp/sparc/shared/can/occan.c
+++ b/c/src/lib/libbsp/sparc/shared/can/occan.c
@@ -65,6 +65,8 @@ rtems_assoc_t errno_assoc[] = {
#ifndef OCCAN_REG_INT
#define OCCAN_REG_INT(handler,irq,arg) set_vector(handler,irq+0x10,1)
+ #undef OCCAN_DEFINE_INTHANDLER
+ #define OCCAN_DEFINE_INTHANDLER
#endif
/* Default to 40MHz system clock */
@@ -258,14 +260,14 @@ static int occan_set_speedregs(occan_priv *priv, occan_speed_regs *timing);
static int pelican_speed_auto(occan_priv *priv);
static void pelican_init(occan_priv *priv);
static void pelican_open(occan_priv *priv);
-static void pelican_close(occan_priv *priv);
static int pelican_start(occan_priv *priv);
static void pelican_stop(occan_priv *priv);
-static void pelican_exit(occan_priv *priv);
static int pelican_send(occan_priv *can, CANMsg *msg);
static void pelican_set_accept(occan_priv *priv, unsigned char *acode, unsigned char *amask);
static void occan_interrupt(occan_priv *can);
+#ifdef DEBUG_PRINT_REGMAP
static void pelican_regadr_print(pelican_regs *regs);
+#endif
/***** Driver related interface *****/
static rtems_device_driver occan_ioctl(rtems_device_major_number major, rtems_device_minor_number minor, void *arg);
@@ -274,8 +276,9 @@ static rtems_device_driver occan_read(rtems_device_major_number major, rtems_dev
static rtems_device_driver occan_close(rtems_device_major_number major, rtems_device_minor_number minor, void *arg);
static rtems_device_driver occan_open(rtems_device_major_number major, rtems_device_minor_number minor, void *arg);
static rtems_device_driver occan_initialize(rtems_device_major_number major, rtems_device_minor_number unused, void *arg);
+#ifdef OCCAN_DEFINE_INTHANDLER
static void occan_interrupt_handler(rtems_vector_number v);
-
+#endif
static int can_cores;
static occan_priv *cans;
static amba_confarea_type *amba_bus;
@@ -429,14 +432,6 @@ static void pelican_open(occan_priv *priv){
tmp = READ_REG(&priv->regs->intflags);
}
-static void pelican_close(occan_priv *priv){
-
- /* disable all interrupts */
- priv->regs->inten = 0;
-
- priv->regs->mode = PELICAN_MOD_RESET;
-}
-
static int pelican_start(occan_priv *priv){
unsigned char tmp;
/* Start HW communication */
@@ -509,11 +504,6 @@ static void pelican_stop(occan_priv *priv){
}
-static void pelican_exit(occan_priv *priv){
- /* reset core */
- priv->regs->mode = PELICAN_MOD_RESET;
-}
-
/* Try to send message "msg", if hardware txfifo is
* full, then -1 is returned.
*
@@ -595,6 +585,7 @@ static void pelican_set_accept(occan_priv *priv, unsigned char *acode, unsigned
*amask3 = amask[3];
}
+#ifdef DEBUG
static void pelican_regs_print(pelican_regs *regs){
printk("--- PELICAN 0x%lx ---\n\r",(unsigned int)regs);
printk(" MODE: 0x%02x\n\r",READ_REG(&regs->mode));
@@ -627,7 +618,9 @@ static void pelican_regs_print(pelican_regs *regs){
printk(" CLKDIV: 0x%02x\n\r",READ_REG(&regs->clkdiv));
printk("-------------------\n\r");
}
+#endif
+#ifdef DEBUG_PRINT_REGMAP
static void pelican_regadr_print(pelican_regs *regs){
printk("--- PELICAN 0x%lx ---\n\r",(unsigned int)regs);
printk(" MODE: 0x%lx\n\r",(unsigned int)&regs->mode);
@@ -717,7 +710,9 @@ static void pelican_regadr_print(pelican_regs *regs){
printk(" CLKDIV: 0x%lx\n\r",(unsigned int)&regs->clkdiv);
printk("-------------------\n\r");
}
+#endif
+#ifdef DEBUG
static void occan_stat_print(occan_stats *stats){
printk("----Stats----\n\r");
printk("rx_msgs: %d\n\r",stats->rx_msgs);
@@ -731,6 +726,7 @@ static void occan_stat_print(occan_stats *stats){
printk("tx_buf_err: %d\n\r",stats->tx_buf_error);
printk("-------------\n\r");
}
+#endif
/* This function calculates BTR0 BTR1 values for a given bitrate.
* Heavily based on mgt_mscan_bitrate() from peak driver, which
@@ -1391,7 +1387,6 @@ static rtems_device_driver occan_ioctl(rtems_device_major_number major, rtems_de
rtems_libio_ioctl_args_t *ioarg = (rtems_libio_ioctl_args_t *) arg;
struct occan_afilter *afilter;
occan_stats *dststats;
- unsigned char btr0, btr1;
unsigned int rxcnt,txcnt;
DBG("OCCAN: IOCTL %d\n\r",ioarg->command);
@@ -1794,6 +1789,7 @@ static void occan_interrupt(occan_priv *can){
}
}
+#ifdef OCCAN_DEFINE_INTHANDLER
static void occan_interrupt_handler(rtems_vector_number v){
int minor;
@@ -1805,6 +1801,7 @@ static void occan_interrupt_handler(rtems_vector_number v){
}
}
}
+#endif
#define OCCAN_DRIVER_TABLE_ENTRY { occan_initialize, occan_open, occan_close, occan_read, occan_write, occan_ioctl }
diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw.c b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
index aa01be4854..9ac6835ce3 100644
--- a/c/src/lib/libbsp/sparc/shared/spw/grspw.c
+++ b/c/src/lib/libbsp/sparc/shared/spw/grspw.c
@@ -67,6 +67,8 @@
#ifndef GRSPW_REG_INT
#define GRSPW_REG_INT(handler,irqno,arg) set_vector(handler,irqno+0x10,1)
+ #undef GRSPW_DEFINE_INTHANDLER
+ #define GRSPW_DEFINE_INTHANDLER
#endif
#include <bsp.h>
@@ -303,8 +305,8 @@ static unsigned int _MEM_READ(void *addr) {
#define SPW_PREPAREMASK_RX (SPW_DMACTRL_TXEN | SPW_DMACTRL_TXIE | SPW_DMACTRL_AI | SPW_DMACTRL_PR | SPW_DMACTRL_RA)
static int grspw_hw_init(GRSPW_DEV *pDev);
-static int grspw_hw_send(GRSPW_DEV *pDev, unsigned int hlen, unsigned char *hdr, unsigned int dlen, unsigned char *data);
-static int grspw_hw_receive(GRSPW_DEV *pDev,unsigned char *b,int c);
+static int grspw_hw_send(GRSPW_DEV *pDev, unsigned int hlen, char *hdr, unsigned int dlen, char *data);
+static int grspw_hw_receive(GRSPW_DEV *pDev,char *b,int c);
static int grspw_hw_startup (GRSPW_DEV *pDev, int timeout);
static int grspw_hw_stop (GRSPW_DEV *pDev, int rx, int tx);
static void grspw_hw_wait_rx_inactive(GRSPW_DEV *pDev);
@@ -500,6 +502,7 @@ static int grspw_buffer_alloc(GRSPW_DEV *pDev)
}
+#ifdef GRSPW_DEFINE_INTHANDLER
/*
* Standard Interrupt handler
*/
@@ -514,6 +517,7 @@ static rtems_isr grspw_interrupt_handler(rtems_vector_number v)
}
}
}
+#endif
static void grspw_interrupt(GRSPW_DEV *pDev){
int dmactrl;
@@ -1464,7 +1468,7 @@ static int grspw_hw_stop (GRSPW_DEV *pDev, int rx, int tx)
return RTEMS_SUCCESSFUL;
}
-int grspw_hw_send(GRSPW_DEV *pDev, unsigned int hlen, unsigned char *hdr, unsigned int dlen, unsigned char *data)
+int grspw_hw_send(GRSPW_DEV *pDev, unsigned int hlen, char *hdr, unsigned int dlen, char *data)
{
unsigned int dmactrl, ctrl;
@@ -1539,7 +1543,7 @@ int grspw_hw_send(GRSPW_DEV *pDev, unsigned int hlen, unsigned char *hdr, unsign
return hlen + dlen;
}
-static int grspw_hw_receive(GRSPW_DEV *pDev, unsigned char *b, int c) {
+static int grspw_hw_receive(GRSPW_DEV *pDev, char *b, int c) {
unsigned int len, rxlen, ctrl;
unsigned int cur;
unsigned int tmp;
diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c b/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
index 0f83146bdd..112a324ace 100644
--- a/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
+++ b/c/src/lib/libbsp/sparc/shared/spw/grspw_pci.c
@@ -105,6 +105,7 @@ int grspw_pci_register(
*/
int grspwpci_interrupt_handler(int irq, void *arg){
grspw_interrupt( (GRSPW_DEV *)arg );
+ return 0;
}
#if 0
diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
index 8a04665a13..144d394182 100644
--- a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
+++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c
@@ -44,6 +44,8 @@
#ifndef APBUART_REG_INT
#define APBUART_REG_INT(handler,irq,arg) set_vector(handler,irq+0x10,1)
+ #undef APBUART_DEFINE_INTHANDLER
+ #define APBUART_DEFINE_INTHANDLER
#endif
/* Default to 40MHz system clock */
@@ -117,7 +119,9 @@ static rtems_driver_address_table apbuart_driver = APBUART_DRIVER_TABLE_ENTRY;
static amba_confarea_type *amba_bus;
static void apbuart_interrupt(apbuart_priv *uart);
+#ifdef APBUART_DEFINE_INTHANDLER
static void apbuart_interrupt_handler(rtems_vector_number v);
+#endif
static void apbuart_hw_close(apbuart_priv *uart);
static void apbuart_hw_open(apbuart_priv *uart);
@@ -213,6 +217,7 @@ static void apbuart_hw_close(apbuart_priv *uart){
uart->regs->ctrl = 0;
}
+#ifdef APBUART_DEFINE_INTHANDLER
/* interrupt handler */
static void apbuart_interrupt_handler(rtems_vector_number v){
int minor;
@@ -225,6 +230,7 @@ static void apbuart_interrupt_handler(rtems_vector_number v){
}
}
}
+#endif
/* The interrupt handler, taking care of the
* APBUART hardware