* [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] [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 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] 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox