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
define tr
target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
#target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
#target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
#target dbug /dev/ttyS0
#monitor bdm-reset
end

View File

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

View File

@@ -20,6 +20,9 @@ MEMORY
* target to copy BaS data segment to. 1M should be enough for now
*/
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
}
@@ -79,9 +82,9 @@ SECTIONS
OBJDIR/video.o
OBJDIR/videl.o
OBJDIR/radeon_base.o
OBJDIR/radeon_accel.o
OBJDIR/radeon_cursor.o
//OBJDIR/radeon_base.o
//OBJDIR/radeon_accel.o
//OBJDIR/radeon_cursor.o
OBJDIR/xhdi_sd.o(.text)
OBJDIR/xhdi_interface.o(.text)

View File

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

View File

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

View File

@@ -51,10 +51,13 @@
#include "pci.h"
#include "cache.h"
#include "util.h"
#if MACHINE_FIREBEE
#if defined(MACHINE_FIREBEE)
#include "firebee.h"
#elif MACHINE_M5484LITE
#elif defined(MACHINE_M5484LITE)
#include "m5484l.h"
#else
#error "unknown machine!"
#endif /* MACHINE_FIREBEE */
#define DEBUG_MMU
@@ -184,7 +187,7 @@ inline uint32_t set_mmubar(uint32_t value)
return ret;
}
void __attribute__((flatten)) mmu_init(void)
void mmu_init(void)
{
extern uint8_t _MMUBAR[];
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_BA(0xc0000000)); /* (equals area from 3 to 4 GB */
#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));
#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 */
#ifndef MACHINE_FIREBEE
init_usb();
//init_usb();
#endif
#if MACHINE_FIREBEE