equal
deleted
inserted
replaced
18 #include <arm.h> |
18 #include <arm.h> |
19 #include <arm_gic.h> |
19 #include <arm_gic.h> |
20 #include <arm_scu.h> |
20 #include <arm_scu.h> |
21 #include <arm_tmr.h> |
21 #include <arm_tmr.h> |
22 |
22 |
23 extern "C" { |
|
24 extern SVariantInterfaceBlock* VIB; |
|
25 } |
|
26 |
23 |
27 struct SAPBootPage : public SFullArmRegSet |
24 struct SAPBootPage : public SFullArmRegSet |
28 { |
25 { |
29 volatile T_UintPtr iAPBootPtr[KMaxCpus]; |
26 volatile T_UintPtr iAPBootPtr[KMaxCpus]; |
30 volatile T_UintPtr iBootFlags; |
27 volatile T_UintPtr iBootFlags; |
92 |
89 |
93 arm_dsb(); // ensure writes to uncached memory visible |
90 arm_dsb(); // ensure writes to uncached memory visible |
94 |
91 |
95 KickCpu(&bootPage.iAPBootPtr[a.iCpu], bp_phys); |
92 KickCpu(&bootPage.iAPBootPtr[a.iCpu], bp_phys); |
96 |
93 |
97 TUint32 n = TUint32(VIB->iMaxCpuClock >> 3); |
94 TUint32 n = TUint32(TheScheduler.iVIB->iMaxCpuClock >> 3); |
98 n = -n; |
95 n = -n; |
99 TUint32 b = 0; |
96 TUint32 b = 0; |
100 do { |
97 do { |
101 ++n; |
98 ++n; |
102 b = *pB; |
99 b = *pB; |