AnsweredAssumed Answered

CPLB miss after gpio-addr-flash access past 4M

Question asked by jkadin on Feb 24, 2014
Latest reply on Jul 2, 2014 by Aaronwu

Aaronwu,

 

Please help!

 

I have tried a couple of changes and can't get rid of the CPLB miss

I reviewed http://ez.analog.com/message/1335#1335, but I  don't know how to add a cplb entry, please help me there

 

Below are the changes I made and at the end is a boot capture and the CPLB  miss

 

I modified mem_map.h as such

/* Async Memory Banks */

/* //JK Added banks 4-7 */

#define ASYNC_BANK7_BASE    0x20700000    /* Async Bank 7 */

#define ASYNC_BANK7_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK6_BASE    0x20600000    /* Async Bank 6 */

#define ASYNC_BANK6_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK5_BASE    0x20500000    /* Async Bank 5 */

#define ASYNC_BANK5_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK4_BASE    0x20400000    /* Async Bank 4 */

#define ASYNC_BANK4_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK3_BASE    0x20300000    /* Async Bank 3 */

#define ASYNC_BANK3_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK2_BASE    0x20200000    /* Async Bank 2 */

#define ASYNC_BANK2_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK1_BASE    0x20100000    /* Async Bank 1 */

#define ASYNC_BANK1_SIZE    0x00100000    /* 1M */

#define ASYNC_BANK0_BASE    0x20000000    /* Async Bank 0 */

#define ASYNC_BANK0_SIZE    0x00100000    /* 1M */

 

I found this in mmu_context.h and changed it

    /*//JK if (unlikely(addr >= ASYNC_BANK0_BASE && addr <  ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE)) */

    if (unlikely(addr >= ASYNC_BANK0_BASE && addr <  ASYNC_BANK7_BASE + ASYNC_BANK7_SIZE))

        page = (addr - (ASYNC_BANK0_BASE - _ramend)) >> 12;

    else

 

I hunted down all the ASYNC_BANK3_BASE and size and changed them to  ASYNC_BANK7_BASE and size

 

and I am still getting the CPLB miss

 

 

U-Boot 2011.09 (ADI-2011R1) (Feb 21 2014 - 12:10:08)

 

CPU:   ADSP bf526-0.2 (Detected Rev: 0.2) (parallel flash boot)

Board: ADI BF526 ML Ctrl-Board board

       Support: JKadin@harman.com

Clock: VCO: 400 MHz, Core: 400 MHz, System: 100 MHz

RAM:   32 MiB

Flash: 8 MiB

In:    serial

Out:   serial

Err:   serial

KGDB:  [on serial] ready

EUP STBY: gpio: PG11 (27) set to 1

CPLD Reset: gpio: PG0 (16) set to 1 - 0 - 1

Net:   bfin_mac

Hit any key to stop autoboot:  0

Done.

..... done

Protected 5 sectors

## Booting kernel from Legacy Image at 01000000 ...

   Image Name:   bf527-2.6.34.7-ADI-2010R1ml52

   Created:      2014-02-23  14:12:43 UTC

   Image Type:   Blackfin Linux Kernel Image (gzip compressed)

   Data Size:    3605950 Bytes = 3.4 MiB

   Load Address: 00001000

   Entry Point:  0026e680

   Verifying Checksum ... OK

   Uncompressing Kernel Image ... OK

Starting Kernel at = 0026e680

console [ttyBF0] enabled, bootconsole disabled

Calibrating delay loop... 796.67 BogoMIPS (lpj=1593344)

Mount-cache hash table entries: 512

Blackfin Scratchpad data SRAM: 4 KB

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

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

Blackfin L1 Instruction SRAM: 48 KB (42 KB free)

NET: Registered protocol family 16

Blackfin DMA Controller

ezbrd_init(): registering device resources

bio: create slab <bio-0> at 0

SCSI subsystem initialized

spi spi0.5: Warning: SPI CPHA not set: Slave Select not under software  control!

See Documentation/blackfin/bfin-spi-notes.txt

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

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

i2c-bfin-twi i2c-bfin-twi.0: Blackfin BF5xx on-chip I2C TWI Contoller,  regs_base@ffc01400

musb_hdrc: version 6.0, musb-dma, host, debug=0

musb_hdrc musb_hdrc.0: MUSB HDRC host driver

musb_hdrc musb_hdrc.0: new USB bus registered, assigned bus number 1

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002

usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1

usb usb1: Product: MUSB HDRC host driver

usb usb1: Manufacturer: Linux 2.6.34.7-ADI-2010R1ml52 musb-hcd

usb usb1: SerialNumber: musb_hdrc.0

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

musb_hdrc musb_hdrc.0: USB Host mode controller at ffc03800 using DMA, IRQ  59

NET: Registered protocol family 2

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

TCP established hash table entries: 1024 (order: 1, 8192 bytes)

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)

TCP: Hash tables configured (established 1024 bind 1024)

TCP reno registered

UDP hash table entries: 256 (order: 0, 4096 bytes)

UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)

NET: Registered protocol family 1

NTFS driver 2.1.29 [Flags: R/W DEBUG].

JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.

JFFS2: default compression mode: priority

msgmni has been set to 48

io scheduler noop registered (default)

bfin-otp: initialized

bfin-uart: Blackfin serial driver

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

bfin-uart.1: ttyBF1 at MMIO 0xffc02000 (irq = 31) is a BFIN-UART

brd: module loaded

GPIO_PG10 granted

GPIO_PG10 Direction set as input

bfin-gpio: GPIO 26 is already reserved by BFIN-GPIO!  (Documentation/blackfin/bfin-gpio-notes.txt)

IRQ for FP_HOST or GPIO_PG10 registered

GPIO_PG5 granted

GPIO_PG5 Direction set as input

bfin-gpio: GPIO 21 is already reserved by BFIN-GPIO!  (Documentation/blackfin/bfin-gpio-notes.txt)

IRQ for CPLD_CPU or GPIO_PG5 registered

ml52_irq: gpio_request() - GPIO_PH10 - TrigIn success

ml52_irq: gpio_direction_input() - GPIO_PH10 - TrigIn success

bfin-gpio: GPIO 42 is already reserved by BFIN-GPIO!  (Documentation/blackfin/bfin-gpio-notes.txt)

ml52_irq: request_irq() - GPIO_PH10 - TrigIn success

gpio-addr-flash: probing 16-bit flash bus

gpio-addr-flash: Found 1 x16 devices at 0x0 in 16-bit bank

Amd/Fujitsu Extended Query Table at 0x0040

number of CFI chips: 1

RedBoot partition parsing not available

gpio-addr-flash: Using board partition definition

Creating 3 MTD partitions on "gpio-addr-flash":

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

mtd: Giving out device 0 to bootloader(nor)

0x000000090000-0x000000800000 : "linux kernel(nor)"

mtd: Giving out device 1 to linux kernel(nor)

0x000000040000-0x000000090000 : "file system(nor)"

mtd: Giving out device 2 to file system(nor)

bfin_mii_bus: probed

bfin_mac: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1,  mdc_clk=2500000Hz(mdc_div=19)@sclk=100MHz)

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

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

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

TCP cubic registered

NET: Registered protocol family 17

dma_alloc_init: dma_page @ 0x016a9000 - 256 pages at 0x01f00000

Freeing unused kernel memory: 4316k freed

mount: mounting devpts on /dev/pts failed: No such device

                           _____________________________________

        a8888b.           / Welcome to the uClinux distribution \

       d888888b.         /       _     _                         \

       8P"YP"Y88        /       | |   |_|            __  __ (TM)  |

       8|o||o|88  _____/        | |    _ ____  _   _ \ \/ /       |

       8'    .88       \        | |   | |  _ \| | | | \  /        |

       8`._.' Y8.       \       | |__ | | | | | |_| | /  \        |

      d/      `8b.       \      \____||_|_| |_|\____|/_/\_\       |

     dP   .    Y8b.       \   For embedded processors including   |

    d8:'  "  `::88b        \    the Analog Devices Blackfin      /

   d8"         'Y88b        \___________________________________/

  :8P    '      :888

   8a.   :     _a88P         For further information, check out:

._/"Yaa_:   .| 88P|            - http://blackfin.uclinux.org/

\    YP"    `| 8P  `.          - http://docs.blackfin.uclinux.org/

/     \.___.d|    .'           - http://www.uclinux.org/

`--..__)8888P`._.'  jgs/a:f    - http://www.analog.com/blackfin

 

Have a lot of fun...

[01/Jan/2007:00:00:02 +0000] boa: server version Boa/0.94.14rc21

[01/Jan/2007:00:00:02 +0000] boa: server built Feb 23 2014 at 06:11:47.

[01/Jan/2007:00:00:02 +0000] boa: starting server pid=347, port 80

 

main() (V2) Sleeping for flash

MAC Addr: < 00 16 5A 00 02 6D  >

 

 

BusyBox v1.16.2 (2014-02-23 06:11:49 PST) hush - the humble shell

 

root:/>

----------------------------------------------------------------------

(via telnet flash_eraseall /dev/mtd1 was executed, it ran until "Erasing 64  Kibyte @ 360000 -- 45 % complete."

and then the console showed the CPLB miss

----------------------------------------------------------------------

 

Data access CPLB miss

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

Kernel OOPS in progress

Deferred Exception context

CURRENT PROCESS:

COMM=flash_eraseall PID=374  CPU=0

TEXT = 0x002b0040-0x002b5460        DATA = 0x002b5480-0x002b73e8

BSS = 0x002b73e8-0x002b76b0  USER-STACK = 0x002b8ee8

 

return address: [0x001160d8]; contents of:

0x001160b0:  05f4  3220  0167  3039  3032  6fa6  af65  300a

0x001160c0:  3045  e3ff  ff9b  e429  0015  3006  e3c7  5b4a

0x001160d0:  a0e1  5041  3211  6c66 [9717] 0127  05b4  0010

0x001160e0:  05e4  3220  0167  6fa6  ce82  c801  a375  0000

 

ADSP-BF526-0.2 400(MHz CCLK) 100(MHz SCLK) (mpu off)

Linux version 2.6.34.7-ADI-2010R1ml52 (root@ubuntu) (gcc version 4.3.5  (ADI-2010R1-RC4) ) #1536 Sun Feb 23 06:12:41 PST 2014

 

SEQUENCER STATUS:               Not tainted

SEQSTAT: 00002026  IPEND: 8008  IMASK: ffff  SYSCFG: 0006

  EXCAUSE   : 0x26

  physical IVG3 asserted : <0xffa00764> { _trap + 0x0 }

  physical IVG15 asserted : <0xffa00fa0> { _evt_system_call + 0x0 }

  logical irq   6 mapped  : <0xffa003a0> { _bfin_coretmr_interrupt +  0x0 }

  logical irq  27 mapped  : <0x0013b448> { _bfin_twi_interrupt_entry +  0x0 }

  logical irq  29 mapped  : <0x000ed610> { _bfin_serial_dma_rx_int +  0x0 }

  logical irq  30 mapped  : <0x000ed384> { _bfin_serial_dma_tx_int +  0x0 }

  logical irq  31 mapped  : <0x000ed610> { _bfin_serial_dma_rx_int +  0x0 }

  logical irq  32 mapped  : <0x000ed384> { _bfin_serial_dma_tx_int +  0x0 }

  logical irq  35 mapped  : <0x0011c904> { _bfin_mac_interrupt + 0x0  }

  logical irq  59 mapped  : <0x001330d4> { _blackfin_interrupt + 0x0  }

  logical irq  62 mapped  : <0x001365e4> { _dma_controller_irq + 0x0  }

  logical irq  92 mapped  : <0x000f37a0> { _gpio_irq_handler_2 + 0x0  }

  logical irq  97 mapped  : <0x000f37c0> { _gpio_irq_handler + 0x0  }

  logical irq 113 mapped  : <0x000f37e0> { _gpio_irq_handler_trigin +  0x0 }

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

RETN: <0x00501c84> /* kernel dynamic memory (maybe user-space) */

RETX: <0x00000480> /* Maybe fixed code section */

RETS: <0x001160d0> { _gf_write + 0x20 }

PC  : <0x001160d8> { _gf_write + 0x28 }

DCPLB_FAULT_ADDR: <0x20400000> /* reserved memory */

ICPLB_FAULT_ADDR: <0x001160d8> { _gf_write + 0x28 }

PROCESSOR STATE:

R0 : 00400000    R1 : 20400000    R2 : 00000000    R3 : 00000000

R4 : 00000554    R5 : 00000002    R6 : 00400000    R7 : 00000030

P0 : 00000002    P1 : 0168de18    P2 : 20400000    P3 : 001160b0

P4 : 015d4204    P5 : 015d4200    FP : 00400000    SP : 00501ba8

LB0: 000cce34    LT0: 000cce32    LC0: 00000000

LB1: 002b380d    LT1: 002b37c2    LC1: 00000000

B0 : 00000000    L0 : 00000000    M0 : 00000004    I0 : 00000002

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 001f23c4

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000

A0.w: 00000000   A0.x: 00000000   A1.w: 00000000   A1.x: 00000000

USP : 002b8d38  ASTAT: 02002020

 

Hardware Trace:

   0 Target : <0x00003f10> { _trap_c + 0x0 }

     Source : <0xffa006f8> { _exception_to_level5 + 0xa4 } JUMP.L

   1 Target : <0xffa00654> { _exception_to_level5 + 0x0 }

     Source : <0xffa00508> { _bfin_return_from_exception + 0x18 }  RTX

   2 Target : <0xffa004f0> { _bfin_return_from_exception + 0x0 }

     Source : <0xffa005ac> { _ex_trap_c + 0x74 } JUMP.S

   3 Target : <0xffa0041c> { _ex_dcplb_miss + 0x0 }

     Source : <0xffa007be> { _trap + 0x5a } JUMP (P4)

   4 Target : <0xffa00764> { _trap + 0x0 }

      FAULT : <0x001160d8> { _gf_write + 0x28 } W[P2] = R7  (Z)

     Source : <0x001160d6> { _gf_write + 0x26 } 0x6c66

   5 Target : <0x001160d0> { _gf_write + 0x20 }

     Source : <0xffa01790> { ___umodsi3 + 0x30 } RTS

   6 Target : <0xffa01790> { ___umodsi3 + 0x30 }

     Source : <0xffa01772> { ___umodsi3 + 0x12 } IF CC JUMP pcrel

   7 Target : <0xffa01760> { ___umodsi3 + 0x0 }

     Source : <0x001160cc> { _gf_write + 0x1c } CALL pcrel

   8 Target : <0x001160c6> { _gf_write + 0x16 }

     Source : <0x00116060> { _gf_set_gpios + 0x68 } RTS

   9 Target : <0x0011605a> { _gf_set_gpios + 0x62 }

     Source : <0x00116028> { _gf_set_gpios + 0x30 } IF !CC JUMP  pcrel

  10 Target : <0x00116020> { _gf_set_gpios + 0x28 }

     Source : <0x0011603e> { _gf_set_gpios + 0x46 } IF CC JUMP  pcrel

  11 Target : <0x0011602a> { _gf_set_gpios + 0x32 }

     Source : <0x00116010> { _gf_set_gpios + 0x18 } JUMP.S

  12 Target : <0x0011600c> { _gf_set_gpios + 0x14 }

     Source : <0xffa01706> { ___udivsi3 + 0xf6 } RTS

  13 Target : <0xffa01704> { ___udivsi3 + 0xf4 }

     Source : <0xffa016f4> { ___udivsi3 + 0xe4 } IF CC JUMP pcrel

  14 Target : <0xffa016f0> { ___udivsi3 + 0xe0 }

     Source : <0xffa01612> { ___udivsi3 + 0x2 } IF CC JUMP pcrel

  15 Target : <0xffa01610> { ___udivsi3 + 0x0 }

     Source : <0x00116008> { _gf_set_gpios + 0x10 } CALL pcrel

Kernel Stack

Stack info:

SP: [0x00501f24] <0x00501f24> /* kernel dynamic memory (maybe  user-space) */

Memory from 0x00501f20 to 00502000

00501f20: 00000000 [002b0d34] 00008000  00002000  00000000  00502000   002b0d34  002b0d34

00501f40: 002b0310  ffa01004  02001044  002b380d  002b1ef5  002b37c2   002b1ef2  00000000

00501f60: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501f80: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501fa0: 00000004  00000000  00000000  002b6e90  002b6a1e  002b8d38   002b8d44  002b7410

00501fc0: 002b7410  00000000  0000002d  00000003  00000036  00000000   00000001  00000000

00501fe0: 00000003  00000000  002b8e6c  40084d02  00000003  00000003   00000036  00000006

Return addresses in stack:

Modules linked in:

Kernel panic - not syncing: Kernel exception

Hardware Trace:

Stack info:

SP: [0x00501acc] <0x00501acc> /* kernel dynamic memory (maybe  user-space) */

FP: (0x00501d40)

Memory from 0x00501ac0 to 00502000

00501ac0: 00000007  00501acc  00000013 [001c72f8] 0018ddaa  00501ba8   001c72f8  002214be

00501ae0: 002214be  002214be  00501afc  0000434c  00501ba8  00008008   00501ba8  0000003f

00501b00: 0000003f  4a0a3020  20206e61  00030001  3a30313a  4d203232   2032354c  72657375

00501b20: 6265642e  6b206775  656e7265  73203a6c  65646970  70732076   352e3069  7463203a

00501b40: 65725f6c  73692067  31783020  2c343030  616c6620  65725f67   73692067  32783020

00501b60: 0a303030  206e614a  30203120  30313a30  2032323a  32354c4d   65737520  65642e72

00501b80: 20677562  ffa006fc  0021e000  00008008  00002026  00000002   00000554  0000be2a

00501ba0: 0024e0e0  00000480  00000480  00008008  00002026  00000000   00501c84  00000480

00501bc0: 001160d8  001160d0  00400000  02002020  002b380d  000cce34   002b37c2  000cce32

00501be0: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501c00: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501c20: 00000000  00000004  00000000  00000000  001f23c4  00000002   002b8d38  00400000

00501c40: 015d4200  015d4204  001160b0  20400000  0168de18  00000002   00000030  00400000

00501c60: 00000002  00000554  00000000  00000000  20400000  00400000   00400000  00000002

00501c80: 00000006 <00110bfc> 0168dde0  015d4204  00000002  00000002   015d4204  00000000

00501ca0: 00400000  00000004  00000000  00000000  0105e0e0  0000e620   00000000  00000000

00501cc0: 015d4204 <0010b8d8> 016a1de0  00010000  0168dde0  00000000   00400000  00000000

00501ce0: 00400000  00501e88  0168de18  00501d70  00010000  00000000   001108a8  00000000

00501d00: 00000001  00010000  002b8d44  001116d0  003e37e0  003e37e0   00501e88  40084d02

00501d20: 00000000  002b8e6c  40084d02  0105e0e0  00000001  00400000   00000000  00010000

00501d40:(00000000)<00106864> 016a2a00  40084d02  002b8e6c  002b8e6c   00109578 <0010978c>

00501d60: 003e37e0  016a2a00  40084d02  00501dc4  0109dd40  40084d02   00000004  00501db4

00501d80: 0000b2fc  0057a000  00000000  0105e0e0  0000e620  00000000   00000000  000000c0

00501da0: 0000002d  0001d776  0057a000  00000000  00000004  0109d8c0   000d97c4  0000002d

00501dc0: 0001d7cc  0000002d  00500000  00000004  000dfba8  0000002d   0057a800  0036f000

00501de0: 0109d8c0  0018ecb4  0000002d <000dafec> 0057a000  00000000   0057a380  00000000

00501e00: 0109d8c0  000dbd28  000dbdb0  0057ac00  00501e48  0000b2fc   016f1af0  0057a000

00501e20: 0057ac00  0000ffff  00000000  002b752c  0000002d  00000000   0105e0e0  0000e620

00501e40: 00000000  00000004  0000002d  000d9336 <015d8ea0> 00000000   0057ac00  0000002d

00501e60: 000d9672  0000002d  00000000  00000000  00370000  00010000   0000002d  00000002

00501e80: 016f1af0 <015d8ea0> 00501e88  00501e88 <0004cc76>  0109dd40  00000036  00000000

00501ea0: 00000003  002b8e6c  002b8e6c  0109dd40  00000020  00000003   002b8e6c  0004cf90

00501ec0: 00000000  00043938  0109d8c0  00000004  002b752c  0004d188   0004d160  0109dd40

00501ee0: 00000003  00020002  ffffe000  00501ef0  002b8e6c  00000000  <ffa008f6> 00000000

00501f00: ffffe000  00000000  00000003  00298feb  0105e0e0  00000001   00000000  00000003

00501f20: 00000000  002b0d34  00008000  00002000  00000000  00502000   002b0d34  002b0d34

00501f40: 002b0310  ffa01004  02001044  002b380d  002b1ef5  002b37c2   002b1ef2  00000000

00501f60: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501f80: 00000000  00000000  00000000  00000000  00000000  00000000   00000000  00000000

00501fa0: 00000004  00000000  00000000  002b6e90  002b6a1e  002b8d38   002b8d44  002b7410

00501fc0: 002b7410  00000000  0000002d  00000003  00000036  00000000   00000001  00000000

00501fe0: 00000003  00000000  002b8e6c  40084d02  00000003  00000003   00000036  00000006

Return addresses in stack:

    address : <0x00110bfc> { _do_erase_oneblock + 0x354 }

    address : <0x0010b8d8> { _cfi_varsize_frob + 0x14c }

   frame  1 : <0x00106864> { _part_erase + 0x50 }

    address : <0x0010978c> { _mtd_ioctl + 0x520 }

    address : <0x000dafec> { _process_output_block + 0x8c }

    address : <0x015d8ea0> /* kernel dynamic memory (maybe user-space)  */

    address : <0x015d8ea0> /* kernel dynamic memory (maybe user-space)  */

    address : <0x0004cc76> { _vfs_ioctl + 0x4a }

    address : <0xffa008f6> { _system_call + 0x6a }

Outcomes