Merge branch 'master' of ssh://gemini/home/wd/git/u-boot/master
This commit is contained in:
		
						commit
						7f20221735
					
				
							
								
								
									
										3
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										3
									
								
								Makefile
								
								
								
								
							| 
						 | 
				
			
			@ -463,7 +463,8 @@ $(obj)include/autoconf.mk: $(obj)include/config.h
 | 
			
		|||
	set -e ; \
 | 
			
		||||
	: Extract the config macros ; \
 | 
			
		||||
	$(CPP) $(CFLAGS) -DDO_DEPS_ONLY -dM include/common.h | \
 | 
			
		||||
		sed -n -f tools/scripts/define2mk.sed > $@
 | 
			
		||||
		sed -n -f tools/scripts/define2mk.sed > $@.tmp && \
 | 
			
		||||
	mv $@.tmp $@
 | 
			
		||||
 | 
			
		||||
sinclude $(obj)include/autoconf.mk.dep
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,4 +34,3 @@ dataflash_protect_t area_list[NB_DATAFLASH_AREA] = {
 | 
			
		|||
	{0x00004200, 0x000083FF, FLAG_PROTECT_CLEAR, 0, "Environment"},
 | 
			
		||||
	{0x00008400, 0x00041FFF, FLAG_PROTECT_CLEAR, 0, "U-Boot"},
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -364,7 +364,7 @@ int do_painit(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 | 
			
		|||
	base -= LOGBUFF_LEN + LOGBUFF_OVERHEAD;
 | 
			
		||||
#endif
 | 
			
		||||
	/*
 | 
			
		||||
	 * gd->bd->bi_memsize == physical ram size - CFG_MEM_TOP_HIDE
 | 
			
		||||
	 * gd->bd->bi_memsize == physical ram size - CONFIG_SYS_MEM_TOP_HIDE
 | 
			
		||||
	 */
 | 
			
		||||
	param = base - (pram << 10);
 | 
			
		||||
	printf("PARAM: @%08x\n", param);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -127,7 +127,7 @@ SECTIONS
 | 
			
		|||
   *(COMMON)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
 | 
			
		||||
  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your configuration: CONFIG_SYS_MONITOR_BASE, CONFIG_SYS_MONITOR_LEN and TEXT_BASE may need to be modified.");
 | 
			
		||||
 | 
			
		||||
  _end = . ;
 | 
			
		||||
  PROVIDE (end = .);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,7 +137,7 @@ SECTIONS
 | 
			
		|||
   *(COMMON)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your confguration: CFG_MONITOR_BASE, CFG_MONITOR_LEN and TEXT_BASE may need to be modified.");
 | 
			
		||||
  ppcenv_assert = ASSERT(. < 0xFFFFB000, ".bss section too big, overlaps .ppcenv section. Please update your configuration: CONFIG_SYS_MONITOR_BASE, CONFIG_SYS_MONITOR_LEN and TEXT_BASE may need to be modified.");
 | 
			
		||||
 | 
			
		||||
  _end = . ;
 | 
			
		||||
  PROVIDE (end = .);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1175,7 +1175,6 @@ int do_unzip ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
 | 
			
		|||
{
 | 
			
		||||
	unsigned long src, dst;
 | 
			
		||||
	unsigned long src_len = ~0UL, dst_len = ~0UL;
 | 
			
		||||
	int err;
 | 
			
		||||
 | 
			
		||||
	switch (argc) {
 | 
			
		||||
		case 4:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -601,7 +601,7 @@ static int do_ubi(cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
 | 
			
		|||
 | 
			
		||||
U_BOOT_CMD(ubi, 6, 1, do_ubi,
 | 
			
		||||
	"ubi      - ubi commands\n",
 | 
			
		||||
        "part [nand|nor|onenand] [part]"
 | 
			
		||||
	"part [nand|nor|onenand] [part]"
 | 
			
		||||
		" - Show or set current partition\n"
 | 
			
		||||
	"ubi info [l[ayout]]"
 | 
			
		||||
		" - Display volume and ubi layout information\n"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,7 @@
 | 
			
		|||
 */
 | 
			
		||||
#include <common.h>
 | 
			
		||||
#include <environment.h>
 | 
			
		||||
#include <malloc.h>
 | 
			
		||||
#include <spi_flash.h>
 | 
			
		||||
 | 
			
		||||
#ifndef CONFIG_ENV_SPI_BUS
 | 
			
		||||
| 
						 | 
				
			
			@ -60,13 +61,30 @@ uchar env_get_char_spec(int index)
 | 
			
		|||
 | 
			
		||||
int saveenv(void)
 | 
			
		||||
{
 | 
			
		||||
	u32 saved_size, saved_offset;
 | 
			
		||||
	char *saved_buffer = NULL;
 | 
			
		||||
	u32 sector = 1;
 | 
			
		||||
	int ret;
 | 
			
		||||
 | 
			
		||||
	if (!env_flash) {
 | 
			
		||||
		puts("Environment SPI flash not initialized\n");
 | 
			
		||||
		return 1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Is the sector larger than the env (i.e. embedded) */
 | 
			
		||||
	if (CONFIG_ENV_SECT_SIZE > CONFIG_ENV_SIZE) {
 | 
			
		||||
		saved_size = CONFIG_ENV_SECT_SIZE - CONFIG_ENV_SIZE;
 | 
			
		||||
		saved_offset = CONFIG_ENV_OFFSET + CONFIG_ENV_SIZE;
 | 
			
		||||
		saved_buffer = malloc(saved_size);
 | 
			
		||||
		if (!saved_buffer) {
 | 
			
		||||
			ret = 1;
 | 
			
		||||
			goto done;
 | 
			
		||||
		}
 | 
			
		||||
		ret = spi_flash_read(env_flash, saved_offset, saved_size, saved_buffer);
 | 
			
		||||
		if (ret)
 | 
			
		||||
			goto done;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (CONFIG_ENV_SIZE > CONFIG_ENV_SECT_SIZE) {
 | 
			
		||||
		sector = CONFIG_ENV_SIZE / CONFIG_ENV_SECT_SIZE;
 | 
			
		||||
		if (CONFIG_ENV_SIZE % CONFIG_ENV_SECT_SIZE)
 | 
			
		||||
| 
						 | 
				
			
			@ -74,15 +92,28 @@ int saveenv(void)
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	puts("Erasing SPI flash...");
 | 
			
		||||
	if (spi_flash_erase(env_flash, CONFIG_ENV_OFFSET, sector * CONFIG_ENV_SECT_SIZE))
 | 
			
		||||
		return 1;
 | 
			
		||||
	ret = spi_flash_erase(env_flash, CONFIG_ENV_OFFSET, sector * CONFIG_ENV_SECT_SIZE);
 | 
			
		||||
	if (ret)
 | 
			
		||||
		goto done;
 | 
			
		||||
 | 
			
		||||
	puts("Writing to SPI flash...");
 | 
			
		||||
	if (spi_flash_write(env_flash, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, env_ptr))
 | 
			
		||||
		return 1;
 | 
			
		||||
	ret = spi_flash_write(env_flash, CONFIG_ENV_OFFSET, CONFIG_ENV_SIZE, env_ptr);
 | 
			
		||||
	if (ret)
 | 
			
		||||
		goto done;
 | 
			
		||||
 | 
			
		||||
	if (CONFIG_ENV_SECT_SIZE > CONFIG_ENV_SIZE) {
 | 
			
		||||
		ret = spi_flash_write(env_flash, saved_offset, saved_size, saved_buffer);
 | 
			
		||||
		if (ret)
 | 
			
		||||
			goto done;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	ret = 0;
 | 
			
		||||
	puts("done\n");
 | 
			
		||||
	return 0;
 | 
			
		||||
 | 
			
		||||
 done:
 | 
			
		||||
	if (saved_buffer)
 | 
			
		||||
		free(saved_buffer);
 | 
			
		||||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void env_relocate_spec(void)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1071,6 +1071,7 @@ int boot_ramdisk_high (struct lmb *lmb, ulong rd_data, ulong rd_len,
 | 
			
		|||
error:
 | 
			
		||||
	return -1;
 | 
			
		||||
}
 | 
			
		||||
#endif /* defined(CONFIG_PPC) || defined(CONFIG_M68K) || defined(CONFIG_SPARC) */
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_OF_LIBFDT
 | 
			
		||||
static void fdt_error (const char *msg)
 | 
			
		||||
| 
						 | 
				
			
			@ -1575,6 +1576,7 @@ error:
 | 
			
		|||
}
 | 
			
		||||
#endif /* CONFIG_OF_LIBFDT */
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_PPC) || defined(CONFIG_M68K)
 | 
			
		||||
/**
 | 
			
		||||
 * boot_get_cmdline - allocate and initialize kernel cmdline
 | 
			
		||||
 * @lmb: pointer to lmb handle, will be used for memory mgmt
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,4 +32,5 @@ PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -189,20 +189,6 @@ i2c_init(int speed, int slaveaddr)
 | 
			
		|||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read(uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	unsigned char buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read(i2c_addr, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return(buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write(uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int i2c_set_bus_speed(unsigned int speed)
 | 
			
		||||
{
 | 
			
		||||
	return -1;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS += -march=armv4
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS += -march=armv4
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,7 +35,7 @@ int usb_cpu_init(void)
 | 
			
		|||
#if defined(CONFIG_AT91CAP9) || defined(CONFIG_AT91SAM9260) || \
 | 
			
		||||
    defined(CONFIG_AT91SAM9263)
 | 
			
		||||
	/* Enable PLLB */
 | 
			
		||||
	at91_sys_write(AT91_CKGR_PLLBR, CFG_AT91_PLLB);
 | 
			
		||||
	at91_sys_write(AT91_CKGR_PLLBR, CONFIG_SYS_AT91_PLLB);
 | 
			
		||||
	while ((at91_sys_read(AT91_PMC_SR) & AT91_PMC_LOCKB) != AT91_PMC_LOCKB)
 | 
			
		||||
		;
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS += -march=armv5te
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -331,21 +331,4 @@ int i2c_write(u_int8_t chip, u_int32_t addr, int alen, u_int8_t *buf, int len)
 | 
			
		|||
	return(0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
u_int8_t i2c_reg_read(u_int8_t chip, u_int8_t reg)
 | 
			
		||||
{
 | 
			
		||||
	u_int8_t	tmp;
 | 
			
		||||
 | 
			
		||||
	i2c_read(chip, reg, 1, &tmp, 1);
 | 
			
		||||
	return(tmp);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write(u_int8_t chip, u_int8_t reg, u_int8_t val)
 | 
			
		||||
{
 | 
			
		||||
	u_int8_t	tmp;
 | 
			
		||||
 | 
			
		||||
	i2c_write(chip, reg, 1, &tmp, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_DRIVER_DAVINCI_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS +=  -march=armv4
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS +=  -march=armv4
 | 
			
		|||
#
 | 
			
		||||
# =========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -425,20 +425,4 @@ int i2c_write(uchar chip, uint addr, int alen, uchar * buffer, int len)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read(uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	PRINTD("i2c_reg_read: chip=0x%02x, reg=0x%02x\n", chip, reg);
 | 
			
		||||
	i2c_read(chip, reg, 0, &buf, 1);
 | 
			
		||||
	return (buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write(uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	PRINTD("i2c_reg_write: chip=0x%02x, reg=0x%02x, val=0x%02x\n", chip,
 | 
			
		||||
			reg, val);
 | 
			
		||||
	i2c_write(chip, reg, 0, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,4 +31,5 @@ PLATFORM_CPPFLAGS += -march=armv4
 | 
			
		|||
#
 | 
			
		||||
# ========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -131,7 +131,7 @@ void cpu_init_f(void)
 | 
			
		|||
	mbar2_writeByte(MCFSIM_INTBASE, 0x40);	/* Base interrupts at 64 */
 | 
			
		||||
	mbar2_writeByte(MCFSIM_SPURVEC, 0x00);
 | 
			
		||||
 | 
			
		||||
	/*mbar2_writeLong(MCFSIM_IDECONFIG1, 0x00000020); *//* Enable a 1 cycle pre-drive cycle on CS1 */
 | 
			
		||||
	/*mbar2_writeLong(MCFSIM_IDECONFIG1, 0x00000020); */ /* Enable a 1 cycle pre-drive cycle on CS1 */
 | 
			
		||||
 | 
			
		||||
	/* FlexBus Chipselect */
 | 
			
		||||
	init_fbcs();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -382,23 +382,6 @@ Done:
 | 
			
		|||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read (uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read (chip, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write (uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write (chip, reg, 1, &val, 1);
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
int i2c_set_bus_num (unsigned int bus)
 | 
			
		||||
{
 | 
			
		||||
	if (bus >= I2C_BUS_CNT) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -380,20 +380,4 @@ Done:
 | 
			
		|||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read(uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read(chip, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write(uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(chip, reg, 1, &val, 1);
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif	/* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -387,20 +387,4 @@ int i2c_write (uchar chip, uint addr, int alen, uchar * buf, int len)
 | 
			
		|||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read (uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read (chip, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write (uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write (chip, reg, 1, &val, 1);
 | 
			
		||||
 | 
			
		||||
	return;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -267,18 +267,4 @@ int i2c_probe (uchar chip)
 | 
			
		|||
	return i2c_read (chip, 0, 1, (uchar *) &tmp, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read (uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf[1];
 | 
			
		||||
 | 
			
		||||
	i2c_read (i2c_addr, reg, 1, buf, 1);
 | 
			
		||||
 | 
			
		||||
	return (buf[0]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void i2c_reg_write (uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write (i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -753,22 +753,6 @@ i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar
 | 
			
		||||
i2c_reg_read(uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read(chip, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return (buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
i2c_reg_write(uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(chip, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_I2C_MULTI_BUS)
 | 
			
		||||
/*
 | 
			
		||||
 * Functions for multiple I2C bus handling
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,7 +125,7 @@ invl2:
 | 
			
		|||
	mtspr	HID0, r5		/* enable + invalidate */
 | 
			
		||||
	mtspr	HID0, r3		/* enable */
 | 
			
		||||
	sync
 | 
			
		||||
#ifdef CFG_L2
 | 
			
		||||
#ifdef CONFIG_SYS_L2
 | 
			
		||||
	sync
 | 
			
		||||
	lis	r3, L2_ENABLE@h
 | 
			
		||||
	ori	r3, r3, L2_ENABLE@l
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -982,5 +982,3 @@ unlock_ram_in_cache:
 | 
			
		|||
	blr
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -42,19 +42,6 @@ DECLARE_GLOBAL_DATA_PTR;
 | 
			
		|||
/* define to enable debug messages */
 | 
			
		||||
#undef	DEBUG_I2C
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Set default values
 | 
			
		||||
 */
 | 
			
		||||
#ifndef	CONFIG_SYS_I2C_SPEED
 | 
			
		||||
#define	CONFIG_SYS_I2C_SPEED	50000
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef	CONFIG_SYS_I2C_SLAVE
 | 
			
		||||
#define	CONFIG_SYS_I2C_SLAVE	0xFE
 | 
			
		||||
#endif
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/* tx/rx timeout (we need the i2c early, so we don't use get_timer()) */
 | 
			
		||||
#define TOUT_LOOP 1000000
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -717,24 +704,4 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar
 | 
			
		||||
i2c_reg_read(uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
 | 
			
		||||
 | 
			
		||||
	i2c_read(i2c_addr, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return (buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
i2c_reg_write(uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
 | 
			
		||||
 | 
			
		||||
	i2c_write(i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif	/* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -706,4 +706,3 @@ int cpu_eth_init(bd_t *bis)
 | 
			
		|||
#endif
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -419,26 +419,6 @@ int i2c_write(uchar chip, uint addr, int alen, uchar * buffer, int len)
 | 
			
		|||
	return (i2c_transfer(0, chip<<1, &xaddr[4-alen], alen, buffer, len ) != 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Read a register
 | 
			
		||||
 */
 | 
			
		||||
uchar i2c_reg_read(uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read(i2c_addr, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return (buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Write a register
 | 
			
		||||
 */
 | 
			
		||||
void i2c_reg_write(uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_I2C_MULTI_BUS)
 | 
			
		||||
/*
 | 
			
		||||
 * Functions for multiple I2C bus handling
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,4 +32,5 @@ PLATFORM_CPPFLAGS += -march=armv5te -mtune=xscale
 | 
			
		|||
#
 | 
			
		||||
# ========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -455,19 +455,4 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar i2c_reg_read (uchar chip, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	PRINTD(("i2c_reg_read(chip=0x%02x, reg=0x%02x)\n",chip,reg));
 | 
			
		||||
	i2c_read(chip, reg, 1, &buf, 1);
 | 
			
		||||
	return (buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void  i2c_reg_write(uchar chip, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	PRINTD(("i2c_reg_write(chip=0x%02x, reg=0x%02x, val=0x%02x)\n",chip,reg,val));
 | 
			
		||||
	i2c_write(chip, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif	/* CONFIG_HARD_I2C */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,4 +32,5 @@ PLATFORM_CPPFLAGS += -march=armv4 -mtune=arm7tdmi -msoft-float
 | 
			
		|||
#
 | 
			
		||||
# ========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,4 +32,5 @@ PLATFORM_CPPFLAGS += -march=armv4 -mtune=strongarm1100
 | 
			
		|||
#
 | 
			
		||||
# ========================================================================
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mapcs-32,-mabi=apcs-gnu)
 | 
			
		||||
PLATFORM_CPPFLAGS +=$(call cc-option,-mno-thumb-interwork,)
 | 
			
		||||
PLATFORM_RELFLAGS +=$(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -367,22 +367,6 @@ i2c_probe(uchar chip)
 | 
			
		|||
	return i2c_read(chip, 0, 0, NULL, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
uchar
 | 
			
		||||
i2c_reg_read(uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf[1];
 | 
			
		||||
 | 
			
		||||
	i2c_read(i2c_addr, reg, 1, buf, 1);
 | 
			
		||||
 | 
			
		||||
	return buf[0];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void
 | 
			
		||||
i2c_reg_write(uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int i2c_set_bus_num(unsigned int bus)
 | 
			
		||||
{
 | 
			
		||||
#ifdef CONFIG_SYS_I2C2_OFFSET
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -434,23 +434,3 @@ int  i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len)
 | 
			
		|||
	send_stop();
 | 
			
		||||
	return(failures);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Read a register
 | 
			
		||||
 */
 | 
			
		||||
uchar i2c_reg_read(uchar i2c_addr, uchar reg)
 | 
			
		||||
{
 | 
			
		||||
	uchar buf;
 | 
			
		||||
 | 
			
		||||
	i2c_read(i2c_addr, reg, 1, &buf, 1);
 | 
			
		||||
 | 
			
		||||
	return(buf);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * Write a register
 | 
			
		||||
 */
 | 
			
		||||
void i2c_reg_write(uchar i2c_addr, uchar reg, uchar val)
 | 
			
		||||
{
 | 
			
		||||
	i2c_write(i2c_addr, reg, 1, &val, 1);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -137,7 +137,7 @@ static int stmicro_wait_ready(struct spi_flash *flash, unsigned long timeout)
 | 
			
		|||
 | 
			
		||||
	ret = spi_xfer(spi, 32, &cmd[0], NULL, SPI_XFER_BEGIN);
 | 
			
		||||
	if (ret) {
 | 
			
		||||
		debug("SF: Failed to send command %02x: %d\n", cmd, ret);
 | 
			
		||||
		debug("SF: Failed to send command %02x: %d\n", cmd[0], ret);
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -97,7 +97,7 @@ u32 crc32_le(u32 crc, unsigned char const *p, size_t len)
 | 
			
		|||
# else
 | 
			
		||||
#  define DO_CRC(x) crc = tab[ ((crc >> 24) ^ (x)) & 255] ^ (crc<<8)
 | 
			
		||||
# endif
 | 
			
		||||
    //printf("Crc32_le crc=%x\n",crc);
 | 
			
		||||
	/* printf("Crc32_le crc=%x\n",crc); */
 | 
			
		||||
	crc = __cpu_to_le32(crc);
 | 
			
		||||
	/* Align it */
 | 
			
		||||
	if((((long)b)&3 && len)){
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -186,7 +186,7 @@ retry:
 | 
			
		|||
		if (read != len && err == -EBADMSG) {
 | 
			
		||||
			ubi_assert(0);
 | 
			
		||||
			printk("%s[%d] not here\n", __func__, __LINE__);
 | 
			
		||||
//			err = -EIO;
 | 
			
		||||
/*			err = -EIO; */
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		ubi_assert(len == read);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -260,7 +260,7 @@ int ubi_create_volume(struct ubi_device *ubi, struct ubi_mkvol_req *req)
 | 
			
		|||
			goto out_unlock;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
        /* Calculate how many eraseblocks are requested */
 | 
			
		||||
	/* Calculate how many eraseblocks are requested */
 | 
			
		||||
	vol->usable_leb_size = ubi->leb_size - ubi->leb_size % req->alignment;
 | 
			
		||||
	bytes = req->bytes;
 | 
			
		||||
	if (do_div(bytes, vol->usable_leb_size))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -119,6 +119,7 @@
 | 
			
		|||
#include <watchdog.h>
 | 
			
		||||
#include <jffs2/jffs2.h>
 | 
			
		||||
#include <jffs2/jffs2_1pass.h>
 | 
			
		||||
#include <linux/mtd/compat.h>
 | 
			
		||||
 | 
			
		||||
#include "jffs2_private.h"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1408,11 +1409,6 @@ dump_dirents(struct b_lists *pL)
 | 
			
		|||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define min_t(type, x, y) ({                    \
 | 
			
		||||
	type __min1 = (x);                      \
 | 
			
		||||
	type __min2 = (y);                      \
 | 
			
		||||
	__min1 < __min2 ? __min1: __min2; })
 | 
			
		||||
 | 
			
		||||
#define DEFAULT_EMPTY_SCAN_SIZE	4096
 | 
			
		||||
 | 
			
		||||
static inline uint32_t EMPTY_SCAN_SIZE(uint32_t sector_size)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,29 @@
 | 
			
		|||
#ifndef __ADDR_MAP_H
 | 
			
		||||
#define __ADDR_MAP_H
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2008 Freescale Semiconductor, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License
 | 
			
		||||
 * Version 2 as published by the Free Software Foundation.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program; if not, write to the Free Software
 | 
			
		||||
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 | 
			
		||||
 * MA 02111-1307 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <asm/types.h>
 | 
			
		||||
 | 
			
		||||
extern phys_addr_t addrmap_virt_to_phys(void *vaddr);
 | 
			
		||||
extern unsigned long addrmap_phys_to_virt(phys_addr_t paddr);
 | 
			
		||||
extern void addrmap_set_entry(unsigned long vaddr, phys_addr_t paddr,
 | 
			
		||||
				phys_size_t size, int idx);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -57,6 +57,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Generic virtual read/write.  Note that we don't support half-word
 | 
			
		||||
 * read/writes.  We define __arch_*[bl] here, and leave __arch_*w
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -125,4 +125,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long len)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* __ASM_AVR32_IO_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,6 +64,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * These are for ISA/PCI shared memory _only_ and should never be used
 | 
			
		||||
 * on any other type of memory, including Zorro memory. They are meant to
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -229,4 +229,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -251,4 +251,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif				/* __ASM_M68K_IO_H__ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -155,4 +155,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* __MICROBLAZE_IO_H__ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -118,7 +118,7 @@ static inline void set_io_port_base(unsigned long base)
 | 
			
		|||
 * Change virtual addresses to physical addresses and vv.
 | 
			
		||||
 * These are trivial on the 1:1 Linux/MIPS mapping
 | 
			
		||||
 */
 | 
			
		||||
extern inline unsigned long virt_to_phys(volatile void * address)
 | 
			
		||||
extern inline phys_addr_t virt_to_phys(void * address)
 | 
			
		||||
{
 | 
			
		||||
	return CPHYSADDR(address);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -133,4 +133,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif /* __ASM_NIOS_IO_H_ */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -53,6 +53,11 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
extern unsigned char inb (unsigned char *port);
 | 
			
		||||
extern unsigned short inw (unsigned short *port);
 | 
			
		||||
extern unsigned inl (unsigned port);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -298,4 +298,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)((unsigned long)vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -261,5 +261,10 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif	/* __KERNEL__ */
 | 
			
		||||
#endif	/* __ASM_SH_IO_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,4 +90,9 @@ static inline void unmap_physmem(void *vaddr, unsigned long flags)
 | 
			
		|||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline phys_addr_t virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	return (phys_addr_t)(vaddr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -67,7 +67,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
#define CONFIG_CLEAR_LAW0		/* Clear LAW0 in cpu_init_r */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -70,7 +70,6 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_ENABLE_36BIT_PHYS	1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -79,7 +79,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest region */
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_END		0x00400000
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,7 +62,6 @@
 | 
			
		|||
/* below can be toggled for performance analysis. otherwise use default */
 | 
			
		||||
#define CONFIG_L2_CACHE			    /* toggle L2 cache	*/
 | 
			
		||||
#undef  CONFIG_BTB			    /* toggle branch predition */
 | 
			
		||||
#undef  CONFIG_ADDR_STREAMING		    /* toggle addr streaming   */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_PRE_INIT	1	    /* Call board_pre_init	*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,6 @@ extern unsigned long get_clock_freq(void);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			    /* toggle L2 cache	*/
 | 
			
		||||
#define CONFIG_BTB			    /* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		    /* toggle addr streaming   */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest works on */
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_END		0x00400000
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,6 @@ extern unsigned long get_board_sys_clk(unsigned long dummy);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Only possible on E500 Version 2 or newer cores.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,6 @@ extern unsigned long get_clock_freq(void);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
#define CONFIG_CLEAR_LAW0		/* Clear LAW0 in cpu_init_r */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -63,7 +63,6 @@ extern unsigned long get_clock_freq(void);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			    /* toggle L2 cache	*/
 | 
			
		||||
#define CONFIG_BTB			    /* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		    /* toggle addr streaming   */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_START	0x00200000	/* memtest works on */
 | 
			
		||||
#define CONFIG_SYS_MEMTEST_END		0x00400000
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_INIT_DBCR DBCR_IDM		/* Enable Debug Exceptions */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -61,7 +61,6 @@ extern unsigned long get_clock_freq(void);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE				/* toggle L2 cache	*/
 | 
			
		||||
#define CONFIG_BTB				/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING			/* toggle addr streaming   */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Only possible on E500 Version 2 or newer cores.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,6 @@ extern unsigned long get_board_ddr_clk(unsigned long dummy);
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_ENABLE_36BIT_PHYS	1
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -71,7 +71,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F	1	/* Call board_pre_init */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,7 +72,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F	1	/* Call board_pre_init */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -219,8 +219,8 @@
 | 
			
		|||
#if !defined(CONFIG_NAND_U_BOOT) && !defined(CONFIG_NAND_SPL)
 | 
			
		||||
#define CONFIG_DDR_DATA_EYE	/* use DDR2 optimization        */
 | 
			
		||||
#endif
 | 
			
		||||
#define CFG_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes	*/
 | 
			
		||||
					/* 440EPx errata CHIP 11	*/
 | 
			
		||||
#define CONFIG_SYS_MEM_TOP_HIDE	(4 << 10) /* don't use last 4kbytes */
 | 
			
		||||
						  /* 440EPx errata CHIP 11 */
 | 
			
		||||
 | 
			
		||||
/*-----------------------------------------------------------------------
 | 
			
		||||
 * I2C
 | 
			
		||||
| 
						 | 
				
			
			@ -490,8 +490,8 @@
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
/* Memory Bank 1 (RESET) initialization */
 | 
			
		||||
#define CFG_EBC_PB1AP		0x7f817200 //0x03017200
 | 
			
		||||
#define CFG_EBC_PB1CR		(CFG_RESET_BASE | 0x1c000)
 | 
			
		||||
#define CONFIG_SYS_EBC_PB1AP		0x7f817200 /* 0x03017200 */
 | 
			
		||||
#define CONFIG_SYS_EBC_PB1CR		(CONFIG_SYS_RESET_BASE | 0x1c000)
 | 
			
		||||
 | 
			
		||||
/* Memory Bank 4 (FPGA / 32Bit) initialization */
 | 
			
		||||
#define CONFIG_SYS_EBC_PB4AP		0x03840f40	/* BME=0,TWT=7,CSN=1,TH=7,RE=1,SOR=0,BEM=1 */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,6 @@
 | 
			
		|||
/* below can be toggled for performance analysis. otherwise use default */
 | 
			
		||||
#define CONFIG_L2_CACHE			    /* toggle L2 cache		*/
 | 
			
		||||
#undef	CONFIG_BTB			    /* toggle branch predition	*/
 | 
			
		||||
#undef	CONFIG_ADDR_STREAMING		    /* toggle addr streaming	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F 1	    /* Call board_early_init_f	*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -106,7 +106,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache		*/
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition	*/
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_INIT_DBCR DBCR_IDM		/* Enable Debug Exceptions	*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@
 | 
			
		|||
/* ARM asynchronous clock */
 | 
			
		||||
#define AT91_MAIN_CLOCK		18429952	/* from 18.432 MHz crystal */
 | 
			
		||||
#define AT91_MASTER_CLOCK	89999598	/* peripheral = main / 2 */
 | 
			
		||||
#define CFG_AT91_PLLB		0x107c3e18	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_AT91_PLLB	0x107c3e18	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_HZ		1000000		/* 1us resolution */
 | 
			
		||||
 | 
			
		||||
#define AT91_SLOW_CLOCK		32768	/* slow clock */
 | 
			
		||||
| 
						 | 
				
			
			@ -150,7 +150,7 @@
 | 
			
		|||
#define CONFIG_SYS_CBSIZE		256
 | 
			
		||||
#define CONFIG_SYS_MAXARGS		16
 | 
			
		||||
#define CONFIG_SYS_PBSIZE		(CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
 | 
			
		||||
#define CFG_LONGHELP		1
 | 
			
		||||
#define CONFIG_SYS_LONGHELP		1
 | 
			
		||||
#define CONFIG_CMDLINE_EDITING	1
 | 
			
		||||
 | 
			
		||||
#define ROUND(A, B)		(((A) + (B)) & ~((B) - 1))
 | 
			
		||||
| 
						 | 
				
			
			@ -167,4 +167,3 @@
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
#define AT91_MAIN_CLOCK		12000000	/* 12 MHz crystal */
 | 
			
		||||
#define AT91_MASTER_CLOCK	100000000	/* peripheral */
 | 
			
		||||
#define AT91_CPU_CLOCK		200000000	/* cpu */
 | 
			
		||||
#define CFG_AT91_PLLB		0x10073e01	/* PLLB settings for USB */
 | 
			
		||||
#define CONFUG_SYS_AT91_PLLB	0x10073e01	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_HZ		1000000		/* 1us resolution */
 | 
			
		||||
 | 
			
		||||
#define AT91_SLOW_CLOCK		32768	/* slow clock */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
#define AT91_MAIN_CLOCK		18432000	/* 18.432 MHz crystal */
 | 
			
		||||
#define AT91_MASTER_CLOCK	100000000	/* peripheral */
 | 
			
		||||
#define AT91_CPU_CLOCK		200000000	/* cpu */
 | 
			
		||||
#define CFG_AT91_PLLB		0x107c3e18	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_AT91_PLLB	0x107c3e18	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_HZ		1000000		/* 1us resolution */
 | 
			
		||||
 | 
			
		||||
#define AT91_SLOW_CLOCK		32768	/* slow clock */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
#define AT91_MAIN_CLOCK		16367660	/* 16.367 MHz crystal */
 | 
			
		||||
#define AT91_MASTER_CLOCK	100000000	/* peripheral */
 | 
			
		||||
#define AT91_CPU_CLOCK		200000000	/* cpu */
 | 
			
		||||
#define CFG_AT91_PLLB		0x133a3e8d	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_AT91_PLLB	0x133a3e8d	/* PLLB settings for USB */
 | 
			
		||||
#define CONFIG_SYS_HZ		1000000		/* 1us resolution */
 | 
			
		||||
 | 
			
		||||
#define AT91_SLOW_CLOCK		32768	/* slow clock */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache */
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition */
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming */
 | 
			
		||||
#define CONFIG_CLEAR_LAW0		/* Clear LAW0 in cpu_init_r */
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -69,7 +69,6 @@
 | 
			
		|||
/* below can be toggled for performance analysis. otherwise use default */
 | 
			
		||||
#define CONFIG_L2_CACHE			    /* toggle L2 cache		*/
 | 
			
		||||
#undef	CONFIG_BTB			    /* toggle branch predition	*/
 | 
			
		||||
#undef	CONFIG_ADDR_STREAMING		    /* toggle addr streaming	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F 1	    /* Call board_early_init_f	*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,7 +82,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE			/* toggle L2 cache		*/
 | 
			
		||||
#define CONFIG_BTB			/* toggle branch predition	*/
 | 
			
		||||
#define CONFIG_ADDR_STREAMING		/* toggle addr streaming	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_SYS_INIT_DBCR DBCR_IDM		/* Enable Debug Exceptions	*/
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE                     /* toggle L2 cache         */
 | 
			
		||||
#define  CONFIG_BTB                          /* toggle branch predition */
 | 
			
		||||
#define  CONFIG_ADDR_STREAMING               /* toggle addr streaming   */
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F   1        /* Call board_pre_init      */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -64,7 +64,6 @@
 | 
			
		|||
 */
 | 
			
		||||
#define CONFIG_L2_CACHE				/* toggle L2 cache	       */
 | 
			
		||||
#define  CONFIG_BTB				/* toggle branch predition */
 | 
			
		||||
#define  CONFIG_ADDR_STREAMING			/* toggle addr streaming	*/
 | 
			
		||||
 | 
			
		||||
#define CONFIG_BOARD_EARLY_INIT_F   1		/* Call board_pre_init	 */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,6 +76,20 @@
 | 
			
		|||
#  define I2C_SOFT_DECLARATIONS
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_8xx
 | 
			
		||||
/* Set default values for the I2C bus speed and slave address on 8xx. In the
 | 
			
		||||
 * future, we'll define these in all 8xx board config files.
 | 
			
		||||
 */
 | 
			
		||||
#ifndef	CONFIG_SYS_I2C_SPEED
 | 
			
		||||
#define	CONFIG_SYS_I2C_SPEED	50000
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifndef	CONFIG_SYS_I2C_SLAVE
 | 
			
		||||
#define	CONFIG_SYS_I2C_SLAVE	0xFE
 | 
			
		||||
#endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Initialization, must be called once on start up, may be called
 | 
			
		||||
 * repeatedly to change the speed and slave addresses.
 | 
			
		||||
| 
						 | 
				
			
			@ -132,8 +146,52 @@ int i2c_write(uchar chip, uint addr, int alen, uchar *buffer, int len);
 | 
			
		|||
/*
 | 
			
		||||
 * Utility routines to read/write registers.
 | 
			
		||||
 */
 | 
			
		||||
uchar i2c_reg_read (uchar chip, uchar reg);
 | 
			
		||||
void  i2c_reg_write(uchar chip, uchar reg, uchar val);
 | 
			
		||||
static inline u8 i2c_reg_read(u8 addr, u8 reg)
 | 
			
		||||
{
 | 
			
		||||
	u8 buf;
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_8xx
 | 
			
		||||
	/* MPC8xx needs this.  Maybe one day we can get rid of it. */
 | 
			
		||||
	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	printf("%s: addr=0x%02x, reg=0x%02x\n", __func__, addr, reg);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_BLACKFIN
 | 
			
		||||
	/* This ifdef will become unneccessary in a future version of the
 | 
			
		||||
	 * blackfin I2C driver.
 | 
			
		||||
	 */
 | 
			
		||||
	i2c_read(addr, reg, 0, &buf, 1);
 | 
			
		||||
#else
 | 
			
		||||
	i2c_read(addr, reg, 1, &buf, 1);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	return buf;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void i2c_reg_write(u8 addr, u8 reg, u8 val)
 | 
			
		||||
{
 | 
			
		||||
#ifdef CONFIG_8xx
 | 
			
		||||
	/* MPC8xx needs this.  Maybe one day we can get rid of it. */
 | 
			
		||||
	i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef DEBUG
 | 
			
		||||
	printf("%s: addr=0x%02x, reg=0x%02x, val=0x%02x\n",
 | 
			
		||||
	       __func__, addr, reg, val);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_BLACKFIN
 | 
			
		||||
	/* This ifdef will become unneccessary in a future version of the
 | 
			
		||||
	 * blackfin I2C driver.
 | 
			
		||||
	 */
 | 
			
		||||
	i2c_write(addr, reg, 0, &val, 1);
 | 
			
		||||
#else
 | 
			
		||||
	i2c_write(addr, reg, 1, &val, 1);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
 * Functions for setting the current I2C bus and its speed
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,10 +50,6 @@
 | 
			
		|||
 | 
			
		||||
#endif /* USE_HOSTCC */
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_FIT) && !defined(CONFIG_OF_LIBFDT)
 | 
			
		||||
#error "CONFIG_OF_LIBFDT not enabled, required by CONFIG_FIT!"
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include <command.h>
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_FIT)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,10 +6,10 @@
 | 
			
		|||
#define _LINUX_CRC32_H
 | 
			
		||||
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
//#include <linux/bitrev.h>
 | 
			
		||||
/* #include <linux/bitrev.h> */
 | 
			
		||||
 | 
			
		||||
extern u32  crc32_le(u32 crc, unsigned char const *p, size_t len);
 | 
			
		||||
//extern u32  crc32_be(u32 crc, unsigned char const *p, size_t len);
 | 
			
		||||
/* extern u32  crc32_be(u32 crc, unsigned char const *p, size_t len); */
 | 
			
		||||
 | 
			
		||||
#define crc32(seed, data, length)  crc32_le(seed, (unsigned char const *)data, length)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -21,7 +21,7 @@ extern u32  crc32_le(u32 crc, unsigned char const *p, size_t len);
 | 
			
		|||
 * is in bit nr 0], thus it must be reversed before use. Except for
 | 
			
		||||
 * nics that bit swap the result internally...
 | 
			
		||||
 */
 | 
			
		||||
//#define ether_crc(length, data)    bitrev32(crc32_le(~0, data, length))
 | 
			
		||||
//#define ether_crc_le(length, data) crc32_le(~0, data, length)
 | 
			
		||||
/* #define ether_crc(length, data)    bitrev32(crc32_le(~0, data, length)) */
 | 
			
		||||
/* #define ether_crc_le(length, data) crc32_le(~0, data, length) */
 | 
			
		||||
 | 
			
		||||
#endif /* _LINUX_CRC32_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,9 +76,9 @@ struct device;
 | 
			
		|||
struct device_node;
 | 
			
		||||
 | 
			
		||||
int __devinit of_mtd_parse_partitions(struct device *dev,
 | 
			
		||||
                                      struct mtd_info *mtd,
 | 
			
		||||
                                      struct device_node *node,
 | 
			
		||||
                                      struct mtd_partition **pparts);
 | 
			
		||||
				      struct mtd_info *mtd,
 | 
			
		||||
				      struct device_node *node,
 | 
			
		||||
				      struct mtd_partition **pparts);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,7 +21,7 @@
 | 
			
		|||
#ifndef __LINUX_UBI_H__
 | 
			
		||||
#define __LINUX_UBI_H__
 | 
			
		||||
 | 
			
		||||
//#include <asm/ioctl.h>
 | 
			
		||||
/* #include <asm/ioctl.h> */
 | 
			
		||||
#include <linux/types.h>
 | 
			
		||||
#include <mtd/ubi-user.h>
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -56,7 +56,7 @@ do {									\
 | 
			
		|||
#define ubi_sysfs_close(...)		do { } while (0)
 | 
			
		||||
static inline int is_power_of_2(unsigned long n)
 | 
			
		||||
{
 | 
			
		||||
        return (n != 0 && ((n & (n - 1)) == 0));
 | 
			
		||||
	return (n != 0 && ((n & (n - 1)) == 0));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* FIXME */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,6 +25,7 @@ include $(TOPDIR)/config.mk
 | 
			
		|||
 | 
			
		||||
LIB	= $(obj)libgeneric.a
 | 
			
		||||
 | 
			
		||||
COBJS-$(CONFIG_ADDR_MAP) += addr_map.o
 | 
			
		||||
COBJS-y += bzlib.o
 | 
			
		||||
COBJS-y += bzlib_crctable.o
 | 
			
		||||
COBJS-y += bzlib_decompress.o
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,81 @@
 | 
			
		|||
/*
 | 
			
		||||
 * Copyright 2008 Freescale Semiconductor, Inc.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software; you can redistribute it and/or
 | 
			
		||||
 * modify it under the terms of the GNU General Public License
 | 
			
		||||
 * Version 2 as published by the Free Software Foundation.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program; if not, write to the Free Software
 | 
			
		||||
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 | 
			
		||||
 * MA 02111-1307 USA
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <common.h>
 | 
			
		||||
#include <addr_map.h>
 | 
			
		||||
 | 
			
		||||
static struct {
 | 
			
		||||
	phys_addr_t paddr;
 | 
			
		||||
	phys_size_t size;
 | 
			
		||||
	unsigned long vaddr;
 | 
			
		||||
} address_map[CONFIG_SYS_NUM_ADDR_MAP];
 | 
			
		||||
 | 
			
		||||
phys_addr_t addrmap_virt_to_phys(void * vaddr)
 | 
			
		||||
{
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) {
 | 
			
		||||
		u64 base, upper, addr;
 | 
			
		||||
 | 
			
		||||
		if (address_map[i].size == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		addr = (u64)((u32)vaddr);
 | 
			
		||||
		base = (u64)(address_map[i].vaddr);
 | 
			
		||||
		upper = (u64)(address_map[i].size) + base - 1;
 | 
			
		||||
 | 
			
		||||
		if (addr >= base && addr <= upper) {
 | 
			
		||||
			return addr - address_map[i].vaddr + address_map[i].paddr;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return (phys_addr_t)(~0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
unsigned long addrmap_phys_to_virt(phys_addr_t paddr)
 | 
			
		||||
{
 | 
			
		||||
	int i;
 | 
			
		||||
 | 
			
		||||
	for (i = 0; i < CONFIG_SYS_NUM_ADDR_MAP; i++) {
 | 
			
		||||
		u64 base, upper, addr;
 | 
			
		||||
 | 
			
		||||
		if (address_map[i].size == 0)
 | 
			
		||||
			continue;
 | 
			
		||||
 | 
			
		||||
		addr = (u64)paddr;
 | 
			
		||||
		base = (u64)(address_map[i].paddr);
 | 
			
		||||
		upper = (u64)(address_map[i].size) + base - 1;
 | 
			
		||||
 | 
			
		||||
		if (addr >= base && addr <= upper) {
 | 
			
		||||
			return paddr - address_map[i].paddr + address_map[i].vaddr;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return (unsigned long)(~0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void addrmap_set_entry(unsigned long vaddr, phys_addr_t paddr,
 | 
			
		||||
			phys_size_t size, int idx)
 | 
			
		||||
{
 | 
			
		||||
	if (idx > CONFIG_SYS_NUM_ADDR_MAP)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	address_map[idx].vaddr = vaddr;
 | 
			
		||||
	address_map[idx].paddr = paddr;
 | 
			
		||||
	address_map[idx].size  = size;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -25,29 +25,27 @@
 | 
			
		|||
#include <asm/cache.h>
 | 
			
		||||
#include <watchdog.h>
 | 
			
		||||
 | 
			
		||||
void flush_cache (ulong start_addr, ulong size)
 | 
			
		||||
void flush_cache(ulong start_addr, ulong size)
 | 
			
		||||
{
 | 
			
		||||
#ifndef CONFIG_5xx
 | 
			
		||||
	ulong addr, end_addr = start_addr + size;
 | 
			
		||||
	ulong addr, start, end;
 | 
			
		||||
 | 
			
		||||
	if (CONFIG_SYS_CACHELINE_SIZE) {
 | 
			
		||||
		addr = start_addr & (CONFIG_SYS_CACHELINE_SIZE - 1);
 | 
			
		||||
		for (addr = start_addr;
 | 
			
		||||
		     addr < end_addr;
 | 
			
		||||
		     addr += CONFIG_SYS_CACHELINE_SIZE) {
 | 
			
		||||
			asm ("dcbst 0,%0": :"r" (addr));
 | 
			
		||||
			WATCHDOG_RESET();
 | 
			
		||||
		}
 | 
			
		||||
		asm ("sync");	/* Wait for all dcbst to complete on bus */
 | 
			
		||||
	start = start_addr & ~(CONFIG_SYS_CACHELINE_SIZE - 1);
 | 
			
		||||
	end = start_addr + size - 1;
 | 
			
		||||
 | 
			
		||||
		for (addr = start_addr;
 | 
			
		||||
		     addr < end_addr;
 | 
			
		||||
		     addr += CONFIG_SYS_CACHELINE_SIZE) {
 | 
			
		||||
			asm ("icbi 0,%0": :"r" (addr));
 | 
			
		||||
			WATCHDOG_RESET();
 | 
			
		||||
		}
 | 
			
		||||
	for (addr = start; addr <= end; addr += CONFIG_SYS_CACHELINE_SIZE) {
 | 
			
		||||
		asm volatile("dcbst 0,%0" : : "r" (addr) : "memory");
 | 
			
		||||
		WATCHDOG_RESET();
 | 
			
		||||
	}
 | 
			
		||||
	asm ("sync");		/* Always flush prefetch queue in any case */
 | 
			
		||||
	asm ("isync");
 | 
			
		||||
	/* wait for all dcbst to complete on bus */
 | 
			
		||||
	asm volatile("sync" : : : "memory");
 | 
			
		||||
 | 
			
		||||
	for (addr = start; addr <= end; addr += CONFIG_SYS_CACHELINE_SIZE) {
 | 
			
		||||
		asm volatile("icbi 0,%0" : : "r" (addr) : "memory");
 | 
			
		||||
		WATCHDOG_RESET();
 | 
			
		||||
	}
 | 
			
		||||
	asm volatile("sync" : : : "memory");
 | 
			
		||||
	/* flush prefetch queue */
 | 
			
		||||
	asm volatile("isync" : : : "memory");
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,9 +27,13 @@ LIB	= $(obj)libfdt.a
 | 
			
		|||
 | 
			
		||||
SOBJS	=
 | 
			
		||||
 | 
			
		||||
COBJS-$(CONFIG_OF_LIBFDT) += fdt.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_sw.o fdt_wip.o
 | 
			
		||||
COBJS-libfdt += fdt.o fdt_ro.o fdt_rw.o fdt_strerror.o fdt_sw.o fdt_wip.o
 | 
			
		||||
 | 
			
		||||
COBJS	:= $(COBJS-y)
 | 
			
		||||
COBJS-$(CONFIG_OF_LIBFDT) += $(COBJS-libfdt)
 | 
			
		||||
COBJS-$(CONFIG_FIT) += $(COBJS-libfdt)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
COBJS	:= $(sort $(COBJS-y))
 | 
			
		||||
SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 | 
			
		||||
OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,12 +47,17 @@ LIB	:= $(obj)$(LIB)
 | 
			
		|||
 | 
			
		||||
all:	$(LIB)
 | 
			
		||||
 | 
			
		||||
postdeps:
 | 
			
		||||
	@for lib in $(SPLIB-y) ; do \
 | 
			
		||||
		$(MAKE) -C `dirname $$lib` all ; \
 | 
			
		||||
	done
 | 
			
		||||
 | 
			
		||||
# generic POST library
 | 
			
		||||
$(GPLIB): $(obj).depend $(OBJS)
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $(OBJS)
 | 
			
		||||
 | 
			
		||||
# specific POST libraries
 | 
			
		||||
$(SPLIB): $(obj).depend
 | 
			
		||||
$(SPLIB): $(obj).depend postdeps
 | 
			
		||||
	$(MAKE) -C $(dir $(subst $(obj),,$@))
 | 
			
		||||
 | 
			
		||||
# the POST lib archive
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,5 @@
 | 
			
		|||
# Configuration file for fw_(printenv/saveenv) utility.
 | 
			
		||||
# Up to two entries are valid, in this case the redundand
 | 
			
		||||
# Up to two entries are valid, in this case the redundant
 | 
			
		||||
# environment sector is assumed present.
 | 
			
		||||
# Notice, that the "Number of sectors" is ignored on NOR.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue