fix FBCS (not ready for burst mode yet)
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -415,7 +415,7 @@ void BaS(void)
|
|||||||
uint8_t *src;
|
uint8_t *src;
|
||||||
uint8_t *dst = (uint8_t *) TOS;
|
uint8_t *dst = (uint8_t *) TOS;
|
||||||
|
|
||||||
#if defined(MACHINE_FIREBEE) /* LITE board has no pic and (currently) no nvram */
|
#if defined(MACHINE_FIREBEE) /* LITE board has no pic and (currently) no nvram */
|
||||||
pic_init();
|
pic_init();
|
||||||
nvram_init();
|
nvram_init();
|
||||||
#endif /* MACHINE_FIREBEE */
|
#endif /* MACHINE_FIREBEE */
|
||||||
@@ -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 */
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user