> +# 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 $(TOPDIR)/config.mk
> +
> +LIB  = $(obj)lib$(CPU).a
> +
> +START        = start.o
> +OBJS = cpu.o interrupts.o watchdog.o time.o # cache.o
> +
> +all: .depend $(START) $(LIB)
please use $(obj).depend
> +
> +$(LIB):      $(OBJS)
> +     $(AR) crv $@ $(OBJS)
please replace crv by $(ARFLAGS)
> +
> +#########################################################################
> +
> +.depend:     Makefile $(START:.o=.S) $(OBJS:.o=.c)
> +             $(CC) -M $(CFLAGS) $(START:.o=.S) $(OBJS:.o=.c) > $@
> +
> +sinclude .depend
please replace with

# defines $(obj).depend target
include $(SRCTREE)/rules.mk

sinclude $(obj).depend

> +
> +#########################################################################
> diff --git a/cpu/sh2/cache.c b/cpu/sh2/cache.c
> new file mode 100644
> index 0000000..d7ac2a5
> --- /dev/null
> +++ b/cpu/sh2/cache.c
> @@ -0,0 +1,112 @@
> +/*
> + * (C) Copyright 2007
> + * Yoshihiro Shimoda <[EMAIL PROTECTED]>
> + *
> + * Copyright (C) 2007, 2008 Nobobuhiro Iwamatsu <[EMAIL PROTECTED]>
> + * Copyright (C) 2008 Renesas Solutions Corp.
> + *
> + * 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>
> +#include <command.h>
> +#include <asm/processor.h>
> +#include <asm/io.h>
> +
> +/*
> + * Jump to P2 area.
> + * When handling TLB or caches, we need to do it from P2 area.
> + */
> +#define jump_to_P2()                    \
> +  do {                                    \
> +    unsigned long __dummy;           \
> +    __asm__ __volatile__(                    \
> +             "mov.l  1f, %0\n\t"     \
> +             "or     %1, %0\n\t"     \
> +             "jmp    @%0\n\t"        \
> +             " nop\n\t"              \
> +             ".balign 4\n"           \
> +             "1:     .long 2f\n"     \
> +             "2:"                    \
> +             : "=&r" (__dummy)       \
> +             : "r" (0x20000000));    \
> +  } while (0)
> +
please use tab instead of space
> +/*
> + * Back to P1 area.
> + */
> +#define back_to_P1()                                    \
> +  do {                                                    \
> +    unsigned long __dummy;                          \
> +    __asm__ __volatile__(                           \
> +             "nop;nop;nop;nop;nop;nop;nop\n\t"       \
> +             "mov.l  1f, %0\n\t"                     \
> +             "jmp    @%0\n\t"                        \
> +             " nop\n\t"                              \
> +             ".balign 4\n"                           \
> +             "1:     .long 2f\n"                     \
> +             "2:"                                    \
> +             : "=&r" (__dummy));                     \
> +  } while (0)
please use tab instead of space
> +
> +#define CACHE_VALID       1
                      ^^^^^^^
> +#define CACHE_UPDATED     2
                        ^^^^^
whitespace
> +
> +static inline void cache_wback_all(void)
> +{
> +     unsigned long addr, data, i, j;
> +
> +     jump_to_P2();
> +     for (i = 0; i < CACHE_OC_NUM_ENTRIES; i++) {
> +             for (j = 0; j < CACHE_OC_NUM_WAYS; j++) {
> +                     addr = CACHE_OC_ADDRESS_ARRAY
> +                             | (j << CACHE_OC_WAY_SHIFT)
> +                             | (i << CACHE_OC_ENTRY_SHIFT);
> +                     data = inl(addr);
> +                     if (data & CACHE_UPDATED) {
> +                             data &= ~CACHE_UPDATED;
> +                             outl(data, addr);
> +                     }
> +             }
> +     }
> +     back_to_P1();
> +}
> +
> +
> +#define CACHE_ENABLE      0
                       ^^^^^^
> +#define CACHE_DISABLE     1
                        ^^^^^
whitespace
> +
> +int cache_control(unsigned int cmd)
> +{
> +     unsigned long ccr;
> +
> +     jump_to_P2();
> +     ccr = inl(CCR);
> +
> +     if (ccr & CCR_CACHE_ENABLE)
> +             cache_wback_all();
> +
> +     if (cmd == CACHE_DISABLE)
> +             outl(CCR_CACHE_STOP, CCR);
> +     else
> +             outl(CCR_CACHE_INIT, CCR);
> +     back_to_P1();
> +
> +     return 0;
> +}
> diff --git a/cpu/sh2/config.mk b/cpu/sh2/config.mk
> new file mode 100644
> index 0000000..c2703fe
> --- /dev/null
> +++ b/cpu/sh2/config.mk
> @@ -0,0 +1,29 @@
> +#
> +# (C) Copyright 2007-2008
> +# Nobuhiro Iwamatsu <[EMAIL PROTECTED]>
> +#
> +# 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
> +#
> +#
> +#export CFLAGS           =       -m3e -mb
> +#export LDFLAGS          =       -m3e -mb -Wl,-EB -Wl,-elf2flt=-s65536
if no need please remove
> +
> +PLATFORM_CPPFLAGS += -m3e -mb
> +PLATFORM_RELFLAGS += -ffixed-r13
> +PLATFORM_LDFLAGS += -EB
> diff --git a/cpu/sh2/cpu.c b/cpu/sh2/cpu.c
> new file mode 100644
> index 0000000..e0cb047
> --- /dev/null
> +++ b/cpu/sh2/cpu.c
> @@ -0,0 +1,98 @@
> +/*
> + * Copyright (C) 2007,2008 Nobuhiro Iwamatsu <[EMAIL PROTECTED]>
> + * Copyright (C) 2008 Renesas Solutions Corp.
> + *
> + * 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>
> +#include <command.h>
> +#include <asm/processor.h>
> +#include <asm/io.h>
> +
> +#define STBCR4      0xFFFE040C
                 ^^^^^^
whitespace
> +#define cmt_clock_enable() do {\
> +             writeb(readb(STBCR4) & ~0x04, STBCR4);\
> +     } while (0)
> +#define scif0_enable() do {\
> +             writeb(readb(STBCR4) & ~0x80, STBCR4);\
> +     } while (0)
> +
> +int checkcpu(void)
> +{
> +#if defined(CONFIG_SH2A)
> +     puts("CPU: SH2A\n");
> +#else
> +     puts("CPU: SH2\n");
> +#endif
> +     return 0;
> +}
> +
> +int cpu_init(void)
> +{
> +     /* SCIF enable */
> +     scif0_enable();
> +     /* CMT clock enable */
> +     cmt_clock_enable() ;
> +     return 0;
> +}
> +
> +int cleanup_before_linux(void)
> +{
> +     disable_interrupts();
> +     return 0;
> +}
> +
> +int disable_interrupts(void)
> +{
> +     return 0;
> +}
> diff --git a/cpu/sh2/start.S b/cpu/sh2/start.S
> new file mode 100644
> index 0000000..969fe00
> --- /dev/null
> +++ b/cpu/sh2/start.S
> @@ -0,0 +1,84 @@
> +/*
> + * Copyright (C) 2007,2008 Nobuhiro Iwamatsu <[EMAIL PROTECTED]>
> + * Copyright (C) 2008 Renesas Solutions Corp.
> +
> + * 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 <config.h>
> +#include <version.h>
> +
> +     .text
> +     .align  2
> +
> +     .global _start
> +_start:
> +#if 1
if always 1 please remove the if/endif
> +     .long 0x00000010        /* Ppower ON reset PC*/
> +     .long 0x00000000
> +     .long 0x00000010        /* Manual reset PC */
> +     .long 0x00000000
> +#endif
> +_init:
> +     mov.l   ._lowlevel_init, r0
> +100: bsrf    r0
> +     nop
> +     bsr     1f
> +     nop
> +1:   sts     pr, r5
> +     mov.l   ._reloc_dst, r4
> +#if 1
> +     add     #(_start-1b), r5
> +#else
> +     mov #16, r5
> +#endif
please use a CFG_ instead or remove
> +     mov.l   ._reloc_dst_end, r6
> +
> +2:   mov.l   @r5+, r1
> +     mov.l   r1, @r4
> +     add     #4, r4
> +     cmp/hs  r6, r4
> +     bf      2b
> +
> +     mov.l   ._bss_start, r4
> +     mov.l   ._bss_end, r5
> +     mov     #0, r1
> +
> +3:   mov.l   r1, @r4                 /* bss clear */
> +     add     #4, r4
> +     cmp/hs  r5, r4
> +     bf      3b
> +
> +     mov.l   ._gd_init, r13          /* global data */
> +     mov.l   ._stack_init, r15       /* stack */
> +
> +     mov.l   ._sh_generic_init, r0
> +     jsr     @r0
> +     nop
> +
> +loop:
> +     bra     loop
> +
> +     .align  2
> +
> +._lowlevel_init:     .long   (lowlevel_init - (100b + 4))
> +._reloc_dst:         .long   reloc_dst
> +._reloc_dst_end:     .long   reloc_dst_end
> +._bss_start:         .long   bss_start
> +._bss_end:           .long   bss_end
> +._gd_init:           .long   (_start - CFG_GBL_DATA_SIZE)
> +._stack_init:        .long   (_start - CFG_GBL_DATA_SIZE - CFG_MALLOC_LEN - 
> 16)
> +._sh_generic_init:   .long   sh_generic_init
> +{
> +     while (1)
> +             ;
> +}
> + * 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
> + */
> +
> +#ifndef _ASM_CPU_SH2_H_
> +#define _ASM_CPU_SH2_H_
> +
> +/* cache control */
> +#define CCR_CACHE_STOP   0x00000008
                         ^^^
> +#define CCR_CACHE_ENABLE 0x00000005
> +#define CCR_CACHE_ICI    0x00000008
                        ^^^^
whitespace
> +
> +#define CACHE_OC_ADDRESS_ARRAY       0xf0000000
> +#define CACHE_OC_WAY_SHIFT   13
> +#define CACHE_OC_NUM_ENTRIES 256
> +#define CACHE_OC_ENTRY_SHIFT 4
> +
> +# error "Unknown SH2 variant"
> +

Best Regards,
J.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to