diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/mvme2307/nvram')
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme2307/nvram/Makefile.in | 70 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme2307/nvram/nvram.c | 25 |
2 files changed, 95 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/mvme2307/nvram/Makefile.in b/c/src/lib/libbsp/powerpc/mvme2307/nvram/Makefile.in new file mode 100644 index 0000000000..2ec830ff87 --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mvme2307/nvram/Makefile.in @@ -0,0 +1,70 @@ +# +# $Id$ +# + +@SET_MAKE@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +top_builddir = ../../../.. +subdir = libbsp/powerpc/mvme2307/nvram + +RTEMS_ROOT = @RTEMS_ROOT@ +PROJECT_ROOT = @PROJECT_ROOT@ + +VPATH = @srcdir@ + +PGM=${ARCH}/nvram.rel + +# C source names, if any, go here -- minus the .c +C_PIECES=nvram +C_FILES=$(C_PIECES:%=%.c) +C_O_FILES=$(C_PIECES:%=${ARCH}/%.o) + +H_FILES= + +# Assembly source names, if any, go here -- minus the .S +S_PIECES= +S_FILES=$(S_PIECES:%=%.S) +S_O_FILES=$(S_FILES:%.S=${ARCH}/%.o) + +SRCS=$(C_FILES) $(CC_FILES) $(H_FILES) $(S_FILES) +OBJS=$(C_O_FILES) $(CC_O_FILES) $(S_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(RTEMS_ROOT)/make/leaf.cfg + +INSTALL_CHANGE = @INSTALL_CHANGE@ + +# +# (OPTIONAL) Add local stuff here using += +# + +DEFINES += +CPPFLAGS += +CFLAGS += + +LD_PATHS += +LD_LIBS += +LDFLAGS += + +# +# Add your list of files to delete here. The config files +# already know how to delete some stuff, so you may want +# to just run 'make clean' first to see what gets missed. +# 'make clobber' already includes 'make clean' +# + +CLEAN_ADDITIONS += +CLOBBER_ADDITIONS += + +${PGM}: ${SRCS} ${OBJS} + $(make-rel) + +all: ${ARCH} $(SRCS) $(PGM) + +# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile +install: all + +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) \ + && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status diff --git a/c/src/lib/libbsp/powerpc/mvme2307/nvram/nvram.c b/c/src/lib/libbsp/powerpc/mvme2307/nvram/nvram.c new file mode 100644 index 0000000000..124f81eada --- /dev/null +++ b/c/src/lib/libbsp/powerpc/mvme2307/nvram/nvram.c @@ -0,0 +1,25 @@ +#include <bsp.h> + +#define ram_addr_low (* (volatile char *) IO_TO_LOCAL(0x0074)) +#define ram_addr_high (* (volatile char *) IO_TO_LOCAL(0x0075)) +#define ram_data (* (volatile char *) IO_TO_LOCAL(0x0077)) +#define ram_end_addr 0x1ff8 + +int read_nvram(char *buff, int offset, int len) { + int i; + + if (offset < 0 || offset >= ram_end_addr) { + return 0; + } + if (offset + len > ram_end_addr) { + len = ram_end_addr - offset; + } + for (i = 0; i < len; i++) { + ram_addr_high = offset >> 8; + ram_addr_low = offset; + *buff++ = ram_data; + offset++; + } + return len; +} + |