fixed wrong MMU mapping of emulated Falcon video memory (phys and virt

where the wrong way round)
This commit is contained in:
Markus Fröschle
2014-05-11 06:57:09 +00:00
parent fb9c4aaa1d
commit b0fb7b8df3
2 changed files with 8 additions and 6 deletions

View File

@@ -192,8 +192,8 @@ static struct mmu_mapping locked_map[] =
{ {
{ {
/* Falcon video memory. Needs special care */ /* Falcon video memory. Needs special care */
0xd00000,
0x60d00000, 0x60d00000,
0xd00000,
0x100000, 0x100000,
MMU_PAGE_SIZE_1M, MMU_PAGE_SIZE_1M,
{ CACHE_WRITETHROUGH, SV_USER, SCA_PAGE_ID, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE }, { CACHE_WRITETHROUGH, SV_USER, SCA_PAGE_ID, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE },
@@ -429,8 +429,8 @@ bool access_exception(uint32_t pc, uint32_t format_status)
{ {
case 0x4010000: /* TLB miss on opword of instruction fetch */ case 0x4010000: /* TLB miss on opword of instruction fetch */
case 0x4020000: /* TLB miss on extension word of instruction fetch */ case 0x4020000: /* TLB miss on extension word of instruction fetch */
fault_address = pc; //fault_address = pc;
break; //break;
case 0x8020000: /* TLB miss on data write */ case 0x8020000: /* TLB miss on data write */
case 0xc020000: /* TLB miss on data read or read-modify-write */ case 0xc020000: /* TLB miss on data read or read-modify-write */
fault_address = MCF_MMU_MMUAR; fault_address = MCF_MMU_MMUAR;

View File

@@ -669,7 +669,8 @@ static bool i2c_bus_free(void)
/* /*
* TFP410 (DVI) on * TFP410 (DVI) on
*/ */
void dvi_on(void) { void dvi_on(void)
{
uint8_t receivedByte; uint8_t receivedByte;
uint8_t dummyByte; /* only used for a dummy read */ uint8_t dummyByte; /* only used for a dummy read */
int num_tries = 0; int num_tries = 0;
@@ -678,9 +679,10 @@ void dvi_on(void) {
MCF_I2C_I2FDR = 0x3c; /* divide system clock by 1280: 100kHz standard */ MCF_I2C_I2FDR = 0x3c; /* divide system clock by 1280: 100kHz standard */
do { do
{
/* disable all i2c interrupt routing targets */ /* disable all i2c interrupt routing targets */
MCF_I2C_I2ICR = 0x0; //~(MCF_I2C_I2ICR_IE | MCF_I2C_I2ICR_RE | MCF_I2C_I2ICR_TE | MCF_I2C_I2ICR_BNBE); MCF_I2C_I2ICR = 0x0; // ~(MCF_I2C_I2ICR_IE | MCF_I2C_I2ICR_RE | MCF_I2C_I2ICR_TE | MCF_I2C_I2ICR_BNBE);
/* disable i2c, disable i2c interrupts, slave, receive, i2c = acknowledge, no repeat start */ /* disable i2c, disable i2c interrupts, slave, receive, i2c = acknowledge, no repeat start */
MCF_I2C_I2CR = 0x0; MCF_I2C_I2CR = 0x0;