soha

Members
  • Content Count

    17
  • Joined

  • Last visited

About soha

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi @jpeyron, Yes I checked the link but it seems there is no tutorial on how to manipulate these device registers... I've also submitted a request to the Linaro community but haven't received any reply... Anyway, if we regard the coresight component as a normal hardware device, there might be (I guess) some common solution for my case?
  2. Thanks @jpeyron . I'm looking forward to it.
  3. I have a Ubuntu Linux (4.6 kernel) running on a Zedboard, which is based on an ARM architecture. The architecture comes with a hardware module called Coresight, which enables HW-based program tracing. In my setup, the Coresight component is registered at physical address 0xf889c000. I want to configure the component through the device register etmcr, whose offset is 0x0. I tried to run devmem2 (a program helps manipulate physical memory via mmap) as a root to write some custom value to this register. The mmap threw no error, the write succeeded since the immediate readback value was the expected value. However, when I read this address again, the value didn't actually change. (Please see the attached screenshot). I've checked the Technical Manual of the Coresight and this register is for sure a RW register. So what could be the reason of what happened here? Why the register write succeeds but has no effect actually? Thanks in advance.
  4. soha

    use Pmod in Zedboard

    Hi @jpeyron, Thanks for your reply. I think the reason why I cannot get it work previously is that I didn't connect the clock input to the trace I/O. I thought there is an intrinsic clock signal in the PS that drives the trace module by default. Currently, I still cannot see my output in the COM monitoring terminal on my PC. Probably there is some driver-related problem. Unfortunately, I don't have o-scope by my side now so I am not able to physically touch the pin. In any case, I believe the FPGA-side work should be just as what you suggested. Thanks for your help! Best, soha
  5. soha

    use Pmod in Zedboard

    Hi @jpeyron, Thanks for your reply. I think the trace port from CoreSight is quite similar as other I/O peripheral like UART, SPI, etc. and can be mapped through either MIO or EMIO, as the block diagram below shows. I know JE Pmod is the PS-side Pmod and I think this is why you suggest to use it. But it seems that some of the JE Pmod pins has been occupied by some other peripheral and I think if you map the I/O peripheral through EMIO, you can only map it to PL-side Pmod, right? That's why I'm trying to use PL-side Pmod. What actually confused me is what the requirement is to make the mapping work (i.e. I can at least monitor some output using software like Tera Term). From the link I posted in my question and the link you just posted, there is no additional effort needed to be taken other than making the port external and writing appropriate mapping in the .XDC file. However, there is no output can be caught after I burn the board. I must miss something here, while I really have no idea about it. So what is the standard flow to extract signals off the board from the interface like Pmod or JTAG? I will really appreciate it if there is any clear instruction/tutorial/explanation. Thanks in advance. Soha
  6. Hi, I have loaded a Linaro Ubuntu on the Zedboard using Vivado 2016.2 and I want to extract the CoreSight trace data off the board. By applying the same idea suggested in the link http://blog.idv-tech.com/2014/03/22/howto-export-zynq-peripheralsi2c-spi-uart-and-etc-to-pmod-connectors-of-zedboard-using-vivado-2013-4/ , I enabled CoreSight component in the block customization of the Zynq PS, mapped its IO to EMIO, made the TRACE_0 external, and changed my .XDC file to map the 8-bit output data to the JA1 PMOD data pins. However, I'm not sure with my next step. When I powered on my board and tried to use Tera Term to monitor the Pmod port, Tera Term cannot even detect the COM port. So what I'm missing here? It seems that it is not as straightforward as just plug-in-and-use. Do I need some specific IP core or write a driver in the OS to make this work? I think what I want to do is just to offload some data through the PL-side Pmod and monitor it using Tera Term. I believe this can be done without much pain. So is there tutorial outside for that? Thanks in advance. P.S. Does Digilent provide any Pmod-to-USB converter which supports 2x6 pinouts? If yes, can anyone provide a link for that?
  7. Hi Jpeyron, Thanks for your reply and I don't know why I didn't get email notification when you update so I kind of missed it. I guess your concern is valid and I just have a very quick question (and it might be stupid but I just want to make sure). The question is: Whether my peripheral communicates with the memory through AXI bus or DMA, my peripheral can only write its own allocated address space. Is this correct? For example, if I create a CIP and it is mapped to a base address 0x10000000 with a 4K memory space, I can only read/write this space, right? There is no way to read/write to other memory address, e.g. 0x50000000, 0xA0000000, right? If I want to read/write other memory address, I can only do it through the OS? Thanks in advance.
  8. Hi, I have a Zedboard and I have loaded a Linux OS on it. I'm wondering how I can implement an AXI master custom IP to write to memory-mapped registers (e.g. for configuration purpose). I tried to implement an AXI master IP block to write the specific registers through the GPIO slave interface on the PS. I provided target address and value to be written in the Verilog code for the IP. The write event is initiated by pressing a button on the board. Currently, when I press the button, the OS goes into a deadlock state. My questions are as follows: (1) Can I use the AXI master IP and GPIO connection to write to a memory-mapped register? Do I need to also implement an interrupt (I'm guessing missing an interrupt mechanism is my problem but not sure)? (2) Do I actually have to use a DMA controller to fulfill the task instead of using the GPIO slave interface? In any case, does anyone have a tutorial for how to implement an AXI master custom IP to write to memory-mapped registers? I've found a lot about AXI slave IP but can't find something about AXI master IP. Thanks in advance.
  9. soha

    enable ARM coresight

    Hi Jon, Yes, I also asked Xillybus about the question but it seems no one there has the experience on coresight.... I'm counting on someone in the Xilinx community may help but haven't received any reply... Anyway, thanks for your help!
  10. soha

    enable ARM coresight

    Hi Dan, Thank you for your information. Unfortunately, my task is to get the internal information of an ARM processor... While the IP core cannot be modified, the task is even more difficult... I will keep thinking anyway... Thanks
  11. soha

    enable ARM coresight

    Hi Dan, Thanks for your reply. I'm also looking for alternative option without using CoreSight to achieve my goal. I'm not sure if CoreSight is necessary in my case. Actually, the essential point in my case is that I have to implement a custom logic which can dump processor-related information (e.g. current instruction, register value, context ID, etc.) in order to track/monitor the processor state. The trace function must be triggered through pure hardware logic. For example, if I press a button on the board, my custom logic will start talking to the processor, dumping the necessary processor-related information, and offloading it off-chip to my PC for analysis. Is this can be done? Any suggestion? Thank you so much.
  12. soha

    enable ARM coresight

    Hi Jon, Thanks for your reply. A quick question, is there any alternative option to achieve my objective without using CoreSight? Specifically, is there a way to dump processor-related information (e.g. current instruction, register value, etc.) without using CoreSight? Thanks.
  13. I have loaded a Xillinux OS on the Zedboard. Currently, I'm trying to enable the ARM CoreSight feature to perform program trace. My question is, is there any starter guide or tutorial for how to enable the CoreSight feature and offload the collected data to the PL? I've searched online and the only thing I can find related to CoreSight iis the official documentation, introducing the architecture, interface, etc. However, I can't find an example to start with. Any help? Thanks.
  14. Hi Dan, I think I have to start playing with the coresight and PMod and see what's going on. I appreciate all the information and help.
  15. Hi Dan, PMod is also what I've found so far from the manual. Another option might be JTAG. Both of them are available now so I think I can use any of them to extract my data. As confirmed by you, probably I would look at PMod first. My only concern is the practicality. I'm not sure with the exact number of bytes generated by my tracer before I have a solid implementation but it can be expected to be at KB or MB/s level. So which option do you think would fit my case better, PMod or JTAG? Do I need a FIFO between the connection of the PMod and my PL? Sorry if my question goes too detailed... I'm at evaluation stage and I appreciate your help.