All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot-Users] Target support for qemu -M mips
@ 2007-12-17 11:54 Vlad Lungu
  2007-12-17 15:58 ` Shinya Kuribayashi
  2008-01-16 13:08 ` Shinya Kuribayashi
  0 siblings, 2 replies; 15+ messages in thread
From: Vlad Lungu @ 2007-12-17 11:54 UTC (permalink / raw)
  To: u-boot

    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.

Signed-off-by: Vlad Lungu <vlad@comsys.ro>
---
 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

diff --git a/MAKEALL b/MAKEALL
index a02412b..7647d67 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -524,6 +524,7 @@ LIST_arm="		\
 
 LIST_mips4kc="		\
 	incaip		\
+	qemu_mips	\
 "
 
 LIST_mips5kc="		\
diff --git a/Makefile b/Makefile
index 1ff80b5..3e1b074 100644
--- a/Makefile
+++ b/Makefile
@@ -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
 #########################################################################
diff --git a/board/qemu-mips/Makefile b/board/qemu-mips/Makefile
new file mode 100644
index 0000000..23be447
--- /dev/null
+++ b/board/qemu-mips/Makefile
@@ -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
+
+#########################################################################
diff --git a/board/qemu-mips/README b/board/qemu-mips/README
new file mode 100644
index 0000000..39570b1
--- /dev/null
+++ b/board/qemu-mips/README
@@ -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.
diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk
new file mode 100644
index 0000000..61269ce
--- /dev/null
+++ b/board/qemu-mips/config.mk
@@ -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
diff --git a/board/qemu-mips/flash.c b/board/qemu-mips/flash.c
new file mode 100644
index 0000000..49f0134
--- /dev/null
+++ b/board/qemu-mips/flash.c
@@ -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 chips */
+#endif
+/*-----------------------------------------------------------------------
+ * flash_init()
+ *
+ * sets up flash_info and returns size of FLASH (bytes)
+ */
+unsigned long flash_init (void)
+{
+	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);
+}
diff --git a/board/qemu-mips/lowlevel_init.S b/board/qemu-mips/lowlevel_init.S
new file mode 100644
index 0000000..28166bc
--- /dev/null
+++ b/board/qemu-mips/lowlevel_init.S
@@ -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
+	nop
diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
new file mode 100644
index 0000000..345bb95
--- /dev/null
+++ b/board/qemu-mips/qemu-mips.c
@@ -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>
+#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;
+}
+
+
+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");
+	}
+		printf (" proc_id=0x%x\n", proc_id);
+
+	return 0;
+}
+
+int misc_init_r(void){
+set_io_port_base(0);
+return 0;
+}
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
new file mode 100644
index 0000000..8793320
--- /dev/null
+++ b/board/qemu-mips/u-boot.lds
@@ -0,0 +1,70 @@
+/*
+ * (C) Copyright 2003
+ * Wolfgang Denk 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_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
+*/
+OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips")
+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) }
+	__u_boot_cmd_end = .;
+
+	uboot_end_data = .;
+	num_got_entries = (__got_end - __got_start) >> 2;
+
+	. = ALIGN(4);
+	.sbss  : { *(.sbss) }
+	.bss  : { *(.bss) }
+	uboot_end = .;
+}
diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
new file mode 100644
index 0000000..1f93ad7
--- /dev/null
+++ b/include/configs/qemu-mips.h
@@ -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    */
+
+#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*/
+
+#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 */
+
+#define CFG_SDRAM_BASE		0x80000000     /* Cached addr */
+
+#define	CFG_LOAD_ADDR		0x81000000     /* default load address	*/
+
+#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
+
+#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 */
-- 
1.5.2.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-17 11:54 [U-Boot-Users] Target support for qemu -M mips Vlad Lungu
@ 2007-12-17 15:58 ` Shinya Kuribayashi
  2007-12-17 16:52   ` Vlad Lungu
  2008-01-16 13:08 ` Shinya Kuribayashi
  1 sibling, 1 reply; 15+ messages in thread
From: Shinya Kuribayashi @ 2007-12-17 15:58 UTC (permalink / raw)
  To: u-boot

Hi Vlad,

Vlad Lungu wrote:
>    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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-17 15:58 ` Shinya Kuribayashi
@ 2007-12-17 16:52   ` Vlad Lungu
  2007-12-22 15:03     ` [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING Jean-Christophe PLAGNIOL-VILLARD
  2007-12-23  9:06     ` [U-Boot-Users] Target support for qemu -M mips Shinya Kuribayashi
  0 siblings, 2 replies; 15+ messages in thread
From: Vlad Lungu @ 2007-12-17 16:52 UTC (permalink / raw)
  To: u-boot

Shinya Kuribayashi wrote:
> Hi Vlad,
>
> Vlad Lungu wrote:
>   
>>    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...
>   

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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
  2007-12-17 16:52   ` Vlad Lungu
@ 2007-12-22 15:03     ` Jean-Christophe PLAGNIOL-VILLARD
  2008-01-04  3:16       ` Shinya Kuribayashi
  2008-01-09 12:40       ` Jean-Christophe PLAGNIOL-VILLARD
  2007-12-23  9:06     ` [U-Boot-Users] Target support for qemu -M mips Shinya Kuribayashi
  1 sibling, 2 replies; 15+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2007-12-22 15:03 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>

diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
index 1f93ad7..3a02342 100644
--- a/include/configs/qemu-mips.h
+++ b/include/configs/qemu-mips.h
@@ -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*/
-- 
1.5.3.7

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-17 16:52   ` Vlad Lungu
  2007-12-22 15:03     ` [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING Jean-Christophe PLAGNIOL-VILLARD
@ 2007-12-23  9:06     ` Shinya Kuribayashi
  2007-12-23 10:37       ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 1 reply; 15+ messages in thread
From: Shinya Kuribayashi @ 2007-12-23  9:06 UTC (permalink / raw)
  To: u-boot

Vlad Lungu wrote:
> 
> 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.

$ 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

> 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 .

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-23  9:06     ` [U-Boot-Users] Target support for qemu -M mips Shinya Kuribayashi
@ 2007-12-23 10:37       ` Jean-Christophe PLAGNIOL-VILLARD
  2007-12-23 12:33         ` Vlad Lungu
  0 siblings, 1 reply; 15+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2007-12-23 10:37 UTC (permalink / raw)
  To: u-boot

On 18:06 Sun 23 Dec     , Shinya Kuribayashi wrote:
> Vlad Lungu wrote:
> > 
> > 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.
> 
> $ 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
> 

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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-23 10:37       ` Jean-Christophe PLAGNIOL-VILLARD
@ 2007-12-23 12:33         ` Vlad Lungu
  2007-12-23 13:31           ` Shinya Kuribayashi
  0 siblings, 1 reply; 15+ messages in thread
From: Vlad Lungu @ 2007-12-23 12:33 UTC (permalink / raw)
  To: u-boot

Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 18:06 Sun 23 Dec     , Shinya Kuribayashi wrote:
>   
>> Vlad Lungu wrote:
>>     
>>> 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.
>>>       
>> $ 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'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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-23 12:33         ` Vlad Lungu
@ 2007-12-23 13:31           ` Shinya Kuribayashi
  0 siblings, 0 replies; 15+ messages in thread
From: Shinya Kuribayashi @ 2007-12-23 13:31 UTC (permalink / raw)
  To: u-boot

Vlad Lungu wrote:
> Jean-Christophe PLAGNIOL-VILLARD wrote:
>> On 18:06 Sun 23 Dec     , Shinya Kuribayashi wrote:
>>  
>>> Vlad Lungu wrote:
>>>    
>>>> 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.
>>>>       
>>> $ 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'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).

Thanks, now boots fine. I'll try ide and network.

  Shinya

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
  2007-12-22 15:03     ` [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING Jean-Christophe PLAGNIOL-VILLARD
@ 2008-01-04  3:16       ` Shinya Kuribayashi
  2008-01-09 12:40       ` Jean-Christophe PLAGNIOL-VILLARD
  1 sibling, 0 replies; 15+ messages in thread
From: Shinya Kuribayashi @ 2008-01-04  3:16 UTC (permalink / raw)
  To: u-boot

Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> 
> diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
> index 1f93ad7..3a02342 100644
> --- a/include/configs/qemu-mips.h
> +++ b/include/configs/qemu-mips.h
> @@ -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*/

Sorry for late response. Applied to u-boot-mips/testing branch.

  Shinya

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
  2007-12-22 15:03     ` [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING Jean-Christophe PLAGNIOL-VILLARD
  2008-01-04  3:16       ` Shinya Kuribayashi
@ 2008-01-09 12:40       ` Jean-Christophe PLAGNIOL-VILLARD
  2008-01-09 15:34         ` Shinya Kuribayashi
  1 sibling, 1 reply; 15+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2008-01-09 12:40 UTC (permalink / raw)
  To: u-boot

Could review this patch please?

Best Regards,
J.

On 16:03 Sat 22 Dec     , Jean-Christophe PLAGNIOL-VILLARD wrote:
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
> 
> diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
> index 1f93ad7..3a02342 100644
> --- a/include/configs/qemu-mips.h
> +++ b/include/configs/qemu-mips.h
> @@ -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*/
> -- 
> 1.5.3.7

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING
  2008-01-09 12:40       ` Jean-Christophe PLAGNIOL-VILLARD
@ 2008-01-09 15:34         ` Shinya Kuribayashi
  0 siblings, 0 replies; 15+ messages in thread
From: Shinya Kuribayashi @ 2008-01-09 15:34 UTC (permalink / raw)
  To: u-boot

Jean-Christophe PLAGNIOL-VILLARD wrote:
> 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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2007-12-17 11:54 [U-Boot-Users] Target support for qemu -M mips Vlad Lungu
  2007-12-17 15:58 ` Shinya Kuribayashi
@ 2008-01-16 13:08 ` Shinya Kuribayashi
  2008-01-16 17:20   ` Vlad Lungu
  1 sibling, 1 reply; 15+ messages in thread
From: Shinya Kuribayashi @ 2008-01-16 13:08 UTC (permalink / raw)
  To: u-boot

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


Vlad Lungu wrote:
>    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

> Signed-off-by: Vlad Lungu <vlad@comsys.ro>
> ---

Please consider to add qemu target entry to MAINTAINERS file. I don't
think it's essential, but would be helpful.

> 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
> 
> diff --git a/MAKEALL b/MAKEALL
> index a02412b..7647d67 100755
> --- a/MAKEALL
> +++ b/MAKEALL
> @@ -524,6 +524,7 @@ LIST_arm="        \
> 
> LIST_mips4kc="        \
>     incaip        \
> +    qemu_mips    \
> "
> 
> LIST_mips5kc="        \
> diff --git a/Makefile b/Makefile
> index 1ff80b5..3e1b074 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -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 :-)

> +    @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
> #########################################################################
> diff --git a/board/qemu-mips/Makefile b/board/qemu-mips/Makefile
> new file mode 100644
> index 0000000..23be447
> --- /dev/null
> +++ b/board/qemu-mips/Makefile
> @@ -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
> +
> +#########################################################################
> diff --git a/board/qemu-mips/README b/board/qemu-mips/README
> new file mode 100644
> index 0000000..39570b1
> --- /dev/null
> +++ b/board/qemu-mips/README
> @@ -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.
> diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk
> new file mode 100644
> index 0000000..61269ce
> --- /dev/null
> +++ b/board/qemu-mips/config.mk
> @@ -0,0 +1,11 @@
> +

needless empty line

> +#
> +# Qemu -M mips system emulator
> +# See http://fabrice.bellard.free.fr/qemu
> +#
> +
> +# ROM version
> +TEXT_BASE = 0xbfc00000
> +
> +# RAM version
> +#TEXT_BASE = 0x80001000
> diff --git a/board/qemu-mips/flash.c b/board/qemu-mips/flash.c
> new file mode 100644
> index 0000000..49f0134
> --- /dev/null
> +++ b/board/qemu-mips/flash.c
> @@ -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 
> chips */
> +#endif

Please remove #if 0 - #endif

> +/*-----------------------------------------------------------------------
> + * 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.

> +{
> +    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);
> +}
> diff --git a/board/qemu-mips/lowlevel_init.S 
> b/board/qemu-mips/lowlevel_init.S
> new file mode 100644
> index 0000000..28166bc
> --- /dev/null
> +++ b/board/qemu-mips/lowlevel_init.S
> @@ -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
> +    nop
> diff --git a/board/qemu-mips/qemu-mips.c b/board/qemu-mips/qemu-mips.c
> new file mode 100644
> index 0000000..345bb95
> --- /dev/null
> +++ b/board/qemu-mips/qemu-mips.c
> @@ -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>
> +#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

> +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");
> +    }
> +        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

> diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
> new file mode 100644
> index 0000000..8793320
> --- /dev/null
> +++ b/board/qemu-mips/u-boot.lds
> @@ -0,0 +1,70 @@
> +/*
> + * (C) Copyright 2003
> + * Wolfgang Denk 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_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips")
> +*/
> +OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", 
> "elf32-tradbigmips")
> +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) }
> +    __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.

> diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h
> new file mode 100644
> index 0000000..1f93ad7
> --- /dev/null
> +++ b/include/configs/qemu-mips.h
> @@ -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    */
> +
> +#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*/
> +
> +#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 */
> +
> +#define CFG_SDRAM_BASE        0x80000000     /* Cached addr */
> +
> +#define    CFG_LOAD_ADDR        0x81000000     /* default load 
> address    */
> +
> +#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
> +
> +#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.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2008-01-16 13:08 ` Shinya Kuribayashi
@ 2008-01-16 17:20   ` Vlad Lungu
  2008-01-17  9:05     ` Shinya Kuribayashi
  0 siblings, 1 reply; 15+ messages in thread
From: Vlad Lungu @ 2008-01-16 17:20 UTC (permalink / raw)
  To: u-boot

Shinya Kuribayashi wrote:
> 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]
> please update .lds to the latest board/dbau1x00/u-boot.lds, etc.
> I'd like to see
> 	. = .;
>   
What does this do ?
> 	_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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2008-01-16 17:20   ` Vlad Lungu
@ 2008-01-17  9:05     ` Shinya Kuribayashi
  2008-01-17 11:10       ` Vlad Lungu
  0 siblings, 1 reply; 15+ messages in thread
From: Shinya Kuribayashi @ 2008-01-17  9:05 UTC (permalink / raw)
  To: u-boot

>> please update .lds to the latest board/dbau1x00/u-boot.lds, etc.
>> I'd like to see
>> 	. = .;
>>   
> What does this do ?
>> 	_gp = ALIGN(16) + 0x7ff0;

It employs the output of `(CROSS_COMPILE)ld --verbose. It's a normal
link script, so I just follow it.

> 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

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [U-Boot-Users] Target support for qemu -M mips
  2008-01-17  9:05     ` Shinya Kuribayashi
@ 2008-01-17 11:10       ` Vlad Lungu
  0 siblings, 0 replies; 15+ messages in thread
From: Vlad Lungu @ 2008-01-17 11:10 UTC (permalink / raw)
  To: u-boot

Shinya Kuribayashi wrote:
[snip]
>> 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).
>   
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

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2008-01-17 11:10 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-12-17 11:54 [U-Boot-Users] Target support for qemu -M mips Vlad Lungu
2007-12-17 15:58 ` Shinya Kuribayashi
2007-12-17 16:52   ` Vlad Lungu
2007-12-22 15:03     ` [U-Boot-Users] [PATCH 1/1] qemu-mips: active HUSH PARSER, AUTO_COMPLETE and CMDLINE_EDITING Jean-Christophe PLAGNIOL-VILLARD
2008-01-04  3:16       ` Shinya Kuribayashi
2008-01-09 12:40       ` Jean-Christophe PLAGNIOL-VILLARD
2008-01-09 15:34         ` Shinya Kuribayashi
2007-12-23  9:06     ` [U-Boot-Users] Target support for qemu -M mips Shinya Kuribayashi
2007-12-23 10:37       ` Jean-Christophe PLAGNIOL-VILLARD
2007-12-23 12:33         ` Vlad Lungu
2007-12-23 13:31           ` Shinya Kuribayashi
2008-01-16 13:08 ` Shinya Kuribayashi
2008-01-16 17:20   ` Vlad Lungu
2008-01-17  9:05     ` Shinya Kuribayashi
2008-01-17 11:10       ` Vlad Lungu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.