]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/arm/bsp/imx/pic-arm-imx51.cpp
Some minor fixes.
[l4.git] / kernel / fiasco / src / kern / arm / bsp / imx / pic-arm-imx51.cpp
1 INTERFACE [arm && pic_gic && (imx51 || imx53 || imx6)]:
2
3 #include "initcalls.h"
4 #include "gic.h"
5
6 INTERFACE [arm && pic_gic && (imx51 | imx53)]:
7
8 EXTENSION class Pic
9 {
10   enum { Gic_sz = 7 };
11 };
12
13 INTERFACE [arm && pic_gic && imx6]:
14
15 EXTENSION class Pic
16 {
17   enum { Gic_sz = 8 };
18 };
19
20 // ------------------------------------------------------------------------
21 IMPLEMENTATION [arm && pic_gic && (imx51 || imx53 || imx6)]:
22
23 #include "irq_mgr_multi_chip.h"
24 #include "kmem.h"
25
26 PUBLIC static FIASCO_INIT
27 void
28 Pic::init()
29 {
30   typedef Irq_mgr_multi_chip<Gic_sz> M;
31
32   M *m = new Boot_object<M>(1);
33
34   gic.construct(Kmem::mmio_remap(Mem_layout::Gic_cpu_phys_base),
35                 Kmem::mmio_remap(Mem_layout::Gic_dist_phys_base));
36   m->add_chip(0, gic, gic->nr_irqs());
37
38   Irq_mgr::mgr = m;
39 }
40
41 // ------------------------------------------------------------------------
42 IMPLEMENTATION [arm && pic_gic && mp && imx6]:
43
44 PUBLIC static
45 void Pic::init_ap(Cpu_number, bool resume)
46 {
47   gic->init_ap(resume);
48 }