[#5704] fail to xip_test on bf537-stamp mpu kernel

Document created by Aaronwu Employee on Sep 5, 2013
Version 1Show Document
  • View in full screen mode

[#5704] fail to xip_test on bf537-stamp mpu kernel

Submitted By: Vivi Li

Open Date

2009-11-19 02:51:40     Close Date

2010-01-07 21:51:59

Priority:

Medium High     Assignee:

Barry Song

Status:

Closed     Fixed In Release:

N/A

Found In Release:

2010R1     Release:

Category:

Tests     Board:

STAMP

Processor:

BF537     Silicon Revision:

Is this bug repeatable?:

Yes     Resolution:

Fixed

Uboot version or rev.:

    Toolchain version or rev.:

gcc4.3-trunk

App binary format:

N/A     

Summary: fail to xip_test on bf537-stamp mpu kernel

Details:

 

Run xip test on bf537-stamp mpu kernel, xip_test fails to execute on flash and shows "CPLB miss" error.

It happens for both fdpic and shared-flat format.

 

Config files are attached. Bellow is the log for fdpic format:

--

/home/test/work/cruise/checkouts/uclinux-dist/user/genromfs/genromfs -f ../../images/img.romfs -d /home/test/work/cruise/checkouts/uclinux-dist/user/blkfin-test/xip_test

 

 

cp /home/test/work/cruise/checkouts/uclinux-dist/images/img.romfs /tftpboot

 

 

U-Boot 2008.10-svn1956 (ADI-2009R1-rc2) (Jul  2 2009 - 20:05:22)^M

^M

CPU:   ADSP bf537-0.2 (Detected Rev: 0.3) (bypass boot)^M

Board: ADI BF537 stamp board^M

       Support: http://blackfin.uclinux.org/^M

Clock: VCO: 500 MHz, Core: 500 MHz, System: 125 MHz^M

RAM:   64 MB^M

Flash:  4 MB^M

In:    serial^M

Out:   serial^M

Err:   serial^M

Net:   Blackfin EMAC^M

MAC:   00:E0:22:FE:58:9C^M

Hit any key to stop autoboot:  5 ^H^H^H 0 ^M

bfin> successful reset attemp

tftpboot 0x1000000 img.romfs^M

Using Blackfin EMAC device^M

TFTP from server 10.100.4.174; our IP address is 10.100.4.50^M

Filename 'img.romfs'.^M

Load address: 0x1000000^M

Loading: *^H#^M

done^M

Bytes transferred = 14336 (3800 hex)^M

bfin> protect off 0x201c0000 0x2020ffff^M

..... done^M

Un-Protected 5 sectors^M

bfin> erase 0x201c0000 0x2020ffff^M

^M

..... done^M

Erased 5 sectors^M

bfin> cp.b 0x1000000 0x201c0000 0x3800^M

Copy to Flash... done^M

bfin> reset

U-Boot 2008.10-svn1956 (ADI-2009R1-rc2) (Jul  2 2009 - 20:05:22)^M

^M

CPU:   ADSP bf537-0.2 (Detected Rev: 0.3) (bypass boot)^M

Board: ADI BF537 stamp board^M

       Support: http://blackfin.uclinux.org/^M

Clock: VCO: 500 MHz, Core: 500 MHz, System: 125 MHz^M

RAM:   64 MB^M

 

RAM size is 64 MB.

Flash:  4 MB^M

In:    serial^M

Out:   serial^M

Err:   serial^M

Net:   Blackfin EMAC^M

MAC:   00:E0:22:FE:58:9C^M

Hit any key to stop autoboot:  5 ^H^H^H 0 ^M

bfin> set bootargs root=/dev/mtdblock0 rw ip=10.100.4.50 earlyprintk=serial,uart0,57600 console=ttyBF0,57600^M

bfin> set serverip 10.100.4.174^M

bfin> set ipaddr 10.100.4.50^M

bfin> save^M

Saving Environment to Flash...^M

. done^M

Un-Protected 1 sectors^M

Erasing Flash...^M

. done^M

Erased 1 sectors^M

Writing to Flash... done^M

. done^M

Protected 1 sectors^M

bfin> ^M

bfin> tftpboot 0x2000000 uImage^M

Using Blackfin EMAC device^M

TFTP from server 10.100.4.174; our IP address is 10.100.4.50^M

Filename 'uImage'.^M

Load address: 0x2000000^M

Loading: *^H#################################################################^M

         #################################################################^M

         #################################################################^M

         #################################################################^M

         #######^M

done^M

Bytes transferred = 3905479 (3b97c7 hex)^M

Image size is 3b97c7

bfin> run addip^M

bfin> bootm^M

## Booting kernel from Legacy Image at 02000000 ...^M

   Image Name:   bf537-2.6.31.6-ADI-2010R1-pre-sv^M

   Created:      2009-11-18   3:19:08 UTC^M

   Image Type:   Blackfin Linux Kernel Image (gzip compressed)^M

   Data Size:    3905415 Bytes =  3.7 MB^M

   Load Address: 00001000^M

   Entry Point:  00195690^M

   Verifying Checksum ... OK^M

   Uncompressing Kernel Image ... OK^M

Starting Kernel at = 00195690^M

Linux version 2.6.31.6-ADI-2010R1-pre-svn7831 (test@uclinux74-mpu) (gcc version 4.3.4 (ADI-trunk/svn-3679) ) #46 Wed Nov 18 03:18:59 GMT 2009^M

register early platform devices^M

bootconsole [early_shadow0] enabled^M

bootconsole [early_BFuart0] enabled^M

early printk enabled on early_BFuart0^M

Board Memory: 64MB^M

Kernel Managed Memory: 64MB^M

Memory map:^M

  fixedcode = 0x00000400-0x00000490^M

  text      = 0x00001000-0x00111df0^M

  rodata    = 0x00111df0-0x00167f48^M

  bss       = 0x00168000-0x00178a9c^M

  data      = 0x00178a9c-0x0018a000^M

    stack   = 0x00188000-0x0018a000^M

  init      = 0x0018a000-0x00796000^M

  available = 0x00796000-0x03eff000^M

  DMA Zone  = 0x03f00000-0x04000000^M

Hardware Trace Active and Enabled^M

Boot Mode: 0^M

Reset caused by Software reset^M

Blackfin support (C) 2004-2009 Analog Devices, Inc.^M

Compiled for ADSP-BF537 Rev 0.3^M

Blackfin Linux support by http://blackfin.uclinux.org/^M

Processor Speed: 500 MHz core clock and 125 MHz System Clock^M

MPU: setting up cplb tables with memory protection^M

Instruction Cache Enabled for CPU0^M

  External memory: cacheable in instruction cache^M

Data Cache Enabled for CPU0^M

  External memory: cacheable (write-back) in data cache^M

Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 16001^M

Kernel command line: root=/dev/mtdblock0 rw ip=10.100.4.50 earlyprintk=serial,uart0,57600 console=ttyBF0,57600 ip=10.100.4.50:10.100.4.174:10.100.4.174:255.255.255.0:bf537-stamp:eth0:off^M

PID hash table entries: 256 (order: 8, 1024 bytes)^M

Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)^M

Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)^M

Memory available: 55748k/65536k RAM, (6192k init code, 1091k kernel code, 481k data, 1024k dma, 996k reserved)^M

NR_IRQS:98^M

Configuring Blackfin Priority Driven Interrupts^M

console [ttyBF0] enabled, bootconsole disabled^M

console [ttyBF0] enabled, bootconsole disabled^M

Calibrating delay loop... 997.37 BogoMIPS (lpj=1994752)^M

Security Framework initialized^M

Mount-cache hash table entries: 512^M

Blackfin Scratchpad data SRAM: 4 KB^M

Blackfin L1 Data A SRAM: 16 KB (16 KB free)^M

Blackfin L1 Data B SRAM: 16 KB (16 KB free)^M

Blackfin L1 Instruction SRAM: 48 KB (36 KB free)^M

NET: Registered protocol family 16^M

Blackfin DMA Controller^M

stamp_init(): registering device resources^M

bio: create slab <bio-0> at 0^M

NET: Registered protocol family 2^M

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)^M

TCP established hash table entries: 2048 (order: 2, 16384 bytes)^M

TCP bind hash table entries: 2048 (order: 1, 8192 bytes)^M

TCP: Hash tables configured (established 2048 bind 2048)^M

TCP reno registered^M

NET: Registered protocol family 1^M

ROMFS MTD (C) 2007 Red Hat, Inc.^M

msgmni has been set to 108^M

io scheduler noop registered^M

io scheduler anticipatory registered (default)^M

io scheduler cfq registered^M

bfin-uart: Blackfin serial driver^M

bfin-uart.0: ttyBF0 at MMIO 0xffc00400 (irq = 18) is a BFIN-UART^M

brd: module loaded^M

bfin_mii_bus: probed^M

bfin_mac: attached PHY driver [SMSC LAN83C185] (mii_bus:phy_addr=0:01, irq=-1, mdc_clk=2500000Hz(mdc_div=24)@sclk=125MHz)^M

bfin_mac bfin_mac.0: Blackfin on-chip Ethernet MAC driver, Version 1.1^M

physmap platform flash device: 00400000 at 20000000^M

physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank^M

Amd/Fujitsu Extended Query Table at 0x0040^M

number of CFI chips: 1^M

cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.^M

RedBoot partition parsing not available^M

Using physmap partition information^M

Creating 4 MTD partitions on "physmap-flash.0":^M

0x000000000000-0x000000040000 : "bootloader(nor)"^M

0x000000040000-0x0000001c0000 : "linux kernel(nor)"^M

0x0000001c0000-0x0000003f0000 : "file system(nor)"^M

0x0000003f0000-0x000000400000 : "MAC Address(nor)"^M

bfin-spi bfin-spi.0: Blackfin on-chip SPI Controller Driver, Version 1.0, regs_base@ffc00500, dma channel@7^M

rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0^M

bfin-wdt: initialized: timeout=20 sec (nowayout=0)^M

TCP cubic registered^M

NET: Registered protocol family 17^M

rtc-bfin rtc-bfin: setting system clock to 2004-05-31 09:16:31 UTC (1085994991)^M

IP-Config: Complete:^M

     device=eth0, addr=10.100.4.50, mask=255.255.255.0, gw=10.100.4.174,^M

     host=bf537-stamp, domain=, nis-domain=(none),^M

     bootserver=10.100.4.174, rootserver=10.100.4.174, rootpath=^M

dma_alloc_init: dma_page @ 0x0281b000 - 256 pages at 0x03f00000^M

BusyBox v1.15.2 (2009-11-18 03:16:43 GMT) hush - the humble shell^M

^M

 

root:/> successful boot attempt^M

root:/> mount -t romfs /dev/mtdblock2 /mnt^M

root:/> /mnt/xip_test

Data access CPLB miss^M

<5> - Used by the MMU to signal a CPLB miss on a data access.^M

Deferred Exception context^M

CURRENT PROCESS:^M

COMM=xip_test PID=173 CPU=0^M

TEXT = 0x201c0080-0x201c0814        DATA = 0x029d5794-0x029d58f4^M

BSS = 0x029d58f4-0x02a80000  USER-STACK = 0x02a9feb0^M

^M

return address: [0x028348fa]; contents of:^M

0x028348d0:  e50a  0083  9310  6812  e73a  ffa8  aefb  aef8 ^M

0x028348e0:  6cc3  e73b  ffa5  6d40  a058  e738  ffa6  a042 ^M

0x028348f0:  0c02  1813  0000  3210  6031 [9110] 0808  1402 ^M

0x02834900:  2793  6001  6033  2006  6d02  9110  0818  1402 ^M

^M

ADSP-BF537-0.3 500(MHz CCLK) 125(MHz SCLK) (mpu on)^M

Linux version 2.6.31.6-ADI-2010R1-pre-svn7831 (test@uclinux74-mpu) (gcc version 4.3.4 (ADI-trunk/svn-3679) ) #46 Wed Nov 18 03:18:59 GMT 2009^M

^M

SEQUENCER STATUS:               Not tainted^M

SEQSTAT: 00002026  IPEND: 0008  IMASK: ffff  SYSCFG: 0006^M

  EXCAUSE   : 0x26^M

  physical IVG3 asserted : <0xffa007f4> { _trap + 0x0 }^M

RETE: <0x00000000> /* Maybe null pointer? */^M

RETN: <0x02074000> /* kernel dynamic memory */^M

RETX: <0xffa006e4> { _exception_to_level5 + 0x0 }^M

RETS: <0x02835a7a> [ /lib/ld-uClibc.so.0 + 0x5a7a ]^M

PC  : <0x028348fa> [ /lib/ld-uClibc.so.0 + 0x48fa ]^M

DCPLB_FAULT_ADDR: <0x201c00b4> [ /mnt/xip_test + 0x34 ]^M

ICPLB_FAULT_ADDR: <0x028348fa> [ /lib/ld-uClibc.so.0 + 0x48fa ]^M

PROCESSOR STATE:^M

R0 : 201c00b4    R1 : 00000006    R2 : 00000006    R3 : 00007f10^M

R4 : 028330d8    R5 : 02917068    R6 : 00000512    R7 : 00000000^M

P0 : 02a9fe20    P1 : 00000000    P2 : 201c00b4    P3 : 02a9fe10^M

P4 : 000005c0    P5 : 02a9ff70    FP : 02a9fcbc    SP : 02073f24^M

LB0: 028e01df    LT0: 028e01cc    LC0: ffffffff^M

LB1: 02834807    LT1: 02834806    LC1: 00000000^M

B0 : 00000000    L0 : 00000000    M0 : 00000000    I0 : 000005c0^M

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 00000001^M

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000005^M

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000^M

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000^M

USP : 02a9fae4  ASTAT: 02003004^M

^M

Hardware Trace:^M

   0 Target : <0x000051a0> { _trap_c + 0x0 }^M

     Source : <0xffa00788> { _exception_to_level5 + 0xa4 } CALL pcrel^M

   1 Target : <0xffa006e4> { _exception_to_level5 + 0x0 }^M

     Source : <0xffa00524> { _ex_dcplb_miss + 0x78 } RTX^M

   2 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }^M

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)^M

   3 Target : <0xffa007f4> { _trap + 0x0 }^M

     Source : <0xffa00598> { _bfin_return_from_exception + 0x18 } RTX^M

   4 Target : <0xffa00580> { _bfin_return_from_exception + 0x0 }^M

     Source : <0xffa0063c> { _ex_trap_c + 0x74 } JUMP.S^M

   5 Target : <0xffa004ac> { _ex_dcplb_miss + 0x0 }^M

     Source : <0xffa0084e> { _trap + 0x5a } JUMP (P4)^M

   6 Target : <0xffa007f4> { _trap + 0x0 }^M

     Source : <0x028348f8> [ /lib/ld-uClibc.so.0 + 0x48f8 ] 0x6031^M

   7 Target : <0x028348dc> [ /lib/ld-uClibc.so.0 + 0x48dc ]^M

     Source : <0x02835a84> [ /lib/ld-uClibc.so.0 + 0x5a84 ] JUMP.L^M

   8 Target : <0x02835a7a> [ /lib/ld-uClibc.so.0 + 0x5a7a ]^M

     Source : <0x02831626> [ /lib/ld-uClibc.so.0 + 0x1626 ] RTS^M

   9 Target : <0x02831620> [ /lib/ld-uClibc.so.0 + 0x1620 ]^M

     Source : <0x028315d2> [ /lib/ld-uClibc.so.0 + 0x15d2 ] IF !CC JUMP^M

  10 Target : <0x028315cc> [ /lib/ld-uClibc.so.0 + 0x15cc ]^M

     Source : <0x02831608> [ /lib/ld-uClibc.so.0 + 0x1608 ] IF !CC JUMP^M

  11 Target : <0x02831604> [ /lib/ld-uClibc.so.0 + 0x1604 ]^M

     Source : <0x0283162a> [ /lib/ld-uClibc.so.0 + 0x162a ] JUMP.S^M

  12 Target : <0x02831628> [ /lib/ld-uClibc.so.0 + 0x1628 ]^M

     Source : <0x028315ea> [ /lib/ld-uClibc.so.0 + 0x15ea ] IF !CC JUMP^M

  13 Target : <0x028315cc> [ /lib/ld-uClibc.so.0 + 0x15cc ]^M

     Source : <0x02831608> [ /lib/ld-uClibc.so.0 + 0x1608 ] IF !CC JUMP^M

  14 Target : <0x02831604> [ /lib/ld-uClibc.so.0 + 0x1604 ]^M

     Source : <0x0283162a> [ /lib/ld-uClibc.so.0 + 0x162a ] JUMP.S^M

  15 Target : <0x02831628> [ /lib/ld-uClibc.so.0 + 0x1628 ]^M

     Source : <0x028315ea> [ /lib/ld-uClibc.so.0 + 0x15ea ] IF !CC JUMP^M

Userspace Stack^M

Stack info:^M

SP: [0x02a9fae4] <0x02a9fae4> [ xip_test + 0x1fae4 ]^M

FP: (0x02a9feb8)^M

Memory from 0x02a9fae0 to 02aa0000^M

02a9fae0:<02835a7a>[00000000] 00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fb00: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fb20: 00000000  00000000  00000000  00000000  00000000  00000000  029172b4  02917030 ^M

02a9fb40: 02917068  02a9ff50  02a9fae4  02917068  02a9fe10  02a9fe20  00000000  00000000 ^M

02a9fb60: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fb80: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fba0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fbc0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fbe0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fc00: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fc20: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fc40: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fc60: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fc80: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fca0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  02a9fe70 ^M

02a9fcc0:<028360e6> 02a9ff50  000005c0  00000002  00000512  02917068  028330d8  02a9fd08 ^M

02a9fce0: 00000000  00000000  02a9fdf8  02a9febc  02a9feb4  02a9ff70  02917068  02917068 ^M

02a9fd00: 02a9feb4  02a9febc  02a9ff50  02917068  00000000  02916f98  00000000  00000000 ^M

02a9fd20: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fd40: 00000000  00000000  00000000  00000000  00000000  00000000  02917068  028300d4 ^M

02a9fd60: 0283074c  028302fc  00000000  00000000  00000000  00000407  00000010  00000000 ^M

02a9fd80: 00000000  000003ec  00000000  00000000  02830b54  000005c0  00000008  00000000 ^M

02a9fda0: 00000000  00000000  00000000  00000001  00000000  00000000  00000000  00000000 ^M

02a9fdc0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fde0: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000 ^M

02a9fe00: 00000000  00000000  00000000  00000000  00000003  201c00b4  00000004  00000020 ^M

02a9fe20: 00000005  00000006  00000006  00001000  00000007  02830000  00000008  00000000 ^M

02a9fe40: 00000009  201c0468  00000000  00000000  0000000b  00000000  0000000c  00000000 ^M

02a9fe60: 0000000d  00000000  0000000e  00000000  02a7fbe0 <02831170> 02917068  02951568 ^M

02a9fe80: 02916f98  02a9ff50  02a9ff70 <02831124> 02917068  02a9ff70  00000000  02916f98 ^M

02a9fea0: 02a9fea8  02a9feb0  00000000  00000000  00000001  02a9ff98 (00000000)<02a9ffa6>^M

02a9fec0: 02a9ffb1  02a9ffd4  02a9ffe8  00000000  00000010  00000000  00000006  00001000 ^M

02a9fee0: 00000011  00000064  00000003  201c00b4  00000004  00000020  00000005  00000006 ^M

02a9ff00: 00000007  02830000  00000008  00000000  00000009  201c0468  0000000b  00000000 ^M

02a9ff20: 0000000c  00000000  0000000d  00000000  0000000e  00000000  00000017  00000000 ^M

02a9ff40: 0000001f  0001ffee  00000000  00000000  00020000  02830000  00000000  00006f0c ^M

02a9ff60: 02916f0c  00007f0c  00000450  00000000  00020000  201c0080  00000000  00000794 ^M

02a9ff80: 029d5794  00001794  00000160  00000000  00000000  00000000  746e6d2f  7069782f ^M

02a9ffa0: 7365745f  45540074  6c3d4d52  78756e69  54415000  622f3d48  2f3a6e69  2f727375 ^M

02a9ffc0: 3a6e6962  6962732f  752f3a6e  732f7273  006e6962  48535548  5245565f  4e4f4953 ^M

02a9ffe0: 312e313d  00322e35  3d445750  6d2f002f  782f746e  745f7069  00747365  00000000 ^M

Return addresses in stack:^M

    address : <0x02835a7a> [ /lib/ld-uClibc.so.0 + 0x5a7a ]^M

    address : <0x028360e6> [ /lib/ld-uClibc.so.0 + 0x60e6 ]^M

    address : <0x02831170> [ /lib/ld-uClibc.so.0 + 0x1170 ]^M

    address : <0x02831124> [ /lib/ld-uClibc.so.0 + 0x1124 ]^M

   frame  1 : <0x02a9ffa6> [ xip_test + 0x1ffa6 ]^M

BUS^M

root:/>

--

 

Follow-ups

 

--- Vivi Li                                                  2009-11-19 03:03:21

Bellow version doesn't crash.

--

kernel:    Linux release 2.6.31.5-ADI-2010R1-pre-svn7729, build #38 Fri Oct 30

14:29:03 GMT 2009^M

toolchain: bfin-uclinux-gcc release gcc version 4.1.2 (ADI svn)^M

user-dist: release svn-9070, build #1252 Fri Oct 30 14:27:50 GMT 2009^M

--

 

--- Sonic Zhang                                              2009-11-24 23:22:25

looks like duplicated to bug 5719.

 

--- Barry Song                                               2009-12-01 05:30:25

It seems our mpu codes haven't handled XIP on async memory case. The following

patch can fix it by handling cplb missing:

(way 1)

Index: arch/blackfin/kernel/cplb-mpu/cplbmgr.c

===================================================================

--- arch/blackfin/kernel/cplb-mpu/cplbmgr.c     (revision 7900)

+++ arch/blackfin/kernel/cplb-mpu/cplbmgr.c     (working copy)

@@ -113,11 +113,11 @@

                addr = L2_START;

                d_data = L2_DMEMORY;

        } else if (addr >= physical_mem_end) {

-               if (addr >= ASYNC_BANK0_BASE && addr <

ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE

-                   && (status & FAULT_USERSUPV)) {

+               if (addr >= ASYNC_BANK0_BASE && addr <

ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE) {

                        addr &= ~0x3fffff;

                        d_data &= ~PAGE_SIZE_4KB;

                        d_data |= PAGE_SIZE_4MB;

+                       d_data |= CPLB_USER_RD;

                } else if (addr >= BOOT_ROM_START && addr <

BOOT_ROM_START + BOOT_ROM_LENGTH

                    && (status & (FAULT_RW | FAULT_USERSUPV)) ==

FAULT_USERSUPV) {

                        addr &= ~(1 * 1024 * 1024 - 1);

@@ -198,12 +198,16 @@

            (addr < physical_mem_end && reserved_mem_icache_on))

                i_data |= CPLB_L1_CHBL | ANOMALY_05000158_WORKAROUND;

#endif

-

        if (L2_LENGTH && addr >= L2_START && addr <

L2_START + L2_LENGTH) {

                addr = L2_START;

                i_data = L2_IMEMORY;

        } 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 &= ~0x3fffff;

+                       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)) {

                        addr &= ~(1 * 1024 * 1024 - 1);

 

(way 2)

Or place an entry for ASYNC memory area in generate_cplb_tables_cpu() just like

l1 or l2?

 

To decrease cplb miss, we maybe use the way1 better?

 

 

--- Barry Song                                               2009-12-02 23:58:21

The current fix doesn't make sense. There are still issues for MTD XIP to do in

our kernel. At least, we need ARCH_MTD_XIP.

 

 

--- Barry Song                                               2009-12-07 03:28:56

While executing in chips, VMA will be created in load_flat/elf_binary/library by

do_mmap, then add_vma_to_mm() -> protect_vma() will be called to transform

VMA to page mask for every process. But our page mask size is ram_end, then

memory   overflow will happen in protect_page(). We must fix it.

 

 

 

--- Vivi Li                                                  2010-01-07 21:51:56

OK now. Close it.

 

 

 

    Files

    Changes

    Commits

    Dependencies

    Duplicates

    Associations

    Tags

 

File Name     File Type     File Size     Posted By

config.xip.shared-flat    application/octet-stream    35657    Vivi Li

config.xip.fdpic    application/octet-stream    35657    Vivi Li

Outcomes