Squash commits for public release

This commit is contained in:
2025-02-12 09:54:05 -05:00
commit 7118adc514
1108 changed files with 80873 additions and 0 deletions

View File

@@ -0,0 +1,10 @@
#ifndef _KERNEL_DRIVERS_TIMER_ARM_ARM64_TIMER_H
#define _KERNEL_DRIVERS_TIMER_ARM_ARM64_TIMER_H
#include <libkern/types.h>
#include <time/time_manager.h>
void arm64_timer_rearm();
void arm64_timer_install();
#endif // _KERNEL_DRIVERS_TIMER_ARM_ARM64_TIMER_H

View File

@@ -0,0 +1,34 @@
#ifndef _KERNEL_DRIVERS_TIMER_ARM_SP804_H
#define _KERNEL_DRIVERS_TIMER_ARM_SP804_H
#include <drivers/driver_manager.h>
#include <libkern/mask.h>
#include <libkern/types.h>
#include <time/time_manager.h>
#define SP804_CLK_HZ 1000000
// https://developer.arm.com/documentation/ddi0271/d/programmer-s-model/register-descriptions/control-register--timerxcontrol?lang=en
enum SP804ControlMasks {
MASKDEFINE(SP804_ONE_SHOT, 0, 1),
MASKDEFINE(SP804_32_BIT, 1, 1),
MASKDEFINE(SP804_PRESCALE, 2, 2),
MASKDEFINE(SP804_INTS_ENABLED, 5, 1),
MASKDEFINE(SP804_PERIODIC, 6, 1),
MASKDEFINE(SP804_ENABLE, 7, 1),
};
struct sp804_registers {
uint32_t load;
uint32_t value;
uint32_t control;
uint32_t intclr;
uint32_t ris;
uint32_t mis;
uint32_t bg_load;
};
typedef struct sp804_registers sp804_registers_t;
void sp804_install();
#endif //_KERNEL_DRIVERS_TIMER_ARM_SP804_H