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
13let 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    -- Example program modules
163    modules_xmpl = [ "/sbin/" ++ f | f <- [
164        --"examples/xmpl-call-response",
165        "examples/xmpl-cow",
166        "examples/xmpl-hello",
167        --"examples/xmpl-msg",
168        --"examples/xmpl-rpc_msg",
169        --"examples/xmpl-rpc_rpc",
170        "examples/xmpl-span",
171        "examples/xmpl-spawn",
172        "examples/xmpl-thc-binding",
173        --"examples/xmpl-thc-lang",
174        "examples/xmpl-thread",
175        "examples/xmpl-thread-min",
176        "examples/xmpl-trace" ] ]
177
178    -- Default list of modules to build/install for all enabled architectures
179    modules_common = [ "/sbin/" ++ f | f <- [
180                          "init",
181                          "skb",
182                          "spawnd",
183                          "proc_mgmt",
184                          "startd",
185                          "mem_serv",
186                          "monitor",
187                          "ramfsd" ]]
188
189    -- List of modules that are arch-independent and always built
190    modules_generic = [
191        "/eclipseclp_ramfs.cpio.gz",
192        "/skb_ramfs.cpio.gz" ]
193
194    -- x86_64-specific modules to build by default
195    -- this should shrink as targets are ported and move into the generic list above
196    modules_x86_64  = [ "/sbin/" ++ f | f <- [
197                           "elver",
198                           "cpu",
199                           "acpi",
200                           "ahcid",
201                           "angler",
202                           "arrakismon",
203                           "bcached",
204                           "bench",
205                           "bfscope",
206                           "bfscope_nfs",
207                           "block_server",
208                           "block_server_client",
209                           "boot_perfmon",
210                           "bs_user",
211                           "bulk_shm",
212                           "corectrl",
213                           "datagatherer",
214                           "dma_mgr",
215                           "e1000n",
216                           "e10k",
217                           "e10k_queue",
218                           "echoserver",
219                           "fbdemo",
220                           "fish",
221                           "hpet",
222                           "ioat_dma",
223                           "kaluga",
224                           "lo_queue",
225                           "lpc_kbd",
226                           "lpc_timer",
227                           "lshw",
228                           "mem_serv_dist",
229                           "netd",
230                           "NGD_mng",
231                           "pci",
232                           "routing_setup",
233                           "rtl8029",
234                           "serial_pc16550d",
235                           "sfxge",
236                           "sfn5122f",
237                           "slideshow",
238                           "vbe",
239                           "virtio_blk",
240                           "virtio_blk_host",
241                           "vmkitmon",
242                           "vnode_map_test",
243                           "webserver",
244                           "xeon_phi",
245                           "xeon_phi_mgr",
246                           "net_sockets_server"
247                           ]] ++ modules_common
248
249    -- the following are broken in the newidc system
250    modules_x86_64_broken  = [ "/sbin/" ++ f | f <- [
251                                  "barriers",
252                                  "ipi_bench",
253                                  "ring_barriers",
254                                  "ssf_bcast",
255                                  "lamport_bcast" ]]
256
257
258    modules_k1om = [ "/sbin/" ++ f | f <- [
259                        "weever",
260                        "cpu",
261                        "xeon_phi",
262                        "corectrl" ] ]
263
264    -- ARMv7-a Pandaboard modules
265    pandaModules = [ "/sbin/" ++ f | f <- [
266                        "cpu_omap44xx",
267                        "init",
268                        "mem_serv",
269                        "monitor",
270                        "proc_mgmt",
271                        "ramfsd",
272                        "spawnd",
273                        "startd",
274                        "skb",
275                        "memtest",
276                        "kaluga",
277                        "fish",
278                        "sdmatest",
279                        "sdma_bench",
280                        "bulk_sdma",
281                        "usb_manager",
282                        "usb_keyboard",
283                        "serial_omap44xx",
284                        "serial_kernel",
285                        "angler",
286                        "corectrl",
287                        "driverdomain"
288                        ] ]
289
290    -- ARMv7-A modules for Versatile Express EMM board (GEM5, qemu)
291    vExpressEMMModules_A15 = [ "/sbin/" ++ f | f <- [
292                               "cpu_a15ve",
293                               "init",
294                               "kaluga",
295                               "mem_serv",
296                               "monitor",
297                               "proc_mgmt",
298                               "ramfsd",
299                               "serial_pl011",
300                               "serial_kernel",
301                               "spawnd",
302                               "startd",
303                               "corectrl",
304                               "skb",
305                               "angler",
306                               "fish",
307                               "memtest"
308                               ] ]
309
310    -- ARMv7-A modules for Versatile Express EMM board (FVP)
311    vExpressEMMModules_A9 = [ "/sbin/" ++ f | f <- [
312                              "cpu_a9ve",
313                              "init",
314                              "kaluga",
315                              "mem_serv",
316                              "monitor",
317                              "proc_mgmt",
318                              "ramfsd",
319                              "serial_pl011",
320                              "serial_kernel",
321                              "spawnd",
322                              "startd",
323                              "corectrl",
324                              "skb",
325                              "angler",
326                              "fish",
327                              "memtest"
328                              ] ]
329
330    -- ARMv7-A modules for the Xilinx Zynq7000
331    zynq7Modules = [ "/sbin/" ++ f | f <- [
332                     "cpu_zynq7",
333                     "init",
334                     "kaluga",
335                     "mem_serv",
336                     "monitor",
337                     "proc_mgmt",
338                     "ramfsd",
339                     "serial_kernel",
340                     "spawnd",
341                     "startd",
342                     "corectrl",
343                     "skb",
344                     "angler",
345                     "fish",
346                     "memtest"
347                     ] ]
348
349
350    -- ARMv8 modules for running under QEMU
351    armv8_modules= [ "/sbin/" ++ f | f <- [
352                       "init",
353                       "mem_serv",
354                       "monitor",
355                       "proc_mgmt",
356                       "ramfsd",
357                       "spawnd",
358                       "startd",
359                       "corectrl",
360                       "skb",
361                       "pci",
362                       "memtest",
363                       "serial_kernel",
364                       "fish",
365                       "angler",
366                       "kaluga",
367                       "acpi"
368                       ] ]
369
370    armv7Image target bootTarget cpuTarget physBase modules =
371        let bootDriver = "/sbin/boot_" ++ bootTarget
372            cpuDriver  = "/sbin/cpu_"  ++ cpuTarget
373            image      = "/" ++ target ++ "_image"
374        in Rules [
375            Rule ([ In BuildTree "tools" "/bin/arm_bootimage",
376                    In BuildTree "root" ("/platforms/arm/menu.lst."++target),
377                    In BuildTree "armv7" bootDriver,
378                    Out "root" image,
379                    NoDep BuildTree "root" "/",
380                    Str physBase ] ++
381                    [ (Dep BuildTree "armv7" m) | m <- modules ] ++
382                    [ (Dep BuildTree "" m) | m <- modules_generic ] ),
383
384            Rule ([ Str Config.arm_objcopy,
385                    Str "-O binary",
386                    In BuildTree "root" image,
387                    Out "root" (image ++ ".bin") ]),
388            Rule ([ In SrcTree "tools" "/tools/arm_boot/gdb_script.sh",
389                    Str Config.arm_objdump,
390                    In BuildTree "root" image,
391                    In BuildTree "armv7" bootDriver,
392                    In BuildTree "armv7" cpuDriver,
393                    Out "root" (image ++ "-gdb.gdb") ])
394            ]
395  in
396 [
397   --
398   -- Rules to build assorted platforms
399   --
400
401    platform "X86_64_Basic" [ "x86_64" ]
402      ([ ("x86_64", f) | f <- modules_x86_64 ]
403       ++
404       [ ("",       f) | f <- modules_generic])
405      "Basic 64-bit x86 PC build",
406
407    platform "X86_64_Benchmarks" [ "x86_64" ]
408      ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64]
409       ++
410       [ ("",       f) | f <- modules_generic])
411      "64-bit x86 PC build with benchmarks",
412
413    platform "X86_64_Full" [ "x86_64" ]
414      ([ ("x86_64", f) | f <- modules_x86_64 ++ bench_x86_64 ++ tests_x86_64 ++ modules_xmpl ]
415       ++
416       [ ("",       f) | f <- modules_generic])
417      "64-bit x86 PC build with benchmarks and test suites",
418
419    platform "K1OM_Basic" [ "k1om" ]
420      ([ ("k1om", f) | f <- modules_k1om ]
421       ++
422       [ ("",       f) | f <- modules_generic])
423      "Basic Xeon Phi build",
424
425    platform "K1OM_Benchmarks" [ "k1om" ]
426      ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om]
427       ++
428       [ ("",       f) | f <- modules_generic])
429      "Xeon Phi build with benchmarks",
430
431    platform "K1OM_Full" [ "k1om" ]
432      ([ ("k1om", f) | f <- modules_k1om ++ bench_k1om ++ tests_k1om ]
433       ++
434       [ ("",       f) | f <- modules_generic])
435      "Xeon Phi build with benchmarks and test suites",
436
437    platform "FVP" [ "armv8" ]
438      ([ ("armv8", "/sbin/cpu_a57_fvp"), ("armv8", "/sbin/boot_armv8_generic")  ]
439       ++
440       [ ("armv8", f) | f <- armv8_modules ]
441       ++
442       [ ("",       f) | f <- modules_generic])
443    "ARM Virtual Machine Board with ARM Cortex A57 processors in Fixed Virtual Platform.",
444
445    platform "QEMU" [ "armv8" ]
446      ([ ("armv8", "/sbin/cpu_a57_qemu"), ("armv8", "/sbin/boot_armv8_generic")  ]
447       ++
448       [ ("armv8", f) | f <- armv8_modules ]
449       ++
450       [ ("",       f) | f <- modules_generic])
451    "ARM Virtual Machine Board with ARM Cortex A57 processors in QEMU.",
452
453    platform "APM88xxxx" [ "armv8" ]
454    ([ ("armv8", "/sbin/cpu_apm88xxxx"), ("armv8", "/sbin/boot_armv8_generic")]
455       ++
456       [ ("armv8", f) | f <- armv8_modules ]
457       ++
458       [ ("",       f) | f <- modules_generic]
459    )
460    "The APM XGene development board (Mustang)",
461
462    platform "ThunderX" [ "armv8" ]
463    ([ ("armv8", "/sbin/cpu_cn88xx"), ("armv8", "/sbin/boot_armv8_generic") ]
464       ++
465       [ ("armv8", f) | f <- armv8_modules ]
466       ++
467       [ ("",       f) | f <- modules_generic]
468    )
469    "Cavium ThunderX-1 (CN88xx) boards",
470
471    platform "PandaboardES" [ "armv7" ]
472    ([ ("armv7", f) | f <- pandaModules ] ++
473     [ ("root", "/armv7_omap44xx_image"),
474       ("root", "/armv7_omap44xx_image-gdb.gdb") ])
475    "Standard Pandaboard ES build image and modules",
476
477    platform "VExpressEMM-A15" [ "armv7" ]
478    ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
479     [ ("root", "/armv7_a15ve_1_image"),
480       ("root", "/armv7_a15ve_1_image-gdb.gdb"),
481       ("root", "/armv7_a15ve_fvp_1_image"),
482       ("root", "/armv7_a15ve_fvp_1_image-gdb.gdb"),
483       ("root", "/armv7_a15ve_4_image"),
484       ("root", "/armv7_a15ve_4_image-gdb.gdb"),
485       ("root", "/armv7_a15ve_fvp_4_image"),
486       ("root", "/armv7_a15ve_fvp_4_image-gdb.gdb"),
487       ("root", "/armv7_a15ve_gem5_image"),
488       ("root", "/armv7_a15ve_gem5_image-gdb.gdb") ])
489    "VersatileExpress EMM board with ARM Cortex-A15s",
490
491    platform "VExpressEMM-A15-A7" [ "armv7" ]
492    ([ ("armv7", f) | f <- vExpressEMMModules_A15 ] ++
493     [ ("root", "/armv7_a15a7ve_image"),
494       ("root", "/armv7_a15a7ve_image-gdb.gdb") ])
495    "VersatileExpress EMM board with ARM Cortex-A15s and A7s",
496
497    platform "VExpressEMM-A9" [ "armv7" ]
498    ([ ("armv7", f) | f <- vExpressEMMModules_A9 ] ++
499     [ ("root", "/armv7_a9ve_1_image"),
500       ("root", "/armv7_a9ve_1_image-gdb.gdb"),
501       ("root", "/armv7_a9ve_4_image"),
502       ("root", "/armv7_a9ve_4_image-gdb.gdb") ])
503    "VersatileExpress EMM board for ARMv7-A Fixed Virtual Platforms",
504
505    platform "Zynq7000" [ "armv7" ]
506    ([ ("armv7", f) | f <- zynq7Modules ] ++
507     [ ("root", "/armv7_zynq7_image"),
508       ("root", "/armv7_zynq7_image-gdb.gdb") ])
509    "Xilinx Zynq7000",
510
511    --
512    -- Rules to build assorted boot images
513    --
514
515    -- Build the default PandaBoard boot image
516    armv7Image "armv7_omap44xx" "omap44xx" "omap44xx" "0x80000000" pandaModules,
517
518    -- Build the A15 simulation image (VersatileExpress EMM board, 1 core)
519    armv7Image "armv7_a15ve_1" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
520
521    -- Build the A15 simulation image (VersatileExpress EMM board, 1 core, FVP
522    -- quirks)
523    armv7Image "armv7_a15ve_fvp_1" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
524
525    -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores)
526    armv7Image "armv7_a15ve_4" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
527
528    -- Build the A15 simulation image (VersatileExpress EMM board, 4 cores,
529    -- FVP quirks)
530    armv7Image "armv7_a15ve_fvp_4" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
531
532    -- Build the A15 simulation image (VersatileExpress EMM board, with GEM5
533    -- quirks)
534    armv7Image "armv7_a15ve_gem5" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
535
536    -- Build the big.LITTLE A15/A7 simulation image (VersatileExpress EMM
537    -- board, 4+4 cores)
538    armv7Image "armv7_a15a7ve" "ve" "a15ve" "0x80000000" vExpressEMMModules_A15,
539
540    -- Build the A9 simulation image (VersatileExpress EMM board, 1 core)
541    armv7Image "armv7_a9ve_1" "ve" "a9ve" "0x80000000" vExpressEMMModules_A9,
542
543    -- Build the A9 simulation image (VersatileExpress EMM board, 4 cores)
544    armv7Image "armv7_a9ve_4" "ve" "a9ve" "0x80000000" vExpressEMMModules_A9,
545
546    -- Build the Zynq7000 image
547    armv7Image "armv7_zynq7" "zynq7" "zynq7" "0x00000000" zynq7Modules,
548
549    --
550    -- Booting: various targets for booting Barrelfish under different circumstances
551    --
552
553    -- Copy menu.list files across
554    Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
555                     "root" ("/platforms/arm/menu.lst." ++ p)
556            | p <- [ "armv8_a57v",
557                     "armv8_a57v_1",
558                     "armv8_apm88xxxx",
559                     "armv8_cn88xx",
560                     "armv7_a9ve_1",
561                     "armv7_a9ve_4",
562                     "armv7_a15ve_1",
563                     "armv7_a15ve_4",
564                     "armv7_a15ve_fvp_1",
565                     "armv7_a15ve_fvp_4",
566                     "armv7_a15ve_gem5",
567                     "armv7_a15a7ve",
568                     "armv7_omap44xx",
569                     "armv7_zynq7" ]],
570    Rules [ copyFile SrcTree "root" ("/hake/menu.lst." ++ p)
571                     "root" ("/platforms/x86/menu.lst." ++ p)
572            | p <- [ "x86_64", "k1om" ] ],
573
574
575    boot "gem5_armv7_vexpressemm" [ "armv7" ] [
576      In SrcTree "tools" "/tools/arm_gem5/boot_gem5.sh",
577      Str "VExpress_EMM",
578      In BuildTree "root" "/armv7_a15ve_gem5_image" ]
579    "Boot an ARMv7a multicore image on a VersatileExpress EMM board in GEM5",
580
581    boot "FVP_VE_A5x1" [ "armv7" ] [
582      Str "FVP_VE_Cortex-A5x1",
583      In BuildTree "root" "/armv7_a9ve_1_image" ]
584    "Boot on a single-core Cortex-A5 FVP model",
585
586    boot "FVP_VE_A7x1" [ "armv7" ] [
587      Str "FVP_VE_Cortex-A7x1",
588      In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
589    "Boot on a single-core Cortex-A7 FVP model",
590
591    boot "FVP_VE_A9x1" [ "armv7" ] [
592      Str "FVP_VE_Cortex-A9x1",
593      In BuildTree "root" "/armv7_a9ve_1_image" ]
594    "Boot on a single-core Cortex-A9 FVP model",
595
596    boot "FVP_VE_A9x4" [ "armv7" ] [
597      Str "FVP_VE_Cortex-A9x4",
598      In BuildTree "root" "/armv7_a9ve_4_image" ]
599    "Boot on a four-core Cortex-A9 FVP model",
600
601    boot "FVP_VE_A15x1" [ "armv7" ] [
602      Str "FVP_VE_Cortex-A15x1",
603      In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
604    "Boot on a single-core Cortex-A15 FVP model",
605
606    boot "FVP_VE_A15x4" [ "armv7" ] [
607      Str "FVP_VE_Cortex-A15x4-A7x4",
608      In BuildTree "root" "/armv7_a15ve_fvp_4_image" ]
609    "Boot on a four-core Cortex-A15 FVP model",
610
611    boot "FVP_VE_A15x4_A7x4" [ "armv7" ] [
612      Str "FVP_VE_Cortex-A15x4-A7x4",
613      NStr "-a coretile.cluster0.*=",
614      In BuildTree "root" "/armv7_a15a7ve_image",
615      NStr "-a coretile.cluster1.*=",
616      In BuildTree "root" "/armv7_a15a7ve_image",
617      Str "-C",
618      Str "coretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3"
619    ]
620    "Boot on a 4+4-core Cortex-A15/A7 FVP model",
621
622    boot "FVP_VE_A17x1" [ "armv7" ] [
623      Str "FVP_VE_Cortex-A17x1",
624      In BuildTree "root" "/armv7_a15ve_fvp_1_image" ]
625    "Boot on a single-core Cortex-A17 FVP model",
626
627    boot "qemu_a15ve_1" [ "armv7" ] [
628      In SrcTree "tools" "/tools/qemu-wrapper.sh",
629      Str "--image", In BuildTree "root" "/armv7_a15ve_1_image",
630      Str "--arch", Str "a15ve",
631      Str "--smp", Str "1" ]
632    "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (1 core)",
633
634    boot "qemu_a15ve_4" [ "armv7" ] [
635      In SrcTree "tools" "/tools/qemu-wrapper.sh",
636      Str "--image", In BuildTree "root" "/armv7_a15ve_4_image",
637      Str "--arch", Str "a15ve",
638      Str "--smp", Str "4" ]
639    "Boot QEMU in 32-bit ARM mode emulating a Versatile Express board (4 cores)",
640
641    boot "qemu_zynq7" [ "armv7" ] [
642      In SrcTree "tools" "/tools/qemu-wrapper.sh",
643      Str "--image", In BuildTree "root" "/armv7_zynq7_image",
644      Str "--arch", Str "zynq7" ]
645    "Boot QEMU in 32-bit ARM mode emulating a Zynq 7000",
646
647    boot "qemu_a57v" [ "armv8" ] ([
648      In SrcTree "tools" "/tools/qemu-wrapper.sh",
649      Str "--menu", In BuildTree "root" "/platforms/arm/menu.lst.armv8_a57v",
650      Str "--arch", Str "armv8",
651      Str "--hagfish", Str Config.hagfish_location ]
652      ++ [(Dep BuildTree "armv8" f) | f <- armv8_modules ]
653      ++ [(Dep BuildTree "armv8" "/sbin/cpu_a57v")]
654      ++ [(Dep BuildTree "armv8" "/sbin/boot_armv8_generic")]
655      ++ [(Dep BuildTree "" f) | f <- modules_generic ])
656    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
657
658    boot "qemu_a57v_debug" [ "armv8" ] ([
659      In SrcTree "tools" "/tools/qemu-wrapper.sh",
660      Str "--menu", In BuildTree "root" "/platforms/arm/menu.lst.armv8_a57v",
661      Str "--arch", Str "armv8",
662      Str "--hagfish", Str Config.hagfish_location,
663      Str "--debug", In SrcTree "tools" "/tools/debug.armv8.gdb" ]
664      ++ [(Dep BuildTree "armv8" f) | f <- armv8_modules ]
665      ++ [(Dep BuildTree "armv8" "/sbin/cpu_a57v")]
666      ++ [(Dep BuildTree "armv8" "/sbin/boot_armv8_generic")]
667      ++ [(Dep BuildTree "" f) | f <- modules_generic ])
668    "Boot QEMU in 64-bit ARM mode emulating a ARM Virtual Machine",
669
670    boot "qemu_x86_64" [ "x86_64" ] ([
671      In SrcTree "tools" "/tools/qemu-wrapper.sh",
672      Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
673      Str "--arch", Str "x86_64" ] ++ [
674      (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
675      (Dep BuildTree "" f) | f <- modules_generic ])
676    "Boot QEMU in 64-bit x86 mode emulating a PC",
677
678    boot "qemu_x86_64_debug" [ "x86_64" ] ([
679      In SrcTree "tools" "/tools/qemu-wrapper.sh",
680      Str "--menu", In BuildTree "root" "/platforms/x86/menu.lst.x86_64",
681      Str "--arch", Str "x86_64",
682      Str "--debug", In SrcTree "tools" "/tools/debug.gdb" ] ++ [
683      (Dep BuildTree "x86_64" f) | f <- modules_x86_64 ] ++ [
684      (Dep BuildTree "" f) | f <- modules_generic ])
685    "Boot QEMU under GDB in 64-bit x86 mode emulating a PC",
686
687    boot "usbboot_panda" [ "armv7" ] [
688      In BuildTree "tools" "/bin/usbboot",
689      In BuildTree "root" "/armv7_omap44xx_image"
690    ]
691    "Boot Barrelfish on a Pandaboard, over a local USB cable"
692
693 ]
694