/
README.sigma0
216 lines (109 loc) · 7.01 KB
/
README.sigma0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
'sigma0 help' output 11/02/11
Supported cmdline parameters:
0) script - add scripting support
1) script_wait:t - wait t milliseconds until the next scripting operation will happen
2) script_start:config=1,number=1,count=1 - start a config count times
Example: 'script_start:5,3,4' - starts 4 times the configs 5, 6 and 7
3) script_reboot - schedule a reboot
4) service_config - managing a config, e.g. start, stop
5) romfs - instanciate a file service providing the boot files
6) service_timer - multiplexes either the hosthpet or the hostpit between different clients
7) vnet - virtual network switch
8) mac_prefix:value=0x42000000 - override the MAC prefix.
9) mac_host:value - override the host part of the MAC.
10) namespace - used by parent protocol
11) name - used by parent protocol
12) quota - used by parent protocol
13) S0_DEFAULT - an alias for the default sigma0 parameters
value: ioio hostacpi pcicfg mmconfig atare hostreboot:0 hostreboot:1 hostreboot:2 hostreboot:3 service_timer service_romfs script
14) tracebuffer:size=32768,verbose=1 - instanciate a tracebuffer for the clients
15) hostvesa:debug=0 - provide a VESA console as backend for a VESA model.
Use 'hostvesa:3' for debug output.
16) mem:start=0:end=~0 - create a memory controller that handles physical memory accesses.
Example: 'mem:0,0xa0000' for the first 640k region
Example: 'mem:0x100000' for all the memory above 1M
17) vcpu - create a new VCPU
18) halifax - create a halifax that emulatates instructions.
19) pit:iobase,irq - attach a PIT8254 to the system.
Example: 'pit:0x40,0'
20) scp:porta,portb - provide the system control ports A+B.
Example: 'scp:0x92,0x61'
21) pcihostbridge:start,count,iobase,membase - attach a pci host bridge to the system.
Example: 'pcihostbridge:0,0x10,0xcf8,0xe0000000'
If not iobase is given, no io-accesses are performed.
Similar if membase is not given, MMCFG is disabled.
22) dpci:class,subclass,instance,bdf,assign=1,irqs=1 - makes the specified hostdevice directly accessible to the guest.
Example: Use 'dpci:2,,0,0x21' to attach the first network controller to 00:04.1.
If class or subclass is ommited it is not compared. If the instance is ommited the last instance is used.
If bdf is zero the very same bdf as in the host is used, if it is ommited a free bdf is used.
If assign is zero, the BDF is not assigned via the IOMMU and can not do DMA.
If irq is zero, IRQs are disabled.
23) vfpci:parent_bdf,vf_no,guest_bdf - directly assign a given virtual function to the guest.
If no guest_bdf is given, a free one is used.
24) dio:<range> - directly assign ioports to the VM.
Example: 'dio:0x3f8+8'.
Forward access to given ioports to the hardware ones.
Please note that a 'ioio' as backend for this device is needed too.
25) atare:debug=0 - provide GSI lookup to PCI drivers.
26) gsi_override:bdf,gsi - allow to override GSI interrupts.
Example: 'gsi_override:0xfa,19' specifies gsi 19 for device 0:1f:2.
27) host82576:instance - provide driver for Intel 82576 Ethernet controller.
Example: host82576:0
28) host82576vf:parent,vf,[promisc=no[,throttle_us=off]] - provide driver for Intel 82576 virtual function.
Example: 'host82576vf:0x100,0'
29) hostacpi - provide ACPI tables to drivers.
30) hostahci:mask - provide a hostdriver for all AHCI controller.
Example: Use 'hostahci:5' to have a driver for the first and third AHCI controller.
The mask allows to ignore certain controllers. The default is to use all controllers.
31) hosthpet:timer=0,address,irq=~0u,level=1,maxfreq=10000 - use the host HPET as timer.
If no address is given, the ACPI HPET table or 0xfed00000 is used.
If no irq is given, either the legacy or the lowest possible IRQ is used.
The maxfreq parameter defines the maximum IRQ rate and therefore accuracy of the device.
Example: 'hosthpet:1,0xfed00000' - for the second timer of the hpet at 0xfed00000.
32) quirk_hpet_ich - force enable the HPET on an ICH chipset.
Please note that this does not check whether this is done on the right chipset - use it on your own risk!
33) hostide:mask - provide a hostdriver for all IDE controller.
Example: Use 'hostide:1' to have a driver for the first IDE controller.
The mask allows to ignore certain controllers. The default is to use all controllers.
34) ioio - provide HW IO port access.
35) hostkeyb:hdev,hostiobase,kbirq,auxirq,scset=2,verbose=1 - provide an input backend from the host keyboard (hdev) and host mouse (hdev+1).
Example: 'hostkeyb:0x17,0x60,1,12,2'.
A missing auxirq omits the mouse initialisation.
36) hostne2k - provide ne2k-pci drivers.
Example: hostne2k.
37) hostne2k_vnet - provide ne2k-pci drivers.
Example: hostne2k.
38) pcicfg - provide HW PCI config space access through IO ports 0xcf8/0xcfc.
39) hostpit:period,hostiobase,hostirq - use the host PIT as timer, the period is given in microseconds.
Example: 'hostpit:4000,0x40,2'.
40) hostreboot:type - provide the functionality to reboot the host.
Example: 'hostreboot:0' uses the keyboard to reboot the host.
type is one of [0:Keyboard, 1:FastGate, 2:PCI, 3:ACPI].
41) hostrtc:hostiobase=0x70 - use the host RTC as wall clock time backend.
Example: 'hostrtc'.
42) hostserial:hostdevnr,hostiobase,hostirq,speed=115200,lcr=3 - provide an in+output backend from the host serial port.
Example: 'hostserial:0x4711,0x3f8,4,115200,3'.
If no iobase is given, the first serial port from the BIOS is used.
The lcr is used to define word-length, length of stop-bit and parity.
See the LCR encoding of the 16550. The default is lcr=3, which means 8N1.
The output is received from hostdevnr+1.
43) hostvga:<switchmodifier=LWIN><,systemmodifer=RWIN><,refresh_freq=25> - provide a VGA console.
Example: 'hostvga'.
Use 'hostvga:0x10000,0x20000' to use LCTRL and RCTRL as keymodifier.See keyboard.h for definitions.
44) mmconfig - provide HW PCI config space access via mmconfig.
45) nubus - PCI bus manager
46) vdisk - create virtual disks from all modules
47) help:nr - prints a list of valid parameters and give detailed help for a given parameter.
48) hostsink:hostdevnr,bufferlen,sinkchar,contchar - provide an output for a serial port.
Example: 'hostsink:0x4712,80'.
49) kbd2serial:src,dst - attach a bridge between keyboard and keyboard.
Example: 'kbd2serial:0x2bad,0x4711'.
The keystrokes at src hostdevice are transformed to serial chars at the dest hostdev.
50) serial2kbd:serial,keyboard - attach a bridge between serial and keyboard.
Example: 'serial2kbd:0x4711,0x2bad'.
The serial input at source serialbus is transformed to keystrokes on the dest keycodebus.
51) arping:dstip - test the network driver.
Example: arping:0x0a000202.
52) bootp:ip,netmask - provide a simple BOOTP server.
Example: 'bootp:0x0a000000,8'.
Please note that we deduce IP addresses from the MAC address, thus the same MAC will result in the same IP.