cmake: add support for cd-rom booting via Bochs
This commit is contained in:
@@ -1,2 +1,3 @@
|
||||
include(System-Disk)
|
||||
include(QEMU)
|
||||
include(Bochs)
|
||||
|
||||
18
arch/x86_64/Bochs.cmake
Normal file
18
arch/x86_64/Bochs.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
find_program(BOCHS bochs)
|
||||
|
||||
if (NOT BOCHS)
|
||||
message(STATUS "Bochs: cannot find bochs")
|
||||
return()
|
||||
endif ()
|
||||
|
||||
if (NOT TARGET cdrom)
|
||||
message(STATUS "Bochs: CD-ROM image creation is unavailable. Cannot use bochs")
|
||||
return()
|
||||
endif ()
|
||||
|
||||
message(STATUS "Bochs: Enable CD-ROM boot")
|
||||
add_custom_target(run-cdrom-bochs
|
||||
COMMAND ${BOCHS} -q -f ${CMAKE_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/bochsrc.bxrc
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
USES_TERMINAL
|
||||
DEPENDS cdrom)
|
||||
53
arch/x86_64/bochsrc.bxrc
Normal file
53
arch/x86_64/bochsrc.bxrc
Normal file
@@ -0,0 +1,53 @@
|
||||
# configuration file generated by Bochs
|
||||
plugin_ctrl: unmapped=true, biosdev=true, speaker=true, extfpuirq=true, parallel=true, serial=true, iodebug=true
|
||||
config_interface: textconfig
|
||||
display_library: sdl2
|
||||
memory: guest=128, host=128, block_size=128
|
||||
romimage: file="/usr/local/share/bochs/BIOS-bochs-latest", address=0x00000000, options=none, flash_data=none
|
||||
vgaromimage: file="/usr/local/share/bochs/VGABIOS-lgpl-latest.bin"
|
||||
boot: cdrom
|
||||
floppy_bootsig_check: disabled=0
|
||||
floppya: type=1_44
|
||||
# no floppyb
|
||||
ata0: enabled=true, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
|
||||
ata0-master: type=cdrom, path="rosetta-system.iso", status=inserted, model="Generic 1234", biosdetect=auto
|
||||
ata0-slave: type=none
|
||||
ata1: enabled=true, ioaddr1=0x170, ioaddr2=0x370, irq=15
|
||||
ata1-master: type=none
|
||||
ata1-slave: type=none
|
||||
ata2: enabled=false
|
||||
ata3: enabled=false
|
||||
optromimage1: file=none
|
||||
optromimage2: file=none
|
||||
optromimage3: file=none
|
||||
optromimage4: file=none
|
||||
optramimage1: file=none
|
||||
optramimage2: file=none
|
||||
optramimage3: file=none
|
||||
optramimage4: file=none
|
||||
pci: enabled=1, chipset=i440fx, slot1=none, slot2=none, slot3=none, slot4=none, slot5=none
|
||||
vga: extension=vbe, update_freq=10, realtime=1, ddc=builtin, vbe_memsize=16
|
||||
cpu: count=1:1:1, ips=4000000, quantum=16, model=core2_penryn_t9600, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0
|
||||
print_timestamps: enabled=0
|
||||
debugger_log: -
|
||||
magic_break: enabled=1 0x0
|
||||
port_e9_hack: enabled=false, all_rings=false
|
||||
iodebug: all_rings=0
|
||||
private_colormap: enabled=0
|
||||
clock: sync=none, time0=local, rtc_sync=0
|
||||
# no cmosimage
|
||||
log: -
|
||||
logprefix: %t%e%d
|
||||
debug: action=ignore
|
||||
info: action=report
|
||||
error: action=report
|
||||
panic: action=ask
|
||||
keyboard: type=mf, serial_delay=150, paste_delay=100000, user_shortcut=none
|
||||
mouse: type=ps2, enabled=false, toggle=ctrl+mbutton
|
||||
speaker: enabled=true, mode=system
|
||||
parport1: enabled=true, file=none
|
||||
parport2: enabled=false
|
||||
com1: enabled=true, mode=null
|
||||
com2: enabled=false
|
||||
com3: enabled=false
|
||||
com4: enabled=false
|
||||
Reference in New Issue
Block a user