diff options
Diffstat (limited to 'cpu/mpc8260')
| -rw-r--r-- | cpu/mpc8260/bedbug_603e.c | 3 | ||||
| -rw-r--r-- | cpu/mpc8260/config.mk | 5 | ||||
| -rw-r--r-- | cpu/mpc8260/cpu_init.c | 2 | ||||
| -rw-r--r-- | cpu/mpc8260/ether_fcc.c | 8 | ||||
| -rw-r--r-- | cpu/mpc8260/ether_scc.c | 4 | ||||
| -rw-r--r-- | cpu/mpc8260/interrupts.c | 4 | ||||
| -rw-r--r-- | cpu/mpc8260/kgdb.S | 4 | ||||
| -rw-r--r-- | cpu/mpc8260/traps.c | 16 | ||||
| -rw-r--r-- | cpu/mpc8260/u-boot.lds | 124 | 
9 files changed, 149 insertions, 21 deletions
| diff --git a/cpu/mpc8260/bedbug_603e.c b/cpu/mpc8260/bedbug_603e.c index be09cfb5c..f1be485e8 100644 --- a/cpu/mpc8260/bedbug_603e.c +++ b/cpu/mpc8260/bedbug_603e.c @@ -10,7 +10,8 @@  #include <bedbug/regs.h>  #include <bedbug/ppc.h> -#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG) && (defined(CONFIG_MPC824X) || defined(CONFIG_MPC8260)) +#if defined(CONFIG_CMD_BEDBUG) \ +	&& (defined(CONFIG_MPC824X) || defined(CONFIG_MPC8260))  #define MAX_BREAK_POINTS 1 diff --git a/cpu/mpc8260/config.mk b/cpu/mpc8260/config.mk index dd7a71fdf..d401e4ca0 100644 --- a/cpu/mpc8260/config.mk +++ b/cpu/mpc8260/config.mk @@ -21,7 +21,10 @@  # MA 02111-1307 USA  # -PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi +PLATFORM_RELFLAGS += -fPIC -ffixed-r14 -meabi -mrelocatable  PLATFORM_CPPFLAGS += -DCONFIG_8260 -DCONFIG_CPM2 -ffixed-r2 -ffixed-r29 \  		     -mstring -mcpu=603e -mmultiple + +# Use default linker script.  Board port can override in board/*/config.mk +LDSCRIPT := $(SRCTREE)/cpu/mpc8260/u-boot.lds diff --git a/cpu/mpc8260/cpu_init.c b/cpu/mpc8260/cpu_init.c index 380d7af13..36fc1eba5 100644 --- a/cpu/mpc8260/cpu_init.c +++ b/cpu/mpc8260/cpu_init.c @@ -182,7 +182,7 @@ void cpu_init_f (volatile immap_t * immr)  #endif  	/* now restrict to preliminary range */ -	/* the PS came from the HRCW, donÂīt change it */ +	/* the PS came from the HRCW, donīt change it */  	memctl->memc_br0 = SET_VAL_MASK(memctl->memc_br0 , CFG_BR0_PRELIM, BRx_PS_MSK);  	memctl->memc_or0 = CFG_OR0_PRELIM; diff --git a/cpu/mpc8260/ether_fcc.c b/cpu/mpc8260/ether_fcc.c index 584c40f17..37bf4456e 100644 --- a/cpu/mpc8260/ether_fcc.c +++ b/cpu/mpc8260/ether_fcc.c @@ -47,13 +47,13 @@  #include <config.h>  #include <net.h> -#if defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII) +#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII)  #include <miiphy.h>  #endif  DECLARE_GLOBAL_DATA_PTR; -#if defined(CONFIG_ETHER_ON_FCC) && (CONFIG_COMMANDS & CFG_CMD_NET) && \ +#if defined(CONFIG_ETHER_ON_FCC) && defined(CONFIG_CMD_NET) && \  	defined(CONFIG_NET_MULTI)  static struct ether_fcc_info_s @@ -393,7 +393,7 @@ int fec_initialize(bd_t *bis)  		eth_register(dev); -#if (defined(CONFIG_MII) || (CONFIG_COMMANDS & CFG_CMD_MII)) \ +#if (defined(CONFIG_MII) || defined(CONFIG_CMD_MII)) \  		&& defined(CONFIG_BITBANGMII)  		miiphy_register(dev->name,  				bb_miiphy_read,	bb_miiphy_write); @@ -1187,4 +1187,4 @@ eth_loopback_test (void)  #endif /* CONFIG_ETHER_LOOPBACK_TEST */ -#endif	/* CONFIG_ETHER_ON_FCC && CFG_CMD_NET && CONFIG_NET_MULTI */ +#endif diff --git a/cpu/mpc8260/ether_scc.c b/cpu/mpc8260/ether_scc.c index a733b45c0..e56839d3a 100644 --- a/cpu/mpc8260/ether_scc.c +++ b/cpu/mpc8260/ether_scc.c @@ -36,7 +36,7 @@  #include <command.h>  #include <config.h> -#if defined(CONFIG_ETHER_ON_SCC) && (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_ETHER_ON_SCC) && defined(CONFIG_CMD_NET)  #if (CONFIG_ETHER_INDEX == 1)  #  define PROFF_ENET            PROFF_SCC1 @@ -353,4 +353,4 @@ void restart(void)  }  #endif -#endif  /* CONFIG_ETHER_ON_SCC && CFG_CMD_NET */ +#endif diff --git a/cpu/mpc8260/interrupts.c b/cpu/mpc8260/interrupts.c index 56e9a7213..bf0d4d0d5 100644 --- a/cpu/mpc8260/interrupts.c +++ b/cpu/mpc8260/interrupts.c @@ -246,7 +246,7 @@ void timer_interrupt_cpu (struct pt_regs *regs)  /****************************************************************************/ -#if (CONFIG_COMMANDS & CFG_CMD_IRQ) +#if defined(CONFIG_CMD_IRQ)  /* ripped this out of ppc4xx/interrupts.c */ @@ -276,4 +276,4 @@ do_irqinfo (cmd_tbl_t * cmdtp, bd_t * bd, int flag, int argc, char *argv[])  		enable_interrupts ();  } -#endif							/* CONFIG_COMMANDS & CFG_CMD_IRQ */ +#endif diff --git a/cpu/mpc8260/kgdb.S b/cpu/mpc8260/kgdb.S index 2a250249b..dae87bb97 100644 --- a/cpu/mpc8260/kgdb.S +++ b/cpu/mpc8260/kgdb.S @@ -34,7 +34,7 @@  #include <asm/cache.h>  #include <asm/mmu.h> -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)   /*   * cache flushing routines for kgdb @@ -69,4 +69,4 @@ kgdb_flush_cache_range:  	SYNC  	blr -#endif /* CFG_CMD_KGDB */ +#endif diff --git a/cpu/mpc8260/traps.c b/cpu/mpc8260/traps.c index 0c39e434e..b5d416c97 100644 --- a/cpu/mpc8260/traps.c +++ b/cpu/mpc8260/traps.c @@ -37,7 +37,7 @@  #include <asm/processor.h>  #include <asm/m8260_pci.h> -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  int (*debugger_exception_handler)(struct pt_regs *) = 0;  #endif @@ -150,7 +150,7 @@ MachineCheckException(struct pt_regs *regs)  		return;  	} -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  	if (debugger_exception_handler && (*debugger_exception_handler)(regs))  		return;  #endif @@ -186,7 +186,7 @@ MachineCheckException(struct pt_regs *regs)  void  AlignmentException(struct pt_regs *regs)  { -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  	if (debugger_exception_handler && (*debugger_exception_handler)(regs))  		return;  #endif @@ -198,7 +198,7 @@ AlignmentException(struct pt_regs *regs)  void  ProgramCheckException(struct pt_regs *regs)  { -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  	if (debugger_exception_handler && (*debugger_exception_handler)(regs))  		return;  #endif @@ -210,7 +210,7 @@ ProgramCheckException(struct pt_regs *regs)  void  SoftEmuException(struct pt_regs *regs)  { -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  	if (debugger_exception_handler && (*debugger_exception_handler)(regs))  		return;  #endif @@ -223,7 +223,7 @@ SoftEmuException(struct pt_regs *regs)  void  UnknownException(struct pt_regs *regs)  { -#if (CONFIG_COMMANDS & CFG_CMD_KGDB) +#if defined(CONFIG_CMD_KGDB)  	if (debugger_exception_handler && (*debugger_exception_handler)(regs))  		return;  #endif @@ -232,7 +232,7 @@ UnknownException(struct pt_regs *regs)  	_exception(0, regs);  } -#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG) +#if defined(CONFIG_CMD_BEDBUG)  extern void do_bedbug_breakpoint(struct pt_regs *);  #endif @@ -242,7 +242,7 @@ DebugException(struct pt_regs *regs)    printf("Debugger trap at @ %lx\n", regs->nip );    show_regs(regs); -#if (CONFIG_COMMANDS & CFG_CMD_BEDBUG) +#if defined(CONFIG_CMD_BEDBUG)    do_bedbug_breakpoint( regs );  #endif  } diff --git a/cpu/mpc8260/u-boot.lds b/cpu/mpc8260/u-boot.lds new file mode 100644 index 000000000..b8abc17d4 --- /dev/null +++ b/cpu/mpc8260/u-boot.lds @@ -0,0 +1,124 @@ +/* + * (C) Copyright 2001-2007 + * Wolfgang Denk, DENX Software Engineering, wd@denx.de. + * + * 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 + */ + +OUTPUT_ARCH(powerpc) +SEARCH_DIR(/lib); SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/local/lib); SEARCH_DIR(/usr/local/powerpc-any-elf/lib); +/* Do we need any of these for elf? +   __DYNAMIC = 0;    */ +SECTIONS +{ +  /* Read-only sections, merged into text segment: */ +  . = + SIZEOF_HEADERS; +  .interp : { *(.interp) } +  .hash          : { *(.hash)		} +  .dynsym        : { *(.dynsym)		} +  .dynstr        : { *(.dynstr)		} +  .rel.text      : { *(.rel.text)		} +  .rela.text     : { *(.rela.text) 	} +  .rel.data      : { *(.rel.data)		} +  .rela.data     : { *(.rela.data) 	} +  .rel.rodata    : { *(.rel.rodata) 	} +  .rela.rodata   : { *(.rela.rodata) 	} +  .rel.got       : { *(.rel.got)		} +  .rela.got      : { *(.rela.got)		} +  .rel.ctors     : { *(.rel.ctors)	} +  .rela.ctors    : { *(.rela.ctors)	} +  .rel.dtors     : { *(.rel.dtors)	} +  .rela.dtors    : { *(.rela.dtors)	} +  .rel.bss       : { *(.rel.bss)		} +  .rela.bss      : { *(.rela.bss)		} +  .rel.plt       : { *(.rel.plt)		} +  .rela.plt      : { *(.rela.plt)		} +  .init          : { *(.init)	} +  .plt : { *(.plt) } +  .text      : +  { +    cpu/mpc8260/start.o		(.text) +    *(.text) +    *(.got1) +    . = ALIGN(16); +    *(.rodata) +    *(.rodata1) +    *(.rodata.str1.4) +    *(.eh_frame) +  } +  .fini      : { *(.fini)    } =0 +  .ctors     : { *(.ctors)   } +  .dtors     : { *(.dtors)   } + +  /* Read-write section, merged into data segment: */ +  . = (. + 0x0FFF) & 0xFFFFF000; +  _erotext = .; +  PROVIDE (erotext = .); +  .reloc   : +  { +    *(.got) +    _GOT2_TABLE_ = .; +    *(.got2) +    _FIXUP_TABLE_ = .; +    *(.fixup) +  } +  __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2; +  __fixup_entries = (. - _FIXUP_TABLE_) >> 2; + +  .data    : +  { +    *(.data) +    *(.data1) +    *(.sdata) +    *(.sdata2) +    *(.dynamic) +    CONSTRUCTORS +  } +  _edata  =  .; +  PROVIDE (edata = .); + +  . = .; +  __u_boot_cmd_start = .; +  .u_boot_cmd : { *(.u_boot_cmd) } +  __u_boot_cmd_end = .; + + +  . = .; +  __start___ex_table = .; +  __ex_table : { *(__ex_table) } +  __stop___ex_table = .; + +  . = ALIGN(4096); +  __init_begin = .; +  .text.init : { *(.text.init) } +  .data.init : { *(.data.init) } +  . = ALIGN(4096); +  __init_end = .; + +  __bss_start = .; +  .bss       : +  { +   *(.sbss) *(.scommon) +   *(.dynbss) +   *(.bss) +   *(COMMON) +  } +  _end = . ; +  PROVIDE (end = .); +} |