mirror of https://gitee.com/openkylin/linux.git
blackfin: cplb: add support for bf60x
Bf60x support big CPLB pages, this commit enable it. Signed-off-by: Bob Liu <lliubbo@gmail.com>
This commit is contained in:
parent
4f6b600fdc
commit
7adede5b9b
|
@ -62,6 +62,10 @@
|
|||
#define SIZE_4K 0x00001000 /* 4K */
|
||||
#define SIZE_1M 0x00100000 /* 1M */
|
||||
#define SIZE_4M 0x00400000 /* 4M */
|
||||
#define SIZE_16K 0x00004000 /* 16K */
|
||||
#define SIZE_64K 0x00010000 /* 64K */
|
||||
#define SIZE_16M 0x01000000 /* 16M */
|
||||
#define SIZE_64M 0x04000000 /* 64M */
|
||||
|
||||
#define MAX_CPLBS 16
|
||||
|
||||
|
|
|
@ -622,6 +622,10 @@ do { \
|
|||
#define PAGE_SIZE_4KB 0x00010000 /* 4 KB page size */
|
||||
#define PAGE_SIZE_1MB 0x00020000 /* 1 MB page size */
|
||||
#define PAGE_SIZE_4MB 0x00030000 /* 4 MB page size */
|
||||
#define PAGE_SIZE_16KB 0x00040000 /* 16 KB page size */
|
||||
#define PAGE_SIZE_64KB 0x00050000 /* 64 KB page size */
|
||||
#define PAGE_SIZE_16MB 0x00060000 /* 16 MB page size */
|
||||
#define PAGE_SIZE_64MB 0x00070000 /* 64 MB page size */
|
||||
#define CPLB_L1SRAM 0x00000020 /* 0=SRAM mapped in L1, 0=SRAM not
|
||||
* mapped to L1
|
||||
*/
|
||||
|
|
|
@ -139,7 +139,7 @@ void __init generate_cplb_tables_all(void)
|
|||
dcplb_bounds[i_d].eaddr = BOOT_ROM_START;
|
||||
dcplb_bounds[i_d++].data = 0;
|
||||
/* BootROM -- largest one should be less than 1 meg. */
|
||||
dcplb_bounds[i_d].eaddr = BOOT_ROM_START + (1 * 1024 * 1024);
|
||||
dcplb_bounds[i_d].eaddr = BOOT_ROM_START + BOOT_ROM_LENGTH;
|
||||
dcplb_bounds[i_d++].data = SDRAM_DGENERIC;
|
||||
if (L2_LENGTH) {
|
||||
/* Addressing hole up to L2 SRAM. */
|
||||
|
@ -178,7 +178,7 @@ void __init generate_cplb_tables_all(void)
|
|||
icplb_bounds[i_i].eaddr = BOOT_ROM_START;
|
||||
icplb_bounds[i_i++].data = 0;
|
||||
/* BootROM -- largest one should be less than 1 meg. */
|
||||
icplb_bounds[i_i].eaddr = BOOT_ROM_START + (1 * 1024 * 1024);
|
||||
icplb_bounds[i_i].eaddr = BOOT_ROM_START + BOOT_ROM_LENGTH;
|
||||
icplb_bounds[i_i++].data = SDRAM_IGENERIC;
|
||||
|
||||
if (L2_LENGTH) {
|
||||
|
|
|
@ -179,6 +179,12 @@ MGR_ATTR static int dcplb_miss(int cpu)
|
|||
addr = addr1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_BF60x
|
||||
if ((addr >= ASYNC_BANK0_BASE)
|
||||
&& (addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE))
|
||||
d_data |= PAGE_SIZE_64MB;
|
||||
#endif
|
||||
|
||||
/* Pick entry to evict */
|
||||
idx = evict_one_dcplb(cpu);
|
||||
|
||||
|
|
Loading…
Reference in New Issue