fixed wrong MMU mapping of emulated Falcon video memory (phys and virt
where the wrong way round)
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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,7 +679,8 @@ 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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user