version 1.3, 2008/07/20 23:49:23 |
version 1.4, 2008/07/22 15:36:08 |
|
|
/* |
/* |
|
* $Id$ |
|
*/ |
|
/* |
* Copyright (c) 2007, Kohsuke Ohtani |
* Copyright (c) 2007, Kohsuke Ohtani |
* All rights reserved. |
* All rights reserved. |
* |
* |
|
|
#define _CATS_PLATFORM_H |
#define _CATS_PLATFORM_H |
|
|
/* |
/* |
* Memory location |
* Memory locations. |
*/ |
*/ |
|
|
#define PAGE_OFFSET 0x00000000 |
#define PAGE_OFFSET 0x00000000 |
|
|
(((u_long)(addr) >= USER_BASE) && ((u_long)(addr) < USER_MAX)) |
(((u_long)(addr) >= USER_BASE) && ((u_long)(addr) < USER_MAX)) |
|
|
/* |
/* |
* Interrupt |
* Interrupt glue |
*/ |
*/ |
#define NIRQS 14 /* number of interrupt vectors */ |
#define NIRQS 32 /* number of interrupt vectors */ |
|
|
static __inline void |
static __inline void |
interrupt_enable(void) |
interrupt_enable(void) |
|
|
extern void clock_init(void); |
extern void clock_init(void); |
|
|
extern void diag_init(void); |
extern void diag_init(void); |
|
|
#ifdef CONFIG_DIAG_VBA |
|
static __inline void |
|
diag_print(char *buf) |
|
{ |
|
|
|
__asm__ __volatile__( |
|
"mov r0, %0\n\t" |
|
"swi 0xff0000\n\t" /* VBA emulator call */ |
|
: |
|
:"r" (buf) |
|
:"r0"); |
|
} |
|
|
|
#else |
|
extern void diag_print(char *); |
extern void diag_print(char *); |
#endif |
|
|
|
static __inline void |
static __inline void |
machine_idle(void) |
machine_idle(void) |
{ |
{ |
|
|
__asm__ __volatile__( |
|
"swi 0x20000\n\t" /* GBA BIOS call */ |
|
:::"r0", "r1", "r2", "r3"); |
|
} |
} |
|
|
static __inline void |
static __inline void |
machine_reset(void) |
machine_reset(void) |
{ |
{ |
|
|
__asm__ __volatile__( |
|
"swi 0\n\t" /* GBA BIOS call */ |
|
:::"r0", "r1", "r2", "r3"); |
|
} |
} |
|
|
extern void machine_init(void); |
extern void machine_init(void); |