And fixed them again, this time properly (verified by testing).
This commit is contained in:
@@ -56,7 +56,7 @@ apollo_map(uint32_t addr, uint32_t size, int state)
|
||||
mem_set_mem_state_both(addr, size, MEM_READ_EXTANY | MEM_WRITE_INTERNAL);
|
||||
break;
|
||||
case 2:
|
||||
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_DISABLED);
|
||||
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_EXTANY);
|
||||
break;
|
||||
case 3:
|
||||
mem_set_mem_state_both(addr, size, MEM_READ_INTERNAL | MEM_WRITE_INTERNAL);
|
||||
|
@@ -155,14 +155,13 @@ sst_page_write(void *priv)
|
||||
sst_t *dev = (sst_t *) priv;
|
||||
int i;
|
||||
|
||||
if (dev->last_addr == 0xffffffff)
|
||||
return;
|
||||
|
||||
dev->page_base = dev->last_addr & dev->page_mask;
|
||||
for (i = 0; i < 128; i++) {
|
||||
if (dev->page_dirty[i]) {
|
||||
dev->array[dev->page_base + i] = dev->page_buffer[i];
|
||||
dev->dirty |= 1;
|
||||
if (dev->last_addr != 0xffffffff) {
|
||||
dev->page_base = dev->last_addr & dev->page_mask;
|
||||
for (i = 0; i < 128; i++) {
|
||||
if (dev->page_dirty[i]) {
|
||||
dev->array[dev->page_base + i] = dev->page_buffer[i];
|
||||
dev->dirty |= 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
dev->page_bytes = 0;
|
||||
@@ -222,8 +221,8 @@ sst_write(uint32_t addr, uint8_t val, void *p)
|
||||
dev->page_bytes = 0;
|
||||
dev->command_state = 7;
|
||||
sst_buf_write(dev, addr, val);
|
||||
}
|
||||
dev->command_state = 0;
|
||||
} else
|
||||
dev->command_state = 0;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
|
Reference in New Issue
Block a user