git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
hot fix: remove outdated objcpy
[lunaix-os.git]
/
lunaix-os
/
hal
/
timer
/
apic_timer.c
diff --git
a/lunaix-os/hal/timer/apic_timer.c
b/lunaix-os/hal/timer/apic_timer.c
index db3e700d004960281d8b000a6240e1e5f9b2ef2a..97f97440942ee7b69126712324561de4caf8e842 100644
(file)
--- a/
lunaix-os/hal/timer/apic_timer.c
+++ b/
lunaix-os/hal/timer/apic_timer.c
@@
-1,7
+1,7
@@
#include <hal/apic_timer.h>
#include <hal/apic_timer.h>
-#include <hal/hwrtc.h>
#include <hal/hwtimer.h>
#include <hal/hwtimer.h>
+#include <lunaix/clock.h>
#include <lunaix/compiler.h>
#include <lunaix/isrm.h>
#include <lunaix/spike.h>
#include <lunaix/compiler.h>
#include <lunaix/isrm.h>
#include <lunaix/spike.h>
@@
-109,13
+109,13
@@
apic_timer_init(struct hwtimer* timer, u32_t hertz, timer_tick_cb timer_cb)
#ifdef __LUNAIXOS_DEBUG__
if (frequency < 1000) {
#ifdef __LUNAIXOS_DEBUG__
if (frequency < 1000) {
-
kprintf(KWARN
"Frequency too low. Millisecond timer might be dodgy.");
+
WARN(
"Frequency too low. Millisecond timer might be dodgy.");
}
#endif
apic_timer_done = 0;
}
#endif
apic_timer_done = 0;
-
primary_rtc->cls_mask(primary_
rtc);
+
sysrtc->cls_mask(sys
rtc);
apic_write_reg(APIC_TIMER_ICR, APIC_BASETICKS); // start APIC timer
// enable interrupt, just for our RTC start ticking!
apic_write_reg(APIC_TIMER_ICR, APIC_BASETICKS); // start APIC timer
// enable interrupt, just for our RTC start ticking!
@@
-125,26
+125,25
@@
apic_timer_init(struct hwtimer* timer, u32_t hertz, timer_tick_cb timer_cb)
cpu_disable_interrupt();
cpu_disable_interrupt();
-
primary_rtc->set_mask(primary_
rtc);
+
sysrtc->set_mask(sys
rtc);
- base_freq =
primary_rtc->get_counts(primary_
rtc);
- base_freq = APIC_BASETICKS / base_freq *
primary_
rtc->base_freq;
+ base_freq =
sysrtc->get_counts(sys
rtc);
+ base_freq = APIC_BASETICKS / base_freq *
sys
rtc->base_freq;
assert_msg(base_freq, "Fail to initialize timer (NOFREQ)");
assert_msg(base_freq, "Fail to initialize timer (NOFREQ)");
- kprintf(
KINFO
"hw: %u Hz; os: %u Hz", base_freq, frequency);
+ kprintf("hw: %u Hz; os: %u Hz", base_freq, frequency);
// cleanup
isrm_ivfree(iv_timer);
// cleanup
isrm_ivfree(iv_timer);
+ ticks_t tphz = base_freq / frequency;
+ timer->base_freq = base_freq;
+ apic_write_reg(APIC_TIMER_ICR, tphz);
+
apic_write_reg(
APIC_TIMER_LVT,
LVT_ENTRY_TIMER(isrm_ivexalloc(apic_timer_tick_isr), LVT_TIMER_PERIODIC));
apic_write_reg(
APIC_TIMER_LVT,
LVT_ENTRY_TIMER(isrm_ivexalloc(apic_timer_tick_isr), LVT_TIMER_PERIODIC));
-
- timer->base_freq = base_freq;
-
- ticks_t tphz = base_freq / frequency;
- apic_write_reg(APIC_TIMER_ICR, tphz);
}
struct hwtimer*
}
struct hwtimer*