fixed cache memory encoding for 5550-V
This commit is contained in:
@@ -145,7 +145,7 @@ static struct ps2_t {
|
|||||||
static uint8_t ps2_cache[65536];
|
static uint8_t ps2_cache[65536];
|
||||||
static int ps2_cache_valid[65536 / 8];
|
static int ps2_cache_valid[65536 / 8];
|
||||||
static void mem_encoding_update(void);
|
static void mem_encoding_update(void);
|
||||||
|
#define ENABLE_PS2_MCA_LOG 1
|
||||||
#ifdef ENABLE_PS2_MCA_LOG
|
#ifdef ENABLE_PS2_MCA_LOG
|
||||||
int ps2_mca_do_log = ENABLE_PS2_MCA_LOG;
|
int ps2_mca_do_log = ENABLE_PS2_MCA_LOG;
|
||||||
|
|
||||||
@@ -452,7 +452,7 @@ ps55_model_50v_read(uint16_t port)
|
|||||||
}
|
}
|
||||||
return val;
|
return val;
|
||||||
case 0x104:
|
case 0x104:
|
||||||
return ps2.option[2];
|
return ps2.option[2] & 0xf3;
|
||||||
case 0x105:
|
case 0x105:
|
||||||
return ps2.option[3];
|
return ps2.option[3];
|
||||||
case 0x106:
|
case 0x106:
|
||||||
@@ -1472,10 +1472,12 @@ mem_encoding_write_cached_ps55(uint16_t addr, uint8_t val, UNUSED(void *priv))
|
|||||||
mem_mapping_disable(&ram_low_mapping);
|
mem_mapping_disable(&ram_low_mapping);
|
||||||
mem_mapping_enable(&ps2.cache_mapping);
|
mem_mapping_enable(&ps2.cache_mapping);
|
||||||
flushmmucache();
|
flushmmucache();
|
||||||
|
ps2_mca_log("mem_encoding_write: low ram mapping disabled\n");
|
||||||
} else {
|
} else {
|
||||||
mem_mapping_disable(&ps2.cache_mapping);
|
mem_mapping_disable(&ps2.cache_mapping);
|
||||||
mem_mapping_enable(&ram_low_mapping);
|
mem_mapping_enable(&ram_low_mapping);
|
||||||
flushmmucache();
|
flushmmucache();
|
||||||
|
ps2_mca_log("mem_encoding_write: low ram mapping enabled\n");
|
||||||
}
|
}
|
||||||
if (ps2.option[2] & 1) /* reset memstate for E0000 - E0FFFh hole */
|
if (ps2.option[2] & 1) /* reset memstate for E0000 - E0FFFh hole */
|
||||||
{
|
{
|
||||||
@@ -1906,7 +1908,7 @@ ps55_mca_board_model_50v_init()
|
|||||||
|
|
||||||
device_add(&ps2_nvr_device);
|
device_add(&ps2_nvr_device);
|
||||||
|
|
||||||
io_sethandler(0x00e0, 0x0002, mem_encoding_read_cached, NULL, NULL, mem_encoding_write_cached_ps55, NULL, NULL, NULL);
|
io_sethandler(0x00e0, 0x0003, mem_encoding_read_cached, NULL, NULL, mem_encoding_write_cached_ps55, NULL, NULL, NULL);
|
||||||
|
|
||||||
ps2.mem_regs[1] = 2;
|
ps2.mem_regs[1] = 2;
|
||||||
ps2.option[2] &= 0xf2; /* Bit 3-2: -Cache IDs, Bit 1: Reserved
|
ps2.option[2] &= 0xf2; /* Bit 3-2: -Cache IDs, Bit 1: Reserved
|
||||||
@@ -1926,6 +1928,20 @@ ps55_mca_board_model_50v_init()
|
|||||||
NULL);
|
NULL);
|
||||||
mem_mapping_disable(&ps2.split_mapping);
|
mem_mapping_disable(&ps2.split_mapping);
|
||||||
|
|
||||||
|
mem_mapping_add(&ps2.cache_mapping,
|
||||||
|
0,
|
||||||
|
64 * 1024,
|
||||||
|
ps2_read_cache_ram,
|
||||||
|
ps2_read_cache_ramw,
|
||||||
|
ps2_read_cache_raml,
|
||||||
|
ps2_write_cache_ram,
|
||||||
|
NULL,
|
||||||
|
NULL,
|
||||||
|
ps2_cache,
|
||||||
|
MEM_MAPPING_INTERNAL,
|
||||||
|
NULL);
|
||||||
|
mem_mapping_disable(&ps2.cache_mapping);
|
||||||
|
|
||||||
if (mem_size > 8192) {
|
if (mem_size > 8192) {
|
||||||
/* Only 8 MB supported on planar, create a memory expansion card for the rest */
|
/* Only 8 MB supported on planar, create a memory expansion card for the rest */
|
||||||
ps2_mca_mem_fffc_init(8);
|
ps2_mca_mem_fffc_init(8);
|
||||||
|
|||||||
Reference in New Issue
Block a user