1-------------------------------------------------------------------------- 2-- Copyright (c) 2007-2016, ETH Zurich. 3-- Copyright (c) 2015-2016, Hewlett Packard Enterprise Development LP. 4-- All rights reserved. 5-- 6-- This file is distributed under the terms in the attached LICENSE file. 7-- If you do not find this file, copies can be found by writing to: 8-- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich. 9-- Attn: Systems Group. 10-- 11-- Hakefile for Barrelfish CPU drivers 12-- 13-------------------------------------------------------------------------- 14 15-- 16-- Missing from this new Hakefile is the rule to build kernel debug 17-- symbols, since this requires some thinking about naming 18-- conventions. Here is the rule we need: 19-- 20-- Rule ( [ Str "OBJDUMP=objdump", 21-- In SrcTree "src" "/tools/gen-gdbscript.sh", 22-- In SrcTree "src" "/tools/debug.gdb.in", 23-- In BuildTree arch "../sbin/cpu", 24-- Str ">", Out arch "/debug.gdb" 25-- ] ) 26 27let 28 scheduler = case Config.scheduler of 29 Config.RR -> "schedule_rr.c" 30 Config.RBED -> "schedule_rbed.c" 31 common_c = [ "gdb_stub.c", 32 "capabilities.c", 33 "cap_delete.c", 34 "dispatch.c", 35 scheduler, 36 "kcb.c", 37 "logging.c", 38 "memset.c", 39 "memmove.c", 40 "monitor.c", 41 "paging_generic.c", 42 "printf.c", 43 "startup.c", 44 "stdlib.c", 45 "string.c", 46 "sys_debug.c", 47 "syscall.c", 48 "wakeup.c", 49 "useraccess.c", 50 "coreboot.c", 51 "systime.c" ] 52 ++ (if Config.microbenchmarks then ["microbenchmarks.c"] else []) 53 ++ (if Config.oneshot_timer then ["timer.c"] else []) 54 common_libs = [ "getopt", "mdb_kernel" ] 55 boot_c = [ "memset.c", 56 "printf.c", 57 "stdlib.c", 58 "string.c" ] 59 60 link_cpudriver arg = linkKernel opts name objs libs "cpu" 61 where 62 opts = kernelOptions $ head $ Args.architectures arg 63 suffix = if "cpu" == Args.target arg 64 then "" 65 else "_" ++ (Args.target arg) 66 name = "cpu" ++ suffix 67 objs = [ objectFilePath opts f 68 | f <- (Args.assemblyFiles arg) ++ (Args.cFiles arg) ++ common_c ] 69 libs = (Args.addLibraries arg) ++ common_libs 70 71 link_bootdriver arg = linkKernel opts name objs libs "boot" 72 where 73 opts = kernelOptions $ head $ Args.architectures arg 74 name = "boot_" ++ Args.target arg 75 objs = [ objectFilePath opts f 76 | f <- (Args.assemblyFiles arg) ++ (Args.cFiles arg) ] 77 libs = (Args.addLibraries arg) ++ common_libs 78 79 cpudrivers arglist = 80 let 81 cafiles = Data.List.nub $ concat [ [ [ arch, cfile ] 82 | arch <- Args.architectures arg, 83 cfile <- common_c ++ (Args.cFiles arg) ] 84 | arg <- arglist ] 85 safiles = Data.List.nub $ concat [ [ [ arch, sfile ] 86 | arch <- Args.architectures arg, 87 sfile <- Args.assemblyFiles arg ] 88 | arg <- arglist ] 89 mafiles = Data.List.nub $ concat [ [ [ arch, mfile ] 90 | arch <- Args.architectures arg, 91 mfile <- Args.mackerelDevices arg ] 92 | arg <- arglist ] 93 in 94 ( [ compileCFile (kernelOptions a) f | [a,f] <- cafiles ] 95 ++ 96 [ assembleSFile (kernelOptions a) f | [a,f] <- safiles ] 97 ++ 98 [ mackerelDependencies (kernelOptions a) f [ c | [a,c] <- cafiles] 99 | [a,f] <- mafiles ] 100 ++ 101 [ if Args.driverType arg == "boot" 102 then link_bootdriver arg 103 else link_cpudriver arg | arg <- arglist ] 104 ) 105 106 in cpudrivers [ 107 -- 108 -- Generic Intel/AMD amd64 64-bit x86 core 109 -- 110 cpuDriver { 111 architectures = [ "x86_64" ], 112 assemblyFiles = [ "arch/x86_64/boot.S", 113 "arch/x86_64/entry.S", 114 "../usr/drivers/cpuboot/arch/x86/init_ap_x86_64.S", 115 "../usr/drivers/cpuboot/arch/x86/init_ap_x86_32.S" ], 116 cFiles = [ "arch/x86_64/debug.c", 117 "arch/x86_64/gdb_arch.c", 118 "arch/x86_64/init.c", 119 "arch/x86_64/irq.c", 120 "arch/x86_64/startup_arch.c", 121 "arch/x86_64/dispatch.c", 122 "arch/x86_64/exec.c", 123 "arch/x86_64/syscall.c", 124 "arch/x86_64/paging.c", 125 "arch/x86_64/vmkit.c" , 126 "arch/x86_64/vmx_checks.c", 127 "arch/x86_64/vmx_vmkit.c", 128 "arch/x86_64/svm_vmkit.c", 129 "arch/x86_64/page_mappings_arch.c", 130 "arch/x86/apic.c", 131 "arch/x86/pic.c", 132 "arch/x86/pit.c", 133 "arch/x86/cmos.c", 134 "arch/x86/misc.c", 135 "arch/x86/serial.c", 136 "arch/x86/conio.c", 137 "arch/x86/syscall.c", 138 "arch/x86/debugregs.c", 139 "arch/x86/perfmon.c", 140 "arch/x86/perfmon_intel.c", 141 "arch/x86/perfmon_amd.c", 142 "arch/x86/rtc.c", 143 "arch/x86/timing.c", 144 "arch/x86/startup_x86.c", 145 "arch/x86/mcheck.c", 146 "arch/x86/multiboot.c", 147 "arch/x86/ipi_notify.c" 148 ] ++ (if Config.microbenchmarks then ["arch/x86_64/microbenchmarks.c"] else []), 149 mackerelDevices = [ "lpc_pic", 150 "pc16550d", 151 "ia32", 152 "amd64", 153 "xapic", 154 "amd_vmcb", 155 "cpuid", 156 "lpc_rtc", 157 "lpc_timer" ], 158 addLibraries = [ "elf_kernel" ] 159 }, 160 -- 161 -- Intel Xeon Phi (K1OM) 162 -- 163 cpuDriver { 164 architectures = [ "k1om" ], 165 assemblyFiles = [ "arch/x86_64/boot.S", 166 "arch/x86_64/entry.S", 167 "../usr/drivers/cpuboot/arch/x86/init_ap_x86_64.S", 168 "../usr/drivers/cpuboot/arch/x86/init_ap_x86_32.S" ], 169 cFiles = [ "arch/x86/apic.c", 170 -- "arch/x86/pic.c", 171 "arch/x86/misc.c", 172 "arch/x86/syscall.c", 173 "arch/x86/debugregs.c", 174 "arch/x86/perfmon.c", 175 "arch/x86/perfmon_intel.c", 176 "arch/x86/perfmon_amd.c", 177-- "arch/x86/rtc.c", 178 "arch/x86/timing.c", 179 "arch/x86/startup_x86.c", 180 "arch/x86/ipi_notify.c", 181 "arch/x86_64/syscall.c", 182 "arch/x86_64/debug.c", 183 "arch/x86_64/dispatch.c", 184 "arch/x86_64/exec.c", 185 "arch/x86_64/irq.c", 186 "arch/x86_64/paging.c", 187 "arch/x86_64/page_mappings_arch.c", 188 "arch/x86_64/gdb_arch.c", 189 "arch/k1om/init.c", 190 "arch/k1om/startup_arch.c", 191 "arch/k1om/mcheck.c", 192 "arch/k1om/serial.c", 193 "arch/x86/multiboot.c", 194 "arch/k1om/xeon_phi.c" 195 196 ] ++ (if Config.microbenchmarks then ["arch/x86_64/microbenchmarks.c"] else []), 197 mackerelDevices = [ "lpc_pic", 198 "ia32", 199 "amd64", 200 "xapic", 201 "cpuid", 202 "xeon_phi/xeon_phi_serial" ], 203 addLibraries = [ "elf_kernel" ] 204 }, 205 206 -- 207 -- Versatile Express Cortex-A15 ARMv7-A, e.g. GEM5 or qemu 208 -- 209 cpuDriver { 210 target = "a15ve", 211 architectures = [ "armv7" ], 212 assemblyFiles = [ "arch/armv7/exceptions.S", 213 "arch/armv7/set_stack_for_mode.S", 214 "arch/armv7/bsp_start.S", 215 "arch/armv7/cpu_start.S" 216 ], 217 cFiles = [ 218 "arch/armv7/a15_gt.c", 219 "arch/armv7/boot_protocol.c", 220 "arch/armv7/dispatch.c", 221 "arch/armv7/init.c", 222 "arch/armv7/gdb_arch.c", 223 "arch/armv7/paging.c", 224 "arch/armv7/plat_a15mpcore.c", 225 "arch/armv7/plat_id.c", 226 "arch/armv7/plat_priv_cbar.c", 227 "arch/armv7/plat_vexpress.c", 228 "arch/armv7/plat_vexpress_consts.c", 229 "arch/armv7/startup_arch.c", 230 "arch/armv7/syscall.c", 231 "arch/arm/debug.c", 232 "arch/arm/exec.c", 233 "arch/arm/exn.c", 234 "arch/arm/gic.c", 235 "arch/arm/gdb_arch.c", 236 "arch/arm/irq.c", 237 "arch/arm/kputchar.c", 238 "arch/arm/misc.c", 239 "arch/arm/multiboot.c", 240 "arch/arm/pl011.c" 241 ], 242 mackerelDevices = [ "arm", 243 "cpuid_arm", 244 "pl011_uart", 245 "pl130_gic" ], 246 addLibraries = [ "elf" ] 247 }, 248 -- 249 -- Common boot driver for Versatile Express boards 250 -- 251 bootDriver { 252 target = "ve", 253 architectures = [ "armv7" ], 254 assemblyFiles = [ "arch/armv7/boot.S" ], 255 cFiles = [ 256 "logging.c", 257 "arch/armv7/boot_driver.c", 258 "arch/armv7/gdb_arch.c", 259 "arch/armv7/paging_init.c", 260 "arch/armv7/plat_basic_boot.c", 261 "arch/armv7/plat_vexpress_consts.c", 262 "arch/arm/gdb_arch.c", 263 "arch/arm/kputchar.c", 264 "arch/arm/misc.c", 265 "arch/arm/multiboot.c", 266 "arch/arm/pl011.c" 267 ] ++ boot_c, 268 mackerelDevices = [ "arm", 269 "cpuid_arm", 270 "pl011_uart" 271 ], 272 addLibraries = [ ] 273 }, 274 -- 275 -- Versatile Express Cortex-A9 ARMv7-A, e.g. ARM Fixed Virtual Platform 276 -- 277 cpuDriver { 278 target = "a9ve", 279 architectures = [ "armv7" ], 280 assemblyFiles = [ "arch/armv7/exceptions.S", 281 "arch/armv7/set_stack_for_mode.S", 282 "arch/armv7/bsp_start.S", 283 "arch/armv7/cpu_start.S" 284 ], 285 cFiles = [ 286 "arch/armv7/a9_gt.c", 287 "arch/armv7/a9_scu.c", 288 "arch/armv7/boot_protocol.c", 289 "arch/armv7/init.c", 290 "arch/armv7/dispatch.c", 291 "arch/armv7/gdb_arch.c", 292 "arch/armv7/paging.c", 293 "arch/armv7/plat_a9mpcore.c", 294 "arch/armv7/plat_id.c", 295 "arch/armv7/plat_priv_cbar.c", 296 "arch/armv7/plat_vexpress.c", 297 "arch/armv7/plat_vexpress_consts.c", 298 "arch/armv7/startup_arch.c", 299 "arch/armv7/syscall.c", 300 "arch/arm/debug.c", 301 "arch/arm/exec.c", 302 "arch/arm/exn.c", 303 "arch/arm/gic.c", 304 "arch/arm/gdb_arch.c", 305 "arch/arm/irq.c", 306 "arch/arm/kputchar.c", 307 "arch/arm/misc.c", 308 "arch/arm/multiboot.c", 309 "arch/arm/pl011.c" 310 ], 311 mackerelDevices = [ "arm", 312 "cpuid_arm", 313 "pl011_uart", 314 "pl130_gic", 315 "cortex_a9_gt", 316 "cortex_a9_scu" 317 ], 318 addLibraries = [ "elf" ] 319 }, 320 -- 321 -- TI OMAP44xx-series dual-core Cortex-A9 SoC 322 -- 323 bootDriver { 324 target = "omap44xx", 325 architectures = [ "armv7" ], 326 assemblyFiles = [ "arch/armv7/boot.S" ], 327 cFiles = [ 328 "logging.c", 329 "arch/armv7/boot_driver.c", 330 "arch/armv7/gdb_arch.c", 331 "arch/armv7/paging_init.c", 332 "arch/armv7/plat_omap44xx_boot.c", 333 "arch/armv7/plat_omap44xx_consts.c", 334 "arch/arm/gdb_arch.c", 335 "arch/arm/kputchar.c", 336 "arch/arm/misc.c", 337 "arch/arm/multiboot.c", 338 "arch/arm/omap_uart.c" 339 ] ++ boot_c, 340 mackerelDevices = [ "arm", 341 "cpuid_arm", 342 "omap/omap44xx_cortexa9_wugen", 343 "omap/omap44xx_uart3" 344 ], 345 addLibraries = [ ] 346 }, 347 cpuDriver { 348 target = "omap44xx", 349 architectures = [ "armv7" ], 350 assemblyFiles = [ "arch/armv7/exceptions.S", 351 "arch/armv7/set_stack_for_mode.S", 352 "arch/armv7/bsp_start.S", 353 "arch/armv7/cpu_start.S" 354 ], 355 cFiles = [ 356 "arch/armv7/a9_gt.c", 357 "arch/armv7/a9_scu.c", 358 "arch/armv7/boot_protocol.c", 359 "arch/armv7/gdb_arch.c", 360 "arch/armv7/init.c", 361 "arch/armv7/dispatch.c", 362 "arch/armv7/paging.c", 363 "arch/armv7/plat_a9mpcore.c", 364 "arch/armv7/plat_id.c", 365 "arch/armv7/plat_omap44xx.c", 366 "arch/armv7/plat_omap44xx_consts.c", 367 "arch/armv7/plat_priv_cbar.c", 368 "arch/armv7/startup_arch.c", 369 "arch/armv7/syscall.c", 370 "arch/arm/debug.c", 371 "arch/arm/exec.c", 372 "arch/arm/gdb_arch.c", 373 "arch/arm/exn.c", 374 "arch/arm/gic.c", 375 "arch/arm/irq.c", 376 "arch/arm/kputchar.c", 377 "arch/arm/misc.c", 378 "arch/arm/multiboot.c", 379 "arch/arm/omap_uart.c" 380 ], 381 mackerelDevices = [ "arm", 382 "cpuid_arm", 383 "pl130_gic", 384 "cortex_a9_pit", 385 "cortex_a9_gt", 386 "cortex_a9_scu", 387 "omap/omap44xx_uart3", 388 "omap/omap44xx_id", 389 "omap/omap44xx_emif", 390 "omap/omap44xx_sysctrl_padconf_core", 391 "omap/omap44xx_sysctrl_padconf_wkup", 392 "omap/omap44xx_hsusbhost", 393 "omap/omap44xx_usbtllhs_config", 394 "omap/omap44xx_scrm", 395 "omap/omap44xx_ehci", 396 "omap/omap44xx_ckgen_prm", 397 "omap/omap44xx_ckgen_cm1", 398 "omap/omap44xx_l4per_cm2", 399 "omap/omap44xx_l3init_cm2", 400 "omap/omap44xx_spinlock", 401 "omap/omap44xx_gpio" 402 ], 403 addLibraries = [ "elf" ] 404 }, 405 -- 406 -- Xilinx Zynq7000-series dual-core Cortex-A9 SoC 407 -- 408 bootDriver { 409 target = "zynq7", 410 architectures = [ "armv7" ], 411 assemblyFiles = [ "arch/armv7/boot.S" ], 412 cFiles = [ 413 "logging.c", 414 "arch/armv7/boot_driver.c", 415 "arch/armv7/gdb_arch.c", 416 "arch/armv7/paging_init.c", 417 "arch/armv7/plat_basic_boot.c", 418 "arch/armv7/plat_zynq7_consts.c", 419 "arch/arm/gdb_arch.c", 420 "arch/arm/kputchar.c", 421 "arch/arm/misc.c", 422 "arch/arm/multiboot.c", 423 "arch/arm/zynq_uart.c" 424 ] ++ boot_c, 425 mackerelDevices = [ "arm", 426 "cpuid_arm", 427 "zynq7/zynq_uart" 428 ], 429 addLibraries = [ "elf" ] 430 }, 431 cpuDriver { 432 target = "zynq7", 433 architectures = [ "armv7" ], 434 assemblyFiles = [ "arch/armv7/exceptions.S", 435 "arch/armv7/set_stack_for_mode.S", 436 "arch/armv7/bsp_start.S", 437 "arch/armv7/cpu_start.S" 438 ], 439 cFiles = [ 440 "arch/armv7/a9_gt.c", 441 "arch/armv7/a9_scu.c", 442 "arch/armv7/boot_protocol.c", 443 "arch/armv7/gdb_arch.c", 444 "arch/armv7/init.c", 445 "arch/armv7/dispatch.c", 446 "arch/armv7/paging.c", 447 "arch/armv7/plat_a9mpcore.c", 448 "arch/armv7/plat_id.c", 449 "arch/armv7/plat_priv_cbar.c", 450 "arch/armv7/plat_zynq7.c", 451 "arch/armv7/plat_zynq7_consts.c", 452 "arch/armv7/startup_arch.c", 453 "arch/armv7/syscall.c", 454 "arch/arm/debug.c", 455 "arch/arm/gdb_arch.c", 456 "arch/arm/exec.c", 457 "arch/arm/exn.c", 458 "arch/arm/gic.c", 459 "arch/arm/irq.c", 460 "arch/arm/kputchar.c", 461 "arch/arm/misc.c", 462 "arch/arm/multiboot.c", 463 "arch/arm/zynq_uart.c" 464 ], 465 mackerelDevices = [ "arm", 466 "cpuid_arm", 467 "pl130_gic", 468 "cortex_a9_pit", 469 "cortex_a9_gt", 470 "cortex_a9_scu", 471 "zynq7/zynq_uart", 472 "zynq7/zynq_slcr" 473 ], 474 addLibraries = [ "elf", "cpio" ] 475 }, 476 477 -- 478 -- Applied Micro APM88xxxx series SoC, 479 -- 480 cpuDriver { 481 target = "apm88xxxx", 482 architectures = [ "armv8" ], 483 assemblyFiles = [ 484 "arch/armv8/sysreg.S", 485 "arch/armv8/exceptions.S", 486 "arch/armv8/smc_hvc.S" 487 ], 488 cFiles = [ 489 "arch/arm/misc.c", 490 "arch/arm/kputchar.c", 491 "arch/arm/gdb_arch.c", 492 "arch/armv8/plat_apm88xxxx.c", 493 "arch/armv8/plat_apm88xxxx_consts.c", 494 "arch/armv8/init.c", 495 "arch/armv8/gdb_arch.c", 496 "arch/armv8/gic_v2.c", 497 ----- 498 "arch/armv8/kernel_multiboot2.c", 499 "arch/armv8/dispatch.c", 500 "arch/armv8/exec.c", 501 "arch/armv8/psci.c", 502 "arch/armv8/exn.c", 503 "arch/armv8/paging.c", 504 "arch/armv8/startup_arch.c", 505 "arch/armv8/syscall.c", 506 "arch/armv8/timers.c", 507 "arch/arm/debug.c", 508 "arch/arm/gic.c", 509 "arch/arm/irq.c" 510 ], 511 mackerelDevices = [ 512 "arm", 513 "armv8", 514 "gic_v3_dist", 515 "gic_v3_redist", 516 "gic_v2_cpu", 517 "armv8/armv8_cache_ctrl", 518 "pl130_gic", 519 "arm_icp_pit", 520 "apm88xxxx/apm88xxxx_pc16550" 521 ], 522 addLibraries = [ 523 "elf", 524 "cpio" 525 ] 526 }, 527 528 -- 529 -- ARM Virtual Machine Cortex-A57 ARMv8-A, (FVP) 530 -- 531 cpuDriver { 532 target = "a57_fvp", 533 architectures = [ "armv8" ], 534 assemblyFiles = [ 535 "arch/armv8/sysreg.S", 536 "arch/armv8/exceptions.S", 537 "arch/armv8/smc_hvc.S" 538 ], 539 cFiles = [ 540 "arch/arm/misc.c", 541 "arch/arm/pl011.c", 542 "arch/arm/kputchar.c", 543 "arch/arm/gdb_arch.c", 544 "arch/armv8/plat_arm_vm.c", 545 "arch/armv8/plat_arm_vm_consts.c", 546 "arch/armv8/init.c", 547 "arch/armv8/gic_v3.c", 548 "arch/armv8/gdb_arch.c", 549 ----- 550 "arch/armv8/kernel_multiboot2.c", 551 "arch/armv8/dispatch.c", 552 "arch/armv8/exec.c", 553 "arch/armv8/exn.c", 554 "arch/armv8/psci.c", 555 "arch/armv8/paging.c", 556 "arch/armv8/startup_arch.c", 557 "arch/armv8/syscall.c", 558 "arch/armv8/timers.c", 559 "arch/arm/debug.c", 560 "arch/arm/irq.c" 561 ], 562 mackerelDevices = [ 563 "arm", 564 "armv8", 565 "armv8/armv8_cache_ctrl", 566 "arm_icp_pit", 567 "gic_v3_dist", 568 "gic_v3_redist", 569 "pl011_uart" 570 ], 571 addLibraries = [ 572 "elf", 573 "cpio" 574 ] 575 }, 576 577 -- 578 -- ARM Virtual Machine Cortex-A57 ARMv8-A, (qemu) 579 -- 580 cpuDriver { 581 target = "a57_qemu", 582 architectures = [ "armv8" ], 583 assemblyFiles = [ 584 "arch/armv8/sysreg.S", 585 "arch/armv8/exceptions.S", 586 "arch/armv8/smc_hvc.S" 587 ], 588 cFiles = [ 589 "arch/arm/misc.c", 590 "arch/arm/pl011.c", 591 "arch/arm/kputchar.c", 592 "arch/arm/gdb_arch.c", 593 "arch/armv8/plat_qemu.c", 594 "arch/armv8/init.c", 595 "arch/armv8/gic_v3.c", 596 "arch/armv8/gdb_arch.c", 597 ----- 598 "arch/armv8/kernel_multiboot2.c", 599 "arch/armv8/dispatch.c", 600 "arch/armv8/exec.c", 601 "arch/armv8/exn.c", 602 "arch/armv8/psci.c", 603 "arch/armv8/paging.c", 604 "arch/armv8/startup_arch.c", 605 "arch/armv8/syscall.c", 606 "arch/armv8/timers.c", 607 "arch/arm/debug.c", 608 "arch/arm/irq.c" 609 ], 610 mackerelDevices = [ 611 "arm", 612 "armv8", 613 "armv8/armv8_cache_ctrl", 614 "arm_icp_pit", 615 "gic_v3_dist", 616 "gic_v3_redist", 617 "pl011_uart" 618 ], 619 addLibraries = [ 620 "elf", 621 "cpio" 622 ] 623 }, 624 625 -- 626 -- Cavium ThunderX CN88xx series SoC, 627 -- 628 bootDriver { 629 target = "armv8_generic", 630 architectures = [ "armv8" ], 631 assemblyFiles = [ "arch/armv8/boot/boot_entry.S" ], 632 cFiles = [ "arch/armv8/boot/boot_generic.c" ], 633 mackerelDevices = [ "armv8" ] 634 }, 635 cpuDriver { 636 target = "cn88xx", 637 architectures = [ "armv8" ], 638 assemblyFiles = [ 639 "arch/armv8/sysreg.S", 640 "arch/armv8/exceptions.S", 641 "arch/armv8/smc_hvc.S" 642 ], 643 cFiles = [ 644 "arch/arm/misc.c", 645 "arch/arm/pl011.c", 646 "arch/arm/kputchar.c", 647 "arch/arm/gdb_arch.c", 648 "arch/armv8/plat_cn88xx.c", 649 "arch/armv8/init.c", 650 "arch/armv8/gic_v3.c", 651 "arch/armv8/gdb_arch.c", 652 ----- 653 "arch/armv8/kernel_multiboot2.c", 654 "arch/armv8/dispatch.c", 655 "arch/armv8/exec.c", 656 "arch/armv8/exn.c", 657 "arch/armv8/psci.c", 658 "arch/armv8/paging.c", 659 "arch/armv8/startup_arch.c", 660 "arch/armv8/syscall.c", 661 "arch/armv8/timers.c", 662 "arch/arm/debug.c", 663 "arch/arm/irq.c" 664 ], 665 mackerelDevices = [ 666 "arm", 667 "armv8", 668 "gic_v3_dist", 669 "gic_v3_redist", 670 "armv8/armv8_cache_ctrl", 671 "pl011_uart", 672 "pl130_gic", 673 "arm_icp_pit" 674 ], 675 addLibraries = [ 676 "elf", 677 "cpio" 678 ] 679 } 680 ] 681