Target support for qemu -M mips
Subsystems (2)
With serial, NE2000, IDE support. Tested in big-endian mode. Memory size hard-coded to 128M for now, so don't play with the -m option.
--- MAKEALL | 1 + Makefile | 6 ++ board/qemu-mips/Makefile | 45 +++++++++++ board/qemu-mips/README | 11 +++ board/qemu-mips/config.mk | 11 +++ board/qemu-mips/flash.c | 43 ++++++++++ board/qemu-mips/lowlevel_init.S | 41 ++++++++++ board/qemu-mips/qemu-mips.c | 89 +++++++++++++++++++++ board/qemu-mips/u-boot.lds | 70 +++++++++++++++++ include/configs/qemu-mips.h | 164 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 481 insertions(+), 0 deletions(-) create mode 100644 board/qemu-mips/Makefile create mode 100644 board/qemu-mips/README create mode 100644 board/qemu-mips/config.mk create mode 100644 board/qemu-mips/flash.c create mode 100644 board/qemu-mips/lowlevel_init.S create mode 100644 board/qemu-mips/qemu-mips.c create mode 100644 board/qemu-mips/u-boot.lds create mode 100644 include/configs/qemu-mips.h
MAKEALL +1 -0
@@ -524,6 +524,7 @@ LIST_arm=" \ LIST_mips4kc=" \ incaip \ + qemu_mips \ " LIST_mips5kc=" \
Makefile +6 -0
@@ -2514,6 +2514,12 @@ pb1000_config : unconfig @echo "#define CONFIG_PB1000 1" >>$(obj)include/config.h @$(MKCONFIG) -a pb1x00 mips mips pb1x00 +qemu_mips_config : unconfig + @mkdir -p $(obj)include + @ >$(obj)include/config.h + @echo "#define CONFIG_QEMU_MIPS 1" >>$(obj)include/config.h + @$(MKCONFIG) -a qemu-mips mips mips qemu-mips + ######################################################################### ## MIPS64 5Kc #########################################################################
board/qemu-mips/Makefile new file +45 -0
45 lines not on this page · raw message
board/qemu-mips/README new file +11 -0
@@ -0,0 +1,11 @@ +By Vlad Lungu vlad at comsys.ro 2007-Oct-01 +---------------------------------------- +Qemu is a full system emulator. See + +http://fabrice.bellard.free.fr/qemu + +Limitations & comments +---------------------- +Supports the "-m mips" configuration of qemu: serial,NE2000,IDE. +Support is big endian only for now (or at least this is what I tested). +Derived from au1x00 with a lot of things cut out.
board/qemu-mips/config.mk new file +11 -0
@@ -0,0 +1,11 @@ + +# +# Qemu -M mips system emulator +# See http://fabrice.bellard.free.fr/qemu +# + +# ROM version +TEXT_BASE = 0xbfc00000 + +# RAM version +#TEXT_BASE = 0x80001000
board/qemu-mips/flash.c new file +43 -0
43 lines not on this page · raw message
board/qemu-mips/lowlevel_init.S new file +41 -0
41 lines not on this page · raw message
board/qemu-mips/qemu-mips.c new file +89 -0
89 lines not on this page · raw message
board/qemu-mips/u-boot.lds new file +70 -0
70 lines not on this page · raw message
include/configs/qemu-mips.h new file +164 -0
164 lines not on this page · raw message
Signature · 1 line
1.5.2.2
Hi Vlad,
Quoted 3 lines · Vlad Lungu
With serial, NE2000, IDE support. Tested in big-endian mode. Memory size hard-coded to 128M for now, so don't play with the -m option.
very interesting B-). Applied to u-boot-mips/testing branch.
I'd like to give it a try, but I have to admit that I've never tested qemu for U-Boot/Mips; I've tested only with Linux/Mips kernel. Could you give me some HOWTOs, steps to reproduce, expected output results, etc. Or any usuful pointers...
Thanks in advance,
Shinya
Quoted 9 lines · Shinya Kuribayashi
Hi Vlad,
Quoted 4 lines · Vlad Lungu
With serial, NE2000, IDE support. Tested in big-endian mode. Memory size hard-coded to 128M for now, so don't play with the -m option.
Quoted 7 lines
very interesting B-). Applied to u-boot-mips/testing branch.
I'd like to give it a try, but I have to admit that I've never tested qemu for U-Boot/Mips; I've tested only with Linux/Mips kernel. Could you give me some HOWTOs, steps to reproduce, expected output results, etc. Or any usuful pointers...
make qemu_mips_config ; make
Copy (or symlink) u-boot.bin to mips_bios.bin and launch qemu-system-mips -L . /dev/null
-L . so that qemu picks the BIOS from the current directory and /dev/null because qemu wants a disk image. Qemu willl load and launch U-Boot.
Add -hda file.img to Qemu cmd line in order to emulate a hard-disk and do ide reset
at the U-Boot prompt ; the disk (or disks) should be identified. Check U-Boot doc for booting fromHD :-)
Add -tftp / and then do dhcp (or directly tftp) and then bootelf (on vmlinux) or bootm (on uimage).
Main purpose is to be able to develop U-Boot modules with no hardware. Secondary is for me to learn how it works :-) in order
to develop a free BIOS for the MTI Malta board, as emulated by Qemu (comes with PCI and stuff). Or even for the real board. I have that sort-of-working too, but I'm not very happy with the PCI bus driver .
Vlad
PATCH 1/1 qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
include/configs/qemu-mips.h +5 -0
@@ -112,6 +112,11 @@#define CFG_PROMPT "qemu-mips # "/* Monitor Command Prompt */ +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#define CFG_HUSH_PARSER +#define CFG_PROMPT_HUSH_PS2 "> " +#define CFG_CBSIZE 256/* Console I/O Buffer Size */ #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)/* Print Buffer Size */ #define CFG_MAXARGS 16/* max number of command args*/
Signature · 1 line
1.5.3.7
PATCH 1/1 qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
Quoted 8 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>include/configs/qemu-mips.h +0
-0@@ -112,6 +112,11 @@
include/configs/qemu-mips.h line 122
Quoted 10 lines
include/configs/qemu-mips.h +5
-0#define CFG_PROMPT "qemu-mips # "/* Monitor Command Prompt */ +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#define CFG_HUSH_PARSER +#define CFG_PROMPT_HUSH_PS2 "> " +#define CFG_CBSIZE 256/* Console I/O Buffer Size */ #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)/* Print Buffer Size */ #define CFG_MAXARGS 16/* max number of command args*/
Sorry for late response. Applied to u-boot-mips/testing branch.
Shinya
PATCH 1/1 qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
In reply to Jean-Christophe PLAGNIOL-VILLARDCould review this patch please?
Best Regards,
J.
Quoted 20 lines · Jean-Christophe PLAGNIOL-VILLARD
Signed-off-by Jean-Christophe PLAGNIOL-VILLARD <[email protected]>include/configs/qemu-mips.h +5
-0@@ -112,6 +112,11 @@#define CFG_PROMPT "qemu-mips # "/* Monitor Command Prompt */ +#define CONFIG_AUTO_COMPLETE +#define CONFIG_CMDLINE_EDITING +#define CFG_HUSH_PARSER +#define CFG_PROMPT_HUSH_PS2 "> " +#define CFG_CBSIZE 256/* Console I/O Buffer Size */ #define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)/* Print Buffer Size */ #define CFG_MAXARGS 16/* max number of command args*/ Signature · 1 line
1.5.3.7
PATCH 1/1 qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
Quoted 1 line · Jean-Christophe PLAGNIOL-VILLARD
Could review this patch please?
I've already applied to testing branch. Or maybe are you talking about pushing qemu stuff into mainline? In fact I couldn't give it enough testing, so have been thinking about waiting for a while.
But well, I don't mind pushing this up. In that case, I hope some coding style cleanups and .lds update, etc. Please consider :-)
Shinya
Quoted 8 lines · Vlad Lungu
make
qemu_mips_config; makeCopy (or symlink) u-boot.bin to mips_bios.bin and launch qemu-system-mips -L .
/dev/null
-L . so that qemu picks the BIOS from the current directory and/dev/nullbecause qemu wants a disk image. Qemu willl load and launch U-Boot.
$ cd u-boot.git $ make distclean $ make qemu_mips_config $ make CROSS_COMPILE=mips-linux- $ cp -a u-boot.bin mips_bios.bin $ qemu-system-mips -L . /dev/nulll
at this point, qemu console window appears but I can't see any u-boot's bootlog. I tried qemu on Debian testing or the latest CVS, but the same results.
I use u-boot-1.3.1 + qemu patch, gcc 4.2.1 and binutils 2.18.50.0.1.
Am I miss something?
Shinya
Quoted 13 lines
Add -hda file.img to Qemu cmd line in order to emulate a hard-disk and do ide reset
at the U-Boot prompt ; the disk (or disks) should be identified. Check U-Boot doc for booting fromHD :-)Add -tftp / and then do dhcp (or directly tftp) and then bootelf (on vmlinux) or bootm (on uimage).
Main purpose is to be able to develop U-Boot modules with no hardware. Secondary is for me to learn how it works :-) in order
to develop a free BIOS for the MTI Malta board, as emulated by Qemu (comes with PCI and stuff). Or even for the real board. I have that sort-of-working too, but I'm not very happy with the PCI bus driver .
Quoted 21 lines · Shinya Kuribayashi
Quoted 8 lines · Vlad Lungu
make
qemu_mips_config; makeCopy (or symlink) u-boot.bin to mips_bios.bin and launch qemu-system-mips -L .
/dev/null
-L . so that qemu picks the BIOS from the current directory and/dev/nullbecause qemu wants a disk image. Qemu willl load and launch U-Boot.$ cd u-boot.git $ make distclean $ make qemu_mips_config $ make CROSS_COMPILE=mips-linux- $ cp -a u-boot.bin mips_bios.bin $ qemu-system-mips -L . /dev/nulllat this point, qemu console window appears but I can't see any u-boot's bootlog. I tried qemu on Debian testing or the latest CVS, but the same results.
Quoted 6 lines
I use u-boot-1.3.1 + qemu patch, gcc 4.2.1 and binutils 2.18.50.0.1.
Am I miss something?
Shinya
I've test it on debian unstable with qemu from it and it's work with this cmd
qemu-system-mips -L . /dev/null -nographic
Best Regards
J.
Quoted 25 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 17 lines · Shinya Kuribayashi
Quoted 8 lines · Vlad Lungu
make
qemu_mips_config; makeCopy (or symlink) u-boot.bin to mips_bios.bin and launch qemu-system-mips -L .
/dev/null
-L . so that qemu picks the BIOS from the current directory and/dev/nullbecause qemu wants a disk image. Qemu willl load and launch U-Boot.$ cd u-boot.git $ make distclean $ make qemu_mips_config $ make CROSS_COMPILE=mips-linux- $ cp -a u-boot.bin mips_bios.bin $ qemu-system-mips -L . /dev/nulllQuoted 5 lines
at this point, qemu console window appears but I can't see any u-boot's bootlog. I tried qemu on Debian testing or the latest CVS, but the same results.
Quoted 5 lines
I've test it on debian unstable with qemu from it and it's work with this cmd
qemu-system-mips -L .
/dev/null-nographic
Thanks, J-C. You beat me to it. It's etiher that to work without a graphical interface or press Ctrl-Alt-3 to get to
the serial console (Ctrl-Alt-2 is the qemu monitor shortcut, Ctrl-Alt-1 is the VGA emulation, unused and probably not working).
Vlad
Quoted 29 lines · Vlad Lungu
Quoted 28 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 17 lines · Shinya Kuribayashi
Quoted 8 lines · Vlad Lungu
make
qemu_mips_config; makeCopy (or symlink) u-boot.bin to mips_bios.bin and launch qemu-system-mips -L .
/dev/null
-L . so that qemu picks the BIOS from the current directory and/dev/nullbecause qemu wants a disk image. Qemu willl load and launch U-Boot.$ cd u-boot.git $ make distclean $ make qemu_mips_config $ make CROSS_COMPILE=mips-linux- $ cp -a u-boot.bin mips_bios.bin $ qemu-system-mips -L . /dev/nulllQuoted 5 lines
at this point, qemu console window appears but I can't see any u-boot's bootlog. I tried qemu on Debian testing or the latest CVS, but the same results.
I've test it on debian unstable with qemu from it and it's work with this cmd
Quoted 6 lines
Quoted 2 lines
qemu-system-mips -L .
/dev/null-nographicThanks, J-C. You beat me to it. It's etiher that to work without a graphical interface or press Ctrl-Alt-3 to get to
the serial console (Ctrl-Alt-2 is the qemu monitor shortcut, Ctrl-Alt-1 is the VGA emulation, unused and probably not working).
Thanks, now boots fine. I'll try ide and network.
Shinya
Dear Vlad,
There are some coding style issues, but I'm fine with contents of the patch itself. Please find comments below and resubmit.
Shinya
Quoted 3 lines · Vlad Lungu
With serial, NE2000, IDE support. Tested in big-endian mode. Memory size hard-coded to 128M for now, so don't play with the -m option.
No leading spaces for descriptions
Quoted 2 lines
Signed-off-by Vlad Lungu <[email protected]>---
Please consider to add qemu target entry to MAINTAINERS file. I don't think it's essential, but would be helpful.
Quoted 38 lines
MAKEALL | 1 + Makefile | 6 ++ board/qemu-mips/Makefile | 45 +++++++++++ board/qemu-mips/README | 11 +++ board/qemu-mips/config.mk | 11 +++ board/qemu-mips/flash.c | 43 ++++++++++ board/qemu-mips/lowlevel_init.S | 41 ++++++++++ board/qemu-mips/qemu-mips.c | 89 +++++++++++++++++++++ board/qemu-mips/u-boot.lds | 70 +++++++++++++++++ include/configs/qemu-mips.h | 164 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 481 insertions(+), 0 deletions(-)create mode 100644 board/qemu-mips/Makefile create mode 100644 board/qemu-mips/README create mode 100644
board/qemu-mips/config.mkcreate mode 100644board/qemu-mips/flash.ccreate mode 100644board/qemu-mips/lowlevel_init.Screate mode 100644board/qemu-mips/qemu-mips.ccreate mode 100644board/qemu-mips/u-boot.ldscreate mode 100644include/configs/qemu-mips.hMAKEALL +1
-0@@ -524,6 +524,7 @@ LIST_arm=" \ LIST_mips4kc=" \ incaip \ + qemu_mips \"
LIST_mips5kc=" \
Makefile +0
-0
Makefile pb1000_config : unconfig · line 2517
Quoted 4 lines
Makefile +1
-0@@ -2514,6 +2514,12 @@ pb1000_config : unconfig @echo "#define CONFIG_PB1000 1" >>$(obj)include/config.h @$(MKCONFIG) -a pb1x00 mips mips pb1x00 +qemu_mips_config : unconfig
"qemu_mips_config:", no spaces, would be good for bash completion :-)
Quoted 82 lines
Makefile +5
-0+ @mkdir -p $(obj)include + @ >$(obj)include/config.h + @echo "#define CONFIG_QEMU_MIPS 1" >>$(obj)include/config.h + @$(MKCONFIG) -a qemu-mips mips mips qemu-mips + ######################################################################### ## MIPS64 5Kc #########################################################################board/qemu-mips/Makefile new file +45
-0@@ -0,0 +1,45 @@ +# +# (C) Copyright 2003-2006 +# Wolfgang Denk, DENX Software Engineering, wd at 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$(BOARD).a + +COBJS = $(BOARD).o flash.o +SOBJS = lowlevel_init.o + +SRCS := $(SOBJS:.o=.S) $(COBJS:.o=.c) +OBJS := $(addprefix $(obj),$(COBJS)) +SOBJS := $(addprefix $(obj),$(SOBJS)) + +$(LIB): $(OBJS) $(SOBJS) + $(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS) + +######################################################################### + +# defines $(obj).depend target +include $(SRCTREE)/rules.mk + +sinclude $(obj).depend + +#########################################################################board/qemu-mips/README new file +11
-0@@ -0,0 +1,11 @@ +By Vlad Lungu vlad at comsys.ro 2007-Oct-01 +---------------------------------------- +Qemu is a full system emulator. See + +http://fabrice.bellard.free.fr/qemu + +Limitations & comments +---------------------- +Supports the "-m mips" configuration of qemu: serial,NE2000,IDE. +Support is big endian only for now (or at least this is what I tested). +Derived from au1x00 with a lot of things cut out.board/qemu-mips/config.mk new file +0
-0
board/qemu-mips/config.mk line 1
Quoted 1 line
board/qemu-mips/config.mk new file +1
-0@@ -0,0 +1,11 @@ +
needless empty line
Quoted 42 lines
board/qemu-mips/config.mk new file +10
-0+# +# Qemu -M mips system emulator +# See http://fabrice.bellard.free.fr/qemu +# + +# ROM version +TEXT_BASE = 0xbfc00000 + +# RAM version +#TEXT_BASE = 0x80001000board/qemu-mips/flash.c new file +26
-0@@ -0,0 +1,43 @@ +/* +* (C) Copyright 2003 +* Wolfgang Denk, DENX Software Engineering, wd at 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 <common.h> +#if 0 +flash_info_t flash_info[CFG_MAX_FLASH_BANKS ];/* info for FLASH
Quoted 2 lines
chips */
+#endif
Please remove #if 0 - #endif
board/qemu-mips/flash.c line 33
Quoted 6 lines
board/qemu-mips/flash.c new file +6
-0+/*----------------------------------------------------------------------- +* flash_init() +* +* sets up flash_info and returns size of FLASH (bytes) +*/ +unsigned long flash_init (void )
I'd like to 'no space between function name and open parenthesis '('.
example)
$ linux/scripts/checkpatch.pl qemu-mips.patch says
WARNING: no space between function name and open parenthesis '(' #185: FILE: board/qemu-mips/flash.c:33:
+unsigned long flash_init (void)
WARNING: no space between function name and open parenthesis '(' #187: FILE: board/qemu-mips/flash.c:35:
+ printf ("Skipping flash_init\n");
ERROR: "foo * bar" should be "foo *bar"
#191: FILE: board/qemu-mips/flash.c:39:
+int write_buff ( void * info, uchar * src, ulong addr, ulong cnt)
WARNING: no space between function name and open parenthesis '(' #191: FILE: board/qemu-mips/flash.c:39:
+int write_buff ( void * info, uchar * src, ulong addr, ulong cnt)
ERROR: no space after that open parenthesis '('
#191: FILE: board/qemu-mips/flash.c:39:
+int write_buff ( void * info, uchar * src, ulong addr, ulong cnt)
WARNING: no space between function name and open parenthesis '(' #193: FILE: board/qemu-mips/flash.c:41:
+ printf ("write_buff not implemented\n");
and more... Please fix.
Quoted 90 lines
board/qemu-mips/flash.c new file +10
-0+{ +printf ("Skipping flash_init\n" ); +return (0 ); +} + +int write_buff (void * info,uchar * src,ulong addr,ulong cnt) +{ +printf ("write_buff not implemented\n" ); +return (-1 ); +}board/qemu-mips/lowlevel_init.S new file +41
-0@@ -0,0 +1,41 @@ +/* Memory sub-system initialization code */ + +#include <config.h> +#include <version.h> +#include <asm/regdef.h> +#include <asm/mipsregs.h> + + .text + .set noreorder + .set mips32 + + .globl lowlevel_init +lowlevel_init: + + /* + * Step 2) Establish Status Register + * (set BEV, clear ERL, clear EXL, clear IE) + */ + li t1, 0x00400000 + mtc0 t1, CP0_STATUS + + /* + * Step 3) Establish CP0 Config0 + * (set K0=3) + */ + li t1, 0x00000003 + mtc0 t1, CP0_CONFIG + + /* + * Step 7) Establish Cause + * (set IV bit) + */ + li t1, 0x00800000 + mtc0 t1, CP0_CAUSE + + /* Establish Wired (and Random) */ + mtc0 zero, CP0_WIRED + nop + + j ra + nopboard/qemu-mips/qemu-mips.c new file +26
-0@@ -0,0 +1,89 @@ +/* +* (C) Copyright 2007 +* Vlad Lungu vlad at comsys.ro +* +* 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/mipsregs.h>
board/qemu-mips/qemu-mips.c line 36
Quoted 10 lines
board/qemu-mips/qemu-mips.c new file +10
-0+#include <asm/io.h> + +long int initdram (int board_type) +{ +/* Sdram is setup by assembler code */ +/* If memory could be changed, we should return the true value here */ +return MEM_SIZE *1024 *1024 ; +} + +
don't add 2 newlines
Quoted 43 lines
board/qemu-mips/qemu-mips.c new file +43
-0+int checkboard (void ) +{ +u32 proc_id; +u32 config1; + + proc_id =read_32bit_cp0_register (CP0_PRID ); +printf ("Board: Qemu -M mips CPU: " ); +switch (proc_id) { +case 0x00018000 : +printf ("4Kc" ); +break ; +case 0x00018400 : +printf ("4KEcR1" ); +break ; +case 0x00019000 : +printf ("4KEc" ); +break ; +case 0x00019300 : + config1 =read_mips32_cp0_config1 (); +if (config1&1 ) +printf ("24Kf" ); +else +printf ("24Kc" ); +break ; +case 0x00019500 : +printf ("34Kf" ); +break ; +case 0x00000400 : +printf ("R4000" ); +break ; +case 0x00018100 : + config1 =read_mips32_cp0_config1 (); +if (config1&1 ) +printf ("5Kf" ); +else +printf ("5Kc" ); +break ; +case 0x000182a0 : +printf ("20Kc" ); +break ; + +default : +printf ("unknown" );
board/qemu-mips/qemu-mips.c line 89
Quoted 10 lines
board/qemu-mips/qemu-mips.c new file +10
-0+ } +printf (" proc_id=0x%x\n" , proc_id); + +return 0 ; +} + +int misc_init_r (void ){ +set_io_port_base (0 ); +return 0 ; +}
please fix a bad bracket and no leading tabs
Quoted 65 lines
board/qemu-mips/u-boot.lds new file +27
-0@@ -0,0 +1,70 @@ +/* + * (C) Copyright 2003 + * Wolfgang Denk Engineering, <[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 + */ + +/* +OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips") +*/ +OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips","elf32-tradbigmips")
board/qemu-mips/u-boot.lds new file +31
-0+OUTPUT_ARCH(mips) +ENTRY(_start) +SECTIONS +{ + . = 0x00000000; + + . = ALIGN(4); + .text : + { + *(.text) + } + + . = ALIGN(4); + .rodata : { *(.rodata) } + + . = ALIGN(4); + .data : { *(.data) } + + . = ALIGN(16); + _gp = .; + + .got : { + __got_start = .; + *(.got) + __got_end = .; + } + + . = ALIGN(4); + .sdata : { *(.sdata) } + + . = .; + __u_boot_cmd_start = .; + .u_boot_cmd : { *(.u_boot_cmd) }
board/qemu-mips/u-boot.lds line 70
Quoted 10 lines
board/qemu-mips/u-boot.lds new file +10
-0+ __u_boot_cmd_end = .; + + uboot_end_data = .; + num_got_entries = (__got_end - __got_start) >> 2; + + . = ALIGN(4); + .sbss : { *(.sbss) } + .bss : { *(.bss) } + uboot_end = .; +}
please update .lds to the latest board/dbau1x00/u-boot.lds, etc. I'd like to see
. = .;
_gp = ALIGN(16) + 0x7ff0;
and
.u_boot_cmd : {
__u_boot_cmd_start = .;
*(.u_boot_cmd)
__u_boot_cmd_end = .;
}and so on. I understand it works well without such changes, but it's better to keep all target together.
Quoted 164 lines
include/configs/qemu-mips.h new file +113
-0@@ -0,0 +1,164 @@ +/* +* (C) Copyright 2003 +* Wolfgang Denk, DENX Software Engineering, wd at 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 the dbau1x00 board. +*/ + +#ifndef __CONFIG_H +#define __CONFIG_H + +#define CONFIG_MIPS32 1/* MIPS32 CPU core */ +#define CONFIG_QEMU_MIPS 1 +#define CONFIG_MISC_INIT_R + +#undef DEBUG + +/*IP address is default used by Qemu*/ +#define CONFIG_IPADDR 10.0.2.15/* Our IP address */ +#define CONFIG_SERVERIP 10.0.2.2/* Server IP address*/ + +#define CONFIG_BOOTDELAY 10/* autoboot after 10 seconds */ + +#define CONFIG_BAUDRATE 115200 + +/* valid baudrates */ +#define CFG_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 80500000 ${u-boot}\0" \ + "" + +#define CONFIG_BOOTCOMMAND "bootp;bootelf" + + +/* +* BOOTP options +*/ +#define CONFIG_BOOTP_BOOTFILESIZE +#define CONFIG_BOOTP_BOOTPATH +#define CONFIG_BOOTP_GATEWAY +#define CONFIG_BOOTP_HOSTNAME + + +/* +* Command line configuration. +*/ +#include <config_cmd_default.h> + +#define CONFIG_CMD_ELF +#define CONFIG_CMD_FAT +#define CONFIG_CMD_EXT2 +#undef CONFIG_CMD_IMLS +#undef CONFIG_CMD_FLASH +#undef CONFIG_CMD_LOADB +#undef CONFIG_CMD_LOADS +#define CONFIG_CMD_DHCP + +#define CONFIG_DRIVER_NE2000 +#define CONFIG_DRIVER_NE2000_BASE (0xb4000300) + +#define CFG_NO_FLASH +#define CFG_NS16550 +#define CFG_NS16550_SERIAL +#define CFG_NS16550_REG_SIZE 1 +#define CFG_NS16550_CLK 115200 +#define CFG_NS16550_COM1 (0xb40003f8) +#define CONFIG_CONS_INDEX 1 + +#define CONFIG_CMD_IDE +#define CONFIG_DOS_PARTITION + +#define CFG_IDE_MAXBUS 2 +#define CFG_ATA_IDE0_OFFSET (0x1f0) +#define CFG_ATA_IDE1_OFFSET (0x170) +#define CFG_ATA_DATA_OFFSET (0) +#define CFG_ATA_REG_OFFSET (0) +#define CFG_ATA_BASE_ADDR (0xb4000000) + +#define CFG_IDE_MAXDEVICE (4) + +/* +* Miscellaneous configurable options +*/ +#define CFG_LONGHELP /* undef to save memory */ + +#define CFG_PROMPT "qemu-mips # "/* Monitor Command Prompt */
include/configs/qemu-mips.h new file +3
-0+ +#define CFG_CBSIZE 256/* Console I/O Buffer Size */ +#define CFG_PBSIZE (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)Buffer Size */
include/configs/qemu-mips.h new file +9
-0+#define CFG_MAXARGS 16/* max number of command args*/ + +#define CFG_MALLOC_LEN 128*1024 + +#define CFG_BOOTPARAMS_LEN 128*1024 + +#define CFG_MHZ 132 + +#define CFG_HZ (CFG_MHZ * 1000000)/* FIXME causes overflow in
net.c*/include/configs/qemu-mips.h new file +4
-0+ +#define CFG_SDRAM_BASE 0x80000000/* Cached addr */ + +#define CFG_LOAD_ADDR 0x81000000/* default load address */
include/configs/qemu-mips.h new file +25
-0+ +#define CFG_MEMTEST_START 0x80100000 +#define CFG_MEMTEST_END 0x80800000 + +/*----------------------------------------------------------------------- +* FLASH and environment organization +*/ + +/* The following #defines are needed to get flash environment right */ +#define CFG_MONITOR_BASE TEXT_BASE +#define CFG_MONITOR_LEN (192 << 10) + +#define CFG_INIT_SP_OFFSET 0x400000 + +/* We boot from this flash, selected with dip switch */ +#define CFG_FLASH_BASE 0xbfc00000 + +#define CFG_ENV_IS_NOWHERE 1 + +/* Address and size of Primary Environment Sector */ +#define CFG_ENV_SIZE 0x10000 +#undef CONFIG_NET_MULTI + +#define MEM_SIZE 128 +
include/configs/qemu-mips.h line 164
Quoted 10 lines
include/configs/qemu-mips.h new file +10
-0+#undef CONFIG_MEMSIZE_IN_BYTES + +/*----------------------------------------------------------------------- +* Cache Configuration +*/ +#define CFG_DCACHE_SIZE 16384 +#define CFG_ICACHE_SIZE 16384 +#define CFG_CACHELINE_SIZE 32 + +#endif /* __CONFIG_H */
For some reason, line wrapped due to Thunderbird. Sorry for ugliness.
Quoted 7 lines · Shinya Kuribayashi
Dear Vlad,
There are some coding style issues, but I'm fine with contents of the patch itself. Please find comments below and resubmit.
My God, you are worse than ze germans! Sorry Wolfgang, I had to say it :-)
[snip]
Quoted 4 lines
please update .lds to the latest
board/dbau1x00/u-boot.lds, etc. I'd like to see. = .;
What does this do ?
Quoted 11 lines
_gp = ALIGN(16) + 0x7ff0; and .u_boot_cmd : { __u_boot_cmd_start = .; *(.u_boot_cmd) __u_boot_cmd_end = .; }and so on. I understand it works well without such changes, but it's better to keep all target together.
Any opinions on using a single ldscript per platform, eventually preprocessed with gcc -E to allow
for board-specific differences? At least for MIPS, all scripts are essentally the same.
As for the style issues, some are mine, but many are in the code I copied from. Anyway, I fixed them. Patch to follow.
Regards,
Vlad
Quoted 6 lines
Quoted 4 lines
please update .lds to the latest
board/dbau1x00/u-boot.lds, etc. I'd like to see. = .;What does this do ?
Quoted 1 line
_gp = ALIGN(16) + 0x7ff0;
It employs the output of `(CROSS_COMPILE)ld --verbose. It's a normal link script, so I just follow it.
Quoted 4 lines
Any opinions on using a single ldscript per platform, eventually preprocessed with gcc -E to allow
for board-specific differences? At least for MIPS, all scripts are essentally the same.
Looking at cpu/mpc5xxx/u-boot.lds, it seems good. Or something like linux/arch/mips/kernel/vmlinux.lds.S is good alternative (I don't know whether it's possible or not, though).
Shinya
Shinya Kuribayashi wrote:
[snip]
Quoted 10 lines
Quoted 5 lines
Any opinions on using a single ldscript per platform, eventually preprocessed with gcc -E to allow
for board-specific differences? At least for MIPS, all scripts are essentally the same.Looking at
cpu/mpc5xxx/u-boot.lds, it seems good. Or something likelinux/arch/mips/kernel/vmlinux.lds.Sis good alternative (I don't know whether it's possible or not, though).
I think it's technically possible, the question is if there's support for it. Wolfgang? Anyone?
Obviously, not in this merge window :-), probably after the new config thingy is merged and tested.
Regards,
Vlad