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