RTEMS: Drop dependency on bspExt
integrate the polling implementation of bspExt.
This commit is contained in:
@ -128,7 +128,7 @@ MOD_SYS_LDFLAGS += $(CPU_CFLAGS) -Wl,-r -nostdlib
|
||||
|
||||
# Do not link against libraries which are part of the Generic Image
|
||||
GESYS_LIBS += -lgcc
|
||||
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++ -lbspExt
|
||||
GESYS_LIBS += -lc -lm -lrtemscpu -lrtemsbsp -lrtems++
|
||||
GESYS_LIBS += -lcexp -ltecla_r -lspencer_regexp -lpmelf -lpmbfd
|
||||
GESYS_LIBS += -lnfs -ltelnetd -lrtems-gdb-stub
|
||||
|
||||
|
@ -16,8 +16,6 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt #does not use posix stuff ... want to ignore
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
MUNCHNAME = $(PRODNAME:%$(EXE)=%$(MUNCH_SUFFIX))
|
||||
define MUNCH_CMD
|
||||
|
@ -11,8 +11,6 @@ GNU_TARGET = powerpc-rtems
|
||||
ARCH_DEP_CFLAGS += -DMY_DO_BOOTP=NULL
|
||||
ARCH_DEP_CFLAGS += -DHAVE_PPCBUG
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary -R .comment -S $< rtems
|
||||
|
@ -20,6 +20,4 @@ define MUNCH_CMD
|
||||
rm -f rtems.gz
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
@ -13,8 +13,6 @@ ARCH_DEP_CFLAGS += -DHAVE_MOTLOAD
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
|
@ -14,13 +14,9 @@ ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_MBUF_SPACE=2048
|
||||
ARCH_DEP_CFLAGS += -DRTEMS_NETWORK_CONFIG_CLUSTER_SPACE=5120
|
||||
ARCH_DEP_CFLAGS += -DBSP_NVRAM_BASE_ADDR=0xf1110000
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
MUNCH_SUFFIX = .boot
|
||||
define MUNCH_CMD
|
||||
$(RTEMS_TOOLS)/bin/$(OBJCOPY_FOR_TARGET) -O binary $< $@
|
||||
endef
|
||||
|
||||
OP_SYS_LDLIBS += -lbspExt
|
||||
|
||||
include $(CONFIG)/os/CONFIG.Common.RTEMS
|
||||
|
@ -19,12 +19,12 @@
|
||||
#include <bsp.h>
|
||||
#include "devLibVME.h"
|
||||
#include <epicsInterrupt.h>
|
||||
#include <epicsMMIO.h>
|
||||
|
||||
#if defined(__PPC__) || defined(__mcf528x__)
|
||||
|
||||
#if defined(__PPC__)
|
||||
#include <bsp/VME.h>
|
||||
#include <bsp/bspExt.h>
|
||||
#endif
|
||||
|
||||
|
||||
@ -126,8 +126,7 @@ static long
|
||||
rtemsDevInit(void)
|
||||
{
|
||||
/* assume the vme bridge has been initialized by bsp */
|
||||
/* init BSP extensions [memProbe etc.] */
|
||||
return bspExtInit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -245,11 +244,59 @@ static long rtemsDevMapAddr (epicsAddressType addrType, unsigned options,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static
|
||||
rtems_status_code bspExtMemProbe(void *addr, int write, int size, void *pval)
|
||||
{
|
||||
rtems_interrupt_level flags;
|
||||
rtems_status_code ret = RTEMS_SUCCESSFUL;
|
||||
epicsUInt32 val;
|
||||
|
||||
/* bspExt allows caller to write uninitialized values, we don't */
|
||||
if(write && !pval)
|
||||
return RTEMS_INVALID_NUMBER;
|
||||
|
||||
switch(size) {
|
||||
case 1:
|
||||
case 2:
|
||||
case 4:
|
||||
break;
|
||||
default:
|
||||
return RTEMS_INVALID_SIZE;
|
||||
}
|
||||
|
||||
if(write)
|
||||
memcpy(&val, pval, size);
|
||||
|
||||
rtems_interrupt_disable(flags);
|
||||
_BSP_clear_hostbridge_errors(0,1);
|
||||
|
||||
if(!write) {
|
||||
switch(size) {
|
||||
case 1: val = ioread8(addr)<<24; break;
|
||||
case 2: val = nat_ioread16(addr)<<16; break;
|
||||
case 4: val = nat_ioread32(addr); break;
|
||||
}
|
||||
} else {
|
||||
switch(size) {
|
||||
case 1: iowrite8(addr, val>>24); break;
|
||||
case 2: nat_iowrite16(addr, val>>16); break;
|
||||
case 4: nat_iowrite32(addr, val); break;
|
||||
}
|
||||
}
|
||||
|
||||
ret = _BSP_clear_hostbridge_errors(0,1);
|
||||
rtems_interrupt_enable(flags);
|
||||
|
||||
if(!write && pval)
|
||||
memcpy(pval, &val, size);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* a bus error safe "wordSize" read at the specified address which returns
|
||||
* unsuccessful status if the device isnt present
|
||||
*/
|
||||
rtems_status_code bspExtMemProbe(void *addr, int write, int size, void *pval);
|
||||
static long rtemsDevReadProbe (unsigned wordSize, volatile const void *ptr, void *pValue)
|
||||
{
|
||||
long status;
|
||||
|
Reference in New Issue
Block a user