UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
11,312 Views
Registered: ‎09-23-2011

I-Side Memory Access Check Failed

Jump to solution

After a recent change to my hw platform to add a custom IP to learn how to read and write to registers I am getting the following error when trying to Launch on Hardware my C application:

 

17:15:29 ERROR : Unexpected error while launching program. java.lang.RuntimeException:  ERROR: Failed to download ELF file

I-Side Memory Access Check Failed
    Section, 0xbc000000-0xbc01e6fb Not Accessible from Processor I-Side Interface
    at com.xilinx.sdk.targetmanager.internal.TM.downloadELF(Unknown Source)
    at com.xilinx.sdk.debug.core.internal.AppRunner.run(Unknown Source)

 

Previous posts seem to indicate a linker script may be required or (and?) my elf file is too big to fit into memory.  The custom IP I added was quite small (I believe) and I have backed out all changes to my C code and am attempting to run it as it was before.  There were no problems loading the bit file  during the Program FPGA step.  I'm using an Avnet Spartan-6 LX9 Microboard and should have plenty of memory.

 

I'm new to this and I'm really struggling here... Can someone please point me in the right direction?  How do I check the size of the elf file?  

 

 

 

0 Kudos
1 Solution

Accepted Solutions
Adventurer
Adventurer
14,437 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

This turned out to be a simple problem which was made very difficult by a very poor SDK error message.

 

The combination of my hardware platform and C application had gotten too big to fit into the 32 KB BRAM.

 

Using Xilinx Tools -> Generate Linker Script I moved code and data from BRAM to the external 64 MB SRAM.

 

This resulted in the progam continuously  resetting during initialization, so I tried doubling the heap and stack sizes, which solved that problem. 

View solution in original post

15 Replies
Xilinx Employee
Xilinx Employee
11,309 Views
Registered: ‎02-01-2008

Re: I-Side Memory Access Check Failed

Jump to solution

I'm not sure what your system looks like and whether it's ppc or microblaze but xmd (the application that downloads an elf over the jtag cable) comunicates with the processor and instructs the processor to write data to memory. So, if the data port of the processor has no access to the memory, then you can not download the elf over jtag.

0 Kudos
Adventurer
Adventurer
11,304 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

Thank you for the reply.

 

It is a microblaze system. 

 

It was loading fine prior to the change to the hardware platform to add the custom IP, which does nothing except load a constant into its single software accessible register so I can see if I'm reading it correctly from the C program.

 

Looking at the Addresses tab in XPS I see 64M allocated for MCB3_LPDDR.  Wouldn't that be where the program is loaded?

 

I'll be happy to load any files to the board if someone is able to try to help me troubleshoot.  I'd also be happy with links to material online that might help me learn what's going on here.  I've been reading quite a bit but have not so far found anything that describes this part of the process in detail.

 

 

 

0 Kudos
Xilinx Employee
Xilinx Employee
11,295 Views
Registered: ‎08-01-2007

Re: I-Side Memory Access Check Failed

Jump to solution
Please try to use the standalone XMD to download your elf after bitfile configuration.

If it reports the same error, it's your project's problem.
Otherwise, it can be a SDK java problem.


XMD% connect mb mdm
XMD% dow xxx.elf
XMD% run
0 Kudos
Adventurer
Adventurer
11,285 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

XMD results pasted below but I don't know what it's telling me. 

 

When I type "run" the program does not execute.

 

 

 

Xilinx Microprocessor Debugger (XMD) Engine
Xilinx EDK 13.2 Build EDK_O.61xd
Copyright (c) 1995-2009 Xilinx, Inc.  All rights reserved.

XMD%
XMD% connect mb mdm

JTAG chain configuration
--------------------------------------------------
Device   ID Code        IR Length    Part Name
 1       04001093           6        XC6SLX9

MicroBlaze Processor Configuration :
-------------------------------------
Version............................8.20.a
Optimization.......................Performance
Interconnect.......................AXI-LE
MMU Type...........................No_MMU
No of PC Breakpoints...............1
No of Read Addr/Data Watchpoints...1
No of Write Addr/Data Watchpoints..1
Instruction Cache Support..........on
Instruction Cache Base Address.....0xc0000000
Instruction Cache High Address.....0xc3ffffff
Data Cache Support.................on
Data Cache Base Address............0xc0000000
Data Cache High Address............0xc3ffffff
Exceptions  Support................off
FPU  Support.......................off
Hard Divider Support...............on
Hard Multiplier Support............on - (Mul32)
Barrel Shifter Support.............on
MSR clr/set Instruction Support....on
Compare Instruction Support........on
Data Cache Write-back Support......off
Fault Tolerance Support............off
Stack Protection Support...........off

Connected to "mb" target. id = 0
Starting GDB server for "mb" target (id = 0) at TCP port no 1234
XMD% dow raw_apps.elf
Downloading Program -- raw_apps.elf
        section, .vectors.reset: 0x00000000-0x00000007
        section, .vectors.sw_exception: 0x00000008-0x0000000f
        section, .vectors.interrupt: 0x00000010-0x00000017
        section, .vectors.hw_exception: 0x00000020-0x00000027
        section, .text: 0xbc000000-0xbc01e6fb
        section, .init: 0xbc01e6fc-0xbc01e73b
        section, .fini: 0xbc01e73c-0xbc01e75b
        section, .rodata: 0xbc01e75c-0xbc01f6fb
        section, .sdata2: 0xbc01f6fc-0xbc01f6ff
        section, .data: 0xbc01f700-0xbc01fccf
        section, .ctors: 0xbc01fcd0-0xbc01fcd7
        section, .dtors: 0xbc01fcd8-0xbc01fcdf
        section, .eh_frame: 0xbc01fce0-0xbc01fce3
        section, .jcr: 0xbc01fce4-0xbc01fce7
        section, .bss: 0xbc01fd00-0xbc0b79c7
        section, .heap: 0xbc0b79c8-0xbc0d79c7
        section, .stack: 0xbc0d79c8-0xbc0f79c7
Setting PC with Program Start Address 0x00000000
System Reset .... DONE

XMD% run
Processor started. Type "stop" to stop processor

RUNNING> 0
XMD%

0 Kudos
Adventurer
Adventurer
14,438 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

This turned out to be a simple problem which was made very difficult by a very poor SDK error message.

 

The combination of my hardware platform and C application had gotten too big to fit into the 32 KB BRAM.

 

Using Xilinx Tools -> Generate Linker Script I moved code and data from BRAM to the external 64 MB SRAM.

 

This resulted in the progam continuously  resetting during initialization, so I tried doubling the heap and stack sizes, which solved that problem. 

View solution in original post

Newbie jogasian
Newbie
11,273 Views
Registered: ‎10-13-2011

Re: I-Side Memory Access Check Failed

Jump to solution

I am doing the exact same thing as the OP and am seeing the same problem. When you changed the linker script did you move everything over to the SRAM or just some pieces?

 

Thanks

Jason


@wreinhold wrote:

This turned out to be a simple problem which was made very difficult by a very poor SDK error message.

 

The combination of my hardware platform and C application had gotten too big to fit into the 32 KB BRAM.

 

Using Xilinx Tools -> Generate Linker Script I moved code and data from BRAM to the external 64 MB SRAM.

 

This resulted in the progam continuously  resetting during initialization, so I tried doubling the heap and stack sizes, which solved that problem. 




0 Kudos
Adventurer
Adventurer
11,271 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

I moved code & data to SRAM and left the heap and stack where they were.

 

Bill

0 Kudos
Visitor danica
Visitor
11,217 Views
Registered: ‎08-18-2011

Re: I-Side Memory Access Check Failed

Jump to solution

I have similar problem when I try to Launch on Hardware my C application:

 

ERROR : Unexpected error while launching program. java.lang.RuntimeException:  ERROR: Failed to download ELF file

D-Side Memory Access Check Failed
    Section, 0x82000000-0x82000035 Not Accessible from Processor D-Side Interface
    at com.xilinx.sdk.targetmanager.internal.TM.downloadELF(Unknown Source)
    at com.xilinx.sdk.debug.core.internal.AppRunner.run(Unknown Source)

 

I wanted to try to solve it like you, with changing linker script, but when I tried Xilinx Tools -> Generate Linker Script GUI doesn't oppen ! I can open any other GUI under Xilinx Tools, just Generate Linker Script doesn't want to open ! Is there something that I shoud set up in project settings or similar to be able to open Generate Linker Script window and perform some changes there in order to try to solve my problem ?

Thank you very much in advance.

0 Kudos
Adventurer
Adventurer
11,209 Views
Registered: ‎09-23-2011

Re: I-Side Memory Access Check Failed

Jump to solution

I didn't have to do anything special to get that GUI to open.  To get it to populate correctly you have to first click on your C project in the Project Explorer list, but that doesn't sound like the problem you're having.

 

If you don't get a solution on this thread you might want to try opening a new one.  The Xilinx engineers that monitor these forums told me they sometimes overlook threads marked "solved."

0 Kudos
Visitor danica
Visitor
4,952 Views
Registered: ‎08-18-2011

Re: I-Side Memory Access Check Failed

Jump to solution

I think tools are sometimes a little "buggy" ... I create a new workspace and new sdk project with the same hardware platform and it solved this 'problem' with Xilinx GUI.

And for this concrete problem I had, I just increase the size of existing BRAM blocks and add a new one :)

I taught I had enough memory, didn't know this can cause the problem... My application that should run on MB is really small, just few lines of code...

0 Kudos
Adventurer
Adventurer
4,645 Views
Registered: ‎03-14-2012

Re: I-Side Memory Access Check Failed

Jump to solution
Hi, I have faced the same problem with you. I have tried double the heap and stack size, but it did not work. And I dont know what do you mean about "This resulted in the progam continuously resetting during initialization". So, can you help me?
Thanks.
0 Kudos
3,885 Views
Registered: ‎06-11-2014

Re: I-Side Memory Access Check Failed

Jump to solution

 the data port of the processor has no access to the memory. how to give access to the data port for write operation. reply

0 Kudos
Highlighted
Visitor nemmo0
Visitor
2,780 Views
Registered: ‎08-09-2014

Re: I-Side Memory Access Check Failed

Jump to solution

Hi,

 

In my case it was saying

 

Unknown Error Occured
Section, 0x40000000-0x40026933 Not Accessible from Processor I-Side Interface

at com.xilinx.sdk.targetmanager.internal.TM.downloadELF(TM.java:666)
at com.xilinx.sdk.debug.core.internal.AppRunner.run(AppRunner.java:129)
at com.xilinx.sdk.debug.core.XilinxAppLaunchConfigurationDelegate.runApplication(XilinxAppLaunchConfigurationDelegate.java:605)
at com.xilinx.sdk.debug.core.XilinxAppLaunchConfigurationDelegate.launch(XilinxAppLaunchConfigurationDelegate.java:293)
at com.xilinx.sdk.debug.ui.XilinxAppLaunchDelegateWrapper.launch(XilinxAppLaunchDelegateWrapper.java:31)

 

where I had a DDR at 0x400000. After struggling a bit I solved it by increasing the stack and heap sizes in lscript.ld.

0 Kudos
Visitor wintermayr
Visitor
2,480 Views
Registered: ‎04-05-2016

Re: I-Side Memory Access Check Failed

Jump to solution

I got the same problem as 

Unknown Error Occured
Section, 0x80000000-0x8002e173 Not Accessible from Processor I-Side Interface

at com.xilinx.sdk.targetmanager.internal.TM.downloadELF(TM.java:686)
at com.xilinx.sdk.debug.core.internal.AppRunner.run(AppRunner.java:129)
at com.xilinx.sdk.debug.core.XilinxAppLaunchConfigurationDelegate.runApplication(XilinxAppLaunchConfigurationDelegate.java:609)
at com.xilinx.sdk.debug.core.XilinxAppLaunchConfigurationDelegate.launch(XilinxAppLaunchConfigurationDelegate.java:296)
at com.xilinx.sdk.debug.ui.XilinxAppLaunchDelegateWrapper.launch(XilinxAppLaunchDelegateWrapper.java:31)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858)
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707)
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018)
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)

 

I tired all the solution discussed before by increasing the stack and heap size... but still have this annoying message.

Can somebody explain what is I-side memory access failed mean?

0 Kudos
Xilinx Employee
Xilinx Employee
2,471 Views
Registered: ‎08-02-2007

Re: I-Side Memory Access Check Failed

Jump to solution

 

Hi wintermayr,

 

Would that be possible to create a new thread with the address map of your design and the linker script?

 

--Hem

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos