diff options
-rw-r--r-- | Makefile | 14 | ||||
-rw-r--r-- | common/cmd_nand.c | 2 | ||||
-rw-r--r-- | common/env_nand.c | 6 | ||||
-rw-r--r-- | cpu/mcf5227x/config.mk | 2 | ||||
-rw-r--r-- | cpu/mcf523x/config.mk | 2 | ||||
-rw-r--r-- | cpu/mcf52x2/config.mk | 2 | ||||
-rw-r--r-- | cpu/mcf532x/config.mk | 2 | ||||
-rw-r--r-- | cpu/mcf5445x/config.mk | 2 | ||||
-rw-r--r-- | cpu/mcf547x_8x/config.mk | 2 | ||||
-rw-r--r-- | cpu/mpc86xx/speed.c | 14 | ||||
-rw-r--r-- | drivers/mtd/onenand/onenand_base.c | 8 | ||||
-rw-r--r-- | drivers/net/fsl_mcdmafec.c | 22 | ||||
-rw-r--r-- | drivers/rtc/m41t62.c | 4 | ||||
-rw-r--r-- | include/asm-m68k/global_data.h | 4 | ||||
-rw-r--r-- | include/configs/M5475EVB.h | 1 | ||||
-rw-r--r-- | include/configs/M5485EVB.h | 1 | ||||
-rw-r--r-- | include/net.h | 8 | ||||
-rw-r--r-- | post/board/lwmon5/sysmon.c | 12 |
18 files changed, 76 insertions, 32 deletions
@@ -201,7 +201,6 @@ OBJS := $(addprefix $(obj),$(OBJS)) LIBS = lib_generic/libgeneric.a LIBS += $(shell if [ -f board/$(VENDOR)/common/Makefile ]; then echo \ "board/$(VENDOR)/common/lib$(VENDOR).a"; fi) -LIBS += board/$(BOARDDIR)/lib$(BOARD).a LIBS += cpu/$(CPU)/lib$(CPU).a ifdef SOC LIBS += cpu/$(CPU)/$(SOC)/lib$(SOC).a @@ -248,6 +247,9 @@ LIBS += post/libpost.a LIBS := $(addprefix $(obj),$(LIBS)) .PHONY : $(LIBS) $(VERSION_FILE) +LIBBOARD = board/$(BOARDDIR)/lib$(BOARD).a +LIBBOARD := $(addprefix $(obj),$(LIBBOARD)) + # Add GCC lib PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc @@ -270,7 +272,7 @@ U_BOOT_ONENAND = $(obj)u-boot-onenand.bin endif __OBJS := $(subst $(obj),,$(OBJS)) -__LIBS := $(subst $(obj),,$(LIBS)) +__LIBS := $(subst $(obj),,$(LIBS)) $(subst $(obj),,$(LIBBOARD)) ######################################################################### ######################################################################### @@ -313,8 +315,9 @@ $(obj)u-boot.sha1: $(obj)u-boot.bin $(obj)u-boot.dis: $(obj)u-boot $(OBJDUMP) -d $< > $@ -$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT) - UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) |sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ +$(obj)u-boot: depend $(SUBDIRS) $(OBJS) $(LIBBOARD) $(LIBS) $(LDSCRIPT) + UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \ + sed -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\ cd $(LNDIR) && $(LD) $(LDFLAGS) $$UNDEF_SYM $(__OBJS) \ --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \ -Map u-boot.map -o u-boot @@ -325,6 +328,9 @@ $(OBJS): depend $(obj)include/autoconf.mk $(LIBS): depend $(obj)include/autoconf.mk $(MAKE) -C $(dir $(subst $(obj),,$@)) +$(LIBBOARD): depend $(LIBS) $(obj)include/autoconf.mk + $(MAKE) -C $(dir $(subst $(obj),,$@)) + $(SUBDIRS): depend $(obj)include/autoconf.mk $(MAKE) -C $@ all diff --git a/common/cmd_nand.c b/common/cmd_nand.c index 1a3c1df..37eb41b 100644 --- a/common/cmd_nand.c +++ b/common/cmd_nand.c @@ -110,7 +110,7 @@ arg_off_size(int argc, char *argv[], nand_info_t *nand, ulong *off, size_t *size } *off = part->offset; if (argc >= 2) { - if (!(str2long(argv[1], size))) { + if (!(str2long(argv[1], (ulong *)size))) { printf("'%s' is not a number\n", argv[1]); return -1; } diff --git a/common/env_nand.c b/common/env_nand.c index 0dddddf..49742f5 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -102,7 +102,7 @@ uchar env_get_char_spec (int index) int env_init(void) { #if defined(ENV_IS_EMBEDDED) - ulong total; + size_t total; int crc1_ok = 0, crc2_ok = 0; env_t *tmp_env1, *tmp_env2; @@ -188,7 +188,7 @@ int saveenv(void) #else /* ! CFG_ENV_OFFSET_REDUND */ int saveenv(void) { - ulong total; + size_t total; int ret = 0; puts ("Erasing Nand..."); @@ -268,7 +268,7 @@ void env_relocate_spec (void) void env_relocate_spec (void) { #if !defined(ENV_IS_EMBEDDED) - ulong total; + size_t total; int ret; total = CFG_ENV_SIZE; diff --git a/cpu/mcf5227x/config.mk b/cpu/mcf5227x/config.mk index 8d60fd6..2e50696 100644 --- a/cpu/mcf5227x/config.mk +++ b/cpu/mcf5227x/config.mk @@ -24,7 +24,7 @@ # PLATFORM_RELFLAGS += -ffixed-d7 -msep-data -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=5208 -fPIC else PLATFORM_CPPFLAGS += -m5307 -fPIC diff --git a/cpu/mcf523x/config.mk b/cpu/mcf523x/config.mk index 93645a3..73fb08d 100644 --- a/cpu/mcf523x/config.mk +++ b/cpu/mcf523x/config.mk @@ -24,7 +24,7 @@ # PLATFORM_RELFLAGS += -ffixed-d7 -msep-data -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=5235 -fPIC else PLATFORM_CPPFLAGS += -m5307 -fPIC diff --git a/cpu/mcf52x2/config.mk b/cpu/mcf52x2/config.mk index 650e340..be360f8 100644 --- a/cpu/mcf52x2/config.mk +++ b/cpu/mcf52x2/config.mk @@ -34,7 +34,7 @@ is5275:=$(shell grep CONFIG_M5275 $(TOPDIR)/include/$(cfg)) is5282:=$(shell grep CONFIG_M5282 $(TOPDIR)/include/$(cfg)) -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) ifneq (,$(findstring CONFIG_M5249,$(is5249))) PLATFORM_CPPFLAGS += -mcpu=5249 diff --git a/cpu/mcf532x/config.mk b/cpu/mcf532x/config.mk index 16a0bc3..e4a3cf9 100644 --- a/cpu/mcf532x/config.mk +++ b/cpu/mcf532x/config.mk @@ -24,7 +24,7 @@ # PLATFORM_RELFLAGS += -ffixed-d7 -msep-data -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=5329 -fPIC else PLATFORM_CPPFLAGS += -m5307 -fPIC diff --git a/cpu/mcf5445x/config.mk b/cpu/mcf5445x/config.mk index 88433f2..a85d0f9 100644 --- a/cpu/mcf5445x/config.mk +++ b/cpu/mcf5445x/config.mk @@ -24,7 +24,7 @@ # PLATFORM_RELFLAGS += -ffixed-d7 -msep-data -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=54455 -fPIC else PLATFORM_CPPFLAGS += -m5407 -fPIC diff --git a/cpu/mcf547x_8x/config.mk b/cpu/mcf547x_8x/config.mk index e5f4385..eb6b50b 100644 --- a/cpu/mcf547x_8x/config.mk +++ b/cpu/mcf547x_8x/config.mk @@ -24,7 +24,7 @@ # PLATFORM_RELFLAGS += -ffixed-d7 -msep-data -ifeq ($(findstring 4.2,$(shell $(CC) --version)),4.2) +ifeq ($(findstring 4.2,$(shell $(CROSS_COMPILE)gcc --version)),4.2) PLATFORM_CPPFLAGS += -mcpu=5485 -fPIC else PLATFORM_CPPFLAGS += -m5407 -fPIC diff --git a/cpu/mpc86xx/speed.c b/cpu/mpc86xx/speed.c index 7e884f8..da5b58b 100644 --- a/cpu/mpc86xx/speed.c +++ b/cpu/mpc86xx/speed.c @@ -105,8 +105,20 @@ int get_clocks(void) get_sys_info(&sys_info); gd->cpu_clk = sys_info.freqProcessor; gd->bus_clk = sys_info.freqSystemBus; + + /* + * The base clock for I2C depends on the actual SOC. Unfortunately, + * there is no pattern that can be used to determine the frequency, so + * the only choice is to look up the actual SOC number and use the value + * for that SOC. This information is taken from application note + * AN2919. + */ +#ifdef CONFIG_MPC8610 gd->i2c1_clk = sys_info.freqSystemBus; - gd->i2c2_clk = sys_info.freqSystemBus; +#else + gd->i2c1_clk = sys_info.freqSystemBus / 2; +#endif + gd->i2c2_clk = gd->i2c1_clk; if (gd->cpu_clk != 0) return 0; diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index 174384e..d1b9f8f 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c @@ -21,7 +21,7 @@ #include <asm/errno.h> /* It should access 16-bit instead of 8-bit */ -static inline void *memcpy(void *dst, const void *src, unsigned int len) +static inline void *memcpy_16(void *dst, const void *src, unsigned int len) { void *ret = dst; short *d = dst; @@ -358,7 +358,7 @@ static int onenand_read_bufferram(struct mtd_info *mtd, int area, bufferram = this->base + area; bufferram += onenand_bufferram_offset(mtd, area); - memcpy(buffer, bufferram + offset, count); + memcpy_16(buffer, bufferram + offset, count); return 0; } @@ -385,7 +385,7 @@ static int onenand_sync_read_bufferram(struct mtd_info *mtd, int area, this->mmcontrol(mtd, ONENAND_SYS_CFG1_SYNC_READ); - memcpy(buffer, bufferram + offset, count); + memcpy_16(buffer, bufferram + offset, count); this->mmcontrol(mtd, 0); @@ -412,7 +412,7 @@ static int onenand_write_bufferram(struct mtd_info *mtd, int area, bufferram = this->base + area; bufferram += onenand_bufferram_offset(mtd, area); - memcpy(bufferram + offset, buffer, count); + memcpy_16(bufferram + offset, buffer, count); return 0; } diff --git a/drivers/net/fsl_mcdmafec.c b/drivers/net/fsl_mcdmafec.c index 0c876f3..2ef91f2 100644 --- a/drivers/net/fsl_mcdmafec.c +++ b/drivers/net/fsl_mcdmafec.c @@ -95,7 +95,11 @@ struct fec_info_dma fec_info[] = { 0, /* duplex and speed */ 0, /* phy name */ 0, /* phy name init */ +#ifdef CFG_DMA_USE_INTSRAM + DBUF_LENGTH, /* RX BD */ +#else 0, /* RX BD */ +#endif 0, /* TX BD */ 0, /* rx Index */ 0, /* tx Index */ @@ -164,7 +168,8 @@ static void dbg_fec_regs(struct eth_device *dev) } #endif -static void set_fec_duplex_speed(volatile fecdma_t * fecp, bd_t * bd, int dup_spd) +static void set_fec_duplex_speed(volatile fecdma_t * fecp, bd_t * bd, + int dup_spd) { if ((dup_spd >> 16) == FULL) { /* Set maximum frame length */ @@ -513,6 +518,9 @@ int mcdmafec_initialize(bd_t * bis) { struct eth_device *dev; int i; +#ifdef CFG_DMA_USE_INTSRAM + u32 tmp = CFG_INTSRAM + 0x2000; +#endif for (i = 0; i < sizeof(fec_info) / sizeof(fec_info[0]); i++) { @@ -533,6 +541,17 @@ int mcdmafec_initialize(bd_t * bis) dev->recv = fec_recv; /* setup Receive and Transmit buffer descriptor */ +#ifdef CFG_DMA_USE_INTSRAM + fec_info[i].rxbd = (int)fec_info[i].rxbd + tmp; + tmp = fec_info[i].rxbd; + fec_info[i].txbd = + (int)fec_info[i].txbd + tmp + (PKTBUFSRX * sizeof(cbd_t)); + tmp = fec_info[i].txbd; + fec_info[i].txbuf = + (int)fec_info[i].txbuf + tmp + + (CFG_TX_ETH_BUFFER * sizeof(cbd_t)); + tmp = fec_info[i].txbuf; +#else fec_info[i].rxbd = (cbd_t *) memalign(CFG_CACHELINE_SIZE, (PKTBUFSRX * sizeof(cbd_t))); @@ -541,6 +560,7 @@ int mcdmafec_initialize(bd_t * bis) (CFG_TX_ETH_BUFFER * sizeof(cbd_t))); fec_info[i].txbuf = (char *)memalign(CFG_CACHELINE_SIZE, DBUF_LENGTH); +#endif #ifdef ET_DEBUG printf("rxbd %x txbd %x\n", diff --git a/drivers/rtc/m41t62.c b/drivers/rtc/m41t62.c index cf2a957..89d4ccd 100644 --- a/drivers/rtc/m41t62.c +++ b/drivers/rtc/m41t62.c @@ -81,7 +81,7 @@ int rtc_get(struct rtc_time *tm) tm->tm_hour = BCD2BIN(buf[M41T62_REG_HOUR] & 0x3f); tm->tm_mday = BCD2BIN(buf[M41T62_REG_DAY] & 0x3f); tm->tm_wday = buf[M41T62_REG_WDAY] & 0x07; - tm->tm_mon = BCD2BIN(buf[M41T62_REG_MON] & 0x1f) - 1; + tm->tm_mon = BCD2BIN(buf[M41T62_REG_MON] & 0x1f); /* assume 20YY not 19YY, and ignore the Century Bit */ /* U-Boot needs to add 1900 here */ @@ -119,7 +119,7 @@ void rtc_set(struct rtc_time *tm) buf[M41T62_REG_DAY] = BIN2BCD(tm->tm_mday) | (buf[M41T62_REG_DAY] & ~0x3f); buf[M41T62_REG_MON] = - BIN2BCD(tm->tm_mon + 1) | (buf[M41T62_REG_MON] & ~0x1f); + BIN2BCD(tm->tm_mon) | (buf[M41T62_REG_MON] & ~0x1f); /* assume 20YY not 19YY */ buf[M41T62_REG_YEAR] = BIN2BCD(tm->tm_year % 100); diff --git a/include/asm-m68k/global_data.h b/include/asm-m68k/global_data.h index 958736e..c897f2b 100644 --- a/include/asm-m68k/global_data.h +++ b/include/asm-m68k/global_data.h @@ -47,6 +47,10 @@ typedef struct global_data { unsigned long vco_clk; unsigned long flb_clk; #endif +#ifdef CONFIG_FSL_I2C + unsigned long i2c1_clk; + unsigned long i2c2_clk; +#endif unsigned long ram_size; /* RAM size */ unsigned long reloc_off; /* Relocation Offset */ unsigned long reset_status; /* reset status register at boot */ diff --git a/include/configs/M5475EVB.h b/include/configs/M5475EVB.h index 6bb4619..fea7551 100644 --- a/include/configs/M5475EVB.h +++ b/include/configs/M5475EVB.h @@ -72,6 +72,7 @@ # define CONFIG_MII_INIT 1 # define CONFIG_HAS_ETH1 +# define CFG_DMA_USE_INTSRAM 1 # define CFG_DISCOVER_PHY # define CFG_RX_ETH_BUFFER 32 # define CFG_TX_ETH_BUFFER 48 diff --git a/include/configs/M5485EVB.h b/include/configs/M5485EVB.h index cba51c8..454d0a2 100644 --- a/include/configs/M5485EVB.h +++ b/include/configs/M5485EVB.h @@ -72,6 +72,7 @@ # define CONFIG_MII_INIT 1 # define CONFIG_HAS_ETH1 +# define CFG_DMA_USE_INTSRAM 1 # define CFG_DISCOVER_PHY # define CFG_RX_ETH_BUFFER 32 # define CFG_TX_ETH_BUFFER 48 diff --git a/include/net.h b/include/net.h index f6decdc..9a2f03f 100644 --- a/include/net.h +++ b/include/net.h @@ -412,10 +412,10 @@ extern void print_IPaddr (IPaddr_t); * footprint in our tests. */ /* return IP *in network byteorder* */ -static inline IPaddr_t NetReadIP(void *from) +static inline IPaddr_t NetReadIP(volatile void *from) { IPaddr_t ip; - memcpy((void*)&ip, from, sizeof(ip)); + memcpy((void*)&ip, (void*)from, sizeof(ip)); return ip; } @@ -434,9 +434,9 @@ static inline void NetWriteIP(void *to, IPaddr_t ip) } /* copy IP */ -static inline void NetCopyIP(void *to, void *from) +static inline void NetCopyIP(volatile void *to, void *from) { - memcpy(to, from, sizeof(IPaddr_t)); + memcpy((void*)to, from, sizeof(IPaddr_t)); } /* copy ulong */ diff --git a/post/board/lwmon5/sysmon.c b/post/board/lwmon5/sysmon.c index 793f670..e9c9624 100644 --- a/post/board/lwmon5/sysmon.c +++ b/post/board/lwmon5/sysmon.c @@ -132,17 +132,17 @@ static sysmon_table_t sysmon_table[] = { "+ 5 V", "V", &sysmon_dspic, NULL, NULL, - 100, 1000, 0, 0xFFFF, 0xFFFF, - VOLTAGE_5V_MIN, VOLTAGE_5V_MAX, 0, - VOLTAGE_5V_MIN, VOLTAGE_5V_MAX, 0, + 100, 1000, -0x8000, 0x7FFF, 0xFFFF, + 0x8000 + VOLTAGE_5V_MIN, 0x8000 + VOLTAGE_5V_MAX, 0, + 0x8000 + VOLTAGE_5V_MIN, 0x8000 + VOLTAGE_5V_MAX, 0, REG_VOLTAGE_5V, }, { "+ 5 V standby", "V", &sysmon_dspic, NULL, NULL, - 100, 1000, 0, 0xFFFF, 0xFFFF, - VOLTAGE_5V_STANDBY_MIN, VOLTAGE_5V_STANDBY_MAX, 0, - VOLTAGE_5V_STANDBY_MIN, VOLTAGE_5V_STANDBY_MAX, 0, + 100, 1000, -0x8000, 0x7FFF, 0xFFFF, + 0x8000 + VOLTAGE_5V_STANDBY_MIN, 0x8000 + VOLTAGE_5V_STANDBY_MAX, 0, + 0x8000 + VOLTAGE_5V_STANDBY_MIN, 0x8000 + VOLTAGE_5V_STANDBY_MAX, 0, REG_VOLTAGE_5V_STANDBY, }, }; |