driver interface to OS implemented and tested

This commit is contained in:
Markus Fröschle
2013-12-22 14:16:59 +00:00
parent c6e5540ee3
commit 94ff279838
22 changed files with 704 additions and 162 deletions

View File

@@ -25,9 +25,9 @@
#include <stdbool.h>
#include "MCF5475.h"
#include "MCF5475_SLT.h"
#include "startcf.h"
#include "sysinit.h"
#include "util.h"
#include "cache.h"
#include "bas_printf.h"
#include "bas_string.h"
@@ -56,8 +56,6 @@ extern uint8_t _EMUTOS[];
extern uint8_t _EMUTOS_SIZE[];
#define EMUTOS_SIZE ((uint32_t)_EMUTOS_SIZE) /* size of EmuTOS, in bytes */
#define NOP() __asm__ __volatile__("nop\n\t" : : : "memory") /* need this to force pipeline sync after MMUCR write */
/*
* check if it is possible to transfer data to PIC
*/

View File

@@ -40,7 +40,6 @@
.extern _video_tlb
.extern _video_sbt
.extern _flush_and_invalidate_caches
.extern _xhdi_sd_install /* trap #0 exception vector for installation of xhdi SD card driver */
/* PCI interrupt handlers */
.extern _irq5_handler
@@ -270,9 +269,9 @@ init_vec_loop:
lea access(pc),a1 // set illegal access exception handler
move.l a1,0x08(a0)
// trap #0 (without any parameters for now) is used to provide BaS' XHDI
// routine address to EmuTOS.
lea _xhdi_sd_install,a1
.extern _get_bas_drivers
// trap #0 (without any parameters for now) is used to provide BaS' driver addresses to the OS
lea _get_bas_drivers(pc),a1
move.l a1,0x80(a0) // trap #0 exception vector
#ifdef MACHINE_FIREBEE
@@ -439,7 +438,7 @@ zd_end:
move.l (a7)+,d0
move.l (a7)+,a0
rte
#ifdef _NOT_USED_
linea:
move.w #0x2700,sr // disable interrupt

View File

@@ -1105,13 +1105,15 @@ void initialize_hardware(void)
dvi_on();
#endif /* MACHINE_FIREBEE */
init_pci();
/* do not try to init USB for now on the Firebee, it hangs the machine */
#ifndef MACHINE_FIREBEE
init_usb();
#endif
#if MACHINE_FIREBEE
init_ac97();
#endif /* MACHINE_FIREBEE */
//hexdump(0x6a000000, 8192);
xprintf("initialize and test DMA\r\n");
dma_init();
/* jump into the BaS */