X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=main.c;h=c8193f4b874b9e33252975a505b19357808f848d;hb=bf20e0275f40af8a6c7db3bcbfbb20d930ff40a5;hp=c75712b16c569ba6bec2987d87471b307f0d8e94;hpb=d07b8474abba58f2f6894b6f04b9375abce02375;p=ppcskel.git diff --git a/main.c b/main.c index c75712b..c8193f4 100644 --- a/main.c +++ b/main.c @@ -25,6 +25,7 @@ Copyright (C) 2009 John Kelley #include "input.h" #include "console.h" #include "ohci.h" +#include "irq.h" #define MINIMUM_MINI_VERSION 0x00010001 @@ -83,8 +84,10 @@ int main(void) exception_init(); dsp_reset(); - // clear interrupt mask - write32(0x0c003004, 0); + irq_initialize(); + irq_bw_enable(BW_PI_IRQ_RESET); + irq_bw_enable(BW_PI_IRQ_HW); //hollywood pic + irq_hw_enable(IRQ_OHCI0); ipc_initialize(); ipc_slowping(); @@ -92,12 +95,13 @@ int main(void) gecko_init(); input_init(); init_fb(vmode); - ohci_init(); VIDEO_Init(vmode); VIDEO_SetFrameBuffer(get_xfb()); VISetupEncoder(); + ohci_init(); + u32 version = ipc_getvers(); u16 mini_version_major = version >> 16 & 0xFFFF; u16 mini_version_minor = version & 0xFFFF; @@ -111,31 +115,18 @@ int main(void) ; // better ideas welcome! } + /* print_str_noscroll(112, 112, "ohai, world!\n"); - testOTP(); - printf("bye, world!\n"); + */ - // enable OHCI0 interrupt on hollywood-pic -#define HW_PPCIRQFLAG (0x0d800030) -#define HW_PPCIRQMASK (0x0d800034) - write32(HW_PPCIRQFLAG, ~0); - write32(HW_PPCIRQMASK, 1<<5); - // enable RESET and PIC (#14) interrupts on processor interface - write32(0x0c003004, (1<<1) | (1<<14)); -#define _CPU_ISR_Enable() \ - { register u32 _val = 0; \ - __asm__ __volatile__ ( \ - "mfmsr %0\n" \ - "ori %0,%0,0x8000\n" \ - "mtmsr %0" \ - : "=&r" ((_val)) : "0" ((_val)) \ - ); \ + while(1) { + // just to get sure we are still in this loop + //_CPU_ISR_Enable() // don't know why this is needed... + //udelay(100000); + //printf("x"); } - _CPU_ISR_Enable() - - while(1) {} return 0; }