merge
authorKornilios Kourtis <kkourt@inf.ethz.ch>
Mon, 16 Sep 2013 16:10:28 +0000 (18:10 +0200)
committerKornilios Kourtis <kkourt@inf.ethz.ch>
Mon, 16 Sep 2013 16:10:28 +0000 (18:10 +0200)
1  2 
devices/Hakefile
hake/Config.hs.template
hake/symbolic_targets.mk
kernel/Hakefile
kernel/arch/omap44xx/init.c

             "omap/omap44xx_ckgen_cm2",
             "omap/omap44xx_l4per_cm2",
             "omap/omap44xx_sysctrl_padconf_core",
 +           "omap/omap44xx_sysctrl_padconf_wkup",
 +           "omap/omap44xx_hsusbhost",
 +           "omap/omap44xx_usbtllhs_config",
 +           "omap/omap44xx_scrm",
 +           "omap/omap44xx_ehci",
 +           "omap/omap44xx_ckgen_prm", 
 +           "omap/omap44xx_l4per_cm2", 
-            "omap/omap44xx_l3init_cm2"
++           "omap/omap44xx_l3init_cm2",
+            "omap/omap44xx_spinlock",
+            "omap/omap44xx_cortex_m3_nvic"
           ], arch <- allArchitectures
  ] ++
  
@@@ -65,9 -65,14 +65,14 @@@ support_qemu_networking  = Fals
  -- armv7 platform to build for
  -- Currently available: gem5, pandaboard
  armv7_platform :: String
 -armv7_platform = "gem5"
 --- armv7_platform = "pandaboard"
 +--armv7_platform = "gem5"
 +armv7_platform = "pandaboard"
  
+ -- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
+ -- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
+ heteropanda :: Bool
+ heteropanda = False
  -- enable network tracing
  trace_network_subsystem :: Bool
  trace_network_subsystem = False
Simple merge
diff --cc kernel/Hakefile
@@@ -366,18 -368,46 +368,56 @@@ le
                           "omap/omap_uart", 
                           "omap/omap44xx_id", 
                           "omap/omap44xx_emif",
 +                         "omap/omap44xx_gpio",
 +                         "omap/omap44xx_sysctrl_padconf_core",
 +                         "omap/omap44xx_sysctrl_padconf_wkup",
 +                         "omap/omap44xx_hsusbhost",
 +                         "omap/omap44xx_usbtllhs_config",
 +                         "omap/omap44xx_scrm",
 +                         "omap/omap44xx_ehci",
 +                         "omap/omap44xx_ckgen_prm", 
 +                         "omap/omap44xx_l4per_cm2", 
-                          "omap/omap44xx_l3init_cm2"
-                          ],
++                         "omap/omap44xx_l3init_cm2",
+                          "omap/omap44xx_spinlock",
+                          "omap/omap44xx_mmu",
+                          "omap/omap44xx_gpio"],
       addLibraries = [ "elf", "cpio" ]
-      }                            
-   
+      },                            
+   --
+   -- Broadcom OMAP44xx-series dual-core Cortex-M3 Coprocessor,
+   -- used to run a heterogenous system on the pandaboard 
+   --
+   cpuDriver {
+      target = "omap44xx",
+      architectures = [ "armv7-m" ],
+      assemblyFiles = [ "arch/armv7-m/boot.S",
+                        "arch/armv7-m/exceptions.S" ],
+      cFiles = [ 
+                 "arch/armv7-m/exec.c", 
+                 "arch/arm/misc.c", 
+                 "arch/armv7-m/exn.c", 
+                 "arch/arm/phys_mmap.c",
+                 "arch/armv7/kludges.c", 
+                 "arch/armv7/multiboot.c", 
+                 "arch/armv7/syscall.c", 
+                 "arch/armv7-m/init.c", 
+                 "arch/armv7-m/omap.c", 
+                 "arch/armv7-m/paging.c", 
+                 "arch/omap44xx/startup_arch.c", 
+                 "arch/omap44xx/omap_uart.c", 
+ --                "arch/omap44xx/start_aps.c", 
+                 "arch/armv7/kputchar.c", 
+                 "arch/omap44xx/spinlock.c"
+                 ],
+      mackerelDevices = [ "arm", 
+                          "omap/omap44xx_cortex_m3_nvic", 
+                          "omap/omap_uart", 
+                          "omap/omap44xx_id", 
+                          "omap/omap44xx_emif",
+                          "omap/omap44xx_gpio",
+                          "omap/omap44xx_mmu",
+                          "omap/omap44xx_spinlock"],
+      addLibraries = [ "elf", "cpio" ]
+      }
    ]
@@@ -740,11 -219,12 +742,12 @@@ static void __attribute__ ((noinline,no
  
      //initialize console
      serial_init(serial_console_port);
+     spinlock_init();
  
      printf("Barrelfish CPU driver starting on ARMv7 OMAP44xx"
 -           " Board id 0x%08"PRIx32"\n", hal_get_board_id());
 +            " Board id 0x%08"PRIx32"\n", hal_get_board_id());
      printf("The address of paging_map_kernel_section is %p\n",
 -           paging_map_kernel_section);
 +            paging_map_kernel_section);
  
      errval = serial_debug_init();
      if (err_is_fail(errval)) {