From 2bb463293fa53f8c4cf740c6974721c6cf332106 Mon Sep 17 00:00:00 2001 From: "W. Eric Norum" Date: Tue, 8 Jan 2008 20:14:13 +0000 Subject: [PATCH] Add serial EEPROM support. --- src/RTEMS/base/setBootConfigFromNVRAM.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/RTEMS/base/setBootConfigFromNVRAM.c b/src/RTEMS/base/setBootConfigFromNVRAM.c index 9e78a03f8..51fb068fb 100644 --- a/src/RTEMS/base/setBootConfigFromNVRAM.c +++ b/src/RTEMS/base/setBootConfigFromNVRAM.c @@ -79,17 +79,13 @@ splitNfsMountPath(char *nfsString) } #if defined(HAVE_MOTLOAD) -# if !defined(BSP_NVRAM_BASE_ADDR) -# define BSP_NVRAM_BASE_ADDR (0xf1110000) -# endif /* * Motorola MOTLOAD NVRAM Access */ static char * -gev(const char *parm) +gev(const char *parm, volatile char *nvp) { - volatile char *nvp = (volatile unsigned char *)(BSP_NVRAM_BASE_ADDR+0x70f8); const char *val; const char *name; char *ret; @@ -152,6 +148,25 @@ setBootConfigFromNVRAM(void) { char *cp; const char *mot_script_boot; + char *nvp; + +# if defined(BSP_NVRAM_BASE_ADDR) + nvp = (volatile unsigned char *)(BSP_NVRAM_BASE_ADDR+0x70f8); +# else + char gev_buf[3592]; + int fd; + if ((fd = open(BSP_I2C_VPD_EEPROM_DEV_NAME)) < 0) { + printf("Can't open %s: %s\n", BSP_I2C_VPD_EEPROM_DEV_NAME, strerror(errno)); + return; + } + /*lseek(fd, , SEEK_SET);*/ + if (read(fd, gev_buf, sizeof gev_buf) != sizeof gev_buf) { + printf("Can't read %s: %s\n", BSP_I2C_VPD_EEPROM_DEV_NAME, strerror(errno)); + return; + } + close(fd); + nvp = gev_buf; +# endif if (rtems_bsdnet_config.bootp != NULL) return;