On Saturday 19 November 2011 00:21:32 Stefan Kristiansson wrote: > --- /dev/null > +++ b/arch/openrisc/config.mk > > \ No newline at end of file
might want to fix that > --- /dev/null > +++ b/arch/openrisc/cpu/cache.c > > +int checkicache(void) > +int checkdcache(void) these should be static > +void dcache_enable(void) > +{ > + mtspr(SPR_SR, mfspr(SPR_SR) | SPR_SR_DCE); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > +} > + > +void icache_enable(void) > +{ > + mtspr(SPR_SR, mfspr(SPR_SR) | SPR_SR_ICE); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > + asm("l.nop"); > +} the lack of volatile and the lack of any sort of constraints means gcc is free to throw that away ... > --- /dev/null > +++ b/arch/openrisc/cpu/cpu.c > > +void illegal_instruction_handler(void) > +void checkinstructions(void) > +int checkcpu(void) looks like these should be static > +extern void __reset(void); > + > +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) > +{ > + disable_interrupts(); > + __reset(); > + return 0; > +} __reset() should not return > --- /dev/null > +++ b/arch/openrisc/cpu/exceptions.c > > +extern void hang(void); common.h already has a prototype for this; delete it. > +static void exception_hang(int vect) > +{ > + printf("Unhandled exception at 0x%x ", vect & 0xff00); > + switch (vect & 0xff00) { > + case 0x100: > + puts("(Reset)\n"); > + break; > + case 0x200: > + puts("(Bus Error)\n"); > + break; > + case 0x300: > + puts("(Data Page Fault)\n"); > + break; > + case 0x400: > + puts("(Instruction Page Fault)\n"); > + break; > + case 0x500: > + puts("(Tick Timer)\n"); > + break; > + case 0x600: > + puts("(Alignment)\n"); > + break; > + case 0x700: > + puts("(Illegal Instruction)\n"); > + break; > + case 0x800: > + puts("(External Interrupt)\n"); > + break; > + case 0x900: > + puts("(D-TLB Miss)\n"); > + break; > + case 0xa00: > + puts("(I-TLB Miss)\n"); > + break; > + case 0xb00: > + puts("(Range)\n"); > + break; > + case 0xc00: > + puts("(System Call)\n"); > + break; > + case 0xd00: > + puts("(Floating Point)\n"); > + break; > + case 0xe00: > + puts("(Trap)\n"); > + break; > + default: > + puts("(Unknown exception)\n"); > + break; > + } looks like this could easily be a table string lookup: static const char * const excp_table[] = { "Reset", "Bus Error", ... }; printf("(%s)\n", excp_table[(vect >> 16) & 0xff]); > --- /dev/null > +++ b/arch/openrisc/cpu/interrupts.c > > +#include <asm/types.h> > +#include <asm/ptrace.h> > +#include <asm/system.h> > +#include <asm/openrisc_exc.h> > +#include <common.h> asm/ includes should come after non-asm/ includes -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot