- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I need some help about triple speed ethernet (tse) to receive and transmit datas. I have paid for IP-TRIETHERNET + IP-NIOS + IP-TCPIP-NIOS. The altera support and commercial contact told me that I need only this pack to do the gigabit... I add gigabit to our board. We need 10/100 and 1G in ethernet. We use the marvel 88E1111 like phy and cyclone II (stratix III too on other board). We connect the phy marvell with altera in mii / gmii mode. I have a nios II with the tse module. With the advise of altera support, I do my sopc project with the "Triple Speed Ethernet Data Path Rference Design" aka AN483. But with this exemple , I can't send my own datas or receive and display the datas that I receive. The module "eth_gene" can send only random datas or incremental datas and "eth_moni" can count the bytes received and mentionned if packets with error or not. I don't understand why we need other module to have the datas or to send our own messages because I paid for doing all in gigabit. If I want to use the "simple socket server " exemple code, I need to use the "sgdma" module but it is not free. (see in ug_ethernet.pdf 6.2) And why didn't tell me that I need other thing to use my tse pack ? So, is the sgdma module important ? necessary ? or can I create my own module to use the streaming (in and out) from my tse module in the nios. Our board must send any datas that we want and receive any datas on ethernet. How can I access to the datas in the fifo of the triple speed ethernet module ? I need help about this and it's very urgent. Thanks Cordialy, Benoît Edit : my .qar file ici (http://exterminabur.free.fr/etep608a_dtd_ben.qar)Link Copied
33 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You should be able to use the simple socket server example.
You are right, sgdma module is required for tse connection to nios, but actually it is free, included in sopc builder standard components. This is true for Cyclone III, but afaik for Cyclone II and Stratix, too. Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- You should be able to use the simple socket server example. You are right, sgdma module is required for tse connection to nios, but actually it is free, included in sopc builder standard components. This is true for Cyclone III, but afaik for Cyclone II and Stratix, too. Cris --- Quote End --- Hi Cris, thanks for information for sgdma module I find it. Now I try to configure it to add to my sopc For the example, I think I must add the "mdio" in the tse module ,doesn't you ? Edit: I must add two "sgdma" module for each streaming from tse module ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
You usually always need to include mdio interface in order to configure your phy run time. Otherwise you are forced to use a few standard configurations, selected by pulling up/down some phy strap pins during reset. Regarding sopc builder connections, you need both a tx sgdma and a rx sgdma for a single tse module. Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks again for your help.
Ok for the mdio/mdc (before I use pio like sda/scl with success). Ok for the twice sgdma module to do rx and tx and now ,see my screen of my connexions in sopc builder. Can you help me ,perhaps to connect all correctly (and modify modules if necessary) ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
great
I'm looking that In waiting, I add a "on chip memory" to connect all ^^ to test it. Thanks but I don't understand why these information are not included or explain with more details in documentation from altera. In altera support, I didn't have the same help and not these information. thanks again. I open it immediatly. Ben- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello again
so , thanks for the sopc file I do my sopc with success ;) but now, in nios II ide, I want to compile but I have some errors. I don't have the files "altera_avalon_sgdma_regs.h" , "altera_avalon_sgdma_descriptor.h" and "altera_avalon_sgdma.h". So my compilation failed. Why these files don't give in base ? where can I have it ? thanks again Ben
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ben,
On my system , the files are here: \altera\90sp2\ip\altera\sopc_builder_ip\altera_avalon_sgdma Check if you have them, too. Maybe in a different directory if you are using a different version. Probably you are missing the include paths in Nios IDE. Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Cris,
yes I do the files in the same directory So, I'm looking for this problem and why I have this error : " c:/Trav_Quartus/etep608A/etep608A_Cyclone/software/prog_nios1_etep608A_bsp/drivers/src/altera_avalon_tse.c:31: ./drivers/inc/altera_avalon_tse.h:96:33: altera_avalon_sgdma.h: No such file or directory" I'll back soon if I find th reason. Edit:in fact, these files don't appear in my "bsp" in the folder "driver" so I have this error but "# ifdef __ALTERA_AVALON_SGDMA" is ok and recognize... I don't understand- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi again,
all adds are ok. but I have a new problem. My ram memory (external) is called "ramprog" and the base address is "0x8a00000". Before changing (add "sgdma modules"), I control the base address in th .objdump generated and it is "0x8a00000" ,So , ok. but after changing, (add "sgdma modules" with your help) my new .objdump file have the base address (to start) to "0x8a00230". So my program doesn't work. i don't undestand why the "start" address has changing. I check it on the sopc, and the base address is good (0x8a00000) and in my bsp project (in nios II ide) the base address is 0x8a000000 too. can you help me ? maybe an option in bsp editor I must change ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Check the objdump file for the code section which has been mapped to those 0x230 bytes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In fact, I have a program in a boot (a onchip memory in altera) that it jumps to my ram (where there is the final program in RAMPROG with base address = 0x8a00000).
I add to you my .objdump files : - prog_nios1_etep608A.objdump is my old before adding "sgdma module" and it works great - prog_91_etep608A.objdump is my new after adding the module (in the objdump .zip file ;) ) thanks again Cris for your help- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can't give you an exact explanation. I faced similar problems in the past during some tests but I can't remember or I didn't investigate the cause.
I think this could be related to one of these: - placement of exception vector; see Nios properties in sopc builder - initialization of onchip memory Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- Quote Start --- I can't give you an exact explanation. I faced similar problems in the past during some tests but I can't remember or I didn't investigate the cause. I think this could be related to one of these: - placement of exception vector; see Nios properties in sopc builder - initialization of onchip memory Cris --- Quote End --- hum... I see that "exception" is "0x0" in old objdump and the base address is 0x8a00000 but in the new objdump the "exception" is "0x230" and the base address is 08a00230 ...I don't think that is an accident, do you ? so, just a thing, I use "
void jump_from_loader(void target(void))" to jump from "boot" to "ram prog". and I do this :
- "jump_from_loader((void(*)(void))(RAMPROG_BASE));"
so I must (maybe) jump not to RAMPROG_BASE but to RAMPROG_BASE + EXCEPTION. And just to now, I always do this but It is wrong ,I have just lucky that the "exception" is "0x0". i hope I'm near the solution of my problem ;)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Cris,
so I test my jump to "RAMPROG_BASE + OFFSET 0x230" and all is ok I test too my jump to "RAMPROG_BASE" and option "enable_alt_load_copy_exceptions" disabled in my bsp and all is ok. Now,I want to launch the "simple socket server" like nios II ide example project : - compilation is ok (i just disable the flash using). - but I have a error message in debug rs (I put my capture.txt file) So i don't undersand because i paid for IP-NIOS , IP-TRIETHERNET and IPSW-TCPIP-NIOS (for nichestack license) So why I have this error how can I obtain a "simple socket server" example with my license (I use triple speed ethernet in gmii mode too). ? thanks for helping Cordialy, Ben- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Ben,
That's not an error. It simply reminds you that you don't have a valid license to use nichestack. Your program should work anyway. I think you probably see also a reminder about Micrium RTOS license during compilation: this one you don't have but, like Nichestack, code will be 100% functional for evaluation purposes. Regarding the fact the tools can't see your license, if you actually have it, probably you missed something in the installation of Nichestack licence itself. Refer the the information they gave you when your purchased the TCPIP package in order to know how to install it. Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have the license and it is with nios license
and I don't why I haven't a simple exemple to use tse for sending and receiving datas .- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
So, I try "simple socket server example " but I can't use it. I have the connexion, in uart I have information that all is ok and "ss example " is working but I can't telnet it ... but here (http://www.altera.com/support/examples/nios2/exm-hello_world.html) I see that I haven't the same "simple server socket" because I haven't the "network_utilities_iniche.c"
wh[/B]ere can I obtain the zip project or the example ? [/B]
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi
Those utilities are not mandatory. They help you to manage mac and ip addresses and store them into nv memory. For test purposes you can simply define fixed addresses. Regarding the fact you say you can't telnet, do you mean you can't either ping? Or you can ping but you can't connect to telnet port 23? I recommend you start with dhcp disabled and use a well known fixed ip address. Cris- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes
I always start with dhcp disabled and fixed ip address ;). so I don't ping and telnet. I have see some information where there is a problem. In "ins_tse_mac.c", in "triple_speed_ethernet_init" function, it returns "ENP_HARDWARE" not for "p_driver_data" but for "psys_info". I can't see what I do or where I look for this problem. EDIT: after investigation : I see why have this error of psys_info. /* Get the pointer to the alt_tse_system_info structure from the global array */
for(i = 0; i < max_mac_system; i++) {
if(tse_mac_device.tse_mac_base == p_driver_data->hw_mac_base_addr) {
psys_info = &tse_mac_device;
}
"p_driver_data->hw_mac_base_addr" is egal to my TRIPLE_SPEED_ETHERNET_0_BASE but not the "tse_mac_device[i].tse_mac_base" why ? I must add something to initialize it ?
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page