]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/arm/bsp/kirkwood/reset-arm-kirkwood.cpp
update
[l4.git] / kernel / fiasco / src / kern / arm / bsp / kirkwood / reset-arm-kirkwood.cpp
1 IMPLEMENTATION [arm && kirkwood]:
2
3 #include "io.h"
4 #include "kmem.h"
5
6 class Kirkwood_reset
7 {
8 public:
9   enum
10   {
11     Mask_reg       = Mem_layout::Reset_map_base + 0x20108,
12     Soft_reset_reg = Mem_layout::Reset_map_base + 0x2010c,
13   };
14 };
15
16 // ------------------------------------------------------------------------
17 IMPLEMENTATION [arm && kirkwood]:
18
19 void __attribute__ ((noreturn))
20 platform_reset(void)
21 {
22   // enable software reset
23   Io::write(1 << 2, Kirkwood_reset::Mask_reg);
24
25   // do software reset
26   Io::write(1, Kirkwood_reset::Soft_reset_reg);
27
28   for (;;)
29     ;
30 }