mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-26 09:38:14 +00:00 
			
		
		
		
	Update description to use the MIPS Malta board for Qemu. Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
		
			
				
	
	
		
			130 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| .. SPDX-License-Identifier: GPL-2.0+
 | |
| .. sectionauthor:: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
 | |
| 
 | |
| QEMU MIPS
 | |
| =========
 | |
| 
 | |
| Qemu for MIPS is based on the MIPS Malta board. The built Malta U-Boot
 | |
| images can be used for Qemu and on physical hardware. The Malta board
 | |
| supports all combinations of Little and Big Endian as well as 32 bit
 | |
| and 64 bit.
 | |
| 
 | |
| Limitations & comments
 | |
| ----------------------
 | |
| The memory size for Qemu is hard-coded to 256 MiB. For Malta Little Endian
 | |
| targets an extra endianness swapped image named *u-boot-swap.bin* is
 | |
| generated and required for Qemu.
 | |
| 
 | |
| Example usage
 | |
| -------------
 | |
| 
 | |
| Build for 32 bit, big endian:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   make malta_defconfig
 | |
|   make
 | |
|   UBOOT_BIN=u-boot.bin
 | |
|   QEMU_BIN=qemu-system-mips
 | |
|   QEMU_CPU=24Kc
 | |
| 
 | |
| Build for 32 bit, little endian:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   make maltael_defconfig
 | |
|   make
 | |
|   UBOOT_BIN=u-boot-swap.bin
 | |
|   QEMU_BIN=qemu-system-mipsel
 | |
|   QEMU_CPU=24Kc
 | |
| 
 | |
| Build for 64 bit, big endian:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   make malta64_defconfig
 | |
|   make
 | |
|   UBOOT_BIN=u-boot.bin
 | |
|   QEMU_BIN=qemu-system-mips64
 | |
|   QEMU_CPU=MIPS64R2-generic
 | |
| 
 | |
| Build for 64 bit, little endian:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   make malta64el_defconfig
 | |
|   make
 | |
|   UBOOT_BIN=u-boot-swap.bin
 | |
|   QEMU_BIN=qemu-system-mips64el
 | |
|   QEMU_CPU=MIPS64R2-generic
 | |
| 
 | |
| Generate NOR flash image with U-Boot binary:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   dd if=/dev/zero bs=1M count=4 | tr '\000' '\377' > pflash.img
 | |
|   dd if=${UBOOT_BIN} of=pflash.img conv=notrunc
 | |
| 
 | |
| Start Qemu:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   mkdir tftproot
 | |
|   ${QEMU_BIN} -nographic -cpu ${QEMU_CPU} -m 256 -drive if=pflash,file="$(pwd)/pflash.img",format=raw -netdev user,id=net0,tftp="$(pwd)/tftproot" -device pcnet,netdev=net0
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   U-Boot 2021.04-00963-g60279a2b1d (Apr 21 2021 - 19:54:32 +0200)
 | |
| 
 | |
|   Board: MIPS Malta CoreLV
 | |
|   DRAM:  256 MiB
 | |
|   Flash: 4 MiB
 | |
|   Loading Environment from Flash... *** Warning - bad CRC, using default environment
 | |
| 
 | |
|   In:    serial@3f8
 | |
|   Out:   serial@3f8
 | |
|   Err:   serial@3f8
 | |
|   Net:   pcnet#0
 | |
|   IDE:   Bus 0: not available
 | |
|   maltael #
 | |
| 
 | |
| How to debug U-Boot
 | |
| -------------------
 | |
| 
 | |
| In order to debug U-Boot you need to start qemu with gdb server support (-s)
 | |
| and waiting the connection to start the CPU (-S). Start Qemu in the first console:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   mkdir tftproot
 | |
|   ${QEMU_BIN} -s -S -nographic -cpu ${QEMU_CPU} -m 256 -drive if=pflash,file="$(pwd)/pflash.img",format=raw -netdev user,id=net0,tftp="$(pwd)/tftproot" -device pcnet,netdev=net0
 | |
| 
 | |
| In the second console start gdb:
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   gdb-multiarch --eval-command "target remote :1234" u-boot
 | |
| 
 | |
| .. code-block:: bash
 | |
| 
 | |
|   GNU gdb (Ubuntu 9.2-0ubuntu1~20.04) 9.2
 | |
|   Copyright (C) 2020 Free Software Foundation, Inc.
 | |
|   License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
 | |
|   This is free software: you are free to change and redistribute it.
 | |
|   There is NO WARRANTY, to the extent permitted by law.
 | |
|   Type "show copying" and "show warranty" for details.
 | |
|   This GDB was configured as "x86_64-linux-gnu".
 | |
|   Type "show configuration" for configuration details.
 | |
|   For bug reporting instructions, please see:
 | |
|   <http://www.gnu.org/software/gdb/bugs/>.
 | |
|   Find the GDB manual and other documentation resources online at:
 | |
|       <http://www.gnu.org/software/gdb/documentation/>.
 | |
| 
 | |
|   For help, type "help".
 | |
|   Type "apropos word" to search for commands related to "word"...
 | |
|   Reading symbols from u-boot...
 | |
|   Remote debugging using :1234
 | |
|   0xbfc00000 in ?? ()
 | |
|   (gdb) c
 | |
|   Continuing.
 |