Arm Community
Site
Search
User
Site
Search
User
Groups
Education Hub
Distinguished Ambassadors
Open Source Software and Platforms
Research Collaboration and Enablement
Forums
AI and ML forum
Architectures and Processors forum
Arm Development Platforms forum
Arm Development Studio forum
Arm Virtual Hardware forum
Automotive forum
Compilers and Libraries forum
Graphics, Gaming, and VR forum
High Performance Computing (HPC) forum
Infrastructure Solutions forum
Internet of Things (IoT) forum
Keil forum
Morello forum
Operating Systems forum
SoC Design and Simulation forum
SystemReady Forum
Blogs
AI and ML blog
Announcements
Architectures and Processors blog
Automotive blog
Graphics, Gaming, and VR blog
High Performance Computing (HPC) blog
Infrastructure Solutions blog
Internet of Things (IoT) blog
Operating Systems blog
SoC Design and Simulation blog
Tools, Software and IDEs blog
Support
Arm Support Services
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Support forums
Arm Development Studio forum
Accelerator Coherency Port
Jump...
Cancel
Locked
Locked
Replies
6 replies
Subscribers
120 subscribers
Views
8014 views
Users
0 members are here
Options
Share
More actions
Cancel
Related
How was your experience today?
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion
Accelerator Coherency Port
Shakith Fernando
over 11 years ago
Note: This was originally posted on 25th January 2013 at
http://forums.arm.com
Hi all,
I'm trying to use the AcceleratorCoherency Port of the ARM A9MPCORE in the Xilinx Zynq platform (
http://www.xilinx.co...vices/index.htm
).
1.[size="2"] [/size]I have a functionaldesign where DMA in the FPGA region is able read and write data through the ACP.But is there direct way to verify that the data is coming from the cacheitself. Only option is to measure cache hits using the PL310 cache controllerevent registers againist a known data set size. But it's a not exact solution,as there may be cache hits in the L1 cache hits instead of L2.
2. As mentioned here (
http://forums.arm.co...pcore-acp-port/
),I downloaded the Ds5 tools to get access to the reference design, but there is nospecific target design for the ACP. The startup code that enables MMU, L1 cachesand SCU should be enough to make sure the ACP is getting the data from cache?
3. Cacheable region setting can be set in the MMU table. Butdoes it guarantee exclusive access to a fixed memory region. Maybe if a linux osis running, then it can cause cache thrashing. Is there way to set priority forthe region?
4. Is there support for linux for this. As I understand the ACP istechnically a hardware thing and should be transparent to software. Only thing isto do would be to expose the memory region from kernel space to user space togive it to the DMA engine.
Thanks in advance.
Parents
Shakith Fernando
over 11 years ago
Note: This was originally posted on 7th February 2013 at
http://forums.arm.com
Hi all,
I'm trying to verify the ACP operation byusing Performance Monitor Unit (PMU). I'mworking on the Xilinx zynq platform with the arm a9 cores.
The PMU is not enabled by default boot codeprovided by Xilinx.
I would assume there would be at least 3ways to access this and control it. Memory mapped registers, arm c15 control processorand debug access port(DAP).
1.[size=2] [/size]According the Zynq TechnicalReference Manual (
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 85), its only accessible by actually two ways arm c15 control processor anddebug access port. But surprisingly, the manual provides software controlled registerspace for in page 881. Does this mean it's possible to memory mapped control ofthe PMU? I tried a memory mapped implementation and it didn't work. There couldsomething on trustzone that needs be enabled to control the PMU( which I didn'ttry yet)?
2.[size=2] [/size]Second option was using the DAPdebug access port (DAP). According to
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdfpage 581
, if Jtag mode is selected to be in the independent mode, DAP can beaccess through a JTAG pins either through the mio or the emio sides. At leaston the Zynq Zedboard there is no physical port for this. Mio or emio pints needsto forwarded to PMod ports and connected with something like this (
http://www.em.avnet.com/en-us/design/drc/Pages/ZedBoard-Processor-Debug-Adapter-.aspx
)to get access to the DAP. Is this the only way to access the debug port.
3.[size=2] [/size]Alternatively option is thecp15 option. I imported an example assembly code from Arm DS5 tools(Optimization3 example attached here). The problem is that Xilinx arm gcc tool chain from codesourcerytool has a complete different assembler compared to the armgcc. EXPORT, PROC,ENDP all of this are specific to the ARM assembler. The next step was to modify and inline thereference assembly code in to c file to be compiled, which worked for one functionI tested. Are there any compiler flags that I can enable to use ARM directivesin gnu assembly? And why is this so?
Only option is thento translate the arm assembly to gnu assembler format. Before that, I wouldlike to confirm there is no direct way to use either memory mapped or the debugaccess port above to control the PMU. Or any other solutions to any of thethree options?
Thanks in advance.
Cancel
Up
0
Down
Cancel
Reply
Shakith Fernando
over 11 years ago
Note: This was originally posted on 7th February 2013 at
http://forums.arm.com
Hi all,
I'm trying to verify the ACP operation byusing Performance Monitor Unit (PMU). I'mworking on the Xilinx zynq platform with the arm a9 cores.
The PMU is not enabled by default boot codeprovided by Xilinx.
I would assume there would be at least 3ways to access this and control it. Memory mapped registers, arm c15 control processorand debug access port(DAP).
1.[size=2] [/size]According the Zynq TechnicalReference Manual (
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf
page 85), its only accessible by actually two ways arm c15 control processor anddebug access port. But surprisingly, the manual provides software controlled registerspace for in page 881. Does this mean it's possible to memory mapped control ofthe PMU? I tried a memory mapped implementation and it didn't work. There couldsomething on trustzone that needs be enabled to control the PMU( which I didn'ttry yet)?
2.[size=2] [/size]Second option was using the DAPdebug access port (DAP). According to
http://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdfpage 581
, if Jtag mode is selected to be in the independent mode, DAP can beaccess through a JTAG pins either through the mio or the emio sides. At leaston the Zynq Zedboard there is no physical port for this. Mio or emio pints needsto forwarded to PMod ports and connected with something like this (
http://www.em.avnet.com/en-us/design/drc/Pages/ZedBoard-Processor-Debug-Adapter-.aspx
)to get access to the DAP. Is this the only way to access the debug port.
3.[size=2] [/size]Alternatively option is thecp15 option. I imported an example assembly code from Arm DS5 tools(Optimization3 example attached here). The problem is that Xilinx arm gcc tool chain from codesourcerytool has a complete different assembler compared to the armgcc. EXPORT, PROC,ENDP all of this are specific to the ARM assembler. The next step was to modify and inline thereference assembly code in to c file to be compiled, which worked for one functionI tested. Are there any compiler flags that I can enable to use ARM directivesin gnu assembly? And why is this so?
Only option is thento translate the arm assembly to gnu assembler format. Before that, I wouldlike to confirm there is no direct way to use either memory mapped or the debugaccess port above to control the PMU. Or any other solutions to any of thethree options?
Thanks in advance.
Cancel
Up
0
Down
Cancel
Children
No data