From c57cea78e32c4fcdee88e466bcddb00f0cd76e02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Fr=C3=B6schle?= Date: Sun, 11 May 2014 06:57:09 +0000 Subject: [PATCH] fixed wrong MMU mapping of emulated Falcon video memory (phys and virt where the wrong way round) --- BaS_gcc/sys/mmu.c | 6 +++--- BaS_gcc/sys/sysinit.c | 8 +++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/BaS_gcc/sys/mmu.c b/BaS_gcc/sys/mmu.c index 07277e1..2fec38d 100644 --- a/BaS_gcc/sys/mmu.c +++ b/BaS_gcc/sys/mmu.c @@ -192,8 +192,8 @@ static struct mmu_mapping locked_map[] = { { /* Falcon video memory. Needs special care */ - 0xd00000, 0x60d00000, + 0xd00000, 0x100000, MMU_PAGE_SIZE_1M, { 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 0x4020000: /* TLB miss on extension word of instruction fetch */ - fault_address = pc; - break; + //fault_address = pc; + //break; case 0x8020000: /* TLB miss on data write */ case 0xc020000: /* TLB miss on data read or read-modify-write */ fault_address = MCF_MMU_MMUAR; diff --git a/BaS_gcc/sys/sysinit.c b/BaS_gcc/sys/sysinit.c index 2e2bbc9..6cac827 100644 --- a/BaS_gcc/sys/sysinit.c +++ b/BaS_gcc/sys/sysinit.c @@ -669,7 +669,8 @@ static bool i2c_bus_free(void) /* * TFP410 (DVI) on */ -void dvi_on(void) { +void dvi_on(void) +{ uint8_t receivedByte; uint8_t dummyByte; /* only used for a dummy read */ int num_tries = 0; @@ -678,9 +679,10 @@ void dvi_on(void) { MCF_I2C_I2FDR = 0x3c; /* divide system clock by 1280: 100kHz standard */ - do { + do + { /* 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 */ MCF_I2C_I2CR = 0x0;