Commit e187837b authored by Barry Song's avatar Barry Song Committed by Mike Frysinger

Blackfin: MPU: support XIP in async flash memory

The NOMPU code already supported executing in the async banks, so this
brings the MPU code in line.
Signed-off-by: default avatarBarry Song <barry.song@analog.com>
Signed-off-by: default avatarMike Frysinger <vapier@gentoo.org>
parent d45e8db1
...@@ -113,11 +113,11 @@ static noinline int dcplb_miss(unsigned int cpu) ...@@ -113,11 +113,11 @@ static noinline int dcplb_miss(unsigned int cpu)
addr = L2_START; addr = L2_START;
d_data = L2_DMEMORY; d_data = L2_DMEMORY;
} else if (addr >= physical_mem_end) { } else if (addr >= physical_mem_end) {
if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) {
&& (status & FAULT_USERSUPV)) { addr &= ~(4 * 1024 * 1024 - 1);
addr &= ~0x3fffff;
d_data &= ~PAGE_SIZE_4KB; d_data &= ~PAGE_SIZE_4KB;
d_data |= PAGE_SIZE_4MB; d_data |= PAGE_SIZE_4MB;
d_data |= CPLB_USER_RD | CPLB_USER_WR;
} else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH } else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
&& (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) { && (status & (FAULT_RW | FAULT_USERSUPV)) == FAULT_USERSUPV) {
addr &= ~(1 * 1024 * 1024 - 1); addr &= ~(1 * 1024 * 1024 - 1);
...@@ -203,7 +203,12 @@ static noinline int icplb_miss(unsigned int cpu) ...@@ -203,7 +203,12 @@ static noinline int icplb_miss(unsigned int cpu)
addr = L2_START; addr = L2_START;
i_data = L2_IMEMORY; i_data = L2_IMEMORY;
} else if (addr >= physical_mem_end) { } else if (addr >= physical_mem_end) {
if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH if (addr >= ASYNC_BANK0_BASE && addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) {
addr &= ~(4 * 1024 * 1024 - 1);
i_data &= ~PAGE_SIZE_4KB;
i_data |= PAGE_SIZE_4MB;
i_data |= CPLB_USER_RD;
} else if (addr >= BOOT_ROM_START && addr < BOOT_ROM_START + BOOT_ROM_LENGTH
&& (status & FAULT_USERSUPV)) { && (status & FAULT_USERSUPV)) {
addr &= ~(1 * 1024 * 1024 - 1); addr &= ~(1 * 1024 * 1024 - 1);
i_data &= ~PAGE_SIZE_4KB; i_data &= ~PAGE_SIZE_4KB;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment