1 # This file tells config what files go into building a kernel,
2 # files marked standard are always included.
5 # The long compile-with and dependency lines are required because of
6 # limitations in config: backslash-newline doesn't work in strings, and
7 # dependency lines other than the first are silently ignored.
11 # There is only an asm version on ppc64.
12 cddl/compat/opensolaris/kern/opensolaris_atomic.c optional zfs powerpc | dtrace powerpc | zfs powerpcspe | dtrace powerpcspe compile-with "${ZFS_C}"
13 cddl/dev/dtrace/powerpc/dtrace_asm.S optional dtrace compile-with "${DTRACE_S}"
14 cddl/dev/dtrace/powerpc/dtrace_subr.c optional dtrace compile-with "${DTRACE_C}"
15 cddl/dev/fbt/powerpc/fbt_isa.c optional dtrace_fbt | dtraceall compile-with "${FBT_C}"
16 crypto/des/des_enc.c optional netsmb
17 dev/aacraid/aacraid_endian.c optional aacraid
18 dev/adb/adb_bus.c optional adb
19 dev/adb/adb_kbd.c optional adb
20 dev/adb/adb_mouse.c optional adb
21 dev/adb/adb_hb_if.m optional adb
22 dev/adb/adb_if.m optional adb
23 dev/adb/adb_buttons.c optional adb
24 dev/agp/agp_apple.c optional agp powermac
25 dev/fb/fb.c optional sc
26 dev/hwpmc/hwpmc_e500.c optional hwpmc
27 dev/hwpmc/hwpmc_mpc7xxx.c optional hwpmc
28 dev/hwpmc/hwpmc_power8.c optional hwpmc
29 dev/hwpmc/hwpmc_powerpc.c optional hwpmc
30 dev/hwpmc/hwpmc_ppc970.c optional hwpmc
31 dev/iicbus/ad7417.c optional ad7417 powermac
32 dev/iicbus/adm1030.c optional powermac windtunnel | adm1030 powermac
33 dev/iicbus/adt746x.c optional adt746x powermac
34 dev/iicbus/ds1631.c optional ds1631 powermac
35 dev/iicbus/ds1775.c optional ds1775 powermac
36 dev/iicbus/max6690.c optional max6690 powermac
37 dev/iicbus/ofw_iicbus.c optional iicbus aim
38 dev/ipmi/ipmi.c optional ipmi
39 dev/ipmi/ipmi_opal.c optional powernv ipmi
40 dev/ice/if_ice_iflib.c optional ice pci powerpc64 | ice pci powerpc64le \
41 compile-with "${NORMAL_C} -I$S/dev/ice"
42 dev/ice/ice_lib.c optional ice pci powerpc64 | ice pci powerpc64le \
43 compile-with "${NORMAL_C} -I$S/dev/ice"
44 dev/ice/ice_osdep.c optional ice pci powerpc64 | ice pci powerpc64le \
45 compile-with "${NORMAL_C} -I$S/dev/ice"
46 dev/ice/ice_resmgr.c optional ice pci powerpc64 | ice pci powerpc64le \
47 compile-with "${NORMAL_C} -I$S/dev/ice"
48 dev/ice/ice_strings.c optional ice pci powerpc64 | ice pci powerpc64le \
49 compile-with "${NORMAL_C} -I$S/dev/ice"
50 dev/ice/ice_iflib_recovery_txrx.c optional ice pci powerpc64 | ice pci powerpc64le \
51 compile-with "${NORMAL_C} -I$S/dev/ice"
52 dev/ice/ice_iflib_txrx.c optional ice pci powerpc64 | ice pci powerpc64le \
53 compile-with "${NORMAL_C} -I$S/dev/ice"
54 dev/ice/ice_common.c optional ice pci powerpc64 | ice pci powerpc64le \
55 compile-with "${NORMAL_C} -I$S/dev/ice"
56 dev/ice/ice_controlq.c optional ice pci powerpc64 | ice pci powerpc64le \
57 compile-with "${NORMAL_C} -I$S/dev/ice"
58 dev/ice/ice_dcb.c optional ice pci powerpc64 | ice pci powerpc64le \
59 compile-with "${NORMAL_C} -I$S/dev/ice"
60 dev/ice/ice_flex_pipe.c optional ice pci powerpc64 | ice pci powerpc64le \
61 compile-with "${NORMAL_C} -I$S/dev/ice"
62 dev/ice/ice_flow.c optional ice pci powerpc64 | ice pci powerpc64le \
63 compile-with "${NORMAL_C} -I$S/dev/ice"
64 dev/ice/ice_nvm.c optional ice pci powerpc64 | ice pci powerpc64le \
65 compile-with "${NORMAL_C} -I$S/dev/ice"
66 dev/ice/ice_sched.c optional ice pci powerpc64 | ice pci powerpc64le \
67 compile-with "${NORMAL_C} -I$S/dev/ice"
68 dev/ice/ice_switch.c optional ice pci powerpc64 | ice pci powerpc64le \
69 compile-with "${NORMAL_C} -I$S/dev/ice"
70 dev/ice/ice_vlan_mode.c optional ice pci powerpc64 | ice pci powerpc64le \
71 compile-with "${NORMAL_C} -I$S/dev/ice"
72 dev/ice/ice_fw_logging.c optional ice pci powerpc64 | ice pci powerpc64le \
73 compile-with "${NORMAL_C} -I$S/dev/ice"
74 dev/ice/ice_fwlog.c optional ice pci powerpc64 | ice pci powerpc64le \
75 compile-with "${NORMAL_C} -I$S/dev/ice"
76 dev/ice/ice_rdma.c optional ice pci powerpc64 | ice pci powerpc64le \
77 compile-with "${NORMAL_C} -I$S/dev/ice"
78 dev/ice/irdma_if.m optional ice pci powerpc64 | ice pci powerpc64le \
79 compile-with "${NORMAL_M} -I$S/dev/ice"
80 dev/ice/irdma_di_if.m optional ice pci powerpc64 | ice pci powerpc64le \
81 compile-with "${NORMAL_M} -I$S/dev/ice"
82 dev/ice/ice_ddp_common.c optional ice pci powerpc64 | ice pci powerpc64le \
83 compile-with "${NORMAL_C} -I$S/dev/ice"
84 ice_ddp.c optional ice_ddp powerpc64 | ice pci powerpc64le \
85 compile-with "${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01031e00 -mice_ddp -c${.TARGET}" \
86 no-ctfconvert no-implicit-rule before-depend local \
88 ice_ddp.fwo optional ice_ddp powerpc64 | ice pci powerpc64le \
89 dependency "ice_ddp.fw" \
90 compile-with "${NORMAL_FWO}" \
93 ice_ddp.fw optional ice_ddp powerpc64 | ice pci powerpc64le \
94 dependency "$S/contrib/dev/ice/ice-1.3.30.0.pkg" \
95 compile-with "${CP} $S/contrib/dev/ice/ice-1.3.30.0.pkg ice_ddp.fw" \
96 no-obj no-implicit-rule \
98 dev/ixl/if_ixl.c optional ixl pci powerpc64 \
99 compile-with "${NORMAL_C} -I$S/dev/ixl"
100 dev/ixl/ixl_pf_main.c optional ixl pci powerpc64 \
101 compile-with "${NORMAL_C} -I$S/dev/ixl"
102 dev/ixl/ixl_pf_iflib.c optional ixl pci powerpc64 \
103 compile-with "${NORMAL_C} -I$S/dev/ixl"
104 dev/ixl/ixl_pf_qmgr.c optional ixl pci powerpc64 \
105 compile-with "${NORMAL_C} -I$S/dev/ixl"
106 dev/ixl/ixl_pf_iov.c optional ixl pci pci_iov powerpc64 \
107 compile-with "${NORMAL_C} -I$S/dev/ixl"
108 dev/ixl/ixl_pf_i2c.c optional ixl pci powerpc64 \
109 compile-with "${NORMAL_C} -I$S/dev/ixl"
110 dev/ixl/if_iavf.c optional iavf pci powerpc64 \
111 compile-with "${NORMAL_C} -I$S/dev/ixl"
112 dev/ixl/iavf_vc.c optional iavf pci powerpc64 \
113 compile-with "${NORMAL_C} -I$S/dev/ixl"
114 dev/ixl/ixl_txrx.c optional ixl pci powerpc64 | \
116 compile-with "${NORMAL_C} -I$S/dev/ixl"
117 dev/ixl/i40e_osdep.c optional ixl pci powerpc64 | \
119 compile-with "${NORMAL_C} -I$S/dev/ixl"
120 dev/ixl/i40e_lan_hmc.c optional ixl pci powerpc64 | \
122 compile-with "${NORMAL_C} -I$S/dev/ixl"
123 dev/ixl/i40e_hmc.c optional ixl pci powerpc64 | \
125 compile-with "${NORMAL_C} -I$S/dev/ixl"
126 dev/ixl/i40e_common.c optional ixl pci powerpc64 | \
128 compile-with "${NORMAL_C} -I$S/dev/ixl"
129 dev/ixl/i40e_nvm.c optional ixl pci powerpc64 | \
131 compile-with "${NORMAL_C} -I$S/dev/ixl"
132 dev/ixl/i40e_adminq.c optional ixl pci powerpc64 | \
134 compile-with "${NORMAL_C} -I$S/dev/ixl"
135 dev/ixl/i40e_dcb.c optional ixl pci powerpc64 \
136 compile-with "${NORMAL_C} -I$S/dev/ixl"
137 # Most ofw stuff below is brought in by conf/files for options FDT, but
138 # we always want it, even on non-FDT platforms.
139 dev/fdt/simplebus.c standard
140 dev/ofw/openfirm.c standard
141 dev/ofw/openfirmio.c standard
142 dev/ofw/ofw_bus_if.m standard
143 dev/ofw/ofw_cpu.c standard
144 dev/ofw/ofw_if.m standard
145 dev/ofw/ofw_bus_subr.c standard
146 dev/ofw/ofw_console.c optional aim
147 dev/ofw/ofw_disk.c optional ofwd aim
148 dev/ofw/ofwbus.c standard
149 dev/ofw/ofwpci.c optional pci
150 dev/ofw/ofw_standard.c optional aim powerpc
151 dev/ofw/ofw_subr.c standard
152 dev/powermac_nvram/powermac_nvram.c optional powermac_nvram powermac
153 dev/quicc/quicc_bfe_fdt.c optional quicc mpc85xx
154 dev/random/darn.c optional powerpc64 !random_loadable | powerpc64le !random_loadable
155 dev/scc/scc_bfe_macio.c optional scc powermac
156 dev/sdhci/fsl_sdhci.c optional mpc85xx sdhci
157 dev/sec/sec.c optional sec mpc85xx
158 dev/sound/macio/aoa.c optional snd_davbus | snd_ai2s powermac
159 dev/sound/macio/davbus.c optional snd_davbus powermac
160 dev/sound/macio/i2s.c optional snd_ai2s powermac
161 dev/sound/macio/onyx.c optional snd_ai2s iicbus powermac
162 dev/sound/macio/snapper.c optional snd_ai2s iicbus powermac
163 dev/sound/macio/tumbler.c optional snd_ai2s iicbus powermac
164 dev/syscons/scgfbrndr.c optional sc
165 dev/tsec/if_tsec.c optional tsec
166 dev/tsec/if_tsec_fdt.c optional tsec
167 dev/uart/uart_cpu_powerpc.c optional uart
168 dev/usb/controller/ehci_fsl.c optional ehci mpc85xx
169 dev/vt/hw/ofwfb/ofwfb.c optional vt aim
170 kern/subr_atomic64.c optional powerpc | powerpcspe
171 kern/subr_dummy_vdso_tc.c standard
172 kern/syscalls.c optional ktr
173 kern/subr_sfbuf.c standard
174 libkern/ashldi3.c optional powerpc | powerpcspe
175 libkern/ashrdi3.c optional powerpc | powerpcspe
176 libkern/bcmp.c standard
177 libkern/bcopy.c standard
178 libkern/cmpdi2.c optional powerpc | powerpcspe
179 libkern/divdi3.c optional powerpc | powerpcspe
180 libkern/ffs.c standard
181 libkern/ffsl.c standard
182 libkern/ffsll.c standard
183 libkern/flsll.c standard
184 libkern/lshrdi3.c optional powerpc | powerpcspe
185 libkern/memcmp.c standard
186 libkern/memset.c standard
187 libkern/moddi3.c optional powerpc | powerpcspe
188 libkern/qdivrem.c optional powerpc | powerpcspe
189 libkern/strlen.c standard
190 libkern/ucmpdi2.c optional powerpc | powerpcspe
191 libkern/udivdi3.c optional powerpc | powerpcspe
192 libkern/umoddi3.c optional powerpc | powerpcspe
193 powerpc/aim/locore.S optional aim no-obj
194 powerpc/aim/aim_machdep.c optional aim
195 powerpc/aim/mmu_oea.c optional aim powerpc
196 powerpc/aim/mmu_oea64.c optional aim
197 powerpc/aim/mmu_radix.c optional aim powerpc64 | aim powerpc64le
198 powerpc/aim/moea64_native.c optional aim
199 powerpc/aim/mp_cpudep.c optional aim
200 powerpc/aim/slb.c optional aim powerpc64 | aim powerpc64le
201 powerpc/amigaone/platform_amigaone.c optional amigaone
202 powerpc/amigaone/cpld_a1222.c optional powerpc amigaone | powerpcspe amigaone
203 powerpc/amigaone/cpld_x5000.c optional powerpc amigaone | powerpc64 amigaone
204 powerpc/booke/locore.S optional booke no-obj
205 powerpc/booke/booke_machdep.c optional booke
206 powerpc/booke/machdep_e500.c optional booke_e500
207 powerpc/booke/mp_cpudep.c optional booke smp
208 powerpc/booke/platform_bare.c optional booke
209 powerpc/booke/pmap.c optional booke
210 powerpc/booke/spe.c optional powerpcspe
211 powerpc/cpufreq/dfs.c optional cpufreq
212 powerpc/cpufreq/mpc85xx_jog.c optional cpufreq mpc85xx
213 powerpc/cpufreq/pcr.c optional cpufreq aim
214 powerpc/cpufreq/pmcr.c optional cpufreq aim powerpc64 | cpufreq aim powerpc64le
215 powerpc/cpufreq/pmufreq.c optional cpufreq aim pmu
216 powerpc/fpu/fpu_add.c optional fpu_emu | powerpcspe
217 powerpc/fpu/fpu_compare.c optional fpu_emu | powerpcspe
218 powerpc/fpu/fpu_div.c optional fpu_emu | powerpcspe
219 powerpc/fpu/fpu_emu.c optional fpu_emu
220 powerpc/fpu/fpu_explode.c optional fpu_emu | powerpcspe
221 powerpc/fpu/fpu_implode.c optional fpu_emu | powerpcspe
222 powerpc/fpu/fpu_mul.c optional fpu_emu | powerpcspe
223 powerpc/fpu/fpu_sqrt.c optional fpu_emu
224 powerpc/fpu/fpu_subr.c optional fpu_emu | powerpcspe
225 powerpc/mambo/mambocall.S optional mambo
226 powerpc/mambo/mambo.c optional mambo
227 powerpc/mambo/mambo_console.c optional mambo
228 powerpc/mambo/mambo_disk.c optional mambo
229 powerpc/mikrotik/platform_rb.c optional mikrotik
230 powerpc/mikrotik/rb_led.c optional mikrotik
231 powerpc/mpc85xx/atpic.c optional mpc85xx isa
232 powerpc/mpc85xx/ds1553_bus_fdt.c optional ds1553
233 powerpc/mpc85xx/ds1553_core.c optional ds1553
234 powerpc/mpc85xx/fsl_diu.c optional mpc85xx diu
235 powerpc/mpc85xx/fsl_espi.c optional mpc85xx spibus
236 powerpc/mpc85xx/fsl_sata.c optional mpc85xx ata
237 powerpc/mpc85xx/i2c.c optional mpc85xx iicbus
238 powerpc/mpc85xx/isa.c optional mpc85xx isa
239 powerpc/mpc85xx/lbc.c optional mpc85xx
240 powerpc/mpc85xx/mpc85xx.c optional mpc85xx
241 powerpc/mpc85xx/mpc85xx_cache.c optional mpc85xx
242 powerpc/mpc85xx/mpc85xx_gpio.c optional mpc85xx gpio
243 powerpc/mpc85xx/platform_mpc85xx.c optional mpc85xx
244 powerpc/mpc85xx/pci_mpc85xx.c optional pci mpc85xx
245 powerpc/mpc85xx/pci_mpc85xx_pcib.c optional pci mpc85xx
246 powerpc/mpc85xx/qoriq_gpio.c optional mpc85xx gpio
247 powerpc/ofw/ofw_machdep.c standard
248 powerpc/ofw/ofw_pcibus.c optional pci
249 powerpc/ofw/ofw_pcib_pci.c optional pci
250 powerpc/ofw/ofw_real.c optional aim
251 powerpc/ofw/ofw_syscons.c optional sc aim
252 powerpc/ofw/ofwcall32.S optional aim powerpc
253 powerpc/ofw/ofwcall64.S optional aim powerpc64 | aim powerpc64le
254 powerpc/ofw/openpic_ofw.c standard
255 powerpc/ofw/rtas.c optional aim
256 powerpc/ofw/ofw_initrd.c optional md_root_mem powerpc64 | md_root_mem powerpc64le
257 powerpc/powermac/ata_kauai.c optional powermac ata | powermac atamacio
258 powerpc/powermac/ata_macio.c optional powermac ata | powermac atamacio
259 powerpc/powermac/ata_dbdma.c optional powermac ata | powermac atamacio
260 powerpc/powermac/atibl.c optional powermac atibl
261 powerpc/powermac/cuda.c optional powermac cuda
262 powerpc/powermac/cpcht.c optional powermac pci
263 powerpc/powermac/dbdma.c optional powermac pci
264 powerpc/powermac/fcu.c optional powermac fcu
265 powerpc/powermac/grackle.c optional powermac pci
266 powerpc/powermac/hrowpic.c optional powermac pci
267 powerpc/powermac/kiic.c optional powermac kiic
268 powerpc/powermac/macgpio.c optional powermac pci
269 powerpc/powermac/macio.c optional powermac pci
270 powerpc/powermac/nvbl.c optional powermac nvbl
271 powerpc/powermac/platform_powermac.c optional powermac
272 powerpc/powermac/powermac_thermal.c optional powermac
273 powerpc/powermac/pswitch.c optional powermac pswitch
274 powerpc/powermac/pmu.c optional powermac pmu
275 powerpc/powermac/smu.c optional powermac smu
276 powerpc/powermac/smusat.c optional powermac smu
277 powerpc/powermac/uninorth.c optional powermac
278 powerpc/powermac/uninorthpci.c optional powermac pci
279 powerpc/powermac/vcoregpio.c optional powermac
280 powerpc/powernv/opal.c optional powernv
281 powerpc/powernv/opal_async.c optional powernv
282 powerpc/powernv/opal_console.c optional powernv
283 powerpc/powernv/opal_dbg.c optional powernv gdb
284 powerpc/powernv/opal_dev.c optional powernv
285 powerpc/powernv/opal_flash.c optional powernv opalflash
286 powerpc/powernv/opal_hmi.c optional powernv
287 powerpc/powernv/opal_i2c.c optional iicbus fdt powernv
288 powerpc/powernv/opal_i2cm.c optional iicbus fdt powernv
289 powerpc/powernv/opal_nvram.c optional powernv nvram
290 powerpc/powernv/opal_pci.c optional powernv pci
291 powerpc/powernv/opal_sensor.c optional powernv
292 powerpc/powernv/opalcall.S optional powernv
293 powerpc/powernv/platform_powernv.c optional powernv
294 powerpc/powernv/powernv_centaur.c optional powernv
295 powerpc/powernv/powernv_xscom.c optional powernv
296 powerpc/powernv/xive.c optional powernv
297 powerpc/powerpc/altivec.c optional !powerpcspe
298 powerpc/powerpc/autoconf.c standard
299 powerpc/powerpc/bus_machdep.c standard
300 powerpc/powerpc/busdma_machdep.c standard
301 powerpc/powerpc/clock.c standard
302 powerpc/powerpc/copyinout.c optional aim
303 powerpc/powerpc/cpu.c standard
304 powerpc/powerpc/cpu_subr64.S optional powerpc64 | powerpc64le
305 powerpc/powerpc/db_disasm.c optional ddb
306 powerpc/powerpc/db_hwwatch.c optional ddb
307 powerpc/powerpc/db_interface.c optional ddb
308 powerpc/powerpc/db_trace.c optional ddb
309 powerpc/powerpc/dump_machdep.c standard
310 powerpc/powerpc/elf32_machdep.c optional powerpc | powerpcspe | compat_freebsd32
311 powerpc/powerpc/elf64_machdep.c optional powerpc64 | powerpc64le
312 powerpc/powerpc/exec_machdep.c standard
313 powerpc/powerpc/fpu.c standard
314 powerpc/powerpc/gdb_machdep.c optional gdb
315 powerpc/powerpc/interrupt.c standard
316 powerpc/powerpc/intr_machdep.c standard
317 powerpc/powerpc/iommu_if.m standard
318 powerpc/powerpc/machdep.c standard
319 powerpc/powerpc/mem.c optional mem
320 powerpc/powerpc/minidump_machdep.c optional powerpc64 | powerpc64le
321 powerpc/powerpc/mp_machdep.c optional smp
322 powerpc/powerpc/nexus.c standard
323 powerpc/powerpc/openpic.c standard
324 powerpc/powerpc/pic_if.m standard
325 powerpc/powerpc/pmap_dispatch.c standard
326 powerpc/powerpc/platform.c standard
327 powerpc/powerpc/platform_if.m standard
328 powerpc/powerpc/ptrace_machdep.c standard
329 powerpc/powerpc/sc_machdep.c optional sc
330 powerpc/powerpc/setjmp.S standard
331 powerpc/powerpc/sigcode32.S optional powerpc | powerpcspe | compat_freebsd32
332 powerpc/powerpc/sigcode64.S optional powerpc64 | powerpc64le
333 powerpc/powerpc/swtch32.S optional powerpc | powerpcspe
334 powerpc/powerpc/swtch64.S optional powerpc64 | powerpc64le
335 powerpc/powerpc/stack_machdep.c optional ddb | stack
336 powerpc/powerpc/support.S optional powerpc64 | powerpc64le | booke
337 powerpc/powerpc/syncicache.c standard
338 powerpc/powerpc/sys_machdep.c standard
339 powerpc/powerpc/trap.c standard
340 powerpc/powerpc/uio_machdep.c standard
341 powerpc/powerpc/uma_machdep.c standard
342 powerpc/powerpc/vm_machdep.c standard
343 powerpc/ps3/ehci_ps3.c optional ps3 ehci
344 powerpc/ps3/ohci_ps3.c optional ps3 ohci
345 powerpc/ps3/if_glc.c optional ps3 glc
346 powerpc/ps3/mmu_ps3.c optional ps3
347 powerpc/ps3/platform_ps3.c optional ps3
348 powerpc/ps3/ps3bus.c optional ps3
349 powerpc/ps3/ps3cdrom.c optional ps3 scbus
350 powerpc/ps3/ps3disk.c optional ps3
351 powerpc/ps3/ps3pic.c optional ps3
352 powerpc/ps3/ps3_syscons.c optional ps3 vt
353 powerpc/ps3/ps3-hvcall.S optional ps3
354 powerpc/pseries/phyp-hvcall.S optional pseries powerpc64 | pseries powerpc64le
355 powerpc/pseries/mmu_phyp.c optional pseries powerpc64 | pseries powerpc64le
356 powerpc/pseries/phyp_console.c optional pseries powerpc64 uart | pseries powerpc64le uart
357 powerpc/pseries/phyp_dbg.c optional pseries powerpc64 gdb | pseries powerpc64le gdb
358 powerpc/pseries/phyp_llan.c optional llan
359 powerpc/pseries/phyp_vscsi.c optional pseries powerpc64 scbus | pseries powerpc64le scbus
360 powerpc/pseries/platform_chrp.c optional pseries
361 powerpc/pseries/plpar_iommu.c optional pseries powerpc64 | pseries powerpc64le
362 powerpc/pseries/plpar_pcibus.c optional pseries powerpc64 pci | pseries powerpc64le pci
363 powerpc/pseries/rtas_dev.c optional pseries
364 powerpc/pseries/rtas_pci.c optional pseries pci
365 powerpc/pseries/vdevice.c optional pseries powerpc64 | pseries powerpc64le
366 powerpc/pseries/xics.c optional pseries powerpc64 | pseries powerpc64le
367 powerpc/psim/iobus.c optional psim
368 powerpc/psim/ata_iobus.c optional ata psim
369 powerpc/psim/openpic_iobus.c optional psim
370 powerpc/psim/uart_iobus.c optional uart psim