Files
simulation_core/scripts/single-node/x86-kvm-linux.resc

44 lines
1.5 KiB
Plaintext
Raw Normal View History

:name: X86-KVM Linux
:description: This script runs Linux on a bare x86 platform in KVM.
$name?="x86-kvm"
mach create $name
$bin?=@https://dl.antmicro.com/projects/renode/virt_x86--linux.bin-s_7459328-fec50f291c065d8b13ce4d49abc96ea71af349df
machine LoadPlatformDescription @platforms/cpus/x86-kvm.repl
showAnalyzer uart
macro reset
"""
# skip the header -- based on akvm copy_kernel()
sysbus LoadBinary $bin 0x100000 sysbus.cpu 0x4000
# setup boot params (aka Zero Page) - for more info please refer to https://docs.kernel.org/arch/x86/zero-page.html
sysbus WriteASCIIString 0x90880 "console=ttyS0 root=/dev/vda earlyprintk loglevel=7 rootwait"
# pass address of cmdline in `cmd_line_ptr` field
sysbus WriteDoubleWord 0x90228 0x90880
# pass (RAM size - 1MiB) / 1024
sysbus WriteDoubleWord 0x901e0 0x7fc00
# init flat protected mode
# for more info please refer to kernel boot protocol
sysbus.cpu SetDescriptor CS 0x10 0x0 0xffffffff 0xc09b00
sysbus.cpu SetDescriptor DS 0x18 0x0 0xffffffff 0xc09300
sysbus.cpu SetDescriptor ES 0x18 0x0 0xffffffff 0xc09300
sysbus.cpu SetDescriptor SS 0x18 0x0 0xffffffff 0xc09300
sysbus.cpu SetDescriptor FS 0x18 0x0 0xffffffff 0xc09300
sysbus.cpu SetDescriptor GS 0x18 0x0 0xffffffff 0xc09300
sysbus.cpu EIP 0x100000
# address to kernel param args
sysbus.cpu ESI 0x90000
# enable protected mode
sysbus.cpu CR0 0x60000011
sysbus.cpu EFLAGS 0x2
"""
runMacro $reset