Greth Driver Implementation

Ángel González angel.gonzalez at
Mon May 26 10:10:16 UTC 2014


I am doing a program that runs RTEMS 4.8.0 (due to proyect restrictions 
I can't change to a newer version) on a LEON3 (sparc arch). It uses the 
Greth driver. The problem I had is that when I try to run the software 
in a HW with a 88E1111 PHY chip I have no problem, however when I try to 
run on a HW with a LAN83C185 PHY chip I get a "greth: cannot read mii".

So I tried the greth driver example from the grlib source, which works. 
Then I try to adapt the RTEMS' driver to the GRLIB driver I got it 
working in a pretty simple RTEMS program. However when I put it on a 
more complex one, the program get stuck in the interrupt handler (which 
I did not modified). The function call trace is:

        %pc          %sp
   #0   0x40025dc4   0x43f83f80 <_Internal_error_Occurred+0x3c>
   #1   0x40023ea8   0x43f83fe8 <rtems_semaphore_obtain+0xd4>
   #2   0x40042d1c   0x43f84058 <rtems_termios_write+0x18>
   #3   0x4003a498   0x43f840c0 <rtems_io_write+0x48>
   #4   0x400390b0   0x43f84128   <device_write+0x30>
   #5   0x4004d2e8   0x43f841a8   <write+0x7c>
   #6   0x4004443c   0x43f84210   <fflush+0x98>
   #7   0x4004ae38   0x43f84278   <__sfvwrite_r+0x3c0>
   #8   0x40045654   0x43f842e0   <_puts_r+0x4c>
   #9   0x4000aba4   0x43f84368 <greth_interrupt_handler+0x10>

Since it can be an issue due to my modifications I tried to compile the 
original greth driver and attach it to my software, but it still fail 
(In the same function). I don't know what is wrong since I am using the 
same code the RTEMS used. The compile options for the driver are:

-D__INSIDE_RTEMS_BSD_TCPIP_STACK__ -O0 -g -pedantic -Wall -msoft-float 
-c -fmessage-length=0 -B/.../sparc-rtems4.8/leon3/lib -specs bsp_specs 
-qrtems -v

And then I link my main program with the .o files and change the driver 
attach function for my driver's attach function's name.

Does anyone have any clue about what is going on?

Thank you in advance,

More information about the users mailing list