fix FBCS (not ready for burst mode yet)

This commit is contained in:
Markus Fröschle
2017-05-16 05:57:05 +00:00
parent 28c068ab43
commit 6216a993c3
4 changed files with 17 additions and 3 deletions

View File

@@ -1,2 +1,3 @@
// Add predefined macros for your project here. For example: // Add predefined macros for your project here. For example:
// #define THE_ANSWER 42 // #define THE_ANSWER 42
#define MACHINE_FIREBEE

View File

@@ -447,6 +447,8 @@ void BaS(void)
xprintf("finished\r\n"); xprintf("finished\r\n");
memset((void *) 0x0200, 0x0, 0x0400);
#if defined(MACHINE_FIREBEE) #if defined(MACHINE_FIREBEE)
xprintf("IDE reset: "); xprintf("IDE reset: ");
/* IDE reset */ /* IDE reset */
@@ -484,6 +486,8 @@ static volatile struct atari_video_timing *ver_640x480 = (volatile struct atari_
static volatile struct atari_video_timing *hor_320x240 = (volatile struct atari_video_timing *) 0xf0000418; static volatile struct atari_video_timing *hor_320x240 = (volatile struct atari_video_timing *) 0xf0000418;
static volatile struct atari_video_timing *ver_320x240 = (volatile struct atari_video_timing *) 0xf000041c; static volatile struct atari_video_timing *ver_320x240 = (volatile struct atari_video_timing *) 0xf000041c;
#undef VIDEO_25MHZ
#ifdef VIDEO_25MHZ #ifdef VIDEO_25MHZ
hor_640x480->total = 0x320; /* 800 */ hor_640x480->total = 0x320; /* 800 */
hor_640x480->sync_start = 0x2ba; /* 698 */ hor_640x480->sync_start = 0x2ba; /* 698 */

View File

@@ -480,6 +480,15 @@ void mmu_init(void)
pages[i].execute = 0; pages[i].execute = 0;
pages[i].global = 1; pages[i].global = 1;
} }
else if (addr >= 0xfff00000UL && addr <= 0xffffffffUL) /* Falcon I/O area on the Firebee */
{
pages[i].cache_mode = CACHE_NOCACHE_PRECISE;
pages[i].supervisor_protect = 1;
pages[i].read = 1;
pages[i].write = 1;
pages[i].execute = 0;
pages[i].global = 1;
}
else if (addr >= 0x0UL && addr < 0x00e00000UL) /* ST-RAM, potential video memory */ else if (addr >= 0x0UL && addr < 0x00e00000UL) /* ST-RAM, potential video memory */
{ {
pages[i].cache_mode = CACHE_WRITETHROUGH; pages[i].cache_mode = CACHE_WRITETHROUGH;

View File

@@ -418,8 +418,8 @@ static void init_fbcs()
MCF_FBCS1_CSAR = MCF_FBCS_CSAR_BA(0xFFF00000); /* ATARI I/O address range */ MCF_FBCS1_CSAR = MCF_FBCS_CSAR_BA(0xFFF00000); /* ATARI I/O address range */
MCF_FBCS1_CSCR = MCF_FBCS_CSCR_PS_16 /* 16BIT PORT */ MCF_FBCS1_CSCR = MCF_FBCS_CSCR_PS_16 /* 16BIT PORT */
| MCF_FBCS_CSCR_WS(32) /* 32 wait states */ | MCF_FBCS_CSCR_WS(32) /* 32 wait states */
| MCF_FBCS_CSCR_BSTR /* burst read enable */ // | MCF_FBCS_CSCR_BSTR /* burst read enable */
| MCF_FBCS_CSCR_BSTW /* burst write enable */ // | MCF_FBCS_CSCR_BSTW /* burst write enable */
| MCF_FBCS_CSCR_AA; /* auto /TA acknowledge */ | MCF_FBCS_CSCR_AA; /* auto /TA acknowledge */
MCF_FBCS1_CSMR = MCF_FBCS_CSMR_BAM_1M | MCF_FBCS_CSMR_V; MCF_FBCS1_CSMR = MCF_FBCS_CSMR_BAM_1M | MCF_FBCS_CSMR_V;