2012/8/20 Zhizhou Zhang <etou...@gmail.com>: > This patch add qemu-mips64 config. And here uses qemu-mips board rather > then a new board qemu-mips64 for the sake of reduce code copying. Below > are the changes: > config.mk: We must define CONFIG_SYS_TEXT_BASE in configs/*.h, not > here, so remove this file. > u-boot.lds: add mips64 link statements. > boards.cfg: add mips64 cpu define. > > Signed-off-by: Zhizhou Zhang <etou...@gmail.com> > --- > board/qemu-mips/config.mk | 10 --- > board/qemu-mips/u-boot.lds | 8 ++ > boards.cfg | 1 + > include/configs/qemu-mips.h | 3 + > include/configs/qemu-mips64.h | 171 > +++++++++++++++++++++++++++++++++++++++++ > 5 files changed, 183 insertions(+), 10 deletions(-) > delete mode 100644 board/qemu-mips/config.mk > create mode 100644 include/configs/qemu-mips64.h > > diff --git a/board/qemu-mips/config.mk b/board/qemu-mips/config.mk > deleted file mode 100644 > index 27cd34a..0000000 > --- a/board/qemu-mips/config.mk > +++ /dev/null > @@ -1,10 +0,0 @@ > -# > -# Qemu -M mips system emulator > -# See http://fabrice.bellard.free.fr/qemu > -# > - > -# ROM version > -CONFIG_SYS_TEXT_BASE = 0xbfc00000 > - > -# RAM version > -#CONFIG_SYS_TEXT_BASE = 0x80001000 > diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds > index 9460b20..06db68d 100644 > --- a/board/qemu-mips/u-boot.lds > +++ b/board/qemu-mips/u-boot.lds > @@ -24,7 +24,11 @@ > /* > OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips") > */ > +#if defined(CONFIG_64BIT) > +OUTPUT_FORMAT("elf64-tradlittlemips", "elf64-tradlittlemips", > "elf64-tradlittlemips")
this is still wrong. We ideally want to support qemu_mips64 and qemu_mips64el. Please use OUTPUT_FORMAT("elf64-tradbigmips", "elf64-tradbigmips", "elf64-tradlittlemips") > +#else > OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", > "elf32-tradlittlemips") > +#endif > OUTPUT_ARCH(mips) > ENTRY(_start) > SECTIONS > @@ -63,7 +67,11 @@ SECTIONS > } > > uboot_end_data = .; > +#if defined(CONFIG_64BIT) > + num_got_entries = (__got_end - __got_start) >> 3; > +#else > num_got_entries = (__got_end - __got_start) >> 2; > +#endif > > . = ALIGN(4); > .sbss : { *(.sbss*) } > diff --git a/boards.cfg b/boards.cfg > index fdb84ad..a6806b8 100644 > --- a/boards.cfg > +++ b/boards.cfg > @@ -379,6 +379,7 @@ M5485GFE m68k mcf547x_8x m548xevb > freescale - > M5485HFE m68k mcf547x_8x m548xevb > freescale - > M5485EVB:SYS_BUSCLK=100000000,SYS_BOOTSZ=2,SYS_DRAMSZ=64,SYS_NOR1SZ=16,SYS_VIDEO > microblaze-generic microblaze microblaze microblaze-generic > xilinx > qemu_mips mips mips32 qemu-mips - > - qemu-mips > +qemu_mips64 mips mips64 qemu-mips - > - qemu-mips64 please use following to support both endianess types qemu_mips64 mips mips64 qemu-mips - - qemu-mips64:SYS_BIG_ENDIAN qemu_mips64el mips mips64 qemu-mips - - qemu-mips64:SYS_LITTLE_ENDIAN > vct_platinum mips mips32 vct > micronas - vct:VCT_PLATINUM > vct_platinumavc mips mips32 vct > micronas - vct:VCT_PLATINUMAVC > vct_platinumavc_onenand mips mips32 vct > micronas - vct:VCT_PLATINUMAVC,VCT_ONENAND > diff --git a/include/configs/qemu-mips.h b/include/configs/qemu-mips.h > index 306c173..bb85bbe 100644 > --- a/include/configs/qemu-mips.h > +++ b/include/configs/qemu-mips.h > @@ -135,6 +135,9 @@ > #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE > #define CONFIG_SYS_MONITOR_LEN (192 << 10) > > +#define CONFIG_SYS_TEXT_BASE 0xbfc00000 /* Rom version */ > +//#define CONFIG_SYS_TEXT_BASE 0x80001000 /* RAM Version */ no C++ style comments. Actually you could drop that line. > + > #define CONFIG_SYS_INIT_SP_OFFSET 0x400000 > > /* We boot from this flash, selected with dip switch */ > diff --git a/include/configs/qemu-mips64.h b/include/configs/qemu-mips64.h > new file mode 100644 > index 0000000..2f39494 > --- /dev/null > +++ b/include/configs/qemu-mips64.h > @@ -0,0 +1,171 @@ > +/* > + * (C) Copyright 2003 > + * Wolfgang Denk, DENX Software Engineering, w...@denx.de. > + * > + * See file CREDITS for list of people who contributed to this > + * project. > + * > + * This program is free software; you can redistribute it and/or > + * modify it under the terms of the GNU General Public License as > + * published by the Free Software Foundation; either version 2 of > + * the License, or (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + * > + * You should have received a copy of the GNU General Public License > + * along with this program; if not, write to the Free Software > + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, > + * MA 02111-1307 USA > + */ > + > +/* > + * This file contains the configuration parameters for qemu-mips64 target. > + */ > + > +#ifndef __CONFIG_H > +#define __CONFIG_H > + > +#define CONFIG_MIPS64 1 /* MIPS64 CPU core */ > +#define CONFIG_64BIT 1 you already defined that in arch/mips/cpu/mips64/config.mk > +#define CONFIG_QEMU_MIPS 1 > +#define CONFIG_MISC_INIT_R you can drop the 1's on all config options which only enable something. > + > +/*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 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" \ > + "" > + > +#define CONFIG_BOOTCOMMAND "" > + > +/* > + * 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_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 */ > + > +#define CONFIG_SYS_PROMPT "qemu-mips64 # " /* Monitor > Command Prompt */ > + > +#define CONFIG_AUTO_COMPLETE > +#define CONFIG_CMDLINE_EDITING > +#define CONFIG_SYS_HUSH_PARSER > +#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " > + > +#define CONFIG_SYS_CBSIZE 256 /* Console I/O Buffer > Size */ > +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE+sizeof(CONFIG_SYS_PROMPT)+16) > /* Print Buffer Size */ > +#define CONFIG_SYS_MAXARGS 16 /* max number of > command args */ > + > +#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 > + > +#define CONFIG_SYS_SDRAM_BASE 0xffffffff80000000 /* Cached > addr */ > + > +#define CONFIG_SYS_LOAD_ADDR 0xffffffff81000000 /* default > load address */ > + > +#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 > + > +/* The following #defines are needed to get flash environment right */ > +#undef CONFIG_SYS_TEXT_BASE > +//#define CONFIG_SYS_TEXT_BASE 0xFfffFfffbfc00000 /* ROM Version */ > +#define CONFIG_SYS_TEXT_BASE 0xffffffff80200000 /* RAM Version */ > +#define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE > + > +#define CONFIG_SYS_INIT_SP_OFFSET 0x400000 > +#define CONFIG_ENV_IS_NOWHERE 1 > + > +/* Address and size of Primary Environment Sector */ > +#define CONFIG_ENV_SIZE 0x8000 > + > +#define CONFIG_ENV_OVERWRITE 1 > + > +#define MEM_SIZE 128 > + > +#undef CONFIG_MEMSIZE_IN_BYTES > + > +#define CONFIG_LZA > + > +/*----------------------------------------------------------------------- > + * 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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot