public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* [ECOS] Serial problem on EB40
@ 2001-07-11  0:01 Daniel.Andersson
  2001-07-11  0:17 ` [ECOS] MLT structure files SEBASTIEN ANDRE
  2001-07-11  0:21 ` [ECOS] Serial problem on EB40 Jesper Skov
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel.Andersson @ 2001-07-11  0:01 UTC (permalink / raw)
  To: ecos-discuss

Hi,

I have a quite strange problem with my serial port (using a EB40 board). I
can get a handle to the port using the lookup function but when i am trying
to make any calls to it (like cyg_io_set_config) then i get a -EDEVNOSUPP in
return (see clip below). It looks like the serial port isn't setup right in
the DEVTAB since the functioncall "t->handlers->set_config" in iosys.c
doesn't work. Any clues of what the problem maigt be?

Regards, Daniel

---clip from iosys.c----
273	if (!t->handlers->set_config) {
274	        return -EDEVNOSUPP;
275	    }
---end clip from iosys.c----


-----clip-----
	//Find device
	err = cyg_io_lookup("/dev/ser0",&serial_handle );
	if (ENOERR != err) {
		serial_handle = 0; //ERROR
	}

	//Set up device
	//ser_info.baud = CYGNUM_SERIAL_BAUD_9600;
	ser_info.baud = CYGNUM_SERIAL_BAUD_38400;
	ser_info.stop = CYGNUM_SERIAL_STOP_1;
	ser_info.parity = CYGNUM_SERIAL_PARITY_EVEN;
	ser_info.word_length = CYGNUM_SERIAL_WORD_LENGTH_8;
	ser_info.flags = CYG_SERIAL_FLAGS_DEFAULT;

	config_len = sizeof(ser_info);

	err = cyg_io_set_config(serial_handle,
		CYG_IO_SET_CONFIG_SERIAL_INFO,
		&ser_info,
		&config_len);
	if (ENOERR != err) {
		serial_handle = 0; //ERROR
	}
	//TBD Until new OS arrives in a couple of days DBO 010629
	HAL_WRITE_UINT32(0xfffd0000, 0x50);


	config_len = sizeof(cyg_uint32);	
	//No blocking when read
	blocking_val = 0;
	err = cyg_io_set_config(serial_handle,
		CYG_IO_SET_CONFIG_SERIAL_READ_BLOCKING,
		&blocking_val,
		&config_len);
	if (ENOERR != err) {
		serial_handle = 0; //ERROR
	}

	// Blocking when write
	blocking_val = 1;
	err = cyg_io_set_config(serial_handle,
		CYG_IO_SET_CONFIG_SERIAL_WRITE_BLOCKING,
		&blocking_val,
		&config_len);
	if (ENOERR != err) {
		serial_handle = 0; //ERROR
	}

----clip end----

^ permalink raw reply	[flat|nested] 6+ messages in thread
* RE: [ECOS] Serial problem on EB40
@ 2001-07-11  1:00 Daniel.Andersson
  2001-07-11  1:41 ` Jesper Skov
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel.Andersson @ 2001-07-11  1:00 UTC (permalink / raw)
  To: jskov; +Cc: ecos-discuss

Do you mean any special part?

The thing that makes me a bit confused is that i get a valid handle back
from the lookup function but when i try to use it then I can't.....This
indicates that something is wrong in the setup of the "handles". In my
serial file i have the following:

DEVTAB_ENTRY(at91_serial_io0,
	     CYGDAT_IO_SERIAL_ARM_EB01_SERIAL0_NAME,
	     0,                    // Does not depend on a lower level
interface
	     &cyg_io_serial_devio, //&serial_devio,
	     at91_serial_init,
	     at91_serial_lookup,     // Serial driver may need initializing
	     &at91_serial_channel0

....which seems to be in every serial device setup. However, since i can't
get by the "t->handlers->set_config" then something must be wrong in the
"cyg_io_serial_devio"-part, am i write? Where do we have the connection
between the "cyg_io_serial_devio" and my actual set_config function. I
assume that this is through the funs? My funs table looks like this:

static SERIAL_FUNS(at91_serial_funs,
		   at91_serial_putc,
		   at91_serial_getc,
		   at91_serial_set_config,
		   at91_serial_start_xmit,
		   at91_serial_stop_xmit
    );

....and the functions they all exists in my serial file. Have i missed
anything that might cause this problem?

Regards, Daniel


> -----Original Message-----
> From: Jesper Skov [ mailto:jskov@cambridge.redhat.com ]
> Sent: den 11 juli 2001 09:21
> To: Andersson Daniel
> Cc: ecos-discuss@sourceware.cygnus.com
> Subject: Re: [ECOS] Serial problem on EB40
> 
> 
> >>>>> "Daniel" == Daniel Andersson 
> <Daniel.Andersson@combitechsystems.com> writes:
> 
> Daniel> Hi, I have a quite strange problem with my serial port (using
> Daniel> a EB40 board). I can get a handle to the port using the lookup
> Daniel> function but when i am trying to make any calls to it (like
> Daniel> cyg_io_set_config) then i get a -EDEVNOSUPP in return (see
> Daniel> clip below). It looks like the serial port isn't setup right
> Daniel> in the DEVTAB since the functioncall "t->handlers->set_config"
> Daniel> in iosys.c doesn't work. Any clues of what the problem maigt
> Daniel> be?
> 
> You should have a look at the serial driver code.
> 
> Jesper
> 

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

end of thread, other threads:[~2001-07-11 10:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-07-11  0:01 [ECOS] Serial problem on EB40 Daniel.Andersson
2001-07-11  0:17 ` [ECOS] MLT structure files SEBASTIEN ANDRE
2001-07-11 10:57   ` Jonathan Larmour
2001-07-11  0:21 ` [ECOS] Serial problem on EB40 Jesper Skov
2001-07-11  1:00 Daniel.Andersson
2001-07-11  1:41 ` Jesper Skov

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).