8 static void cpuboot(Mword, unsigned);
9 static void l2cache_setup(unsigned, unsigned, unsigned, Mword, Mword, Mword);
12 // ------------------------------------------------------------------------
13 INTERFACE [exynos && arm_em_ns && arm_smif_mc]:
17 EXTENSION class Exynos_smc
36 static int call(Command cmd, Mword a1 = 0, Mword a2 = 0, Mword a3 = 0)
38 register Mword _cmd asm("r0") = cmd;
39 register Mword _a1 asm("r1") = a1;
40 register Mword _a2 asm("r2") = a2;
41 register Mword _a3 asm("r3") = a3;
43 asm volatile("dmb \t\n" // Errata 766421
45 "dmb \t\n" // Errata 766421
47 : "r" (_cmd), "r" (_a1), "r" (_a2), "r" (_a3)
53 // ------------------------------------------------------------------------
54 IMPLEMENTATION [exynos && arm_em_ns && arm_smif_mc]:
56 #include "mem_space.h"
62 Exynos_smc::cpuboot(Mword, unsigned cpu)
69 Exynos_smc::l2cache_setup(unsigned tag_lat, unsigned data_lat,
70 unsigned prefctrl, Mword setup2val,
71 Mword aux_val, Mword aux_mask)
73 call(L2x0setup1, tag_lat, data_lat, prefctrl);
74 call(L2x0setup2, setup2val, aux_val, aux_mask);
79 // ------------------------------------------------------------------------
80 IMPLEMENTATION [exynos && !arm_em_ns]:
84 Exynos_smc::cpuboot(Mword, unsigned)
89 Exynos_smc::l2cache_setup(unsigned, unsigned, unsigned, Mword, Mword, Mword)