diff options
37 files changed, 514 insertions, 888 deletions
@@ -1509,6 +1509,17 @@ The following options need to be configured:  		custom i2c_init_board() routine in boards/xxx/board.c  		is run early in the boot sequence. +		CONFIG_SYS_I2C_BOARD_LATE_INIT + +		An alternative to CONFIG_SYS_I2C_INIT_BOARD. If this option is +		defined a custom i2c_board_late_init() routine in +		boards/xxx/board.c is run AFTER the operations in i2c_init() +		is completed. This callpoint can be used to unreset i2c bus +		using CPU i2c controller register accesses for CPUs whose i2c +		controller provide such a method. It is called at the end of +		i2c_init() to allow i2c_init operations to setup the i2c bus +		controller on the CPU (e.g. setting bus speed & slave address). +  		CONFIG_I2CFAST (PPC405GP|PPC405EP only)  		This option enables configuration of bi_iic_fast[] flags diff --git a/arch/microblaze/cpu/cache.c b/arch/microblaze/cpu/cache.c index 3b7c4d4f7..d258a6938 100644 --- a/arch/microblaze/cpu/cache.c +++ b/arch/microblaze/cpu/cache.c @@ -50,6 +50,8 @@ void	icache_enable (void) {  }  void	icache_disable(void) { +	/* we are not generate ICACHE size -> flush whole cache */ +	flush_cache(0, 32768);  	MSRCLR(0x20);  } @@ -58,5 +60,31 @@ void	dcache_enable (void) {  }  void	dcache_disable(void) { +#ifdef XILINX_USE_DCACHE +#ifdef XILINX_DCACHE_BYTE_SIZE +	flush_cache(0, XILINX_DCACHE_BYTE_SIZE); +#else +#warning please rebuild BSPs and update configuration +	flush_cache(0, 32768); +#endif +#endif  	MSRCLR(0x80);  } + +void flush_cache (ulong addr, ulong size) +{ +	int i; +	for (i = 0; i < size; i += 4) +		asm volatile ( +#ifdef CONFIG_ICACHE +				"wic	%0, r0;" +#endif +				"nop;" +#ifdef CONFIG_DCACHE +				"wdc.flush	%0, r0;" +#endif +				"nop;" +				: +				: "r" (addr + i) +				: "memory"); +} diff --git a/arch/microblaze/cpu/interrupts.c b/arch/microblaze/cpu/interrupts.c index a6021c99c..7a9d022ee 100644 --- a/arch/microblaze/cpu/interrupts.c +++ b/arch/microblaze/cpu/interrupts.c @@ -46,13 +46,6 @@ int disable_interrupts (void)  }  #ifdef CONFIG_SYS_INTC_0 -#ifdef CONFIG_SYS_TIMER_0 -extern void timer_init (void); -#endif -#ifdef CONFIG_SYS_FSL_2 -extern void fsl_init2 (void); -#endif -  static struct irq_action vecs[CONFIG_SYS_INTC_0_NUM]; @@ -142,20 +135,14 @@ int interrupts_init (void)  	}  	/* initialize intc controller */  	intc_init (); -#ifdef CONFIG_SYS_TIMER_0 -	timer_init (); -#endif -#ifdef CONFIG_SYS_FSL_2 -	fsl_init2 (); -#endif  	enable_interrupts ();  	return 0;  }  void interrupt_handler (void)  { -	int irqs = (intc->isr & intc->ier);	/* find active interrupt */ -	int i = 1; +	int irqs = intc->ivr;	/* find active interrupt */ +	int mask = 1;  #ifdef DEBUG_INT  	int value;  	printf ("INTC isr %x, ier %x, iar %x, mer %x\n", intc->isr, intc->ier, @@ -163,23 +150,17 @@ void interrupt_handler (void)  	R14(value);  	printf ("Interrupt handler on %x line, r14 %x\n", irqs, value);  #endif -	struct irq_action *act = vecs; -	while (irqs) { -		if (irqs & 1) { +	struct irq_action *act = vecs + irqs; + +	intc->iar = mask << irqs; +  #ifdef DEBUG_INT -			printf -			    ("Jumping to interrupt handler rutine addr %x,count %x,arg %x\n", -			     act->handler, act->count, act->arg); +	printf +	    ("Jumping to interrupt handler rutine addr %x,count %x,arg %x\n", +	     act->handler, act->count, act->arg);  #endif -			act->handler (act->arg); -			act->count++; -			intc->iar = i; -			return; -		} -		irqs >>= 1; -		act++; -		i <<= 1; -	} +	act->handler (act->arg); +	act->count++;  #ifdef DEBUG_INT  	printf ("Dump INTC reg, isr %x, ier %x, iar %x, mer %x\n", intc->isr, diff --git a/arch/microblaze/cpu/irq.S b/arch/microblaze/cpu/irq.S index e1fc19046..47bba36f2 100644 --- a/arch/microblaze/cpu/irq.S +++ b/arch/microblaze/cpu/irq.S @@ -27,129 +27,71 @@  	.text  	.global _interrupt_handler  _interrupt_handler: -	addi	r1, r1, -4 -	swi	r2, r1, 0 -	addi	r1, r1, -4 -	swi	r3, r1, 0 -	addi	r1, r1, -4 -	swi	r4, r1, 0 -	addi	r1, r1, -4 -	swi	r5, r1, 0 -	addi	r1, r1, -4 -	swi	r6, r1, 0 -	addi	r1, r1, -4 -	swi	r7, r1, 0 -	addi	r1, r1, -4 -	swi	r8, r1, 0 -	addi	r1, r1, -4 -	swi	r9, r1, 0 -	addi	r1, r1, -4 -	swi	r10, r1, 0 -	addi	r1, r1, -4 -	swi	r11, r1, 0 -	addi	r1, r1, -4 -	swi	r12, r1, 0 -	addi	r1, r1, -4 -	swi	r13, r1, 0 -	addi	r1, r1, -4 -	swi	r14, r1, 0 -	addi	r1, r1, -4 -	swi	r15, r1, 0 -	addi	r1, r1, -4 -	swi	r16, r1, 0 -	addi	r1, r1, -4 -	swi	r17, r1, 0 -	addi	r1, r1, -4 -	swi	r18, r1, 0 -	addi	r1, r1, -4 -	swi	r19, r1, 0 -	addi	r1, r1, -4 -	swi	r20, r1, 0 -	addi	r1, r1, -4 -	swi	r21, r1, 0 -	addi	r1, r1, -4 -	swi	r22, r1, 0 -	addi	r1, r1, -4 -	swi	r23, r1, 0 -	addi	r1, r1, -4 -	swi	r24, r1, 0 -	addi	r1, r1, -4 -	swi	r25, r1, 0 -	addi	r1, r1, -4 -	swi	r26, r1, 0 -	addi	r1, r1, -4 -	swi	r27, r1, 0 -	addi	r1, r1, -4 -	swi	r28, r1, 0 -	addi	r1, r1, -4 -	swi	r29, r1, 0 -	addi	r1, r1, -4 -	swi	r30, r1, 0 -	addi	r1, r1, -4 -	swi	r31, r1, 0 +	swi	r2, r1, -4 +	swi	r3, r1, -8 +	swi	r4, r1, -12 +	swi	r5, r1, -16 +	swi	r6, r1, -20 +	swi	r7, r1, -24 +	swi	r8, r1, -28 +	swi	r9, r1, -32 +	swi	r10, r1, -36 +	swi	r11, r1, -40 +	swi	r12, r1, -44 +	swi	r13, r1, -48 +	swi	r14, r1, -52 +	swi	r15, r1, -56 +	swi	r16, r1, -60 +	swi	r17, r1, -64 +	swi	r18, r1, -68 +	swi	r19, r1, -72 +	swi	r20, r1, -76 +	swi	r21, r1, -80 +	swi	r22, r1, -84 +	swi	r23, r1, -88 +	swi	r24, r1, -92 +	swi	r25, r1, -96 +	swi	r26, r1, -100 +	swi	r27, r1, -104 +	swi	r28, r1, -108 +	swi	r29, r1, -112 +	swi	r30, r1, -116 +	swi	r31, r1, -120 +	addik	r1, r1, -124  	brlid	r15, interrupt_handler  	nop  	nop -	lwi	r31, r1, 0 -	addi	r1, r1, 4 -	lwi	r30, r1, 0 -	addi	r1, r1, 4 -	lwi	r29, r1, 0 -	addi	r1, r1, 4 -	lwi	r28, r1, 0 -	addi	r1, r1, 4 -	lwi	r27, r1, 0 -	addi	r1, r1, 4 -	lwi	r26, r1, 0 -	addi	r1, r1, 4 -	lwi	r25, r1, 0 -	addi	r1, r1, 4 -	lwi	r24, r1, 0 -	addi	r1, r1, 4 -	lwi	r23, r1, 0 -	addi	r1, r1, 4 -	lwi	r22, r1, 0 -	addi	r1, r1, 4 -	lwi	r21, r1, 0 -	addi	r1, r1, 4 -	lwi	r20, r1, 0 -	addi	r1, r1, 4 -	lwi	r19, r1, 0 -	addi	r1, r1, 4 -	lwi	r18, r1, 0 -	addi	r1, r1, 4 -	lwi	r17, r1, 0 -	addi	r1, r1, 4 -	lwi	r16, r1, 0 -	addi	r1, r1, 4 -	lwi	r15, r1, 0 -	addi	r1, r1, 4 -	lwi	r14, r1, 0 -	addi	r1, r1, 4 -	lwi	r13, r1, 0 -	addi	r1, r1, 4 -	lwi	r12, r1, 0 -	addi	r1, r1, 4 -	lwi	r11, r1, 0 -	addi	r1, r1, 4 -	lwi	r10, r1, 0 -	addi	r1, r1, 4 -	lwi	r9, r1, 0 -	addi	r1, r1, 4 -	lwi	r8, r1, 0 -	addi	r1, r1, 4 -	lwi	r7, r1, 0 -	addi	r1, r1, 4 -	lwi	r6, r1, 0 -	addi	r1, r1, 4 -	lwi	r5, r1, 0 -	addi	r1, r1, 4 -	lwi	r4, r1, 0 -	addi	r1, r1, 4 -	lwi	r3, r1, 0 -	addi	r1, r1, 4 -	lwi	r2, r1, 0 -	addi	r1, r1, 4 +	addik	r1, r1, 124 +	lwi	r31, r1, -120 +	lwi	r30, r1, -116 +	lwi	r29, r1, -112 +	lwi	r28, r1, -108 +	lwi	r27, r1, -104 +	lwi	r26, r1, -100 +	lwi	r25, r1, -96 +	lwi	r24, r1, -92 +	lwi	r23, r1, -88 +	lwi	r22, r1, -84 +	lwi	r21, r1, -80 +	lwi	r20, r1, -76 +	lwi	r19, r1, -72 +	lwi	r18, r1, -68 +	lwi	r17, r1, -64 +	lwi	r16, r1, -60 +	lwi	r15, r1, -56 +	lwi	r14, r1, -52 +	lwi	r13, r1, -48 +	lwi	r12, r1, -44 +	lwi	r11, r1, -40 +	lwi	r10, r1, -36 +	lwi	r9, r1, -32 +	lwi	r8, r1, -28 +	lwi	r7, r1, -24 +	lwi	r6, r1, -20 +	lwi	r5, r1, -16 +	lwi	r4, r1, -12 +	lwi	r3, r1, -8 +	lwi	r2, r1, -4  	/* enable_interrupt */  #ifdef XILINX_USE_MSR_INSTR diff --git a/arch/microblaze/cpu/timer.c b/arch/microblaze/cpu/timer.c index a91eabc64..4936c628a 100644 --- a/arch/microblaze/cpu/timer.c +++ b/arch/microblaze/cpu/timer.c @@ -60,7 +60,7 @@ void timer_isr (void *arg)  	tmr->control = tmr->control | TIMER_INTERRUPT;  } -void timer_init (void) +int timer_init (void)  {  	tmr->loadreg = CONFIG_SYS_TIMER_0_PRELOAD;  	tmr->control = TIMER_INTERRUPT | TIMER_RESET; @@ -68,6 +68,7 @@ void timer_init (void)  	    TIMER_ENABLE | TIMER_ENABLE_INTR | TIMER_RELOAD | TIMER_DOWN_COUNT;  	reset_timer ();  	install_interrupt_handler (CONFIG_SYS_TIMER_0_IRQ, timer_isr, (void *)tmr); +	return 0;  }  #endif  #endif diff --git a/arch/microblaze/lib/Makefile b/arch/microblaze/lib/Makefile index 9b0f296e3..817643795 100644 --- a/arch/microblaze/lib/Makefile +++ b/arch/microblaze/lib/Makefile @@ -29,7 +29,6 @@ SOBJS-y	+=  COBJS-y	+= board.o  COBJS-y	+= bootm.o -COBJS-y	+= cache.o  COBJS-y	+= time.o  SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) diff --git a/arch/microblaze/lib/board.c b/arch/microblaze/lib/board.c index d4baea930..3ff5c17d2 100644 --- a/arch/microblaze/lib/board.c +++ b/arch/microblaze/lib/board.c @@ -30,6 +30,7 @@  #include <timestamp.h>  #include <version.h>  #include <watchdog.h> +#include <stdio_dev.h>  DECLARE_GLOBAL_DATA_PTR; @@ -44,6 +45,12 @@ extern int interrupts_init (void);  #if defined(CONFIG_CMD_NET)  extern int eth_init (bd_t * bis);  #endif +#ifdef CONFIG_SYS_TIMER_0 +extern int timer_init (void); +#endif +#ifdef CONFIG_SYS_FSL_2 +extern void fsl_init2 (void); +#endif  /*   * All attempts to come up with a "common" initialization sequence @@ -68,6 +75,12 @@ init_fnc_t *init_sequence[] = {  #ifdef CONFIG_SYS_INTC_0  	interrupts_init,  #endif +#ifdef CONFIG_SYS_TIMER_0 +	timer_init, +#endif +#ifdef CONFIG_SYS_FSL_2 +	fsl_init2, +#endif  	NULL,  }; @@ -76,6 +89,7 @@ void board_init (void)  	bd_t *bd;  	init_fnc_t **init_fnc_ptr;  	gd = (gd_t *) CONFIG_SYS_GBL_DATA_OFFSET; +	char *s;  #if defined(CONFIG_CMD_FLASH)  	ulong flash_size = 0;  #endif @@ -104,8 +118,8 @@ void board_init (void)  	}  	puts ("SDRAM :\n"); -	printf ("\t\tIcache:%s\n", icache_status() ? "OK" : "FAIL"); -	printf ("\t\tDcache:%s\n", dcache_status() ? "OK" : "FAIL"); +	printf ("\t\tIcache:%s\n", icache_status() ? "ON" : "OFF"); +	printf ("\t\tDcache:%s\n", dcache_status() ? "ON" : "OFF");  	printf ("\tU-Boot Start:0x%08x\n", TEXT_BASE);  #if defined(CONFIG_CMD_FLASH) @@ -139,15 +153,22 @@ void board_init (void)  	}  #endif +	/* relocate environment function pointers etc. */ +	env_relocate (); + +	/* Initialize stdio devices */ +	stdio_init (); + +	if ((s = getenv ("loadaddr")) != NULL) { +		load_addr = simple_strtoul (s, NULL, 16); +	} +  #if defined(CONFIG_CMD_NET)  	/* IP Address */  	bd->bi_ip_addr = getenv_IPaddr ("ipaddr");  	eth_init (bd);  #endif -	/* relocate environment function pointers etc. */ -	env_relocate (); -  	/* main_loop */  	for (;;) {  		WATCHDOG_RESET (); diff --git a/arch/microblaze/lib/bootm.c b/arch/microblaze/lib/bootm.c index bce4774fe..2227a81bb 100644 --- a/arch/microblaze/lib/bootm.c +++ b/arch/microblaze/lib/bootm.c @@ -35,22 +35,59 @@ DECLARE_GLOBAL_DATA_PTR;  int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)  {  	/* First parameter is mapped to $r5 for kernel boot args */ -	void	(*theKernel) (char *); +	void	(*theKernel) (char *, ulong, ulong);  	char	*commandline = getenv ("bootargs"); +	ulong	rd_data_start, rd_data_end;  	if ((flag != 0) && (flag != BOOTM_STATE_OS_GO))  		return 1; -	theKernel = (void (*)(char *))images->ep; +	int	ret; + +	char	*of_flat_tree = NULL; +#if defined(CONFIG_OF_LIBFDT) +	ulong	of_size = 0; + +	/* find flattened device tree */ +	ret = boot_get_fdt (flag, argc, argv, images, &of_flat_tree, &of_size); +	if (ret) +		return 1; +#endif + +	theKernel = (void (*)(char *, ulong, ulong))images->ep; + +	/* find ramdisk */ +	ret = boot_get_ramdisk (argc, argv, images, IH_ARCH_MICROBLAZE, +			&rd_data_start, &rd_data_end); +	if (ret) +		return 1;  	show_boot_progress (15); +	if (!(ulong) of_flat_tree) +		of_flat_tree = (char *)simple_strtoul (argv[3], NULL, 16); +  #ifdef DEBUG -	printf ("## Transferring control to Linux (at address %08lx) ...\n", -		(ulong) theKernel); +	printf ("## Transferring control to Linux (at address 0x%08lx) " \ +				"ramdisk 0x%08lx, FDT 0x%08lx...\n", +		(ulong) theKernel, rd_data_start, (ulong) of_flat_tree);  #endif -	theKernel (commandline); +#ifdef XILINX_USE_DCACHE +#ifdef XILINX_DCACHE_BYTE_SIZE +	flush_cache(0, XILINX_DCACHE_BYTE_SIZE); +#else +#warning please rebuild BSPs and update configuration +	flush_cache(0, 32768); +#endif +#endif +	/* +	 * Linux Kernel Parameters (passing device tree): +	 * r5: pointer to command line +	 * r6: pointer to ramdisk +	 * r7: pointer to the fdt, followed by the board info data +	 */ +	theKernel (commandline, rd_data_start, (ulong) of_flat_tree);  	/* does not return */  	return 1; diff --git a/arch/microblaze/lib/cache.c b/arch/microblaze/lib/cache.c deleted file mode 100644 index 4b2e8e379..000000000 --- a/arch/microblaze/lib/cache.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * (C) Copyright 2004 Atmark Techno, Inc. - * - * Yasushi SHOJI <yashi@atmark-techno.com> - * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * 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> - -void flush_cache (ulong addr, ulong size) -{ -	int i; -	for (i = 0; i < size; i += 4) -		asm volatile ( -#ifdef CONFIG_ICACHE -				"wic	%0, r0;" -#endif -				"nop;" -#ifdef CONFIG_DCACHE -				"wdc	%0, r0;" -#endif -				"nop;" -				: -				: "r" (addr + i) -				: "memory"); -} diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h index ce7f08100..5166507f9 100644 --- a/arch/powerpc/include/asm/mmu.h +++ b/arch/powerpc/include/asm/mmu.h @@ -577,11 +577,16 @@ extern int num_tlb_entries;  #define SA_M	0x00000200	/* Memory coherence */  #define SA_G	0x00000100	/* Guarded */  #define SA_E	0x00000080	/* Endian */ +/* Some additional macros for combinations often used */ +#define SA_IG	(SA_I | SA_G)  /* Access control */  #define AC_X	0x00000024	/* Execute */  #define AC_W	0x00000012	/* Write */  #define AC_R	0x00000009	/* Read */ +/* Some additional macros for combinations often used */ +#define AC_RW	(AC_R | AC_W) +#define AC_RWX	(AC_R | AC_W | AC_X)  /* Some handy macros */ diff --git a/board/amcc/bamboo/init.S b/board/amcc/bamboo/init.S index 7439c805c..692592178 100644 --- a/board/amcc/bamboo/init.S +++ b/board/amcc/bamboo/init.S @@ -48,29 +48,29 @@ tlbtab:  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */  #ifndef CONFIG_NAND_SPL -	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_RWX | SA_G)  #else -	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 0, AC_R|AC_W|AC_X|SA_G) -	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 0, AC_RWX | SA_G) +	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG)  #endif  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G)  	/* PCI base & peripherals */ -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_NVRAM_BASE_ADDR, SZ_256M, CONFIG_SYS_NVRAM_BASE_ADDR, 0, AC_R|AC_W|AC_X|SA_W|SA_I) -	tlbentry(CONFIG_SYS_NAND_ADDR, SZ_4K, CONFIG_SYS_NAND_ADDR, 0, AC_R|AC_W|AC_X|SA_W|SA_I) +	tlbentry(CONFIG_SYS_NVRAM_BASE_ADDR, SZ_256M, CONFIG_SYS_NVRAM_BASE_ADDR, 0, AC_RWX | SA_W|SA_I) +	tlbentry(CONFIG_SYS_NAND_ADDR, SZ_4K, CONFIG_SYS_NAND_ADDR, 0, AC_RWX | SA_W|SA_I)  	/* PCI */ -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_RW | SA_IG)  	/* USB 2.0 Device */ -	tlbentry(CONFIG_SYS_USB_DEVICE, SZ_1K, CONFIG_SYS_USB_DEVICE, 0, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_USB_DEVICE, SZ_1K, CONFIG_SYS_USB_DEVICE, 0, AC_RW | SA_IG)  	tlbtab_end @@ -81,7 +81,7 @@ tlbtab:  	 */  #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M)  #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 0) -#define TLB02	TLB2(AC_R|AC_W|AC_X|SA_G|SA_I) +#define TLB02	TLB2(AC_RWX | SA_IG)  	.globl	reconfig_tlb0  reconfig_tlb0: diff --git a/board/amcc/canyonlands/init.S b/board/amcc/canyonlands/init.S index 993bec30e..64d5d4229 100644 --- a/board/amcc/canyonlands/init.S +++ b/board/amcc/canyonlands/init.S @@ -47,11 +47,11 @@ tlbtab:  	 * enable SA_I  	 */  #ifndef CONFIG_NAND_SPL -	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, 4, AC_R|AC_W|AC_X|SA_G) /* TLB 0 */ +	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, 4, AC_RWX | SA_G) /* TLB 0 */  #else -	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 4, AC_R|AC_W|AC_X|SA_G) -	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(256 << 20, SZ_256M, 256 << 20, 0, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 4, AC_RWX | SA_G) +	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG) +	tlbentry(256 << 20, SZ_256M, 256 << 20, 0, AC_RWX | SA_IG)  #endif  	/* @@ -62,51 +62,51 @@ tlbtab:  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G)  #endif -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x20000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_RW | SA_IG)  	/* PCIe UTL register */ -	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x08010000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x08010000, 0xC, AC_RW | SA_IG)  #if !defined(CONFIG_ARCHES)  	/* TLB-entry for NAND */ -	tlbentry(CONFIG_SYS_NAND_ADDR, SZ_16M, CONFIG_SYS_NAND_ADDR, 4, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_NAND_ADDR, SZ_16M, CONFIG_SYS_NAND_ADDR, 4, AC_RWX | SA_IG)  	/* TLB-entry for CPLD */ -	tlbentry(CONFIG_SYS_BCSR_BASE, SZ_1K, CONFIG_SYS_BCSR_BASE, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_BCSR_BASE, SZ_1K, CONFIG_SYS_BCSR_BASE, 4, AC_RW | SA_IG)  #else  	/* TLB-entry for FPGA */ -	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_16M, CONFIG_SYS_FPGA_BASE, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_16M, CONFIG_SYS_FPGA_BASE, 4, AC_RW | SA_IG)  #endif  	/* TLB-entry for OCM */ -	tlbentry(CONFIG_SYS_OCM_BASE, SZ_1M, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) +	tlbentry(CONFIG_SYS_OCM_BASE, SZ_1M, 0x00000000, 4, AC_RWX | SA_I)  	/* TLB-entry for Local Configuration registers => peripherals */ -	tlbentry(CONFIG_SYS_LOCAL_CONF_REGS, SZ_16M, CONFIG_SYS_LOCAL_CONF_REGS, 4, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_LOCAL_CONF_REGS, SZ_16M, CONFIG_SYS_LOCAL_CONF_REGS, 4, AC_RWX | SA_IG)  	/* AHB: Internal USB Peripherals (USB, SATA) */ -	tlbentry(CONFIG_SYS_AHB_BASE, SZ_1M, 0xbff00000, 4, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_AHB_BASE, SZ_1M, 0xbff00000, 4, AC_RWX | SA_IG)  #if defined(CONFIG_RAPIDIO)  	/* TLB-entries for RapidIO (SRIO) */  	tlbentry(CONFIG_SYS_SRGPL0_REG_BAR, SZ_16M, CONFIG_SYS_SRGPL0_REG_BAR, -					0xD, AC_R|AC_W|SA_G|SA_I) +					0xD, AC_RW | SA_IG)  	tlbentry(CONFIG_SYS_SRGPL0_CFG_BAR, SZ_16M, CONFIG_SYS_SRGPL0_CFG_BAR, -					0xD, AC_R|AC_W|SA_G|SA_I) +					0xD, AC_RW | SA_IG)  	tlbentry(CONFIG_SYS_SRGPL0_MNT_BAR, SZ_16M, CONFIG_SYS_SRGPL0_MNT_BAR, -					0xD, AC_R|AC_W|SA_G|SA_I) +					0xD, AC_RW | SA_IG)  	tlbentry(CONFIG_SYS_I2ODMA_BASE, SZ_1K,  0x00100000, -					0x4, AC_R|AC_W|SA_G|SA_I) +					0x4, AC_RW | SA_IG)  #endif  	tlbtab_end @@ -118,7 +118,7 @@ tlbtab:  	 */  #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M)  #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) -#define TLB02	TLB2(AC_R|AC_W|AC_X|SA_G|SA_I) +#define TLB02	TLB2(AC_RWX | SA_IG)  	.globl	reconfig_tlb0  reconfig_tlb0: diff --git a/board/amcc/ebony/init.S b/board/amcc/ebony/init.S index 153fa811c..c91176367 100644 --- a/board/amcc/ebony/init.S +++ b/board/amcc/ebony/init.S @@ -41,7 +41,7 @@  tlbtab:  	tlbtab_start -	tlbentry(0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -49,9 +49,9 @@ tlbtab:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_R|AC_W|AC_X) -	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_RWX) +	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_RWX) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/amcc/katmai/init.S b/board/amcc/katmai/init.S index 90598f63b..59ccf2b6a 100644 --- a/board/amcc/katmai/init.S +++ b/board/amcc/katmai/init.S @@ -51,7 +51,7 @@ tlbtabA:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -59,20 +59,20 @@ tlbtabA:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_RW | SA_IG)  	tlbtab_end  /************************************************************************** @@ -91,7 +91,7 @@ tlbtabB:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -99,20 +99,20 @@ tlbtabB:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I) -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_ACE_BASE, SZ_1K, CONFIG_SYS_ACE_BASE, 4,AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_ACE_BASE, SZ_1K, CONFIG_SYS_ACE_BASE, 4,AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/amcc/luan/init.S b/board/amcc/luan/init.S index 513b0fc56..06428d25c 100644 --- a/board/amcc/luan/init.S +++ b/board/amcc/luan/init.S @@ -48,13 +48,13 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xfff00000, SZ_1M, 0xfff00000, 1, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xfff00000, SZ_1M, 0xfff00000, 1, AC_RWX | SA_G) -	tlbentry(0xffc00000, SZ_1M, 0xffc00000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(0xffd00000, SZ_1M, 0xffd00000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(0xffe00000, SZ_1M, 0xffe00000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(0xff900000, SZ_1M, 0xff900000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(CONFIG_SYS_EPLD_BASE, SZ_256K, 0xff000000, 1, AC_R|AC_W|SA_G|SA_I) +	tlbentry(0xffc00000, SZ_1M, 0xffc00000, 1, AC_RWX | SA_IG) +	tlbentry(0xffd00000, SZ_1M, 0xffd00000, 1, AC_RWX | SA_IG) +	tlbentry(0xffe00000, SZ_1M, 0xffe00000, 1, AC_RWX | SA_IG) +	tlbentry(0xff900000, SZ_1M, 0xff900000, 1, AC_RWX | SA_IG) +	tlbentry(CONFIG_SYS_EPLD_BASE, SZ_256K, 0xff000000, 1, AC_RW | SA_IG)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -63,12 +63,12 @@ tlbtab:  	 */  	/* internal ram (l2 cache) */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_R|AC_W|AC_X|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_RWX | SA_I)  	/* peripherals at f0000000 */ -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, CONFIG_SYS_PERIPHERAL_BASE, 1, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, CONFIG_SYS_PERIPHERAL_BASE, 1, AC_RW | SA_IG)  	/* PCI */ -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 9, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 9, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 9, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 9, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/amcc/ocotea/init.S b/board/amcc/ocotea/init.S index e7c75dfac..2ef11ccb4 100644 --- a/board/amcc/ocotea/init.S +++ b/board/amcc/ocotea/init.S @@ -41,7 +41,7 @@  tlbtab:  	tlbtab_start -	tlbentry(0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -49,9 +49,9 @@ tlbtab:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_R|AC_W|AC_X) -	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_RWX) +	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_RWX) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/amcc/redwood/init.S b/board/amcc/redwood/init.S index 4da586918..fb10520b8 100644 --- a/board/amcc/redwood/init.S +++ b/board/amcc/redwood/init.S @@ -45,7 +45,7 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -54,24 +54,24 @@ tlbtab:  	 */  	/* Although 512 KB, map 256k at a time */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) -	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x40000, SZ_256K, 0x00040000, 4, AC_R|AC_W|AC_X|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x40000, SZ_256K, 0x00040000, 4, AC_RWX | SA_I) -	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_RWX | SA_IG)  	/*  	 * Peripheral base  	 */ -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_16K, 0xEF600000, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_16K, 0xEF600000, 4, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE,SZ_16M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE,SZ_16M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE,SZ_16M, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE,SZ_16M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE,SZ_16M, 0x10000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE,SZ_16M, 0x20000000, 0xC, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_MEMBASE, SZ_256M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_MEMBASE, SZ_256M, 0x00000000, 0xE, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_MEMBASE, SZ_256M, 0x00000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_MEMBASE, SZ_256M, 0x00000000, 0xE, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_REGBASE, SZ_64K, 0x30000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_REGBASE, SZ_64K, 0x30010000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_REGBASE, SZ_64K, 0x30020000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_REGBASE, SZ_64K, 0x30000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_REGBASE, SZ_64K, 0x30010000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_REGBASE, SZ_64K, 0x30020000, 0xC, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/amcc/sequoia/init.S b/board/amcc/sequoia/init.S index f090070b4..7139aaee4 100644 --- a/board/amcc/sequoia/init.S +++ b/board/amcc/sequoia/init.S @@ -41,7 +41,7 @@ tlbtab:  	tlbtab_start  	/* vxWorks needs this as first entry for the Machine Check interrupt */ -	tlbentry( 0x40000000, SZ_256M, 0, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0x40000000, SZ_256M, 0, 0, AC_RWX | SA_IG )  	/*  	 * The RAM-boot version skips the SDRAM TLB (identified by EPN=0). This @@ -51,49 +51,49 @@ tlbtab:  #ifndef CONFIG_SYS_RAMBOOT  	/* TLB-entry for DDR SDRAM (Up to 2GB) */  #ifdef CONFIG_4xx_DCACHE -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_G)  #else -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG )  #endif  #endif /* CONFIG_SYS_RAMBOOT */  	/* TLB-entry for EBC */ -	tlbentry( CONFIG_SYS_BCSR_BASE, SZ_256M, CONFIG_SYS_BCSR_BASE, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_BCSR_BASE, SZ_256M, CONFIG_SYS_BCSR_BASE, 1, AC_RWX | SA_IG )  	/* BOOT_CS (FLASH) must be forth. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */  #ifndef CONFIG_NAND_SPL -	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G )  #else -	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_RWX | SA_G )  #endif  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G )  #endif  	/* TLB-entry for PCI Memory */ -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_RW | SA_IG )  	/* TLB-entry for NAND */ -	tlbentry( CONFIG_SYS_NAND_ADDR, SZ_1K, CONFIG_SYS_NAND_ADDR, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_NAND_ADDR, SZ_1K, CONFIG_SYS_NAND_ADDR, 1, AC_RWX | SA_IG )  	/* TLB-entry for Internal Registers & OCM */ -	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_I ) +	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_RWX | SA_I )  	/*TLB-entry PCI registers*/ -	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_RWX | SA_IG )  	/* TLB-entry for peripherals */ -	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_RWX | SA_IG)  	/* TLB-entry PCI IO Space - from sr@denx.de */ -	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_RWX | SA_IG)  	tlbtab_end @@ -104,7 +104,7 @@ tlbtab:  	 */  #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M)  #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) -#define TLB02	TLB2(AC_R|AC_W|AC_X|SA_G|SA_I) +#define TLB02	TLB2(AC_RWX | SA_IG)  	.globl	reconfig_tlb0  reconfig_tlb0: diff --git a/board/amcc/taishan/init.S b/board/amcc/taishan/init.S index 748ec0ab5..ac4e95df0 100644 --- a/board/amcc/taishan/init.S +++ b/board/amcc/taishan/init.S @@ -22,56 +22,9 @@   */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 -#define _256M       0x10000000 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_8M       0x00000060 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) -  /**************************************************************************   * TLB TABLE   * @@ -88,10 +41,10 @@  tlbtab:  	tlbtab_start -	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_R|AC_W|AC_X ) -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_RWX ) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG )  	tlbtab_end diff --git a/board/amcc/yosemite/init.S b/board/amcc/yosemite/init.S index f9382365c..ed3741c54 100644 --- a/board/amcc/yosemite/init.S +++ b/board/amcc/yosemite/init.S @@ -20,56 +20,9 @@  */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_8M       0x00000060 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -91,22 +44,22 @@ tlbtab:       * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the       * speed up boot process. It is patched after relocation to enable SA_I       */ -    tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_R|AC_W|AC_X|SA_G/*|SA_I*/) +    tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_RWX | SA_G/*|SA_I*/)      /* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -    tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +    tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G ) -    tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_R|AC_W|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_NVRAM_BASE_ADDR, SZ_256M, CONFIG_SYS_NVRAM_BASE_ADDR, 0, AC_R|AC_W|AC_X|SA_W|SA_I ) +    tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, AC_RWX | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_RW | SA_IG ) +    tlbentry( CONFIG_SYS_NVRAM_BASE_ADDR, SZ_256M, CONFIG_SYS_NVRAM_BASE_ADDR, 0, AC_RWX | SA_W|SA_I )      /* PCI */ -    tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_R|AC_W|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_R|AC_W|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_R|AC_W|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_R|AC_W|SA_G|SA_I ) +    tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_RW | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_RW | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_RW | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_RW | SA_IG )      /* USB 2.0 Device */ -    tlbentry( CONFIG_SYS_USB_DEVICE, SZ_1K, 0x50000000, 0, AC_R|AC_W|SA_G|SA_I ) +    tlbentry( CONFIG_SYS_USB_DEVICE, SZ_1K, 0x50000000, 0, AC_RW | SA_IG )      tlbtab_end diff --git a/board/amcc/yucca/init.S b/board/amcc/yucca/init.S index f51035ff6..b2ac3ca4a 100644 --- a/board/amcc/yucca/init.S +++ b/board/amcc/yucca/init.S @@ -51,7 +51,7 @@ tlbtabA:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -59,23 +59,23 @@ tlbtabA:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) -	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_1K, 0xE2000000, 4,AC_R|AC_W|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I) +	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_1K, 0xE2000000, 4,AC_RW | SA_I) -	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_RWX | SA_IG) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_BASE, SZ_16K, 0x20000000, 0xC, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x40000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x80000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0xC0000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x50000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x90000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0xD0000000, 0xC, AC_RW | SA_IG)  	tlbtab_end  /************************************************************************** @@ -94,7 +94,7 @@ tlbtabB:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_R|AC_W|AC_X|SA_G) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 4, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -102,20 +102,20 @@ tlbtabB:  	 * routine.  	 */ -	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_R|AC_W|AC_X|SA_I) -	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_1K, 0xE2000000, 4,AC_R|AC_W|SA_I) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x00000000, 4, AC_RWX | SA_I) +	tlbentry(CONFIG_SYS_FPGA_BASE, SZ_1K, 0xE2000000, 4,AC_RW | SA_I) -	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_OPER_FLASH, SZ_16M, 0xE7000000, 4,AC_RWX | SA_IG) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_4K, 0xF0000000, 4, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x10000000, 0xC, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE_MEMBASE, SZ_256M, 0xB0000000, 0xD, AC_RW | SA_IG) -	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCIE0_CFGBASE, SZ_16M, 0x00000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_CFGBASE, SZ_16M, 0x20000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_CFGBASE, SZ_16M, 0x40000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE0_XCFGBASE, SZ_1K, 0x10000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE1_XCFGBASE, SZ_1K, 0x30000000, 0xD, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCIE2_XCFGBASE, SZ_1K, 0x50000000, 0xD, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/esd/du440/init.S b/board/esd/du440/init.S index afcf9c4a5..351095a48 100644 --- a/board/esd/du440/init.S +++ b/board/esd/du440/init.S @@ -44,38 +44,38 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G )  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G )  #endif  	/* TLB-entry for PCI Memory */ -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M,  CONFIG_SYS_PCI_MEMBASE, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M,  CONFIG_SYS_PCI_MEMBASE, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_RW | SA_IG )  	/* TLB-entry for PCI IO */ -	tlbentry( CONFIG_SYS_PCI_IOBASE, SZ_64K, CONFIG_SYS_PCI_IOBASE, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_IOBASE, SZ_64K, CONFIG_SYS_PCI_IOBASE, 1, AC_RW | SA_IG )  	/* TLB-entries for EBC:	 CPLD, DUMEM, DUIO */ -	tlbentry( CONFIG_SYS_CPLD_BASE, SZ_1K, CONFIG_SYS_CPLD_BASE, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_DUMEM_BASE, SZ_1M, CONFIG_SYS_DUMEM_BASE, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_DUIO_BASE, SZ_64K, CONFIG_SYS_DUIO_BASE, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_CPLD_BASE, SZ_1K, CONFIG_SYS_CPLD_BASE, 1, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_DUMEM_BASE, SZ_1M, CONFIG_SYS_DUMEM_BASE, 1, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_DUIO_BASE, SZ_64K, CONFIG_SYS_DUIO_BASE, 1, AC_RWX | SA_IG )  	/* TLB-entry for NAND */ -	tlbentry( CONFIG_SYS_NAND0_ADDR, SZ_1K, CONFIG_SYS_NAND0_ADDR, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_NAND1_ADDR, SZ_1K, CONFIG_SYS_NAND1_ADDR, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_NAND0_ADDR, SZ_1K, CONFIG_SYS_NAND0_ADDR, 1, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_NAND1_ADDR, SZ_1K, CONFIG_SYS_NAND1_ADDR, 1, AC_RWX | SA_IG )  	/* TLB-entry for Internal Registers & OCM */ -	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_I ) +	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_RWX | SA_I )  	/* TLB-entry PCI registers */ -	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_RWX | SA_IG )  	/* TLB-entry for peripherals */ -	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_RWX | SA_IG)  	tlbtab_end diff --git a/board/esd/pmc440/init.S b/board/esd/pmc440/init.S index d51cd0cf0..96f7206b3 100644 --- a/board/esd/pmc440/init.S +++ b/board/esd/pmc440/init.S @@ -44,23 +44,23 @@ tlbtab:  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */  #ifndef CONFIG_NAND_SPL -	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G )  #else -	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_NAND_BOOT_SPL_SRC, SZ_4K, CONFIG_SYS_NAND_BOOT_SPL_SRC, 1, AC_RWX | SA_G )  #endif  	/* TLB entries for DDR2 SDRAM are generated dynamically */  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G )  #endif  	/* TLB-entry for PCI Memory */ -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_RW | SA_IG )  	/* TLB-entries for EBC */  	/* PMC440 maps EBC to 0xef000000 which is handled by the peripheral @@ -68,22 +68,22 @@ tlbtab:  	 * This dummy entry is only for convinience in order not to modify the  	 * amount of entries. Currently OS/9 relies on this :-)  	 */ -	tlbentry( 0xc0000000, SZ_256M, 0xc0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0xc0000000, SZ_256M, 0xc0000000, 1, AC_RWX | SA_IG )  	/* TLB-entry for NAND */ -	tlbentry( CONFIG_SYS_NAND_ADDR, SZ_1K, CONFIG_SYS_NAND_ADDR, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_NAND_ADDR, SZ_1K, CONFIG_SYS_NAND_ADDR, 1, AC_RWX | SA_IG )  	/* TLB-entry for Internal Registers & OCM */ -	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_I ) +	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0,  AC_RWX | SA_I )  	/*TLB-entry PCI registers*/ -	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_RWX | SA_IG )  	/* TLB-entry for peripherals */ -	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_RWX | SA_IG)  	/* TLB-entry PCI IO space */ -	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_RWX | SA_IG)  	/* TODO:  what about high IO space */  	tlbtab_end @@ -95,7 +95,7 @@ tlbtab:  	 */  #define TLB00	TLB0(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M)  #define TLB01	TLB1(CONFIG_SYS_BOOT_BASE_ADDR, 1) -#define TLB02	TLB2(AC_R|AC_W|AC_X|SA_G|SA_I) +#define TLB02	TLB2(AC_RWX | SA_IG)  	.globl	reconfig_tlb0  reconfig_tlb0: diff --git a/board/gdsys/gdppc440etx/init.S b/board/gdsys/gdppc440etx/init.S index 0bbd45a62..ba750cb53 100644 --- a/board/gdsys/gdppc440etx/init.S +++ b/board/gdsys/gdppc440etx/init.S @@ -51,25 +51,25 @@ tlbtab:       * the speed up boot process. It is patched after relocation to enable SA_I       */      tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, -	0, AC_R|AC_W|AC_X|SA_G/*|SA_I*/) +	0, AC_RWX | SA_G/*|SA_I*/)      /* TLB-entry for init-ram in dcache (SA_I must be turned off!) */      tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, -	0, AC_R|AC_W|AC_X|SA_G ) +	0, AC_RWX | SA_G )      tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, -	0, AC_R|AC_W|AC_X|SA_G|SA_I ) +	0, AC_RWX | SA_IG )      tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, -	0, AC_R|AC_W|SA_G|SA_I ) +	0, AC_RW | SA_IG )      /* PCI */      tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, -	0, AC_R|AC_W|SA_G|SA_I ) +	0, AC_RW | SA_IG )      tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, -	0, AC_R|AC_W|SA_G|SA_I ) +	0, AC_RW | SA_IG )      tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, -	0, AC_R|AC_W|SA_G|SA_I ) +	0, AC_RW | SA_IG )      tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, -	0, AC_R|AC_W|SA_G|SA_I ) +	0, AC_RW | SA_IG )      tlbtab_end diff --git a/board/gdsys/intip/init.S b/board/gdsys/intip/init.S index a8e8b6c1c..5a819c2a3 100644 --- a/board/gdsys/intip/init.S +++ b/board/gdsys/intip/init.S @@ -51,7 +51,7 @@ tlbtab:  	 * enable SA_I  	 */  	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_16M, CONFIG_SYS_BOOT_BASE_ADDR, -		4, AC_R|AC_W|AC_X|SA_G) /* TLB 0 */ +		4, AC_RWX | SA_G) /* TLB 0 */  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -62,36 +62,36 @@ tlbtab:  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */  	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, -		0, AC_R|AC_W|AC_X|SA_G) +		0, AC_RWX | SA_G)  #endif  	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 0xC, -		AC_R|AC_W|SA_G|SA_I) +		AC_RW | SA_IG)  	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x20000000, 0xC, -		AC_R|AC_W|SA_G|SA_I) +		AC_RW | SA_IG)  	/* TLB-entry for NVRAM */  	tlbentry(CONFIG_SYS_NVRAM_BASE, SZ_1M, CONFIG_SYS_NVRAM_BASE, 4, -		AC_R|AC_W|SA_G|SA_I) +		AC_RW | SA_IG)  	/* TLB-entry for UART */  	tlbentry(CONFIG_SYS_UART_BASE, SZ_16K, CONFIG_SYS_UART_BASE, 4, -		AC_R|AC_W|SA_G|SA_I) +		AC_RW | SA_IG)  	/* TLB-entry for IO */  	tlbentry(CONFIG_SYS_IO_BASE, SZ_16K, CONFIG_SYS_IO_BASE, 4, -		AC_R|AC_W|SA_G|SA_I) +		AC_RW | SA_IG)  	/* TLB-entry for OCM */  	tlbentry(CONFIG_SYS_OCM_BASE, SZ_1M, 0x00000000, 4, -		AC_R|AC_W|AC_X|SA_I) +		AC_RWX | SA_I)  	/* TLB-entry for Local Configuration registers => peripherals */  	tlbentry(CONFIG_SYS_LOCAL_CONF_REGS, SZ_16M, CONFIG_SYS_LOCAL_CONF_REGS, -		4, AC_R|AC_W|AC_X|SA_G|SA_I) +		4, AC_RWX | SA_IG)  	/* AHB: Internal USB Peripherals (USB, SATA) */  	tlbentry(CONFIG_SYS_AHB_BASE, SZ_1M, 0xbff00000, 4, -		AC_R|AC_W|AC_X|SA_G|SA_I) +		AC_RWX | SA_IG)  	tlbtab_end diff --git a/board/korat/init.S b/board/korat/init.S index c725bbbb4..bfc6bc152 100644 --- a/board/korat/init.S +++ b/board/korat/init.S @@ -43,7 +43,7 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry( 0xF0000000, SZ_256M, 0xF0000000, 1, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( 0xF0000000, SZ_256M, 0xF0000000, 1, AC_RWX | SA_G )  	/*  	 * TLB entries for SDRAM are not needed on this platform.  They are @@ -53,37 +53,37 @@ tlbtab:  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */  	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, -		  AC_R|AC_W|AC_X|SA_G ) +		  AC_RWX | SA_G )  #endif  	/* TLB-entry for PCI Memory */  	tlbentry( CONFIG_SYS_PCI_MEMBASE + 0x00000000, SZ_256M, -		  CONFIG_SYS_PCI_MEMBASE + 0x00000000, 1, AC_R|AC_W|SA_G|SA_I ) +		  CONFIG_SYS_PCI_MEMBASE + 0x00000000, 1, AC_RW | SA_IG )  	tlbentry( CONFIG_SYS_PCI_MEMBASE + 0x10000000, SZ_256M, -		  CONFIG_SYS_PCI_MEMBASE + 0x10000000, 1, AC_R|AC_W|SA_G|SA_I ) +		  CONFIG_SYS_PCI_MEMBASE + 0x10000000, 1, AC_RW | SA_IG )  	tlbentry( CONFIG_SYS_PCI_MEMBASE + 0x20000000, SZ_256M, -		  CONFIG_SYS_PCI_MEMBASE + 0x20000000, 1, AC_R|AC_W|SA_G|SA_I ) +		  CONFIG_SYS_PCI_MEMBASE + 0x20000000, 1, AC_RW | SA_IG )  	tlbentry( CONFIG_SYS_PCI_MEMBASE + 0x30000000, SZ_256M, -		  CONFIG_SYS_PCI_MEMBASE + 0x30000000, 1, AC_R|AC_W|SA_G|SA_I ) +		  CONFIG_SYS_PCI_MEMBASE + 0x30000000, 1, AC_RW | SA_IG )  	/* TLB-entry for EBC */ -	tlbentry( CONFIG_SYS_CPLD_BASE, SZ_1K, CONFIG_SYS_CPLD_BASE, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_CPLD_BASE, SZ_1K, CONFIG_SYS_CPLD_BASE, 1, AC_RW | SA_IG )  	/* TLB-entry for Internal Registers & OCM */  	/* I wonder why this must be executable -- lrj@acm.org 2007-10-08 */ -	tlbentry( 0xE0000000, SZ_16M, 0xE0000000, 0, AC_R|AC_W|AC_X|SA_I ) +	tlbentry( 0xE0000000, SZ_16M, 0xE0000000, 0, AC_RWX | SA_I )  	/*TLB-entry PCI registers*/ -	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1, AC_RW | SA_IG )  	/* TLB-entry for peripherals */ -	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|SA_G|SA_I) +	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_RW | SA_IG)  	/* TLB-entry PCI IO Space - from sr@denx.de */ -	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_R|AC_W|SA_G|SA_I) +	tlbentry(0xE8000000, SZ_64K, 0xE8000000, 1, AC_RW | SA_IG)  	tlbtab_end diff --git a/board/lwmon5/init.S b/board/lwmon5/init.S index c714fb7ad..8efc8a146 100644 --- a/board/lwmon5/init.S +++ b/board/lwmon5/init.S @@ -47,7 +47,7 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 1, AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -57,34 +57,34 @@ tlbtab:  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_4K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G)  #endif  	/* TLB-entry for PCI Memory */ -	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry(CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_R|AC_W|SA_G|SA_I) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, AC_RW | SA_IG)  	/* TLB-entry for the FPGA Chip select 2 */ -	tlbentry(CONFIG_SYS_FPGA_BASE_0, SZ_1M, CONFIG_SYS_FPGA_BASE_0, 1, AC_R|AC_W|AC_X|SA_I|SA_G) +	tlbentry(CONFIG_SYS_FPGA_BASE_0, SZ_1M, CONFIG_SYS_FPGA_BASE_0, 1, AC_RWX | SA_I|SA_G)  	/* TLB-entry for the FPGA Chip select 3 */ -	tlbentry(CONFIG_SYS_FPGA_BASE_1, SZ_1M, CONFIG_SYS_FPGA_BASE_1, 1,AC_R|AC_W|AC_X|SA_I|SA_G) +	tlbentry(CONFIG_SYS_FPGA_BASE_1, SZ_1M, CONFIG_SYS_FPGA_BASE_1, 1,AC_RWX | SA_I|SA_G)  	/* TLB-entry for the LIME Controller */ -	tlbentry(CONFIG_SYS_LIME_BASE_0, SZ_16M, CONFIG_SYS_LIME_BASE_0, 1, AC_R|AC_W|AC_X|SA_I|SA_G) -	tlbentry(CONFIG_SYS_LIME_BASE_1, SZ_16M, CONFIG_SYS_LIME_BASE_1, 1, AC_R|AC_W|AC_X|SA_I|SA_G) -	tlbentry(CONFIG_SYS_LIME_BASE_2, SZ_16M, CONFIG_SYS_LIME_BASE_2, 1, AC_R|AC_W|AC_X|SA_I|SA_G) -	tlbentry(CONFIG_SYS_LIME_BASE_3, SZ_16M, CONFIG_SYS_LIME_BASE_3, 1, AC_R|AC_W|AC_X|SA_I|SA_G) +	tlbentry(CONFIG_SYS_LIME_BASE_0, SZ_16M, CONFIG_SYS_LIME_BASE_0, 1, AC_RWX | SA_I|SA_G) +	tlbentry(CONFIG_SYS_LIME_BASE_1, SZ_16M, CONFIG_SYS_LIME_BASE_1, 1, AC_RWX | SA_I|SA_G) +	tlbentry(CONFIG_SYS_LIME_BASE_2, SZ_16M, CONFIG_SYS_LIME_BASE_2, 1, AC_RWX | SA_I|SA_G) +	tlbentry(CONFIG_SYS_LIME_BASE_3, SZ_16M, CONFIG_SYS_LIME_BASE_3, 1, AC_RWX | SA_I|SA_G)  	/* TLB-entry for Internal Registers & OCM */ -	tlbentry(0xe0000000, SZ_16M, 0xe0000000, 0,  AC_R|AC_W|AC_X|SA_I) +	tlbentry(0xe0000000, SZ_16M, 0xe0000000, 0,  AC_RWX | SA_I)  	/*TLB-entry PCI registers*/ -	tlbentry(0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_RWX | SA_IG)  	/* TLB-entry for peripherals */ -	tlbentry(0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry(0xEF000000, SZ_16M, 0xEF000000, 1, AC_RWX | SA_IG)  	tlbtab_end diff --git a/board/netstal/hcu5/init.S b/board/netstal/hcu5/init.S index 05b5e389c..45e63dd3d 100644 --- a/board/netstal/hcu5/init.S +++ b/board/netstal/hcu5/init.S @@ -40,13 +40,13 @@ tlbtab:  	tlbtab_start  	/* TLB#0: vxWorks needs this entry for the Machine Check interrupt, */ -	tlbentry( 0x40000000, SZ_256M, 0, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0x40000000, SZ_256M, 0, 0, AC_RWX | SA_IG )  	/* TLB#1: TLB-entry for DDR SDRAM (Up to 2GB) */  	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, CONFIG_SYS_SDRAM_BASE, 0, -		AC_R|AC_W|AC_X|SA_G|SA_I ) +		AC_RWX | SA_IG )  	/* TLB#2: TLB-entry for EBC */ -	tlbentry( 0x80000000, SZ_256M, 0x80000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry( 0x80000000, SZ_256M, 0x80000000, 1, AC_RWX | SA_IG)  	/*  	 * TLB#3: BOOT_CS (FLASH) must be forth. Before relocation SA_I can be @@ -54,7 +54,7 @@ tlbtab:  	 * to enable SA_I  	 */  	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_1M, CONFIG_SYS_BOOT_BASE_ADDR, 1, -		AC_R|AC_W|AC_X|SA_G) +		AC_RWX | SA_G)  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -64,43 +64,43 @@ tlbtab:  	/* TLB#4: */  	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 1, -		AC_R|AC_W|SA_G|SA_I ) +		AC_RW | SA_IG )  	/* TLB#5: */  	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 1, -		AC_R|AC_W|SA_G|SA_I ) +		AC_RW | SA_IG )  	/* TLB#6: */  	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 1, -		AC_R|AC_W|SA_G|SA_I ) +		AC_RW | SA_IG )  	/* TLB-entry for Internal Registers & OCM */  	/* TLB#7: */  	tlbentry( 0xe0000000, SZ_16M, 0xe0000000, 0, -		AC_R|AC_W|AC_X|SA_G|SA_I ) +		AC_RWX | SA_IG )  	/*TLB-entry PCI registers*/  	/* TLB#8: */ -	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( 0xEEC00000, SZ_1K, 0xEEC00000, 1,  AC_RWX | SA_IG )  	/* TLB-entry for peripherals */  	/* TLB#9: */ -	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) +	tlbentry( 0xEF000000, SZ_16M, 0xEF000000, 1, AC_RWX | SA_IG)  	/*		CAN */  	/* TLB#10: */ -	tlbentry( CONFIG_SYS_CS_1, SZ_1K, CONFIG_SYS_CS_1, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_CS_1, SZ_1K, CONFIG_SYS_CS_1, 1, AC_RWX | SA_IG )  	/* TLB#11:  CPLD and IMC-Standard 32 MB */ -	tlbentry( CONFIG_SYS_CS_2, SZ_16M, CONFIG_SYS_CS_2, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_CS_2, SZ_16M, CONFIG_SYS_CS_2, 1, AC_RWX | SA_IG )  	/* TLB#12: */  	tlbentry( CONFIG_SYS_CS_2 + 0x1000000, SZ_16M, CONFIG_SYS_CS_2 + 0x1000000, 1, -		AC_R|AC_W|AC_X|SA_G|SA_I ) +		AC_RWX | SA_IG )  	 /*		IMC-Fast 32 MB */  	/* TLB#13: */ -	tlbentry( CONFIG_SYS_CS_3, SZ_16M, CONFIG_SYS_CS_3, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_CS_3, SZ_16M, CONFIG_SYS_CS_3, 1, AC_RWX | SA_IG )  	/* TLB#14: */  	tlbentry( CONFIG_SYS_CS_3 + 0x1000000, SZ_16M, CONFIG_SYS_CS_3, 1, -		AC_R|AC_W|AC_X|SA_G|SA_I ) +		AC_RWX | SA_IG )  	tlbtab_end diff --git a/board/pcs440ep/init.S b/board/pcs440ep/init.S index 25e7f4f70..9745c14e5 100644 --- a/board/pcs440ep/init.S +++ b/board/pcs440ep/init.S @@ -22,56 +22,9 @@   */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_8M       0x00000060 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -93,10 +46,10 @@ tlbtab:  	 * BOOT_CS (FLASH) must be first. Before relocation SA_I can be off to use the  	 * speed up boot process. It is patched after relocation to enable SA_I  	 */ -	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_R|AC_W|AC_X|SA_G/*|SA_I*/) +	tlbentry( CONFIG_SYS_BOOT_BASE_ADDR, SZ_256M, CONFIG_SYS_BOOT_BASE_ADDR, 0, AC_RWX | SA_G/*|SA_I*/)  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G )  	/*  	 * TLB entries for SDRAM are not needed on this platform. @@ -104,15 +57,15 @@ tlbtab:  	 * routine.  	 */ -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, CONFIG_SYS_PCI_BASE, 0, AC_RW | SA_IG )  	/* PCI */ -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 0, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 0, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 0, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE3, SZ_256M, CONFIG_SYS_PCI_MEMBASE3, 0, AC_RW | SA_IG )  	/* USB 2.0 Device */ -	tlbentry( CONFIG_SYS_USB_DEVICE, SZ_1K, 0x50000000, 0, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( CONFIG_SYS_USB_DEVICE, SZ_1K, 0x50000000, 0, AC_RW | SA_IG )  	tlbtab_end diff --git a/board/prodrive/alpr/init.S b/board/prodrive/alpr/init.S index 4af7d13bf..9f9812ad0 100644 --- a/board/prodrive/alpr/init.S +++ b/board/prodrive/alpr/init.S @@ -22,54 +22,9 @@   */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)	( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -86,27 +41,27 @@  tlbtab:  	tlbtab_start -	tlbentry( 0xff000000, SZ_16M, 0xff000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_R|AC_W|AC_X ) -	tlbentry( CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X ) +	tlbentry(0xff000000, SZ_16M, 0xff000000, 1, AC_RWX | SA_IG ) +	tlbentry(CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_RWX) +	tlbentry(CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_RWX)  #ifdef CONFIG_4xx_DCACHE -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G) +	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_G)  #else -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry(CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG)  #endif  #ifdef CONFIG_SYS_INIT_RAM_DCACHE  	/* TLB-entry for init-ram in dcache (SA_I must be turned off!) */ -	tlbentry( CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_R|AC_W|AC_X|SA_G ) +	tlbentry(CONFIG_SYS_INIT_RAM_ADDR, SZ_64K, CONFIG_SYS_INIT_RAM_ADDR, 0, AC_RWX | SA_G)  #endif -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) +	tlbentry(CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG)  	/* PCI */ -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 3, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 3, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 3, AC_R|AC_W|SA_G|SA_I ) +	tlbentry(CONFIG_SYS_PCI_MEMBASE, SZ_256M, CONFIG_SYS_PCI_MEMBASE, 3, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE1, SZ_256M, CONFIG_SYS_PCI_MEMBASE1, 3, AC_RW | SA_IG) +	tlbentry(CONFIG_SYS_PCI_MEMBASE2, SZ_256M, CONFIG_SYS_PCI_MEMBASE2, 3, AC_RW | SA_IG)  	/* NAND */ -	tlbentry( CONFIG_SYS_NAND_BASE, SZ_4K, CONFIG_SYS_NAND_BASE, 1, AC_R|AC_W|AC_X|SA_G|SA_I ) +	tlbentry(CONFIG_SYS_NAND_BASE, SZ_4K, CONFIG_SYS_NAND_BASE, 1, AC_RWX | SA_IG)  	tlbtab_end diff --git a/board/prodrive/p3p440/init.S b/board/prodrive/p3p440/init.S index 8c1a79c4b..66acaf271 100644 --- a/board/prodrive/p3p440/init.S +++ b/board/prodrive/p3p440/init.S @@ -24,55 +24,9 @@   */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -89,11 +43,11 @@  tlbtab:      tlbtab_start -    tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -    tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -    tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_R|AC_W|AC_X ) -    tlbentry( CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_R|AC_W|AC_X ) -    tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) -    tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I ) +    tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG) +    tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +    tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_4K, 0x80000000, 0, AC_RWX ) +    tlbentry( CONFIG_SYS_ISRAM_BASE + 0x1000, SZ_4K, 0x80001000, 0, AC_RWX ) +    tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG ) +    tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG )      tlbtab_end diff --git a/board/sandburst/karef/init.S b/board/sandburst/karef/init.S index 3198dfdfa..2bdae06f6 100644 --- a/board/sandburst/karef/init.S +++ b/board/sandburst/karef/init.S @@ -24,55 +24,9 @@   */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -89,13 +43,13 @@  tlbtab:  	tlbtab_start -	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x20000000, SZ_256M, 0x20000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x30000000, SZ_256M, 0x30000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x20000000, SZ_256M, 0x20000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x30000000, SZ_256M, 0x30000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG )  	tlbtab_end diff --git a/board/sandburst/metrobox/init.S b/board/sandburst/metrobox/init.S index ccdec46ee..fa78a3f4b 100644 --- a/board/sandburst/metrobox/init.S +++ b/board/sandburst/metrobox/init.S @@ -22,55 +22,9 @@  */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID   0x00000200 - -/* Supported page sizes */ - -#define SZ_1K	    0x00000000 -#define SZ_4K	    0x00000010 -#define SZ_16K	    0x00000020 -#define SZ_64K	    0x00000030 -#define SZ_256K	    0x00000040 -#define SZ_1M	    0x00000050 -#define SZ_16M	    0x00000070 -#define SZ_256M	    0x00000090 - -/* Storage attributes */ -#define SA_W	    0x00000800	    /* Write-through */ -#define SA_I	    0x00000400	    /* Caching inhibited */ -#define SA_M	    0x00000200	    /* Memory coherence */ -#define SA_G	    0x00000100	    /* Guarded */ -#define SA_E	    0x00000080	    /* Endian */ - -/* Access control */ -#define AC_X	    0x00000024	    /* Execute */ -#define AC_W	    0x00000012	    /* Write */ -#define AC_R	    0x00000009	    /* Read */ - -/* Some handy macros */ - -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	( (EPN((epn)) | (sz) | TLB_VALID ) ) -#define TLB1(rpn,erpn)	( ((rpn)&0xfffffc00) | (erpn) ) -#define TLB2(a)		( (a)&0x00000fbf ) - -#define tlbtab_start\ -	mflr    r1  ;\ -	bl 0f	    ; - -#define tlbtab_end\ -	.long 0, 0, 0	;   \ -0:	mflr    r0	;   \ -	mtlr    r1	;   \ -	blr		; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /**************************************************************************   * TLB TABLE   * @@ -87,13 +41,13 @@  tlbtab:  	tlbtab_start -	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x20000000, SZ_256M, 0x20000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x30000000, SZ_256M, 0x30000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x20000000, SZ_256M, 0x20000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x30000000, SZ_256M, 0x30000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG )  	tlbtab_end diff --git a/board/xes/xpedite1000/init.S b/board/xes/xpedite1000/init.S index 54371e276..fa50c8e1c 100644 --- a/board/xes/xpedite1000/init.S +++ b/board/xes/xpedite1000/init.S @@ -21,53 +21,9 @@  */  #include <ppc_asm.tmpl> +#include <asm/mmu.h>  #include <config.h> -/* General */ -#define TLB_VALID	0x00000200 - -/* Supported page sizes */ -#define SZ_1K		0x00000000 -#define SZ_4K		0x00000010 -#define SZ_16K		0x00000020 -#define SZ_64K		0x00000030 -#define SZ_256K		0x00000040 -#define SZ_1M		0x00000050 -#define SZ_16M		0x00000070 -#define SZ_256M		0x00000090 - -/* Storage attributes */ -#define SA_W		0x00000800	/* Write-through */ -#define SA_I		0x00000400	/* Caching inhibited */ -#define SA_M		0x00000200	/* Memory coherence */ -#define SA_G		0x00000100	/* Guarded */ -#define SA_E		0x00000080	/* Endian */ - -/* Access control */ -#define AC_X		0x00000024	/* Execute */ -#define AC_W		0x00000012	/* Write */ -#define AC_R		0x00000009	/* Read */ - -/* Some handy macros */ -#define EPN(e)		((e) & 0xfffffc00) -#define TLB0(epn,sz)	((EPN((epn)) | (sz) | TLB_VALID )) -#define TLB1(rpn,erpn)	(((rpn)&0xfffffc00) | (erpn)) -#define TLB2(a)		((a)&0x00000fbf) - -#define tlbtab_start	\ -	mflr	r1;	\ -	bl 0f; - -#define tlbtab_end	\ -	.long 0, 0, 0;	\ -0:	mflr	r0;	\ -	mtlr	r1;	\ -	blr; - -#define tlbentry(epn,sz,rpn,erpn,attr)\ -	.long TLB0(epn,sz),TLB1(rpn,erpn),TLB2(attr) - -  /*   * TLB TABLE   * @@ -83,11 +39,11 @@  tlbtab:  	tlbtab_start -	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_R|AC_W|SA_G|SA_I) -	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I) -	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_R|AC_W|AC_X|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_R|AC_W|SA_G|SA_I ) -	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_R|AC_W|SA_G|SA_I ) +	tlbentry( 0xf0000000, SZ_256M, 0xf0000000, 1, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_PERIPHERAL_BASE, SZ_256M, 0x40000000, 1, AC_RW | SA_IG) +	tlbentry( CONFIG_SYS_ISRAM_BASE, SZ_256K, 0x80000000, 0, AC_RWX | SA_IG) +	tlbentry( CONFIG_SYS_SDRAM_BASE, SZ_256M, 0x00000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_SDRAM_BASE+0x10000000, SZ_256M, 0x10000000, 0, AC_RWX | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_BASE, SZ_256M, 0x00000000, 2, AC_RW | SA_IG ) +	tlbentry( CONFIG_SYS_PCI_MEMBASE, SZ_256M, 0x00000000, 3, AC_RW | SA_IG )  	tlbtab_end diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c b/board/xilinx/microblaze-generic/microblaze-generic.c index f388b775c..838f1315b 100644 --- a/board/xilinx/microblaze-generic/microblaze-generic.c +++ b/board/xilinx/microblaze-generic/microblaze-generic.c @@ -60,10 +60,9 @@ void fsl_isr2 (void *arg) {  	puts("*");  } -void fsl_init2 (void) { +int fsl_init2 (void) {  	puts("fsl_init2\n"); -	install_interrupt_handler (FSL_INTR_2,\ - fsl_isr2,\ - NULL); +	install_interrupt_handler (FSL_INTR_2, fsl_isr2, NULL); +	return 0;  }  #endif diff --git a/drivers/i2c/fsl_i2c.c b/drivers/i2c/fsl_i2c.c index 2241990f9..cb13deeea 100644 --- a/drivers/i2c/fsl_i2c.c +++ b/drivers/i2c/fsl_i2c.c @@ -221,9 +221,10 @@ i2c_init(int speed, int slaveadd)  	unsigned int temp;  #ifdef CONFIG_SYS_I2C_INIT_BOARD -	/* call board specific i2c bus reset routine before accessing the   */ -	/* environment, which might be in a chip on that bus. For details   */ -	/* about this problem see doc/I2C_Edge_Conditions.                  */ +	/* Call board specific i2c bus reset routine before accessing the +	 * environment, which might be in a chip on that bus. For details +	 * about this problem see doc/I2C_Edge_Conditions. +	*/  	i2c_init_board();  #endif  	dev = (struct fsl_i2c *) (CONFIG_SYS_IMMR + CONFIG_SYS_I2C_OFFSET); @@ -249,6 +250,15 @@ i2c_init(int speed, int slaveadd)  	writeb(0x0, &dev->sr);			/* clear status register */  	writeb(I2C_CR_MEN, &dev->cr);		/* start I2C controller */  #endif + +#ifdef CONFIG_SYS_I2C_BOARD_LATE_INIT +	/* Call board specific i2c bus reset routine AFTER the bus has been +	 * initialized. Use either this callpoint or i2c_init_board; +	 * which is called before i2c_init operations. +	 * For details about this problem see doc/I2C_Edge_Conditions. +	*/ +	i2c_board_late_init(); +#endif  }  static int diff --git a/include/i2c.h b/include/i2c.h index d82896425..cd23c8ac1 100644 --- a/include/i2c.h +++ b/include/i2c.h @@ -111,6 +111,9 @@ void i2c_init(int speed, int slaveaddr);  #ifdef CONFIG_SYS_I2C_INIT_BOARD  void i2c_init_board(void);  #endif +#ifdef CONFIG_SYS_I2C_BOARD_LATE_INIT +void i2c_board_late_init(void); +#endif  #if defined(CONFIG_I2C_MUX)  |