Merge remote-tracking branch 'jliu/or32' into staging

# By Sebastian Macke
# Via Jia Liu
* jliu/or32:
  target-openrisc: Removes a non-conforming behavior for the first page of the memory
  target-openrisc: Correct handling of page faults.

Message-id: 1380789702-18935-1-git-send-email-proljc@gmail.com
Signed-off-by: Anthony Liguori <aliguori@amazon.com>
This commit is contained in:
Anthony Liguori 2013-10-14 09:15:47 -07:00
commit ded77da3cd

View File

@ -102,7 +102,7 @@ int cpu_openrisc_get_phys_data(OpenRISCCPU *cpu,
} }
} }
if ((rw & 0) && ((right & PAGE_READ) == 0)) { if (!(rw & 1) && ((right & PAGE_READ) == 0)) {
return TLBRET_BADADDR; return TLBRET_BADADDR;
} }
if ((rw & 1) && ((right & PAGE_WRITE) == 0)) { if ((rw & 1) && ((right & PAGE_WRITE) == 0)) {
@ -122,13 +122,6 @@ static int cpu_openrisc_get_phys_addr(OpenRISCCPU *cpu,
{ {
int ret = TLBRET_MATCH; int ret = TLBRET_MATCH;
/* [0x0000--0x2000]: unmapped */
if (address < 0x2000 && (cpu->env.sr & SR_SM)) {
*physical = address;
*prot = PAGE_READ | PAGE_WRITE;
return ret;
}
if (rw == 2) { /* ITLB */ if (rw == 2) { /* ITLB */
*physical = 0; *physical = 0;
ret = cpu->env.tlb->cpu_openrisc_map_address_code(cpu, physical, ret = cpu->env.tlb->cpu_openrisc_map_address_code(cpu, physical,