]> 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 #include "mmio_register_block.h"
6
7 class Kirkwood_reset
8 {
9 public:
10   enum
11   {
12     Mask_reg       = 0x20108,
13     Soft_reset_reg = 0x2010c,
14   };
15 };
16
17
18 void __attribute__ ((noreturn))
19 platform_reset(void)
20 {
21   Mmio_register_block r(Kmem::mmio_remap(Mem_layout::Reset_phys_base));
22   // enable software reset
23   r.write(1 << 2, Kirkwood_reset::Mask_reg);
24
25   // do software reset
26   r.write(1, Kirkwood_reset::Soft_reset_reg);
27
28   for (;;)
29     ;
30 }