Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12642 Discussions

sopc2dts component crypto_engine_0 of class crypto_engine is unknown

Altera_Forum
Honored Contributor II
3,143 Views

I'm using QuartusII 14.0 webedition and SocEDS 14.0 on CentOS 6.6 with SoCKit. This is my first attempt at writing my own peripheral in the Altera environment. First I built the GSRD from scratch following the tutorial on Rocketboards and this worked fine and linux booted. 

 

Now I'm adding my own peripheral "crypto_engine". Been through the process of generating the .sof and .rbf without errors and I'm trying to build the device tree dts. I have two issues : 

 

1. The file hps_clock_info.xml was not created. Can I ignore this? 

2. I get a repeated error message from sopc2dts when I run the command : 

 

sopc2dts --input soc_system.sopcinfo --output socfpga.dts --board soc_system_board_info.xml 

 

component crypto_engine_0 of class crypto_engine is unknown 

component crypto_engine_0 of class crypto_engine is unknown 

 

I'm guessing there is something I have to do to let sopc2dts know more about my peripheral but I haven't be able to find any help. Can someone let me know how to proceed? 

 

Thanks Mike
0 Kudos
7 Replies
Altera_Forum
Honored Contributor II
1,275 Views

I think there is a post on this (or I did this at "rfi" on Rocketboards). 

Since I was having trouble - I did the following: 

 

1. Start with sopc2dts and create a .dts file from your .sopcinfo -- you should see in there your custom IP. 

 

2. I used the GSRD .dts file and added my custom IP from 1. 

 

3. I used dtc to creat a .dtb 

 

dtc -I dts -O dtb outputfilename.dtb inputfilename.dts
0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

Hi, 

 

Thanks I appreciate the reply. 

 

My custom IP does show up in the .sopcinfo file but is stripped out of the .dts file by sopc2dts. 

 

I'd read the post and I've been looking at just adding the node back to the .dts (once I've figured out the syntax and which subnode to place it in) as a short term workaround. 

 

I kinda see this as giving up on sopc2dts I'm hoping to figure out how to make it work so that I can build my own boards in the future without having to build the .dts manually. 

 

My interpretation of the error message is that there is something else sopc2dts needs to know about my custom IP in order to generate the .dts or maybe sopc2dts can only handle the packaged altera IP blocks. 

 

Best, Mike.
0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

Look at:  

http://www.rocketboards.org/foswiki/documentation/devicetreegenerator141 

 

in the section Adding Device Tree Generation Support to an IP Block 

It tells you how to use Quartus to create a *.xml file so that the sopc2dts
0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

Thanks, the section on customizing the _hw.tcl file for the component did the trick.

0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

Mikemcg - 

I wanted to send you a private message but can't seem to remember how. 

Since you got your custom IP going did you happen to get a device driver to recognize it? I've got a device driver and user space code for my custom IP but I seem to have some disconnect (.dtb to Linux?) because I can get the iomem resource (registers I need to write and read) but when I try and write to the register it doesn't see it.
0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

Yeah, I think private messaging is turned off for this forum. 

 

I haven't gotten to the driver yet but will be soon. So far I've been able to build the standard gsrd completely from scratch with my IP embedded in the design. I want to be in the gui environment before I build the driver. Right now I'm trying to build the standard LXDE from scratch (almost got it working) and then will integrate my component into that design. My approach to getting to debugging the driver is that I always include a read only revision register in the hardware and I start by trying to read it, once that works I then try writing to the other registers. 

 

Anyway, once I've gotten to that point I'll post on what I had to do ti get it to work. 

 

Best Mike.
0 Kudos
Altera_Forum
Honored Contributor II
1,275 Views

THANKS -- so you are planning on using the DS-5 environment to create your device driver?  

 

Mine was done by cross compiling with the kernel headers and my device tree blob seems fine... really frustrating. So, close but clueless as to what to do to fix it. It has to be a device tree - Linux issue "I think."
0 Kudos
Reply