]> rtime.felk.cvut.cz Git - l4.git/blobdiff - kernel/fiasco/src/kern/arm/bsp/tegra2/platform_control-arm-tegra2.cpp
update
[l4.git] / kernel / fiasco / src / kern / arm / bsp / tegra2 / platform_control-arm-tegra2.cpp
index 87d41da2223bb09a5fff5ef93999d1ec0898ab4c..5a95d6f4642873682f1adbf85397fb3a178190be 100644 (file)
@@ -7,10 +7,10 @@ EXTENSION class Platform_control
 private:
   enum
   {
-    Reset_vector_addr              = Mem_layout::Devices1_map_base + 0xf100,
-    Clk_rst_ctrl_clk_cpu_cmplx     = Mem_layout::Devices1_map_base + 0x604c,
-    Clk_rst_ctrl_rst_cpu_cmplx_clr = Mem_layout::Devices1_map_base + 0x6344,
-    Unhalt_addr                    = Mem_layout::Devices1_map_base + 0x7014,
+    Reset_vector_addr              = 0x6000f100,
+    Clk_rst_ctrl_clk_cpu_cmplx     = 0x6000604c,
+    Clk_rst_ctrl_rst_cpu_cmplx_clr = 0x60006344,
+    Unhalt_addr                    = 0x60007014,
   };
 
   static Mword _orig_reset_vector;
@@ -19,6 +19,7 @@ private:
 IMPLEMENTATION [arm && mp && tegra2]:
 
 #include "io.h"
+#include "kmem.h"
 #include <cstdlib>
 
 Mword Platform_control::_orig_reset_vector;
@@ -26,7 +27,7 @@ Mword Platform_control::_orig_reset_vector;
 PRIVATE static
 void Platform_control::reset_orig_reset_vector()
 {
-  Io::write<Mword>(_orig_reset_vector, Reset_vector_addr);
+  Io::write<Mword>(_orig_reset_vector, Kmem::mmio_remap(Reset_vector_addr));
 }
 
 PUBLIC static
@@ -34,20 +35,20 @@ void
 Platform_control::boot_ap_cpus(Address phys_reset_vector)
 {
   // remember original reset vector
-  _orig_reset_vector = Io::read<Mword>(Reset_vector_addr);
+  _orig_reset_vector = Io::read<Mword>(Kmem::mmio_remap(Reset_vector_addr));
 
   // set (temporary) new reset vector
-  Io::write<Mword>(phys_reset_vector, Reset_vector_addr);
+  Io::write<Mword>(phys_reset_vector, Kmem::mmio_remap(Reset_vector_addr));
 
   atexit(reset_orig_reset_vector);
 
   // clocks on other cpu
-  Mword r = Io::read<Mword>(Clk_rst_ctrl_clk_cpu_cmplx);
-  Io::write<Mword>(r & ~(1 << 9), Clk_rst_ctrl_clk_cpu_cmplx);
+  Mword r = Io::read<Mword>(Kmem::mmio_remap(Clk_rst_ctrl_clk_cpu_cmplx));
+  Io::write<Mword>(r & ~(1 << 9), Kmem::mmio_remap(Clk_rst_ctrl_clk_cpu_cmplx));
   Io::write<Mword>((1 << 13) | (1 << 9) | (1 << 5) | (1 << 1),
-                  Clk_rst_ctrl_rst_cpu_cmplx_clr);
+                  Kmem::mmio_remap(Clk_rst_ctrl_rst_cpu_cmplx_clr));
 
   // kick cpu1
-  Io::write<Mword>(0, Unhalt_addr);
+  Io::write<Mword>(0, Kmem::mmio_remap(Unhalt_addr));
 }