m548x runs now cleanly (had to remove radeon files from make for now)

This commit is contained in:
Markus Fröschle
2013-12-28 16:51:00 +00:00
parent 3a7ff0aac0
commit 78c5873de0
7 changed files with 27 additions and 20 deletions

View File

@@ -1,7 +1,7 @@
#set disassemble-next-line on #set disassemble-next-line on
define tr define tr
target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3 #target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
#target remote | m68k-bdm-gdbserver pipe /dev/tblcf3 target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
#target dbug /dev/ttyS0 #target dbug /dev/ttyS0
#monitor bdm-reset #monitor bdm-reset
end end

View File

@@ -106,14 +106,15 @@ CSRCS= \
videl.c \ videl.c \
video.c \ video.c \
\ \
radeon_base.c \
radeon_vid.c \
radeon_accel.c \
radeon_cursor.c \
\ \
basflash.c \ basflash.c \
basflash_start.c basflash_start.c
#radeon_base.c \
#radeon_vid.c \
#radeon_accel.c \
#radeon_cursor.c \
ASRCS= \ ASRCS= \
startcf.S \ startcf.S \
printf_helper.S \ printf_helper.S \

View File

@@ -20,6 +20,9 @@ MEMORY
* target to copy BaS data segment to. 1M should be enough for now * target to copy BaS data segment to. 1M should be enough for now
*/ */
bas_ram (WX) : ORIGIN = SDRAM_START + SDRAM_SIZE - 0x00200000, LENGTH = 0x00100000 bas_ram (WX) : ORIGIN = SDRAM_START + SDRAM_SIZE - 0x00200000, LENGTH = 0x00100000
/*
* driver_ram is an uncached, reserved memory area for drivers (e.g. USB) that need this type of memory
*/
driver_ram (WX) : ORIGIN = SDRAM_START + SDRAM_SIZE - 0x00100000, LENGTH = 0x00100000 driver_ram (WX) : ORIGIN = SDRAM_START + SDRAM_SIZE - 0x00100000, LENGTH = 0x00100000
} }
@@ -79,9 +82,9 @@ SECTIONS
OBJDIR/video.o OBJDIR/video.o
OBJDIR/videl.o OBJDIR/videl.o
OBJDIR/radeon_base.o //OBJDIR/radeon_base.o
OBJDIR/radeon_accel.o //OBJDIR/radeon_accel.o
OBJDIR/radeon_cursor.o //OBJDIR/radeon_cursor.o
OBJDIR/xhdi_sd.o(.text) OBJDIR/xhdi_sd.o(.text)
OBJDIR/xhdi_interface.o(.text) OBJDIR/xhdi_interface.o(.text)

View File

@@ -38,6 +38,7 @@
#include "diskio.h" #include "diskio.h"
#include "ff.h" #include "ff.h"
#include "s19reader.h" #include "s19reader.h"
#include "mmu.h"
#include "dma.h" #include "dma.h"
#include "net.h" #include "net.h"
#include "eth.h" #include "eth.h"
@@ -55,7 +56,6 @@
#endif #endif
/* imported routines */ /* imported routines */
extern int mmu_init();
extern int vec_init(); extern int vec_init();
/* Symbols from the linker script */ /* Symbols from the linker script */
@@ -218,11 +218,11 @@ void enable_coldfire_interrupts()
MCF_INTC_ICR62 = 0x3f; /* interrupt level 7, interrupt priority 7 */ MCF_INTC_ICR62 = 0x3f; /* interrupt level 7, interrupt priority 7 */
*FPGA_INTR_ENABLE = 0xfe; /* enable int 1-7 */ *FPGA_INTR_ENABLE = 0xfe; /* enable int 1-7 */
#endif /* MACHINE_FIREBEE */
MCF_EPORT_EPIER = 0xfe; /* int 1-7 on */ MCF_EPORT_EPIER = 0xfe; /* int 1-7 on */
MCF_EPORT_EPFR = 0xff; /* clear all pending interrupts */ MCF_EPORT_EPFR = 0xff; /* clear all pending interrupts */
MCF_INTC_IMRL = 0xffffff00; /* int 1-7 on */ MCF_INTC_IMRL = 0xffffff00; /* int 1-7 on */
MCF_INTC_IMRH = 0xbffffffe; /* psc3 and timer 0 int on */ MCF_INTC_IMRH = 0xbffffffe; /* psc3 and timer 0 int on */
#endif
xprintf("finished\r\n"); xprintf("finished\r\n");
} }
@@ -420,8 +420,8 @@ void BaS(void)
xprintf("BaS initialization finished, enable interrupts\r\n"); xprintf("BaS initialization finished, enable interrupts\r\n");
enable_coldfire_interrupts(); enable_coldfire_interrupts();
set_ipl(0); //set_ipl(0);
network_init(); //network_init();
xprintf("call EmuTOS\r\n"); xprintf("call EmuTOS\r\n");
ROM_HEADER* os_header = (ROM_HEADER*)TOS; ROM_HEADER* os_header = (ROM_HEADER*)TOS;

View File

@@ -390,8 +390,8 @@ access:
access_mmu: access_mmu:
move.l MCF_MMU_MMUSR,d0 // did the last fault hit in TLB? move.l MCF_MMU_MMUSR,d0 // did the last fault hit in TLB?
btst #1,d0 // no btst #1,d0 // yes, it did. So we already mapped that page
bne bus_error // bus error handler bne bus_error // and this must be a real bus error
move.l MCF_MMU_MMUAR,d0 move.l MCF_MMU_MMUAR,d0
cmp.l #__FASTRAM_END,d0 // above max User RAM area? cmp.l #__FASTRAM_END,d0 // above max User RAM area?

View File

@@ -51,10 +51,13 @@
#include "pci.h" #include "pci.h"
#include "cache.h" #include "cache.h"
#include "util.h" #include "util.h"
#if MACHINE_FIREBEE
#if defined(MACHINE_FIREBEE)
#include "firebee.h" #include "firebee.h"
#elif MACHINE_M5484LITE #elif defined(MACHINE_M5484LITE)
#include "m5484l.h" #include "m5484l.h"
#else
#error "unknown machine!"
#endif /* MACHINE_FIREBEE */ #endif /* MACHINE_FIREBEE */
#define DEBUG_MMU #define DEBUG_MMU
@@ -184,7 +187,7 @@ inline uint32_t set_mmubar(uint32_t value)
return ret; return ret;
} }
void __attribute__((flatten)) mmu_init(void) void mmu_init(void)
{ {
extern uint8_t _MMUBAR[]; extern uint8_t _MMUBAR[];
uint32_t MMUBAR = (uint32_t) &_MMUBAR[0]; uint32_t MMUBAR = (uint32_t) &_MMUBAR[0];
@@ -204,7 +207,7 @@ void __attribute__((flatten)) mmu_init(void)
ACR_ADMSK(0x3f) | /* cover 1GB area from 0xc0000000 to 0xffffffff */ ACR_ADMSK(0x3f) | /* cover 1GB area from 0xc0000000 to 0xffffffff */
ACR_BA(0xc0000000)); /* (equals area from 3 to 4 GB */ ACR_BA(0xc0000000)); /* (equals area from 3 to 4 GB */
#elif MACHINE_M5484LITE #elif MACHINE_M5484LITE
ACR_ADMSK(0xff) | /* cover 2 GB area from 0x80000000 to 0xffffffff */ ACR_ADMSK(0x7f) | /* cover 2 GB area from 0x80000000 to 0xffffffff */
ACR_BA(0x80000000)); ACR_BA(0x80000000));
#endif /* MACHINE_FIREBEE */ #endif /* MACHINE_FIREBEE */

View File

@@ -1132,7 +1132,7 @@ void initialize_hardware(void)
/* do not try to init USB for now on the Firebee, it hangs the machine */ /* do not try to init USB for now on the Firebee, it hangs the machine */
#ifndef MACHINE_FIREBEE #ifndef MACHINE_FIREBEE
init_usb(); //init_usb();
#endif #endif
#if MACHINE_FIREBEE #if MACHINE_FIREBEE