Introduce `USE_EXP_X86_64_SUPPORT` in `src/arch/x86/Kconfig` and guard it with `HAVE_EXP_X86_64_SUPPORT`. Replace the per-CPU implementations of the same functionality with the newly-added Kconfig options. Update documentation and the config file for QEMU accordingly. Change-Id: I550216fd2a8323342d6b605306b0b95ffd5dcd1c Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/55760 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Patrick Rudolph <siro@das-labor.org>
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # qemu i440fx mainboard
 | |
| 
 | |
| ## Running coreboot in qemu
 | |
| Emulators like qemu don't need a firmware to do hardware init.
 | |
| The hardware starts in the configured state already.
 | |
| 
 | |
| The coreboot port allows to test non mainboard specific code.
 | |
| As you can easily attach a debugger, it's a good target for
 | |
| experimental code.
 | |
| 
 | |
| ## coreboot x86_64 support
 | |
| coreboot historically runs in 32-bit protected mode, even though the
 | |
| processor supports x86_64 instructions (long mode).
 | |
| 
 | |
| The qemu-i440fx mainboard has been ported to x86_64 and will serve as
 | |
| reference platform to enable additional platforms.
 | |
| 
 | |
| To enable the support set the Kconfig option ``CONFIG_USE_EXP_X86_64_SUPPORT=y``.
 | |
| 
 | |
| ## Installing qemu
 | |
| 
 | |
| On debian you can install qemu by running:
 | |
| ```bash
 | |
| $ sudo apt-get install qemu
 | |
| ```
 | |
| 
 | |
| On redhat you can install qemu by running:
 | |
| ```bash
 | |
| $ sudo dnf install qemu
 | |
| ```
 | |
| 
 | |
| ## Running coreboot
 | |
| 
 | |
| ### To run the i386 version of coreboot (default)
 | |
| Running on qemu-system-i386 will require a 32 bit operating system.
 | |
| 
 | |
| ```bash
 | |
| qemu-system-i386 -bios build/coreboot.rom -serial stdio -M pc
 | |
| ```
 | |
| 
 | |
| ### To run the experimental x86_64 version of coreboot
 | |
| Running on qemu-system-x86_64 allows to run a 32 bit or 64 bit operating system,
 | |
| as well as firmware.
 | |
| 
 | |
| ```bash
 | |
| qemu-system-x86_64 -bios build/coreboot.rom -serial stdio -M pc
 | |
| ```
 | |
| 
 | |
| ## Finding bugs
 | |
| To test coreboot's x86 code it's recommended to run on a x86 host and enable KVM.
 | |
| It will not only run faster, but is closer to real hardware. If you see the
 | |
| following message:
 | |
| 
 | |
|     KVM internal error. Suberror: 1
 | |
|     emulation failure
 | |
| 
 | |
| something went wrong. The same bug will likely cause a FAULT on real hardware,
 | |
| too.
 | |
| 
 | |
| To enable KVM run:
 | |
| 
 | |
| ```bash
 | |
| qemu-system-x86_64 -bios build/coreboot.rom -serial stdio -M pc -accel kvm -cpu host
 | |
| ```
 |