diff options
Diffstat (limited to 'firmware/kernel.c')
-rw-r--r-- | firmware/kernel.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/firmware/kernel.c b/firmware/kernel.c index 6166437282..a353c4bdc9 100644 --- a/firmware/kernel.c +++ b/firmware/kernel.c | |||
@@ -25,7 +25,9 @@ | |||
25 | #include "system.h" | 25 | #include "system.h" |
26 | #include "panic.h" | 26 | #include "panic.h" |
27 | 27 | ||
28 | #if (CONFIG_CPU != PP5020) || !defined(BOOTLOADER) | ||
28 | long current_tick = 0; | 29 | long current_tick = 0; |
30 | #endif | ||
29 | 31 | ||
30 | static void (*tick_funcs[MAX_NUM_TICK_TASKS])(void); | 32 | static void (*tick_funcs[MAX_NUM_TICK_TASKS])(void); |
31 | 33 | ||
@@ -48,7 +50,7 @@ void kernel_init(void) | |||
48 | 50 | ||
49 | num_queues = 0; | 51 | num_queues = 0; |
50 | memset(all_queues, 0, sizeof(all_queues)); | 52 | memset(all_queues, 0, sizeof(all_queues)); |
51 | 53 | ||
52 | tick_start(1000/HZ); | 54 | tick_start(1000/HZ); |
53 | } | 55 | } |
54 | 56 | ||
@@ -319,6 +321,7 @@ void tick_start(unsigned int interval_in_ms) | |||
319 | 321 | ||
320 | #define USECS_PER_INT 0x2710 | 322 | #define USECS_PER_INT 0x2710 |
321 | 323 | ||
324 | #ifndef BOOTLOADER | ||
322 | void TIMER1(void) | 325 | void TIMER1(void) |
323 | { | 326 | { |
324 | int i; | 327 | int i; |
@@ -336,9 +339,11 @@ void TIMER1(void) | |||
336 | current_tick++; | 339 | current_tick++; |
337 | wake_up_thread(); | 340 | wake_up_thread(); |
338 | } | 341 | } |
342 | #endif | ||
339 | 343 | ||
340 | void tick_start(unsigned int interval_in_ms) | 344 | void tick_start(unsigned int interval_in_ms) |
341 | { | 345 | { |
346 | #ifndef BOOTLOADER | ||
342 | /* TODO: use interval_in_ms to set timer periode */ | 347 | /* TODO: use interval_in_ms to set timer periode */ |
343 | (void)interval_in_ms; | 348 | (void)interval_in_ms; |
344 | PP5020_TIMER1 = 0x0; | 349 | PP5020_TIMER1 = 0x0; |
@@ -347,6 +352,10 @@ void tick_start(unsigned int interval_in_ms) | |||
347 | PP5020_TIMER1 = 0xc0000000 | USECS_PER_INT; | 352 | PP5020_TIMER1 = 0xc0000000 | USECS_PER_INT; |
348 | /* unmask interrupt source */ | 353 | /* unmask interrupt source */ |
349 | PP5020_CPU_INT_EN = PP5020_TIMER1_MASK; | 354 | PP5020_CPU_INT_EN = PP5020_TIMER1_MASK; |
355 | #else | ||
356 | /* We don't enable interrupts in the bootloader */ | ||
357 | (void)interval_in_ms; | ||
358 | #endif | ||
350 | } | 359 | } |
351 | 360 | ||
352 | #endif | 361 | #endif |