Re: [U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support

2012-09-05 Thread Daniel Schwierzeck
2012/9/5 Zhi-zhou Zhang :
[...]
>>
>> why have you omitted this?
>>
>> #define CONFIG_BOOTCOMMAND  "bootp;bootelf"
>>
>> #define CONFIG_CMD_ELF
>>
> Because I haven't tested `bootelf' command. I'm not should it work or not.
> Another reason is that when I configure  CONFIG_CMD_ELF I will get lots of
> warning such as:
> cmd_elf.c: In function 'load_elf_image_phdr':
> cmd_elf.c:289:15: warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> cmd_elf.c: In function 'load_elf_image_shdr':
> cmd_elf.c:343:12: warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]
> cmd_elf.c:346:12: warning: cast to pointer from integer of different size
> [-Wint-to-pointer-cast]

ok but there are similar warnings in other files too. We can fix those
files later.
My point is that all qemu_mips variants should be configured with the
same options.

[...]
>>
>> why have you omitted the flash support? qemu-system-mips supports
>> flash emulation
>> with the option -pflash. It already works with a qemu_mips32 U-boot.
>>
> Yes, I have tested with -pflash in qemu_mips64 either. I have forgot why I
> omit
> it now. By the way, which commit should I base on of my next patch?

it is still git://git.denx.de/u-boot-mips.git master


-- 
Best regards,
Daniel
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support

2012-09-05 Thread Zhi-zhou Zhang
On Wed, Sep 5, 2012 at 7:12 AM, Daniel Schwierzeck <
daniel.schwierz...@gmail.com> wrote:

> 2012/9/4 Zhizhou Zhang :
> > Both big-endian and little-endian are tested with below commands:
> > Rom version: (Default, Now we config it as rom version)
> > qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic
> -nographic
> > qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic
> -nographic
> > Ram version:
> > qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot
> -nographic
> > qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot
> -nographic
> >
> > Signed-off-by: Zhizhou Zhang 
> > ---
> >  arch/mips/cpu/mips64/Makefile |   45 +++
> >  arch/mips/cpu/mips64/cache.S  |  229
> +
> >  arch/mips/cpu/mips64/config.mk|   40 ++
> >  arch/mips/cpu/mips64/cpu.c|  111 
> >  arch/mips/cpu/mips64/interrupts.c |   34 +
> >  arch/mips/cpu/mips64/start.S  |  256
> +
> >  arch/mips/cpu/mips64/time.c   |   87 +
> >  board/qemu-mips/u-boot.lds|8 ++
> >  boards.cfg|2 +
> >  examples/standalone/mips64.lds|   59 +
> >  include/configs/qemu-mips64.h |  171 +
> >  11 files changed, 1042 insertions(+)
> >  create mode 100644 arch/mips/cpu/mips64/Makefile
> >  create mode 100644 arch/mips/cpu/mips64/cache.S
> >  create mode 100644 arch/mips/cpu/mips64/config.mk
> >  create mode 100644 arch/mips/cpu/mips64/cpu.c
> >  create mode 100644 arch/mips/cpu/mips64/interrupts.c
> >  create mode 100644 arch/mips/cpu/mips64/start.S
> >  create mode 100644 arch/mips/cpu/mips64/time.c
> >  create mode 100644 examples/standalone/mips64.lds
> >  create mode 100644 include/configs/qemu-mips64.h
> >
> [...]
> > diff --git a/include/configs/qemu-mips64.h
> b/include/configs/qemu-mips64.h
> > new file mode 100644
> > index 000..216326d
> > --- /dev/null
> > +++ b/include/configs/qemu-mips64.h
> > @@ -0,0 +1,171 @@
> > +/*
> > + * (C) Copyright 2003
> > + * Wolfgang Denk, DENX Software Engineering, w...@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
> > + */
> > +
> > +/*
> > + * This file contains the configuration parameters for qemu-mips64
> target.
> > + */
> > +
> > +#ifndef __CONFIG_H
> > +#define __CONFIG_H
> > +
> > +#define CONFIG_MIPS64  /* MIPS64 CPU core */
> > +#define CONFIG_QEMU_MIPS1
> > +#define CONFIG_MISC_INIT_R
> > +
> > +#define CONFIG_BOOTDELAY   10  /* autoboot after 10 seconds */
> > +
> > +#define CONFIG_BAUDRATE115200
> > +
> > +/* valid baudrates */
> > +#define CONFIG_SYS_BAUDRATE_TABLE  { 9600, 19200, 38400, 57600,
> 115200 }
> > +
> > +#define CONFIG_TIMESTAMP   /* Print image info with
> timestamp */
> > +#undef CONFIG_BOOTARGS
> > +
> > +#define CONFIG_EXTRA_ENV_SETTINGS  \
> > +   "addmisc=setenv bootargs ${bootargs} "  \
> > +   "console=ttyS0,${baudrate} "\
> > +   "panic=1\0" \
> > +   "bootfile=/tftpboot/vmlinux\0"  \
> > +   "load=tftp 8050 ${u-boot}\0"\
> > +   ""
> > +
>
> why have you omitted this?
>
> #define CONFIG_BOOTCOMMAND  "bootp;bootelf"
>
> #define CONFIG_CMD_ELF
>
> Because I haven't tested `bootelf' command. I'm not should it work or not.
Another reason is that when I configure  CONFIG_CMD_ELF I will get lots of
warning such as:
cmd_elf.c: In function 'load_elf_image_phdr':
cmd_elf.c:289:15: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
cmd_elf.c: In function 'load_elf_image_shdr':
cmd_elf.c:343:12: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]
cmd_elf.c:346:12: warning: cast to pointer from integer of different size
[-Wint-to-pointer-cast]

> +/*
> > + * BOOTP options
> > + */
> > +#define CONFIG_BOOTP_BOOTFILESIZE
> > +#define CONFIG_BOOTP_BOO

Re: [U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support

2012-09-04 Thread Daniel Schwierzeck
2012/9/4 Zhizhou Zhang :
> Both big-endian and little-endian are tested with below commands:
> Rom version: (Default, Now we config it as rom version)
> qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
> qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
> Ram version:
> qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
> qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
>
> Signed-off-by: Zhizhou Zhang 
> ---
>  arch/mips/cpu/mips64/Makefile |   45 +++
>  arch/mips/cpu/mips64/cache.S  |  229 +
>  arch/mips/cpu/mips64/config.mk|   40 ++
>  arch/mips/cpu/mips64/cpu.c|  111 
>  arch/mips/cpu/mips64/interrupts.c |   34 +
>  arch/mips/cpu/mips64/start.S  |  256 
> +
>  arch/mips/cpu/mips64/time.c   |   87 +
>  board/qemu-mips/u-boot.lds|8 ++
>  boards.cfg|2 +
>  examples/standalone/mips64.lds|   59 +
>  include/configs/qemu-mips64.h |  171 +
>  11 files changed, 1042 insertions(+)
>  create mode 100644 arch/mips/cpu/mips64/Makefile
>  create mode 100644 arch/mips/cpu/mips64/cache.S
>  create mode 100644 arch/mips/cpu/mips64/config.mk
>  create mode 100644 arch/mips/cpu/mips64/cpu.c
>  create mode 100644 arch/mips/cpu/mips64/interrupts.c
>  create mode 100644 arch/mips/cpu/mips64/start.S
>  create mode 100644 arch/mips/cpu/mips64/time.c
>  create mode 100644 examples/standalone/mips64.lds
>  create mode 100644 include/configs/qemu-mips64.h
>
[...]
> diff --git a/include/configs/qemu-mips64.h b/include/configs/qemu-mips64.h
> new file mode 100644
> index 000..216326d
> --- /dev/null
> +++ b/include/configs/qemu-mips64.h
> @@ -0,0 +1,171 @@
> +/*
> + * (C) Copyright 2003
> + * Wolfgang Denk, DENX Software Engineering, w...@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
> + */
> +
> +/*
> + * This file contains the configuration parameters for qemu-mips64 target.
> + */
> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#define CONFIG_MIPS64  /* MIPS64 CPU core */
> +#define CONFIG_QEMU_MIPS1
> +#define CONFIG_MISC_INIT_R
> +
> +#define CONFIG_BOOTDELAY   10  /* autoboot after 10 seconds */
> +
> +#define CONFIG_BAUDRATE115200
> +
> +/* valid baudrates */
> +#define CONFIG_SYS_BAUDRATE_TABLE  { 9600, 19200, 38400, 57600, 115200 }
> +
> +#define CONFIG_TIMESTAMP   /* Print image info with timestamp */
> +#undef CONFIG_BOOTARGS
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS  \
> +   "addmisc=setenv bootargs ${bootargs} "  \
> +   "console=ttyS0,${baudrate} "\
> +   "panic=1\0" \
> +   "bootfile=/tftpboot/vmlinux\0"  \
> +   "load=tftp 8050 ${u-boot}\0"\
> +   ""
> +

why have you omitted this?

#define CONFIG_BOOTCOMMAND  "bootp;bootelf"

#define CONFIG_CMD_ELF

> +/*
> + * BOOTP options
> + */
> +#define CONFIG_BOOTP_BOOTFILESIZE
> +#define CONFIG_BOOTP_BOOTPATH
> +#define CONFIG_BOOTP_GATEWAY
> +#define CONFIG_BOOTP_HOSTNAME
> +
> +/*
> + * Command line configuration.
> + */
> +#include 
> +#define CONFIG_DP83902A
> +
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_EXT2
> +#undef CONFIG_CMD_LOADB
> +#undef CONFIG_CMD_LOADS
> +#define CONFIG_CMD_DHCP
> +
> +#define CONFIG_DRIVER_NE2000
> +#define CONFIG_DRIVER_NE2000_BASE  0xb4000300
> +
> +#define CONFIG_SYS_NS16550
> +#define CONFIG_SYS_NS16550_SERIAL
> +#define CONFIG_SYS_NS16550_REG_SIZE1
> +#define CONFIG_SYS_NS16550_CLK 115200
> +#define CONFIG_SYS_NS16550_COM1(0xb40003f8)
> +#define CONFIG_CONS_INDEX  1
> +
> +#define CONFIG_CMD_IDE
> +#define CONFIG_DOS_PARTITION
> +
> +#define CONFIG_SYS_IDE_MAXBUS  2
> +#define CONFIG_SYS_ATA_IDE0_OFFSET (0x1f0)
> +#define CONFIG_SYS_ATA_IDE1

Re: [U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support

2012-09-04 Thread Daniel Schwierzeck
2012/9/4 Zhizhou Zhang :
> Both big-endian and little-endian are tested with below commands:
> Rom version: (Default, Now we config it as rom version)
> qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
> qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
> Ram version:
> qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
> qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
>
> Signed-off-by: Zhizhou Zhang 
> ---
>  arch/mips/cpu/mips64/Makefile |   45 +++
>  arch/mips/cpu/mips64/cache.S  |  229 +
>  arch/mips/cpu/mips64/config.mk|   40 ++
>  arch/mips/cpu/mips64/cpu.c|  111 
>  arch/mips/cpu/mips64/interrupts.c |   34 +
>  arch/mips/cpu/mips64/start.S  |  256 
> +
>  arch/mips/cpu/mips64/time.c   |   87 +
>  board/qemu-mips/u-boot.lds|8 ++
>  boards.cfg|2 +
>  examples/standalone/mips64.lds|   59 +
>  include/configs/qemu-mips64.h |  171 +
>  11 files changed, 1042 insertions(+)
>  create mode 100644 arch/mips/cpu/mips64/Makefile
>  create mode 100644 arch/mips/cpu/mips64/cache.S
>  create mode 100644 arch/mips/cpu/mips64/config.mk
>  create mode 100644 arch/mips/cpu/mips64/cpu.c
>  create mode 100644 arch/mips/cpu/mips64/interrupts.c
>  create mode 100644 arch/mips/cpu/mips64/start.S
>  create mode 100644 arch/mips/cpu/mips64/time.c
>  create mode 100644 examples/standalone/mips64.lds
>  create mode 100644 include/configs/qemu-mips64.h
>
[...]
> diff --git a/include/configs/qemu-mips64.h b/include/configs/qemu-mips64.h
> new file mode 100644
> index 000..216326d
> --- /dev/null
> +++ b/include/configs/qemu-mips64.h
> @@ -0,0 +1,171 @@
> +/*
> + * (C) Copyright 2003
> + * Wolfgang Denk, DENX Software Engineering, w...@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
> + */
> +
> +/*
> + * This file contains the configuration parameters for qemu-mips64 target.
> + */
> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#define CONFIG_MIPS64  /* MIPS64 CPU core */
> +#define CONFIG_QEMU_MIPS1

#define CONFIG_QEMU_MIPS

arch/mips/lib/config.mk depends on that config option

> +#define CONFIG_MISC_INIT_R
> +
> +#define CONFIG_BOOTDELAY   10  /* autoboot after 10 seconds */
> +
> +#define CONFIG_BAUDRATE115200
> +
> +/* valid baudrates */
> +#define CONFIG_SYS_BAUDRATE_TABLE  { 9600, 19200, 38400, 57600, 115200 }
> +
> +#define CONFIG_TIMESTAMP   /* Print image info with timestamp */
> +#undef CONFIG_BOOTARGS
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS  \
> +   "addmisc=setenv bootargs ${bootargs} "  \
> +   "console=ttyS0,${baudrate} "\
> +   "panic=1\0" \
> +   "bootfile=/tftpboot/vmlinux\0"  \
> +   "load=tftp 8050 ${u-boot}\0"\
> +   ""
> +
> +/*
> + * BOOTP options
> + */
> +#define CONFIG_BOOTP_BOOTFILESIZE
> +#define CONFIG_BOOTP_BOOTPATH
> +#define CONFIG_BOOTP_GATEWAY
> +#define CONFIG_BOOTP_HOSTNAME
> +
> +/*
> + * Command line configuration.
> + */
> +#include 
> +#define CONFIG_DP83902A
> +
> +#define CONFIG_CMD_FAT
> +#define CONFIG_CMD_EXT2
> +#undef CONFIG_CMD_LOADB
> +#undef CONFIG_CMD_LOADS
> +#define CONFIG_CMD_DHCP
> +
> +#define CONFIG_DRIVER_NE2000
> +#define CONFIG_DRIVER_NE2000_BASE  0xb4000300
> +
> +#define CONFIG_SYS_NS16550
> +#define CONFIG_SYS_NS16550_SERIAL
> +#define CONFIG_SYS_NS16550_REG_SIZE1
> +#define CONFIG_SYS_NS16550_CLK 115200
> +#define CONFIG_SYS_NS16550_COM1(0xb40003f8)
> +#define CONFIG_CONS_INDEX  1
> +
> +#define CONFIG_CMD_IDE
> +#define CONFIG_DOS_PARTITION
> +
> +#define CONFIG_SYS_IDE_MAXBUS  2
> +#define CONFIG_SYS_ATA_IDE0_OFFSET (0x1f0)
> +#define CONFIG_SYS_ATA_IDE1_OFFSET (0x170)

[U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support

2012-09-04 Thread Zhizhou Zhang
Both big-endian and little-endian are tested with below commands:
Rom version: (Default, Now we config it as rom version)
qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic
Ram version:
qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic
qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic

Signed-off-by: Zhizhou Zhang 
---
 arch/mips/cpu/mips64/Makefile |   45 +++
 arch/mips/cpu/mips64/cache.S  |  229 +
 arch/mips/cpu/mips64/config.mk|   40 ++
 arch/mips/cpu/mips64/cpu.c|  111 
 arch/mips/cpu/mips64/interrupts.c |   34 +
 arch/mips/cpu/mips64/start.S  |  256 +
 arch/mips/cpu/mips64/time.c   |   87 +
 board/qemu-mips/u-boot.lds|8 ++
 boards.cfg|2 +
 examples/standalone/mips64.lds|   59 +
 include/configs/qemu-mips64.h |  171 +
 11 files changed, 1042 insertions(+)
 create mode 100644 arch/mips/cpu/mips64/Makefile
 create mode 100644 arch/mips/cpu/mips64/cache.S
 create mode 100644 arch/mips/cpu/mips64/config.mk
 create mode 100644 arch/mips/cpu/mips64/cpu.c
 create mode 100644 arch/mips/cpu/mips64/interrupts.c
 create mode 100644 arch/mips/cpu/mips64/start.S
 create mode 100644 arch/mips/cpu/mips64/time.c
 create mode 100644 examples/standalone/mips64.lds
 create mode 100644 include/configs/qemu-mips64.h

diff --git a/arch/mips/cpu/mips64/Makefile b/arch/mips/cpu/mips64/Makefile
new file mode 100644
index 000..be38664
--- /dev/null
+++ b/arch/mips/cpu/mips64/Makefile
@@ -0,0 +1,45 @@
+#
+# (C) Copyright 2003-2006
+# Wolfgang Denk, DENX Software Engineering, w...@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
+#
+
+include $(TOPDIR)/config.mk
+
+LIB= $(obj)lib$(CPU).o
+
+START  = start.o
+COBJS-y= cpu.o interrupts.o time.o cache.o
+
+SRCS   := $(START:.o=.S) $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
+OBJS   := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
+START  := $(addprefix $(obj),$(START))
+
+all:   $(obj).depend $(START) $(LIB)
+
+$(LIB):$(OBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
diff --git a/arch/mips/cpu/mips64/cache.S b/arch/mips/cpu/mips64/cache.S
new file mode 100644
index 000..036f035
--- /dev/null
+++ b/arch/mips/cpu/mips64/cache.S
@@ -0,0 +1,229 @@
+/*
+ *  Cache-handling routined for MIPS CPUs
+ *
+ *  Copyright (c) 2003 Wolfgang Denk 
+ *
+ * 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 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#define RA t9
+
+/*
+ * 16kB is the maximum size of instruction and data caches on MIPS 4K,
+ * 64kB is on 4KE, 24K, 5K, etc. Set bigger size for convenience.
+ *
+ * Note that the above size is the maximum size of primary cache. U-Boot
+ * doesn't have L2 cache support for now.
+ */
+#define MIPS_MAX_CACHE_SIZE0x1
+
+#define INDEX_BASE CKSEG0
+
+   .macro  cache_op op addr
+   .setpush
+   .setnoreorder
+   .setmips3
+   cache   \op, 0(\addr)
+   .setpop
+   .endm
+
+   .macro  f_fill64 dst, offset, val
+   LONG_S