armv7,armv8: Add process manager to targets and menu.lsts
[barrelfish] / platforms / Hakefile
1 --------------------------------------------------------------------------
2 -- Copyright (c) 2015-2016 ETH Zurich.
3 -- All rights reserved.
4 --
5 -- This file is distributed under the terms in the attached LICENSE file.
6 -- If you do not find this file, copies can be found by writing to:
7 -- ETH Zurich D-INFK, Universitaetstr. 6, CH-8092 Zurich. Attn: Systems Group.
8 --
9 -- Hakefile for /platforms/
10 --
11 --------------------------------------------------------------------------
12
13 let bin_rcce_lu = [ "/sbin/" ++ f | f <- [
14                         "rcce_lu_A1",
15                         "rcce_lu_A2",
16                         "rcce_lu_A4",
17                         "rcce_lu_A8",
18                         "rcce_lu_A16",
19                         "rcce_lu_A32",
20                         "rcce_lu_A64" ]]
21
22     bin_rcce_bt = [ "/sbin/" ++ f | f <- [
23                         "rcce_bt_A1",
24                         "rcce_bt_A4",
25                         "rcce_bt_A9",
26                         "rcce_bt_A16",
27                         "rcce_bt_A25",
28                         "rcce_bt_A36" ]]
29
30     tests_common = [ "/sbin/" ++ f | f <- [
31                         "fputest",
32                         "hellotest",
33                         "idctest",
34                         "memtest",
35                         "nkmtest_all",
36                         "nkmtest_map_unmap",
37                         "nkmtest_modify_flags",
38                         "nkmtest_map_offset",
39                         "schedtest",
40                         "test_retype",
41                         "test_rootcn_resize",
42                         "test_create_l1l2_cnodes",
43                         "test_remote_retype",
44                         "test_remote_delete",
45                         "test_remote_revoke",
46                         "testerror",
47                         "yield_test",
48                         "skb_cap_storage"
49                     ] ]
50
51     tests_x86 = [ "/sbin/" ++ f | f <- [
52                         "tests/luatest",
53                         "tests/numatest" ] ] ++ tests_common
54
55     tests_x86_64 = [ "/sbin/" ++ f | f <- [
56                         "arrakis_hellotest",
57                         "ata_rw28_test",
58                         "bomp_cpu_bound",
59                         "bomp_cpu_bound_progress",
60                         "bomp_sync",
61                         "bomp_sync_progress",
62                         "bomp_test",
63                         "bulk_shm",
64                         "cryptotest",
65                         "fread_test",
66                         "fscanf_test",
67                         "mdbtest_addr_zero",
68                         "mdbtest_range_query",
69                         "mem_affinity",
70                         "multihoptest",
71                         "net-test",
72                         "net_openport_test",
73                         "nkmtest_invalid_mappings",
74                         "perfmontest",
75                         "phoenix_kmeans",
76                         "socketpipetest",
77                         "spantest",
78                         "spin",
79                         "testconcurrent",
80                         "testdesc",
81                         "testdesc-child",
82                         "tests/cxxtest",
83                         "tests/dma_test",
84                         "tests/tftpclient",
85                         "tests/xphi_nameservice_test",
86                         "thcidctest",
87                         "thcminitest",
88                         "thctest",
89                         "timer_test",
90                         "tlstest",
91                         "tweedtest",
92                         "xcorecap",
93                         "xcorecapserv" ] ] ++ tests_x86
94
95
96     tests_k1om = [ "/sbin/" ++ f | f <- [
97                         "tests/dma_test",
98                         "tests/xeon_phi_inter",
99                         "tests/xeon_phi_test",
100                         "tests/xphi_nameservice_test" ] ] ++ tests_x86
101
102     bench_common = [ "/sbin/" ++ f | f <- [
103                         "channel_cost_bench",
104                         "flounder_stubs_buffer_bench",
105                         "flounder_stubs_empty_bench",
106                         "flounder_stubs_payload_bench",
107                         "xcorecapbench" ]]
108
109     bench_x86 =  [ "/sbin/" ++ f | f <- [
110                       "multihop_latency_bench",
111                       "net_openport_test",
112                       "perfmontest",
113                       "thc_v_flounder_empty",
114                       "timer_test",
115                       "udp_throughput",
116                       "ump_exchange",
117                       "ump_latency",
118                       "ump_latency_cache",
119                       "ump_receive",
120                       "ump_send",
121                       "ump_throughput" ]]
122
123     bench_x86_64 = bench_x86 ++ bin_rcce_bt ++ bin_rcce_lu ++
124                    [ "/sbin/" ++ f | f <- [
125                         "ahci_bench",
126                         "apicdrift_bench",
127                         "benchmarks/bomp_mm",
128                         "benchmarks/dma_bench",
129                         "benchmarks/xomp_share",
130                         "benchmarks/xomp_spawn",
131                         "benchmarks/xomp_work",
132                         "benchmarks/xphi_ump_bench",
133                         "bomp_benchmark_cg",
134                         "bomp_benchmark_ft",
135                         "bomp_benchmark_is",
136                         "bulk_transfer_passthrough",
137                         "bulkbench",
138                         "bulkbench_micro_echo",
139                         "bulkbench_micro_rtt",
140                         "bulkbench_micro_throughput",
141                         "lrpc_bench",
142                         "mdb_bench",
143                         "mdb_bench_old",
144                         "netthroughput",
145                         "phases_bench",
146                         "phases_scale_bench",
147                         "placement_bench",
148                         "rcce_pingpong",
149                         "shared_mem_clock_bench",
150                         "tsc_bench" ]]
151
152
153     bench_k1om = [ "/sbin/" ++ f | f <- [
154                         "benchmarks/bomp_mm",
155                         "benchmarks/dma_bench",
156                         "benchmarks/xomp_share",
157                         "benchmarks/xomp_spawn",
158                         "benchmarks/xomp_work",
159                         "benchmarks/xphi_ump_bench",
160                         "benchmarks/xphi_xump_bench" ] ] ++ bench_x86
161
162     -- Default list of modules to build/install for all enabled architectures
163     modules_common = [ "/sbin/" ++ f | f <- [
164                           "init",
165                           "skb",
166                           "spawnd",
167                           "proc_mgmt",
168                           "startd",
169                           "mem_serv",
170                           "monitor",
171                           "ramfsd" ]]
172
173     -- List of modules that are arch-independent and always built
174     modules_generic = [
175         "/eclipseclp_ramfs.cpio.gz",
176         "/skb_ramfs.cpio.gz" ]
177
178     -- x86_64-specific modules to build by default
179     -- this should shrink as targets are ported and move into the generic list above
180     modules_x86_64  = [ "/sbin/" ++ f | f <- [
181                            "elver",
182                            "cpu",
183                            "acpi",
184                            "ahcid",
185                            "angler",
186                            "arrakismon",
187                            "bcached",
188                            "bench",
189                            "bfscope",
190                            "block_server",
191                            "block_server_client",
192                            "boot_perfmon",
193                            "bs_user",
194                            "bulk_shm",
195                            "corectrl",
196                            "datagatherer",
197                            "dma_mgr",
198                            "e1000n",
199                            "e10k",
200                            "e10k_queue",
201                            "echoserver",
202                            "fbdemo",
203                            "fish",
204                            "hpet",
205                            "ioat_dma",
206                            "kaluga",
207                            "lo_queue",
208                            "lpc_kbd",
209                            "lpc_timer",
210                            "lshw",
211                            "mem_serv_dist",
212                            "netd",
213                            "NGD_mng",
214                            "pci",
215                            "routing_setup",
216                            "rtl8029",
217                            "serial_pc16550d",
218                            "sfxge",
219                            "sfn5122f",
220                            "slideshow",
221                            "vbe",
222                            "virtio_blk",
223                            "virtio_blk_host",
224                            "vmkitmon",
225                            "vnode_map_test",
226                            "webserver",
227                            "xeon_phi",
228                            "xeon_phi_mgr",
229                            "net_sockets_server"
230                            ]] ++ modules_common
231
232     -- the following are broken in the newidc system
233     modules_x86_64_broken  = [ "/sbin/" ++ f | f <- [
234                                   "barriers",
235                                   "ipi_bench",
236                                   "ring_barriers",
237                                   "ssf_bcast",
238                                   "lamport_bcast" ]]
239
240
241     modules_k1om = [ "/sbin/" ++ f | f <- [
242                         "weever",
243                         "cpu",
244                         "xeon_phi",
245                         "corectrl" ] ]
246
247     -- ARMv7-a Pandaboard modules
248     pandaModules = [ "/sbin/" ++ f | f <- [
249                         "cpu_omap44xx",
250                         "init",
251                         "mem_serv",
252                         "monitor",
253                         "proc_mgmt",
254                         "ramfsd",
255                         "spawnd",
256                         "startd",
257                         "skb",
258                         "memtest",
259                         "kaluga",
260                         "fish",
261                         "sdmatest",
262                         "sdma_bench",
263                         "bulk_sdma",
264                         "usb_manager",
265                         "usb_keyboard",
266                         "serial_omap44xx",
267                         "serial_kernel",
268                         "angler",
269                         "corectrl",
270                         "driverdomain"
271                         ] ]
272
273     -- ARMv7-A modules for Versatile Express EMM board (GEM5, qemu)
274     vExpressEMMModules_A15 = [ "/sbin/" ++ f | f <- [
275                                "cpu_a15ve",
276                                "init",
277                                "kaluga",
278                                "mem_serv",
279                                "monitor",
280                                "proc_mgmt",
281                                "ramfsd",
282                                "serial_pl011",
283                                "serial_kernel",
284                                "spawnd",
285                                "startd",
286                                "corectrl",
287                                "skb",
288                                "angler",
289                                "fish",
290                                "memtest"
291                                ] ]
292
293     -- ARMv7-A modules for Versatile Express EMM board (FVP)
294     vExpressEMMModules_A9 = [ "/sbin/" ++ f | f <- [
295                               "cpu_a9ve",
296                               "init",
297                               "kaluga",
298                               "mem_serv",
299                               "monitor",
300                               "proc_mgmt",
301                               "ramfsd",
302                               "serial_pl011",
303                               "serial_kernel",
304                               "spawnd",
305                               "startd",
306                               "corectrl",
307                               "skb",
308                               "angler",
309                               "fish",
310                               "memtest"
311                               ] ]
312
313     -- ARMv7-A modules for the Xilinx Zynq7000
314     zynq7Modules = [ "/sbin/" ++ f | f <- [
315                      "cpu_zynq7",
316                      "init",
317                      "kaluga",
318                      "mem_serv",
319                      "monitor",
320                      "proc_mgmt",
321                      "ramfsd",
322                      "serial_kernel",
323                      "spawnd",
324                      "startd",
325                      "corectrl",
326                      "skb",
327                      "angler",
328                      "fish",
329                      "memtest"
330                      ] ]
331
332
333     -- ARMv8 modules for running under QEMU
334     armv8_modules= [ "/sbin/" ++ f | f <- [
335                        "init",
336                        "mem_serv",
337                        "monitor",
338                        "proc_mgmt",
339                        "ramfsd",
340                        "spawnd",
341                        "startd",
342                        "corectrl",
343                        "skb",
344                        "pci",
345                        "memtest",
346                        "serial_kernel",
347                        "fish",
348                        "angler",
349                        "kaluga",
350                        "acpi"
351                        ] ]
352
353     armv7Image target bootTarget cpuTarget physBase modules =
354         let bootDriver = "/sbin/boot_" ++ bootTarget
355             cpuDriver  = "/sbin/cpu_"  ++ cpuTarget
356             image      = "/" ++ target ++ "_image"
357         in Rules [
358             Rule ([ In BuildTree "tools" "/bin/arm_bootimage",
359                     In BuildTree "root" ("/platforms/arm/menu.lst."++target),
360                     In BuildTree "armv7" bootDriver,
361                     Out "root" image,
362                     NoDep BuildTree "root" "/",
363                     Str physBase ] ++
364                     [ (Dep BuildTree "armv7" m) | m <- modules ] ++
365                     [ (Dep BuildTree "" m) | m <- modules_generic ] ),
366
367             Rule ([ Str Config.arm_objcopy,
368                     Str "-O binary",
369                     In BuildTree "root" image,
370                     Out "root" (image ++ ".bin") ]),
371             Rule ([ In SrcTree "tools" "/tools/arm_boot/gdb_script.sh",
372                     Str Config.arm_objdump,
373                     In BuildTree "root" image,
374                     In BuildTree "armv7" bootDriver,
375                     In BuildTree "armv7" cpuDriver,
376                     Out "root" (image ++ "-gdb.gdb") ])
377             ]
378   in
379  [
380    --
381    -- Rules to build assorted platforms
382    --
383
384     platform "X86_64_Basic" [ "x86_64" ]
385       ([ ("x86_64", f) | f <- modules_x86_64 ]
386        ++
387        [ ("",       f) | f <- modules_generic])
388       "Basic 64-bit x86 PC build",
389
390     platform "X86_64_Benchmarks" [ "x86_64" ]
391       ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64]
392        ++
393        [ ("",       f) | f <- modules_generic])
394       "64-bit x86 PC build with benchmarks",
395
396     platform "X86_64_Full" [ "x86_64" ]
397       ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64 ++ tests_x86_64 ]
398        ++
399        [ ("",       f) | f <- modules_generic])
400       "64-bit x86 PC build with benchmarks and test suites",
401
402     platform "K1OM_Basic" [ "k1om" ]
403       ([ ("k1om", f) | f <- modules_k1om ]
404        ++
405        [ ("",       f) | f <- modules_generic])
406       "Basic Xeon Phi build",
407
408     platform "K1OM_Benchmarks" [ "k1om" ]
409       ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om]
410        ++
411        [ ("",       f) | f <- modules_generic])
412       "Xeon Phi build with benchmarks",
413
414     platform "K1OM_Full" [ "k1om" ]
415       ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om ++ tests_k1om ]
416        ++
417        [ ("",       f) | f <- modules_generic])
418       "Xeon Phi build with benchmarks and test suites",
419
420     platform "QEMU" [ "armv8" ]
421       ([ ("armv8", "/sbin/cpu_a57v"), ("armv8", "/sbin/boot_armv8_generic")  ]
422        ++
423        [ ("armv8", f) | f <- armv8_modules ]
424        ++
425        [ ("",       f) | f <- modules_generic])
426     "ARM Virtual Machine Board with ARM Cortex A57 processors in Qemu.",
427
428     platform "APM88xxxx" [ "armv8" ]
429     ([ ("armv8", "/sbin/cpu_apm88xxxx"), ("armv8", "/sbin/boot_armv8_generic")]
430        ++
431        [ ("armv8", f) | f <- armv8_modules ]
432        ++
433        [ ("",       f) | f <- modules_generic]
434     )
435     "The APM XGene development board (Mustang)",
436
437     platform "ThunderX" [ "armv8" ]
438     ([ ("armv8", "/sbin/cpu_cn88xx"), ("armv8", "/sbin/boot_armv8_generic") ]
439        ++
440        [ ("armv8", f) | f <- armv8_modules ]
441        ++
442        [ ("",       f) | f <- modules_generic]
443     )
444     "Cavium ThunderX-1 (CN88xx) boards",
445
446     platform "PandaboardES" [ "armv7" ]
447     ([ ("armv7", f) | f <- pandaModules ] ++
448      [ ("root", "/armv7_omap44xx_image"),
449        ("root", "/armv7_omap44xx_image-gdb.gdb") ])
450     "Standard Pandaboard ES build image and modules",
451
452     platform "VExpressEMM-A15" [ "armv7" ]
453     ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
454      [ ("root", "/armv7_a15ve_1_image"),
455        ("root", "/armv7_a15ve_1_image-gdb.gdb"),
456        ("root", "/armv7_a15ve_fvp_1_image"),
457        ("root", "/armv7_a15ve_fvp_1_image-gdb.gdb"),
458        ("root", "/armv7_a15ve_4_image"),
459        ("root", "/armv7_a15ve_4_image-gdb.gdb"),
460        ("root", "/armv7_a15ve_fvp_4_image"),
461        ("root", "/armv7_a15ve_fvp_4_image-gdb.gdb"),
462        ("root", "/armv7_a15ve_gem5_image"),
463        ("root", "/armv7_a15ve_gem5_image-gdb.gdb") ])
464     "VersatileExpress EMM board with ARM Cortex-A15s",
465
466     platform "VExpressEMM-A15-A7" [ "armv7" ]
467     ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
468      [ ("root", "/armv7_a15a7ve_image"),
469        ("root", "/armv7_a15a7ve_image-gdb.gdb") ])
470     "VersatileExpress EMM board with ARM Cortex-A15s and A7s",
471
472     platform "VExpressEMM-A9" [ "armv7" ]
473     ([ ("armv7", f) | f <- vExpressEMMModules_A9 ] ++
474      [ ("root", "/armv7_a9ve_1_image"),
475        ("root", "/armv7_a9ve_1_image-gdb.gdb"),
476        ("root", "/armv7_a9ve_4_image"),
477        ("root", "/armv7_a9ve_4_image-gdb.gdb") ])
478     "VersatileExpress EMM board for ARMv7-A Fixed Virtual Platforms",
479
480     platform "Zynq7000" [ "armv7" ]
481     ([ ("armv7", f) | f <- zynq7Modules ] ++
482      [ ("root", "/armv7_zynq7_image"),
483        ("root", "/armv7_zynq7_image-gdb.gdb") ])
484     "Xilinx Zynq7000",
485
486     --
487     -- Rules to build assorted boot images
488     --
489
490     -- Build the default PandaBoard boot image
491     armv7Image "armv7_omap44xx" "omap44xx" "omap44xx" "0x80000000" pandaModules,
492
493     -- Build the A15 simulation image (VersatileExpress EMM board, 1 core)
494     armv7Image "armv7_a15ve_1" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
495
496     -- Build the A15 simulation image (VersatileExpress EMM board, 1 core, FVP
497     -- quirks)
498     armv7Image "armv7_a15ve_fvp_1" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
499
500     -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores)
501     armv7Image "armv7_a15ve_4" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
502
503     -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores,
504     -- FVP quirks)
505     armv7Image "armv7_a15ve_fvp_4" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
506
507     -- Build the A15 simulation image (VersatileExpress EMM board, with GEM5
508     -- quirks)
509     armv7Image "armv7_a15ve_gem5" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
510
511     -- Build the big.LITTLE A15/A7 simulation image (VersatileExpress EMM
512     -- board, 4+4 cores)
513     armv7Image "armv7_a15a7ve" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
514
515     -- Build the A9 simulation image (VersatileExpress EMM board, 1 core)
516     armv7Image "armv7_a9ve_1" "ve" "a9ve" "0x80000000" vExpressEMMModules_A9,
517
518     -- Build the A9 simulation image (VersatileExpress EMM board, 4 cores)
519     armv7Image "armv7_a9ve_4" "ve" "a9ve" "0x80000000" vExpressEMMModules_A9,
520
521     -- Build the Zynq7000 image
522     armv7Image "armv7_zynq7" "zynq7" "zynq7" "0x00000000" zynq7Modules,
523
524     --
525     -- Booting: various targets for booting Barrelfish under different circumstances
526     --
527
528     -- Copy menu.list files across
529     Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
530                      "root" ("/platforms/arm/menu.lst." ++ p)
531             | p <- [ "armv8_a57v",
532                      "armv8_a57v_1",
533                      "armv8_apm88xxxx",
534                      "armv8_cn88xx",
535                      "armv7_a9ve_1",
536                      "armv7_a9ve_4",
537                      "armv7_a15ve_1",
538                      "armv7_a15ve_4",
539                      "armv7_a15ve_fvp_1",
540                      "armv7_a15ve_fvp_4",
541                      "armv7_a15ve_gem5",
542                      "armv7_a15a7ve",
543                      "armv7_omap44xx",
544                      "armv7_zynq7" ]],
545     Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
546                      "root" ("/platforms/x86/menu.lst." ++ p)
547             | p <- [ "x86_64", "k1om" ] ],
548
549
550     boot "gem5_armv7_vexpressemm" [ "armv7" ] [
551       In SrcTree "tools" "/tools/arm_gem5/boot_gem5.sh",
552       Str "VExpress_EMM",
553       In BuildTree "root" "/armv7_a15ve_gem5_image" ]
554     "Boot an ARMv7a multicore image on a VersatileExpress EMM board in GEM5",
555
556     boot "FVP_VE_A5x1" [ "armv7" ] [
557       Str "FVP_VE_Cortex-A5x1",
558       In BuildTree "root" "/armv7_a9ve_1_image" ]
559     "Boot on a single-core Cortex-A5 FVP model",
560
561     boot "FVP_VE_A7x1" [ "armv7" ] [
562       Str "FVP_VE_Cortex-A7x1",
563       In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
564     "Boot on a single-core Cortex-A7 FVP model",
565
566     boot "FVP_VE_A9x1" [ "armv7" ] [
567       Str "FVP_VE_Cortex-A9x1",
568       In BuildTree "root" "/armv7_a9ve_1_image" ]
569     "Boot on a single-core Cortex-A9 FVP model",
570
571     boot "FVP_VE_A9x4" [ "armv7" ] [
572       Str "FVP_VE_Cortex-A9x4",
573       In BuildTree "root" "/armv7_a9ve_4_image" ]
574     "Boot on a four-core Cortex-A9 FVP model",
575
576     boot "FVP_VE_A15x1" [ "armv7" ] [
577       Str "FVP_VE_Cortex-A15x1",
578       In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
579     "Boot on a single-core Cortex-A15 FVP model",
580
581     boot "FVP_VE_A15x4" [ "armv7" ] [
582       Str "FVP_VE_Cortex-A15x4-A7x4",
583       In BuildTree "root" "/armv7_a15ve_fvp_4_image" ]
584     "Boot on a four-core Cortex-A15 FVP model",
585
586     boot "FVP_VE_A15x4_A7x4" [ "armv7" ] [
587       Str "FVP_VE_Cortex-A15x4-A7x4",
588       NStr "-a coretile.cluster0.*=",
589       In BuildTree "root" "/armv7_a15a7ve_image",
590       NStr "-a coretile.cluster1.*=",
591       In BuildTree "root" "/armv7_a15a7ve_image",
592       Str "-C",
593       Str "coretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3"
594     ]
595     "Boot on a 4+4-core Cortex-A15/A7 FVP model",
596
597     boot "FVP_VE_A17x1" [ "armv7" ] [
598       Str "FVP_VE_Cortex-A17x1",
599       In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
600     "Boot on a single-core Cortex-A17 FVP model",
601
602     boot "qemu_a15ve_1" [ "armv7" ] [
603       In SrcTree "tools" "/tools/qemu-wrapper.sh",
604       Str "--image", In BuildTree "root" "/armv7_a15ve_1_image",
605       Str "--arch", Str "a15ve",
606       Str "--smp", Str "1" ]
607     "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (1 core)",
608
609     boot "qemu_a15ve_4" [ "armv7" ] [
610       In SrcTree "tools" "/tools/qemu-wrapper.sh",
611       Str "--image", In BuildTree "root" "/armv7_a15ve_4_image",
612       Str "--arch", Str "a15ve",
613       Str "--smp", Str "4" ]
614     "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (4 cores)",
615
616     boot "qemu_zynq7" [ "armv7" ] [
617       In SrcTree "tools" "/tools/qemu-wrapper.sh",
618       Str "--image", In BuildTree "root" "/armv7_zynq7_image",
619       Str "--arch", Str "zynq7" ]
620     "Boot QEMU in 32-bit ARM mode emulating a Zynq 7000",
621
622     boot "qemu_a57v" [ "armv8" ] ([
623       In SrcTree "tools" "/tools/qemu-wrapper.sh",
624       Str "--menu", In BuildTree "root" "/platforms/arm/menu.lst.armv8_a57v",
625       Str "--arch", Str "armv8",
626       Str "--hagfish", Str Config.hagfish_location ]
627       ++ [(Dep BuildTree "armv8" f) | f <- armv8_modules ]
628       ++ [(Dep BuildTree "armv8" "/sbin/cpu_a57v")]
629       ++ [(Dep BuildTree "armv8" "/sbin/boot_armv8_generic")]
630       ++ [(Dep BuildTree "" f) | f <- modules_generic ])
631     "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
632
633     boot "qemu_a57v_debug" [ "armv8" ] ([
634       In SrcTree "tools" "/tools/qemu-wrapper.sh",
635       Str "--menu", In BuildTree "root" "/platforms/arm/menu.lst.armv8_a57v",
636       Str "--arch", Str "armv8",
637       Str "--hagfish", Str Config.hagfish_location,
638       Str "--debug", In SrcTree "tools" "/tools/debug.armv8.gdb" ]
639       ++ [(Dep BuildTree "armv8" f) | f <- armv8_modules ]
640       ++ [(Dep BuildTree "armv8" "/sbin/cpu_a57v")]
641       ++ [(Dep BuildTree "armv8" "/sbin/boot_armv8_generic")]
642       ++ [(Dep BuildTree "" f) | f <- modules_generic ])
643     "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
644
645     boot "qemu_x86_64" [ "x86_64" ] ([
646       In SrcTree "tools" "/tools/qemu-wrapper.sh",
647       Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
648       Str "--arch", Str "x86_64" ] ++ [
649       (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
650       (Dep BuildTree "" f) | f <- modules_generic ])
651     "Boot QEMU in 64-bit x86 mode emulating a PC",
652
653     boot "qemu_x86_64_debug" [ "x86_64" ] ([
654       In SrcTree "tools" "/tools/qemu-wrapper.sh",
655       Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
656       Str "--arch", Str "x86_64",
657       Str "--debug", In SrcTree "tools" "/tools/debug.gdb" ] ++ [
658       (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
659       (Dep BuildTree "" f) | f <- modules_generic ])
660     "Boot QEMU under GDB in 64-bit x86 mode emulating a PC",
661
662     boot "usbboot_panda" [ "armv7" ] [
663       In BuildTree "tools" "/bin/usbboot",
664       In BuildTree "root" "/armv7_omap44xx_image"
665     ]
666     "Boot Barrelfish on a Pandaboard, over a local USB cable"
667
668  ]