Files
codezero/include/l4/platform/pb926/platform.h
2009-11-29 11:50:02 +05:30

48 lines
1.4 KiB
C

#ifndef __PB926_PLATFORM_H__
#define __PB926_PLATFORM_H__
/*
* Platform specific ties between drivers and generic APIs used by the kernel.
* E.g. system timer and console.
*
* Copyright (C) Bahadir Balban 2007
*/
#include INC_PLAT(offsets.h)
#include INC_GLUE(memlayout.h)
#include <l4/generic/capability.h>
#include <l4/generic/cap-types.h>
#include <l4/generic/resource.h>
#define PLATFORM_CONSOLE0_BASE PB926_UART0_VBASE
/* SP804 timer has TIMER1 at TIMER0 + 0x20 address */
#define PLATFORM_TIMER0_BASE PB926_TIMER01_VBASE
#define PLATFORM_SP810_BASE PB926_SYSCTRL_VBASE
#define PLATFORM_IRQCTRL_BASE PB926_VIC_VBASE
#define PLATFORM_SIRQCTRL_BASE PB926_SIC_VBASE
/* Total number of timers present in this platform */
#define TOTAL_TIMERS 4
#define PLATFORM_TIMER0 0
#define PLATFORM_TIMER1 1
#define PLATFORM_TIMER2 2
#define PLATFORM_TIMER3 3
/* Wrapping Plaform specific Physical Device Addresses */
#define PLATFORM_CONSOLE0_PHY_BASE PB926_UART0_BASE
#define PLATFORM_CONSOLE1_PHY_BASE PB926_UART1_BASE
#define PLATFORM_CONSOLE2_PHY_BASE PB926_UART2_BASE
#define PLATFORM_CONSOLE3_PHY_BASE PB926_UART3_BASE
#define PLATFORM_TIMER0_PHY_BASE PB926_TIMER01_BASE
#define PLATFORM_TIMER1_PHY_BASE PB926_TIMER23_BASE
int platform_setup_device_caps(struct kernel_resources *kres);
void platform_irq_enable(int irq);
void platform_irq_disable(int irq);
void timer_start(void);
#endif /* __PB926_PLATFORM_H__ */