public inbox for ecos-patches@sourceware.org
 help / color / mirror / Atom feed
* LPC2xxx Ethernet device driver
@ 2008-09-11  8:30 uwe.kindler
  2008-09-11 13:10 ` Andrew Lunn
  2008-09-11 17:58 ` Andrew Lunn
  0 siblings, 2 replies; 5+ messages in thread
From: uwe.kindler @ 2008-09-11  8:30 UTC (permalink / raw)
  To: ecos-patches

[-- Attachment #1: Type: text/plain, Size: 381 bytes --]

Hello,

the following patch adds a generic ethernet driver for the LPC2xxx on-chip EMAC peripheral. The driver was tested with the LPC2468 OEM Board from Embedded Artists. 

Regards,

Dipl. Inf. (FH)
Uwe Kindler
Software Engineering

--

cetoni GmbH
Am Wiesenring 6
D-07554 Korbussen

Tel.: +49 (0) 36602 338 28
Fax:  +49 (0) 36602 338 11
uwe.kindler@cetoni.de
http://www.cetoni.de

[-- Attachment #2: lpc2xxx_eth.tar.gz --]
[-- Type: application/octet-stream, Size: 13638 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: LPC2xxx Ethernet device driver
  2008-09-11  8:30 LPC2xxx Ethernet device driver uwe.kindler
@ 2008-09-11 13:10 ` Andrew Lunn
  2008-09-11 14:23   ` Uwe Kindler
  2008-09-11 17:58 ` Andrew Lunn
  1 sibling, 1 reply; 5+ messages in thread
From: Andrew Lunn @ 2008-09-11 13:10 UTC (permalink / raw)
  To: uwe.kindler; +Cc: ecos-patches

On Thu, Sep 11, 2008 at 10:29:16AM +0200, uwe.kindler@cetoni.de wrote:
> Hello,
> 

> the following patch adds a generic ethernet driver for the LPC2xxx
> on-chip EMAC peripheral. The driver was tested with the LPC2468 OEM
> Board from Embedded Artists.

Hi Uwe

I just read the README where you say tm_basic dies horrible.

What memory layout are you using?

I just build a ROM redboot and a RAM tm_basic using the defaults.
The resulting images clash in memory:

lunn@londo:~/eCos/redboot/install/bin$ arm-elf-objdump --headers redboot.elf 
 15 .data         00000700  a0000000  00015508  00020000  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 16 .bss          0000aa24  a0000700  a0000700  00020700  2**5
                  ALLOC

lunn@londo:~/eCos/work$ arm-elf-objdump --headers install/tests/kernel/current/tests/tm_basic 
 15 .data         000002fc  a0000000  00011cb0  00020000  2**2
                  CONTENTS, ALLOC, LOAD, DATA
 16 .bss          00c7cf68  a00002fc  a00002fc  000202fc  2**5
                  ALLOC

In particular, lpc2xxx_priv_data in the redboot image is at 0xa0000264
which is in the middle of the lpc2xxx_sc for tm_basic. So an interrupt
from the ethernet is probably going to cause corruption.

Or do you are another RAM image layout when using ROM redboot?

   Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: LPC2xxx Ethernet device driver
  2008-09-11 13:10 ` Andrew Lunn
@ 2008-09-11 14:23   ` Uwe Kindler
  2008-09-11 14:42     ` Andrew Lunn
  0 siblings, 1 reply; 5+ messages in thread
From: Uwe Kindler @ 2008-09-11 14:23 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: ecos-patches

Hello Andrew,

maybe you made a mistake when building tm_basic. Please make sure that 
RAM startup is selected.

Here is what I get from objdump:

arm-elf-objdump --headers redboot.elf
  15 .data         00000e08  a0000000  0002a458  00038000  2**2
                   CONTENTS, ALLOC, LOAD, CODE
  16 .bss          0000ad78  a0000e08  a0000e08  00038e08  2**5
                   ALLOC

arm-elf-objdump --headers tm_basic
  15 .data         00000330  a002bd98  a002bd98  00023d98  2**2
                   CONTENTS, ALLOC, LOAD, DATA
  16 .bss          00c7a65c  a002c0c8  a002c0c8  000240c8  2**5
                   ALLOC

So there is no memory clash here. This is a snipped from the RAM ldi file:

MEMORY
{
     sram   : ORIGIN = 0x40000000, LENGTH = 0x10000
     ram    : ORIGIN = 0xA0000000, LENGTH = 0x2000000
}

SECTIONS
{
     SECTIONS_BEGIN
     SECTION_fixed_vectors (sram, 0x40000400, LMA_EQ_VMA)
     SECTION_rom_vectors (ram, 0xA0010000, LMA_EQ_VMA)
     SECTION_text (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fini (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_rodata1 (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_fixup (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_gcc_except_table (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_data (ram, ALIGN (0x4), LMA_EQ_VMA)
     SECTION_bss (ram, ALIGN (0x4), LMA_EQ_VMA)
     CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
     SECTIONS_END
}

The first data in RAM (rom_vectors) starts at 0xA10000. That means the 
first 0x10000 bytes in RAM are reserved for Redboot.

I have the tm_basic test as an image in fis directory. I'm connected to 
Redboot via serial line. I load tm_basic with fis load tm_basic. After 
this operation there are no problems. The ethernet part from Redboot 
works fine (Ping and connection via TCP/IP is possible). If I execute 
the tm_basic test now while I'm still connected via serial line, the 
test runs properly. If I connect to Redboot via TCP/IP directly before I 
type the go command and then type the go command via TCP/IP then the 
test starts (I can see the first lines printed in my TCP/IP console) and 
then the test crashes.

If the test is started via TCP/IP then the test uses the TCP/IP 
connection channel to print all diag_printf messages. Only for testing 
purposes I inserted the following line into tm_basic cyg_start() 
function: CYGACC_CALL_IF_SET_CONSOLE_COMM(0). This forces all output to 
the first serial channel. So no single character is transmitted via 
TCP/IP after start of tm_basic. If I start tm_basic via TCP/IP then I 
see the first three lines in my serial console and then the test 
crashes. If I start this modiefied tm_basic via TCP/IP connection and 
the option -n then the test runs till completion without any problems - 
real strange :o(

Regards,

Dipl. Inf. (FH)
Uwe Kindler
Software Engineering

--

cetoni GmbH
Am Wiesenring 6
D-07554 Korbussen

Tel.: +49 (0) 36602 338 28
Fax:  +49 (0) 36602 338 11
uwe.kindler@cetoni.de
www.cetoni.de

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: LPC2xxx Ethernet device driver
  2008-09-11 14:23   ` Uwe Kindler
@ 2008-09-11 14:42     ` Andrew Lunn
  0 siblings, 0 replies; 5+ messages in thread
From: Andrew Lunn @ 2008-09-11 14:42 UTC (permalink / raw)
  To: Uwe Kindler; +Cc: Andrew Lunn, ecos-patches

On Thu, Sep 11, 2008 at 04:21:49PM +0200, Uwe Kindler wrote:
> Hello Andrew,
>
> maybe you made a mistake when building tm_basic. Please make sure that  
> RAM startup is selected.

Yep, i made an error :-(

I did think it was a bit unlikely it would be so simple...

Anyway, otherwise the driver looks good. I will commit it soon.

  Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: LPC2xxx Ethernet device driver
  2008-09-11  8:30 LPC2xxx Ethernet device driver uwe.kindler
  2008-09-11 13:10 ` Andrew Lunn
@ 2008-09-11 17:58 ` Andrew Lunn
  1 sibling, 0 replies; 5+ messages in thread
From: Andrew Lunn @ 2008-09-11 17:58 UTC (permalink / raw)
  To: uwe.kindler; +Cc: ecos-patches

On Thu, Sep 11, 2008 at 10:29:16AM +0200, uwe.kindler@cetoni.de wrote:
> Hello,
> 
> the following patch adds a generic ethernet driver for the LPC2xxx on-chip EMAC peripheral. The driver was tested with the LPC2468 OEM Board from Embedded Artists. 

Hi Uwe

This and the following two patches which build on it have been
committed.

        Thanks
                Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-09-11 17:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-11  8:30 LPC2xxx Ethernet device driver uwe.kindler
2008-09-11 13:10 ` Andrew Lunn
2008-09-11 14:23   ` Uwe Kindler
2008-09-11 14:42     ` Andrew Lunn
2008-09-11 17:58 ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).