From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Schwierzeck Date: Wed, 5 Sep 2012 01:12:11 +0200 Subject: [U-Boot] [Patch V5 4/4] MIPS: add board qemu-mips64 support In-Reply-To: <1346769158-18319-5-git-send-email-etou.zh@gmail.com> References: <1346769158-18319-1-git-send-email-etou.zh@gmail.com> <1346769158-18319-5-git-send-email-etou.zh@gmail.com> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 2012/9/4 Zhizhou Zhang : > Both big-endian and little-endian are tested with below commands: > Rom version: (Default, Now we config it as rom version) > qemu-system-mips64el -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic > qemu-system-mips64 -M mips -bios u-boot.bin -cpu MIPS64R2-generic -nographic > Ram version: > qemu-system-mips64el -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic > qemu-system-mips64 -M mips -cpu MIPS64R2-generic -kernel u-boot -nographic > > Signed-off-by: Zhizhou Zhang > --- > arch/mips/cpu/mips64/Makefile | 45 +++++++ > arch/mips/cpu/mips64/cache.S | 229 +++++++++++++++++++++++++++++++++ > arch/mips/cpu/mips64/config.mk | 40 ++++++ > arch/mips/cpu/mips64/cpu.c | 111 ++++++++++++++++ > arch/mips/cpu/mips64/interrupts.c | 34 +++++ > arch/mips/cpu/mips64/start.S | 256 +++++++++++++++++++++++++++++++++++++ > arch/mips/cpu/mips64/time.c | 87 +++++++++++++ > board/qemu-mips/u-boot.lds | 8 ++ > boards.cfg | 2 + > examples/standalone/mips64.lds | 59 +++++++++ > include/configs/qemu-mips64.h | 171 +++++++++++++++++++++++++ > 11 files changed, 1042 insertions(+) > create mode 100644 arch/mips/cpu/mips64/Makefile > create mode 100644 arch/mips/cpu/mips64/cache.S > create mode 100644 arch/mips/cpu/mips64/config.mk > create mode 100644 arch/mips/cpu/mips64/cpu.c > create mode 100644 arch/mips/cpu/mips64/interrupts.c > create mode 100644 arch/mips/cpu/mips64/start.S > create mode 100644 arch/mips/cpu/mips64/time.c > create mode 100644 examples/standalone/mips64.lds > create mode 100644 include/configs/qemu-mips64.h > [...] > diff --git a/include/configs/qemu-mips64.h b/include/configs/qemu-mips64.h > new file mode 100644 > index 0000000..216326d > --- /dev/null > +++ b/include/configs/qemu-mips64.h > @@ -0,0 +1,171 @@ > +/* > + * (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 qemu-mips64 target. > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +#define CONFIG_MIPS64 /* MIPS64 CPU core */ > +#define CONFIG_QEMU_MIPS1 > +#define CONFIG_MISC_INIT_R > + > +#define CONFIG_BOOTDELAY 10 /* autoboot after 10 seconds */ > + > +#define CONFIG_BAUDRATE 115200 > + > +/* valid baudrates */ > +#define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } > + > +#define CONFIG_TIMESTAMP /* Print image info with timestamp */ > +#undef CONFIG_BOOTARGS > + > +#define CONFIG_EXTRA_ENV_SETTINGS \ > + "addmisc=setenv bootargs ${bootargs} " \ > + "console=ttyS0,${baudrate} " \ > + "panic=1\0" \ > + "bootfile=/tftpboot/vmlinux\0" \ > + "load=tftp ffffffff80500000 ${u-boot}\0" \ > + "" > + why have you omitted this? #define CONFIG_BOOTCOMMAND "bootp;bootelf" #define CONFIG_CMD_ELF > +/* > + * BOOTP options > + */ > +#define CONFIG_BOOTP_BOOTFILESIZE > +#define CONFIG_BOOTP_BOOTPATH > +#define CONFIG_BOOTP_GATEWAY > +#define CONFIG_BOOTP_HOSTNAME > + > +/* > + * Command line configuration. > + */ > +#include > +#define CONFIG_DP83902A > + > +#define CONFIG_CMD_FAT > +#define CONFIG_CMD_EXT2 > +#undef CONFIG_CMD_LOADB > +#undef CONFIG_CMD_LOADS > +#define CONFIG_CMD_DHCP > + > +#define CONFIG_DRIVER_NE2000 > +#define CONFIG_DRIVER_NE2000_BASE 0xffffffffb4000300 > + > +#define CONFIG_SYS_NS16550 > +#define CONFIG_SYS_NS16550_SERIAL > +#define CONFIG_SYS_NS16550_REG_SIZE 1 > +#define CONFIG_SYS_NS16550_CLK 115200 > +#define CONFIG_SYS_NS16550_COM1 (0xffffffffb40003f8) > +#define CONFIG_CONS_INDEX 1 > + > +#define CONFIG_CMD_IDE > +#define CONFIG_DOS_PARTITION > + > +#define CONFIG_SYS_IDE_MAXBUS 2 > +#define CONFIG_SYS_ATA_IDE0_OFFSET (0x1f0) > +#define CONFIG_SYS_ATA_IDE1_OFFSET (0x170) > +#define CONFIG_SYS_ATA_DATA_OFFSET (0) > +#define CONFIG_SYS_ATA_REG_OFFSET (0) > +#define CONFIG_SYS_ATA_BASE_ADDR (0xffffffffb4000000) > + > +#define CONFIG_SYS_IDE_MAXDEVICE (4) > + > +#define CONFIG_CMD_RARP > + > +/* > + * Miscellaneous configurable options > + */ > +#define CONFIG_SYS_LONGHELP /* undef to save memory */ > + > +/* Monitor Command Prompt */ > +#if defined(CONFIG_SYS_LITTLE_ENDIAN) > +#define CONFIG_SYS_PROMPT "qemu-mips64el # " > +#else > +#define CONFIG_SYS_PROMPT "qemu-mips64 # " > +#endif > + > +#define CONFIG_AUTO_COMPLETE > +#define CONFIG_CMDLINE_EDITING > +#define CONFIG_SYS_HUSH_PARSER > +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " > + > +/* Console I/O Buffer Size */ > +#define CONFIG_SYS_CBSIZE 256 > +/* Print Buffer Size */ > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) > +/* max number of command args */ > +#define CONFIG_SYS_MAXARGS 16 > + > +#define CONFIG_SYS_MALLOC_LEN 128*1024 > + > +#define CONFIG_SYS_BOOTPARAMS_LEN 128*1024 > + > +#define CONFIG_SYS_MHZ 132 > + > +#define CONFIG_SYS_MIPS_TIMER_FREQ (CONFIG_SYS_MHZ * 1000000) > + > +#define CONFIG_SYS_HZ 1000 > + > +/* Cached addr */ > +#define CONFIG_SYS_SDRAM_BASE 0xffffffff80000000 > + > +/* default load address */ > +#define CONFIG_SYS_LOAD_ADDR 0xffffffff81000000 > + > +#define CONFIG_SYS_MEMTEST_START 0xffffffff80100000 > +#define CONFIG_SYS_MEMTEST_END 0xffffffff80800000 > + > +/*----------------------------------------------------------------------- > + * FLASH and environment organization > + */ > +#define CONFIG_CMD_NO_FLASH > +#define CONFIG_SYS_NO_FLASH > +#undef CONFIG_CMD_IMLS why have you omitted the flash support? qemu-system-mips supports flash emulation with the option -pflash. It already works with a qemu_mips32 U-boot. > + > +/* The following #defines are needed to get flash environment right */ > +#undef CONFIG_SYS_TEXT_BASE drop this line > +#define CONFIG_SYS_TEXT_BASE 0xffffffffbfc00000 /* ROM Version */ > +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE > + > +#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 > +#define CONFIG_ENV_IS_NOWHERE > + > +/* Address and size of Primary Environment Sector */ > +#define CONFIG_ENV_SIZE 0x8000 > + > +#define CONFIG_ENV_OVERWRITE > + > +#define MEM_SIZE 128 > + > +#define CONFIG_LZA #define CONFIG_LZMA > + > +/*----------------------------------------------------------------------- > + * Cache Configuration > + */ > +#define CONFIG_SYS_DCACHE_SIZE 16384 > +#define CONFIG_SYS_ICACHE_SIZE 16384 > +#define CONFIG_SYS_CACHELINE_SIZE 32 > + > +#endif /* __CONFIG_H */ > -- > 1.7.9.5 > -- Best regards, Daniel