All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11  9:31 [Xenomai-core] 16550A driver and Moxa card / solved CHABAL David
@ 2007-05-11  9:08 ` Jan Kiszka
  2007-05-11  9:12 ` Maksym Veremeyenko
  1 sibling, 0 replies; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11  9:08 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai

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

CHABAL David wrote:
> Hello,
> 
> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
> and my Moxa cards (PCI / 8 * RS232 / 168U ).
> 
> It was a problem of baudrate computation before setting the LCR_DLAB
> register.
> 
> The formula implemented by the Xenomai driver is different from the one
> provided by Moxa. So I copy/paste the formula from the mxser.c file
> (present in the
> kernel distro), and it seems to work fine.
> 
> I think it's Moxa card dependant, may be caused by the high default baud
> rate of this card.
> 
> I post here my patch below, it may interest someone.

Thanks for sharing your findings. Will check if/how we can integrate
them. See some comments below already.

[Reminds me that there are more 16550A patches pending in my inbox... :-/]

> 
> David
> 
> ----------------------------------------------
> 
> 
> 
> @@ -29,7 +29,7 @@
>  #define IN_BUFFER_SIZE      4096
>  #define OUT_BUFFER_SIZE     4096
> 
> -#define DEFAULT_BAUD_BASE   115200
> +#define DEFAULT_BAUD_BASE   921600

OK, that's for your convenience right now. We also have a module
parameter to set the base.

>  #define DEFAULT_TX_FIFO     16
> 
>  #define PARITY_MASK         0x03
> @@ -316,8 +316,23 @@
> 
>      if (testbits(config->config_mask, RTSER_SET_BAUD)) {
>          ctx->config.baud_rate = config->baud_rate;
> -        baud_div = (baud_base[dev_id] + (ctx->config.baud_rate >> 1)) /
> -                   ctx->config.baud_rate;
> +        if (ctx->config.baud_rate == 134)
> +        {
> +          baud_div = (2 * baud_base[dev_id] / 269);
> +        }

Well, whoever needs such low rates in practice these days... :)

> +        else
> +        {
> +          if (ctx->config.baud_rate)

Oops, that check protects us from dividing by zero - should be fixed in
any case! Or is baud_div = 0 a special mode with Moxa?

> +          {
> +            baud_div = baud_base[dev_id] / ctx->config.baud_rate;

So this means dividing with round down instead of round up. We could
enable this mode with an additional module parameter, something like
variant = {0: standard, 1: moxa, ...}. That could also raise the default
baudbase for the particular port.

> +                 if (baud_div == 0)
> +              baud_div = 1;

That shouldn't trigger with xeno_16550A because we catch baud_rate >
baud_base already in rt_16550_ioctl.

> +               }
> +          else
> +          {
> +                 baud_div = 0;
> +          }
> +        }
>          outb(LCR_DLAB,        LCR(dev_id));
>          outb(baud_div & 0xff, DLL(dev_id));
>          outb(baud_div >> 8,   DLM(dev_id));
> 

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11  9:31 [Xenomai-core] 16550A driver and Moxa card / solved CHABAL David
  2007-05-11  9:08 ` Jan Kiszka
@ 2007-05-11  9:12 ` Maksym Veremeyenko
  2007-05-11  9:17   ` Jan Kiszka
  1 sibling, 1 reply; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11  9:12 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai

CHABAL David пишет:

> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
> and my Moxa cards (PCI / 8 * RS232 / 168U ).
> 
> It was a problem of baudrate computation before setting the LCR_DLAB
> register.
> 
> The formula implemented by the Xenomai driver is different from the one
> provided by Moxa. So I copy/paste the formula from the mxser.c file
> (present in the
> kernel distro), and it seems to work fine.
> 
> I think it's Moxa card dependant, may be caused by the high default baud
> rate of this card.

I have two Moxa boards with no problem, possible you need to specify 
'baud_base' param.

I my case :

# 8 ports board:
/sbin/modprobe xeno_16550A \
ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
irq=9,9,9,9,9,9,9,9 \
baud_base=921600,921600,921600,921600,921600,921600,921600,921600

# 2 ports board + onboards:
/sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
irq=4,3,11,11 baud_base=115200,115200,921600,921600


-- 
________________________________________
Maksym Veremeyenko


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11  9:12 ` Maksym Veremeyenko
@ 2007-05-11  9:17   ` Jan Kiszka
  2007-05-11 10:57     ` CHABAL David
  0 siblings, 1 reply; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11  9:17 UTC (permalink / raw)
  To: Maksym Veremeyenko; +Cc: xenomai

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

Maksym Veremeyenko wrote:
> CHABAL David пишет:
> 
>> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
>> and my Moxa cards (PCI / 8 * RS232 / 168U ).
>>
>> It was a problem of baudrate computation before setting the LCR_DLAB
>> register.
>>
>> The formula implemented by the Xenomai driver is different from the one
>> provided by Moxa. So I copy/paste the formula from the mxser.c file
>> (present in the
>> kernel distro), and it seems to work fine.
>>
>> I think it's Moxa card dependant, may be caused by the high default baud
>> rate of this card.
> 
> I have two Moxa boards with no problem, possible you need to specify 
> 'baud_base' param.
> 
> I my case :
> 
> # 8 ports board:
> /sbin/modprobe xeno_16550A \
> ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
> irq=9,9,9,9,9,9,9,9 \
> baud_base=921600,921600,921600,921600,921600,921600,921600,921600
> 
> # 2 ports board + onboards:
> /sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
> irq=4,3,11,11 baud_base=115200,115200,921600,921600
> 

Interesting. That would leave us just with the generic fix to catch
baud_rate==0. Far more attractive. :)

David, can you confirm this? Weren't you just aware of the baud_base
parameter?

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* [Xenomai-core] 16550A driver and Moxa card / solved
@ 2007-05-11  9:31 CHABAL David
  2007-05-11  9:08 ` Jan Kiszka
  2007-05-11  9:12 ` Maksym Veremeyenko
  0 siblings, 2 replies; 20+ messages in thread
From: CHABAL David @ 2007-05-11  9:31 UTC (permalink / raw)
  To: xenomai

Hello,

I met some trouble with the 16550A driver provided in Xenomai 2.3.1
and my Moxa cards (PCI / 8 * RS232 / 168U ).

It was a problem of baudrate computation before setting the LCR_DLAB
register.

The formula implemented by the Xenomai driver is different from the one
provided by Moxa. So I copy/paste the formula from the mxser.c file
(present in the
kernel distro), and it seems to work fine.

I think it's Moxa card dependant, may be caused by the high default baud
rate of this card.

I post here my patch below, it may interest someone.

David

----------------------------------------------



@@ -29,7 +29,7 @@
 #define IN_BUFFER_SIZE      4096
 #define OUT_BUFFER_SIZE     4096

-#define DEFAULT_BAUD_BASE   115200
+#define DEFAULT_BAUD_BASE   921600
 #define DEFAULT_TX_FIFO     16

 #define PARITY_MASK         0x03
@@ -316,8 +316,23 @@

     if (testbits(config->config_mask, RTSER_SET_BAUD)) {
         ctx->config.baud_rate = config->baud_rate;
-        baud_div = (baud_base[dev_id] + (ctx->config.baud_rate >> 1)) /
-                   ctx->config.baud_rate;
+        if (ctx->config.baud_rate == 134)
+        {
+          baud_div = (2 * baud_base[dev_id] / 269);
+        }
+        else
+        {
+          if (ctx->config.baud_rate)
+          {
+            baud_div = baud_base[dev_id] / ctx->config.baud_rate;
+                 if (baud_div == 0)
+              baud_div = 1;
+               }
+          else
+          {
+                 baud_div = 0;
+          }
+        }
         outb(LCR_DLAB,        LCR(dev_id));
         outb(baud_div & 0xff, DLL(dev_id));
         outb(baud_div >> 8,   DLM(dev_id));


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 10:57     ` CHABAL David
@ 2007-05-11 10:28       ` Maksym Veremeyenko
  2007-05-11 10:36       ` Jan Kiszka
  1 sibling, 0 replies; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11 10:28 UTC (permalink / raw)
  To: CHABAL David; +Cc: Jan Kiszka, xenomai@xenomai.org

CHABAL David пишет:

> Maksym, what is the kind of yours connections ? (PC <-> PC with the same
> moxa cards inside the 2 boxes, or PC <-> other device ) ? (In the 1st
> the case the both clocks are configured with the same value.)
in first case (8 ports board):
- 2 ports (at 38400) to linux host, 2.6.19.2, mxser
- 1 port (at 115200) to winxp host
- 1 port (at 19200) to switcher/mixer (wxworks perhaps inside)

in second case
- 1 port (moxa port at 38400) to videoserver
- 1 port (onboard at 19200) to to switcher/mixer

I had some difficults first time when no specifying base - 2 ports has 
connectivity but no connectivity (or broken data) from another non RT 
host :-))


-- 
________________________________________
Maksym Veremeyenko


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 10:57     ` CHABAL David
  2007-05-11 10:28       ` Maksym Veremeyenko
@ 2007-05-11 10:36       ` Jan Kiszka
  2007-05-11 11:25         ` Jan Kiszka
  2007-05-11 11:46         ` Maksym Veremeyenko
  1 sibling, 2 replies; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 10:36 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai@xenomai.org

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

CHABAL David wrote:
> Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:
> 
>> Maksym Veremeyenko wrote:
>>> CHABAL David пишет:
>>>
>>>> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
>>>> and my Moxa cards (PCI / 8 * RS232 / 168U ).
>>>>
>>>> It was a problem of baudrate computation before setting the LCR_DLAB
>>>> register.
>>>>
>>>> The formula implemented by the Xenomai driver is different from the one
>>>> provided by Moxa. So I copy/paste the formula from the mxser.c file
>>>> (present in the
>>>> kernel distro), and it seems to work fine.
>>>>
>>>> I think it's Moxa card dependant, may be caused by the high default baud
>>>> rate of this card.
>>> I have two Moxa boards with no problem, possible you need to specify 
>>> 'baud_base' param.
>>>
>>> I my case :
>>>
>>> # 8 ports board:
>>> /sbin/modprobe xeno_16550A \
>>> ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
>>> irq=9,9,9,9,9,9,9,9 \
>>> baud_base=921600,921600,921600,921600,921600,921600,921600,921600
>>>
>>> # 2 ports board + onboards:
>>> /sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
>>> irq=4,3,11,11 baud_base=115200,115200,921600,921600
>>>
>> Interesting. That would leave us just with the generic fix to catch
>> baud_rate==0. Far more attractive. :)
>>
>> David, can you confirm this? Weren't you just aware of the baud_base
>> parameter?
> 
> I'm not totally convinced because if I compute by hand the DLAB register
> with the 19200 value (my config):
> 
> With the moxa driver:
>   baud_div = 912.600 / 19.200 = 47
> 
> With the Xeno driver:
>   baud_div = (912.600 - 9600) / 19.200 = 47
> 
> Grrr, it's ok here because the rounded values are the same because the
> baud base is biggest than the speed requested, but I think a problem can
> occur with 115200 or more, example:
> 
> moxa: 912.600/115.200 = 8
> xeno: = 7

Yeah, hard arguments. This really cries for a moxa tweak. (The
alternative would be to pass an artificially increased baud_base - but
that would be _really_ ugly and we could also ask the user for the
divider directly...)

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11  9:17   ` Jan Kiszka
@ 2007-05-11 10:57     ` CHABAL David
  2007-05-11 10:28       ` Maksym Veremeyenko
  2007-05-11 10:36       ` Jan Kiszka
  0 siblings, 2 replies; 20+ messages in thread
From: CHABAL David @ 2007-05-11 10:57 UTC (permalink / raw)
  To: Jan Kiszka, Maksym Veremeyenko; +Cc: xenomai@xenomai.org

Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:

>Maksym Veremeyenko wrote:
>> CHABAL David пишет:
>> 
>>> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
>>> and my Moxa cards (PCI / 8 * RS232 / 168U ).
>>>
>>> It was a problem of baudrate computation before setting the LCR_DLAB
>>> register.
>>>
>>> The formula implemented by the Xenomai driver is different from the one
>>> provided by Moxa. So I copy/paste the formula from the mxser.c file
>>> (present in the
>>> kernel distro), and it seems to work fine.
>>>
>>> I think it's Moxa card dependant, may be caused by the high default baud
>>> rate of this card.
>> 
>> I have two Moxa boards with no problem, possible you need to specify 
>> 'baud_base' param.
>> 
>> I my case :
>> 
>> # 8 ports board:
>> /sbin/modprobe xeno_16550A \
>> ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
>> irq=9,9,9,9,9,9,9,9 \
>> baud_base=921600,921600,921600,921600,921600,921600,921600,921600
>> 
>> # 2 ports board + onboards:
>> /sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
>> irq=4,3,11,11 baud_base=115200,115200,921600,921600
>> 
>
>Interesting. That would leave us just with the generic fix to catch
>baud_rate==0. Far more attractive. :)
>
>David, can you confirm this? Weren't you just aware of the baud_base
>parameter?

I'm not totally convinced because if I compute by hand the DLAB register
with the 19200 value (my config):

With the moxa driver:
  baud_div = 912.600 / 19.200 = 47

With the Xeno driver:
  baud_div = (912.600 - 9600) / 19.200 = 47

Grrr, it's ok here because the rounded values are the same because the
baud base is biggest than the speed requested, but I think a problem can
occur with 115200 or more, example:

moxa: 912.600/115.200 = 8
xeno: = 7

Maksym, what is the kind of yours connections ? (PC <-> PC with the same
moxa cards inside the 2 boxes, or PC <-> other device ) ? (In the 1st
the case the both clocks are configured with the same value.)

I find the pb by seeing the signals with an oscilloscope

David

>
>Jan
>


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 10:36       ` Jan Kiszka
@ 2007-05-11 11:25         ` Jan Kiszka
  2007-05-11 12:33           ` CHABAL David
  2007-05-11 11:46         ` Maksym Veremeyenko
  1 sibling, 1 reply; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 11:25 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai@xenomai.org

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

Jan Kiszka wrote:
> CHABAL David wrote:
>> Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:
>>
>>> Maksym Veremeyenko wrote:
>>>> CHABAL David пишет:
>>>>
>>>>> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
>>>>> and my Moxa cards (PCI / 8 * RS232 / 168U ).
>>>>>
>>>>> It was a problem of baudrate computation before setting the LCR_DLAB
>>>>> register.
>>>>>
>>>>> The formula implemented by the Xenomai driver is different from the one
>>>>> provided by Moxa. So I copy/paste the formula from the mxser.c file
>>>>> (present in the
>>>>> kernel distro), and it seems to work fine.
>>>>>
>>>>> I think it's Moxa card dependant, may be caused by the high default baud
>>>>> rate of this card.
>>>> I have two Moxa boards with no problem, possible you need to specify 
>>>> 'baud_base' param.
>>>>
>>>> I my case :
>>>>
>>>> # 8 ports board:
>>>> /sbin/modprobe xeno_16550A \
>>>> ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
>>>> irq=9,9,9,9,9,9,9,9 \
>>>> baud_base=921600,921600,921600,921600,921600,921600,921600,921600
>>>>
>>>> # 2 ports board + onboards:
>>>> /sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
>>>> irq=4,3,11,11 baud_base=115200,115200,921600,921600
>>>>
>>> Interesting. That would leave us just with the generic fix to catch
>>> baud_rate==0. Far more attractive. :)
>>>
>>> David, can you confirm this? Weren't you just aware of the baud_base
>>> parameter?
>> I'm not totally convinced because if I compute by hand the DLAB register
>> with the 19200 value (my config):
>>
>> With the moxa driver:
>>   baud_div = 912.600 / 19.200 = 47
>>
>> With the Xeno driver:
>>   baud_div = (912.600 - 9600) / 19.200 = 47
>>
>> Grrr, it's ok here because the rounded values are the same because the
>> baud base is biggest than the speed requested, but I think a problem can
>> occur with 115200 or more, example:
>>
>> moxa: 912.600/115.200 = 8
>> xeno: = 7
> 
> Yeah, hard arguments. This really cries for a moxa tweak. (The
> alternative would be to pass an artificially increased baud_base - but
> that would be _really_ ugly and we could also ask the user for the
> divider directly...)

Here we go. This patch should add the most essential changes of your
patch to SVN trunk (backport not officially planned, but it should not
be tricky). The idea is to pass "variant=1" to xeno_16550A on load.
That will kick out rounding on divider calculation and even switches
the default baud base.

Comments/test reports welcome.

Jan


Index: ksrc/drivers/serial/16550A.c
===================================================================
--- ksrc/drivers/serial/16550A.c	(Revision 2433)
+++ ksrc/drivers/serial/16550A.c	(Arbeitskopie)
@@ -28,10 +28,14 @@
 
 #define MAX_DEVICES		8
 
+#define VARIANT_STANDARD	0
+#define VARIANT_MOXA		1
+
 #define IN_BUFFER_SIZE		4096
 #define OUT_BUFFER_SIZE		4096
 
 #define DEFAULT_BAUD_BASE	115200
+#define DEFAULT_BAUD_BASE_MOXA	921600
 #define DEFAULT_TX_FIFO		16
 
 #define PARITY_MASK		0x03
@@ -121,11 +125,13 @@ static struct rtdm_device *device[MAX_DE
 static unsigned int irq[MAX_DEVICES];
 static unsigned int baud_base[MAX_DEVICES];
 static int tx_fifo[MAX_DEVICES];
+static int variant[MAX_DEVICES];
 static unsigned int start_index;
 
 compat_module_param_array(irq, uint, MAX_DEVICES, 0400);
 compat_module_param_array(baud_base, uint, MAX_DEVICES, 0400);
 compat_module_param_array(tx_fifo, int, MAX_DEVICES, 0400);
+compat_module_param_array(variant, int, MAX_DEVICES, 0400);
 
 MODULE_PARM_DESC(irq, "IRQ numbers of the serial devices");
 MODULE_PARM_DESC(baud_base, "Maximum baud rate of the serial device "
@@ -302,20 +308,24 @@ static int rt_16550_set_config(struct rt
 	rtdm_lockctx_t lock_ctx;
 	unsigned long base = ctx->base_addr;
 	int mode = rt_16550_io_mode_from_ctx(ctx);
-	int dev_id;
 	int err = 0;
-	int baud_div = 0;
 
 	/* make line configuration atomic and IRQ-safe */
 	rtdm_lock_get_irqsave(&ctx->lock, lock_ctx);
 
 	if (testbits(config->config_mask, RTSER_SET_BAUD)) {
-		dev_id = container_of(((void *)ctx), struct rtdm_dev_context,
-				      dev_private)->device->device_id;
+		int dev_id = container_of(((void *)ctx),
+					  struct rtdm_dev_context,
+					  dev_private)->device->device_id;
+		int rounding = ctx->config.baud_rate >> 1;
+		int baud_div = 0;
+
+		if (variant[dev_id] == VARIANT_MOXA)
+			rounding = 0;
 
 		ctx->config.baud_rate = config->baud_rate;
-		baud_div = (baud_base[dev_id] + (ctx->config.baud_rate >> 1)) /
-		    ctx->config.baud_rate;
+		baud_div = (baud_base[dev_id] + rounding) /
+			ctx->config.baud_rate;
 		rt_16550_reg_out(mode, base, LCR, LCR_DLAB);
 		rt_16550_reg_out(mode, base, DLL, baud_div & 0xff);
 		rt_16550_reg_out(mode, base, DLM, baud_div >> 8);
@@ -595,10 +605,10 @@ int rt_16550_ioctl(struct rtdm_dev_conte
 
 		if (testbits(config->config_mask, RTSER_SET_BAUD) &&
 		    (config->baud_rate >
-		     baud_base[context->device->device_id])) {
-			/* the baudrate is to high for this port */
+		     baud_base[context->device->device_id] ||
+		     config->baud_rate <= 0))
+			/* invalid baudrate for this port */
 			return -EINVAL;
-		}
 
 		if (testbits(config->config_mask,
 			     RTSER_SET_TIMESTAMP_HISTORY)) {
@@ -1164,7 +1174,8 @@ int __init rt_16550_init(void)
 			goto kfree_out;
 
 		if (baud_base[i] == 0)
-			baud_base[i] = DEFAULT_BAUD_BASE;
+			baud_base[i] = (variant[i] == VARIANT_MOXA) ?
+				DEFAULT_BAUD_BASE_MOXA : DEFAULT_BAUD_BASE;
 
 		if (tx_fifo[i] == 0)
 			tx_fifo[i] = DEFAULT_TX_FIFO;


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 10:36       ` Jan Kiszka
  2007-05-11 11:25         ` Jan Kiszka
@ 2007-05-11 11:46         ` Maksym Veremeyenko
  2007-05-11 12:11           ` Jan Kiszka
  1 sibling, 1 reply; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11 11:46 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai@xenomai.org

Jan Kiszka пишет:
>> moxa: 912.600/115.200 = 8
>> xeno: = 7
> 
> Yeah, hard arguments. This really cries for a moxa tweak. (The
> alternative would be to pass an artificially increased baud_base - but
> that would be _really_ ugly and we could also ask the user for the
> divider directly...)

As i correctly understand mxser use formula:
       +-
       | base/baud, baud <> 134
div = |
       | 2*base/(2*base + 1), baud == 134
       +-

Jan's driver use:

div = (base + baud/2)/baud

What is actual

div = base/baud + 0.5

That seems more correct for rounding....


In additional:
1. You should use 921600 value instead of 912.600.
2. Interface is asynchronous and (IMHO) data could be transfered in a 
range of frequencies (BAUD +/- RANGE%)



-- 
________________________________________
Maksym Veremeyenko


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 11:46         ` Maksym Veremeyenko
@ 2007-05-11 12:11           ` Jan Kiszka
  2007-05-11 14:11             ` CHABAL David
  0 siblings, 1 reply; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 12:11 UTC (permalink / raw)
  To: Maksym Veremeyenko; +Cc: xenomai@xenomai.org

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

Maksym Veremeyenko wrote:
> Jan Kiszka пишет:
>>> moxa: 912.600/115.200 = 8
>>> xeno: = 7
>>
>> Yeah, hard arguments. This really cries for a moxa tweak. (The
>> alternative would be to pass an artificially increased baud_base - but
>> that would be _really_ ugly and we could also ask the user for the
>> divider directly...)
> 
> As i correctly understand mxser use formula:
>       +-
>       | base/baud, baud <> 134
> div = |
>       | 2*base/(2*base + 1), baud == 134
>       +-
> 
> Jan's driver use:
> 
> div = (base + baud/2)/baud
> 
> What is actual
> 
> div = base/baud + 0.5
> 
> That seems more correct for rounding....
> 
> 
> In additional:
> 1. You should use 921600 value instead of 912.600.

(921600 + (115200 div 2)) div 115200 = 8

So back to square #1: misconfiguration? David, please check with the
correct baud base again if you still see relevant divider variations.

> 2. Interface is asynchronous and (IMHO) data could be transfered in a
> range of frequencies (BAUD +/- RANGE%)
> 

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 11:25         ` Jan Kiszka
@ 2007-05-11 12:33           ` CHABAL David
  0 siblings, 0 replies; 20+ messages in thread
From: CHABAL David @ 2007-05-11 12:33 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai@xenomai.org

Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:

>Jan Kiszka wrote:
>> CHABAL David wrote:
>>> Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:
>>>
>>>> Maksym Veremeyenko wrote:
>>>>> CHABAL David пишет:
>>>>>
>>>>>> I met some trouble with the 16550A driver provided in Xenomai 2.3.1
>>>>>> and my Moxa cards (PCI / 8 * RS232 / 168U ).
>>>>>>
>>>>>> It was a problem of baudrate computation before setting the LCR_DLAB
>>>>>> register.
>>>>>>
>>>>>> The formula implemented by the Xenomai driver is different from the one
>>>>>> provided by Moxa. So I copy/paste the formula from the mxser.c file
>>>>>> (present in the
>>>>>> kernel distro), and it seems to work fine.
>>>>>>
>>>>>> I think it's Moxa card dependant, may be caused by the high default baud
>>>>>> rate of this card.
>>>>> I have two Moxa boards with no problem, possible you need to specify 
>>>>> 'baud_base' param.
>>>>>
>>>>> I my case :
>>>>>
>>>>> # 8 ports board:
>>>>> /sbin/modprobe xeno_16550A \
>>>>> ioaddr=0x1000,0x1008,0x1010,0x1018,0x1020,0x1028,0x1030,0x1038 \
>>>>> irq=9,9,9,9,9,9,9,9 \
>>>>> baud_base=921600,921600,921600,921600,921600,921600,921600,921600
>>>>>
>>>>> # 2 ports board + onboards:
>>>>> /sbin/modprobe xeno_16550A ioaddr=0x3f8,0x2f8,0xdf00,0xdf08 
>>>>> irq=4,3,11,11 baud_base=115200,115200,921600,921600
>>>>>
>>>> Interesting. That would leave us just with the generic fix to catch
>>>> baud_rate==0. Far more attractive. :)
>>>>
>>>> David, can you confirm this? Weren't you just aware of the baud_base
>>>> parameter?
>>> I'm not totally convinced because if I compute by hand the DLAB register
>>> with the 19200 value (my config):
>>>
>>> With the moxa driver:
>>>   baud_div = 912.600 / 19.200 = 47
>>>
>>> With the Xeno driver:
>>>   baud_div = (912.600 - 9600) / 19.200 = 47
>>>
>>> Grrr, it's ok here because the rounded values are the same because the
>>> baud base is biggest than the speed requested, but I think a problem can
>>> occur with 115200 or more, example:
>>>
>>> moxa: 912.600/115.200 = 8
>>> xeno: = 7
>> 
>> Yeah, hard arguments. This really cries for a moxa tweak. (The
>> alternative would be to pass an artificially increased baud_base - but
>> that would be _really_ ugly and we could also ask the user for the
>> divider directly...)
>
>Here we go. This patch should add the most essential changes of your
>patch to SVN trunk (backport not officially planned, but it should not
>be tricky). The idea is to pass "variant=1" to xeno_16550A on load.
>That will kick out rounding on divider calculation and even switches
>the default baud base.
>
>Comments/test reports welcome.
>
>Jan
>
>
>Index: ksrc/drivers/serial/16550A.c
>===================================================================
>--- ksrc/drivers/serial/16550A.c	(Revision 2433)
>+++ ksrc/drivers/serial/16550A.c	(Arbeitskopie)
>@@ -28,10 +28,14 @@
> 
> #define MAX_DEVICES		8
> 
>+#define VARIANT_STANDARD	0
>+#define VARIANT_MOXA		1
>+
> #define IN_BUFFER_SIZE		4096
> #define OUT_BUFFER_SIZE		4096
> 
> #define DEFAULT_BAUD_BASE	115200
>+#define DEFAULT_BAUD_BASE_MOXA	921600
> #define DEFAULT_TX_FIFO		16
> 
> #define PARITY_MASK		0x03
>@@ -121,11 +125,13 @@ static struct rtdm_device *device[MAX_DE
> static unsigned int irq[MAX_DEVICES];
> static unsigned int baud_base[MAX_DEVICES];
> static int tx_fifo[MAX_DEVICES];
>+static int variant[MAX_DEVICES];
> static unsigned int start_index;
> 
> compat_module_param_array(irq, uint, MAX_DEVICES, 0400);
> compat_module_param_array(baud_base, uint, MAX_DEVICES, 0400);
> compat_module_param_array(tx_fifo, int, MAX_DEVICES, 0400);
>+compat_module_param_array(variant, int, MAX_DEVICES, 0400);
> 
> MODULE_PARM_DESC(irq, "IRQ numbers of the serial devices");
> MODULE_PARM_DESC(baud_base, "Maximum baud rate of the serial device "
>@@ -302,20 +308,24 @@ static int rt_16550_set_config(struct rt
> 	rtdm_lockctx_t lock_ctx;
> 	unsigned long base = ctx->base_addr;
> 	int mode = rt_16550_io_mode_from_ctx(ctx);
>-	int dev_id;
> 	int err = 0;
>-	int baud_div = 0;
> 
> 	/* make line configuration atomic and IRQ-safe */
> 	rtdm_lock_get_irqsave(&ctx->lock, lock_ctx);
> 
> 	if (testbits(config->config_mask, RTSER_SET_BAUD)) {
>-		dev_id = container_of(((void *)ctx), struct rtdm_dev_context,
>-				      dev_private)->device->device_id;
>+		int dev_id = container_of(((void *)ctx),
>+					  struct rtdm_dev_context,
>+					  dev_private)->device->device_id;
>+		int rounding = ctx->config.baud_rate >> 1;
>+		int baud_div = 0;
>+
>+		if (variant[dev_id] == VARIANT_MOXA)
>+			rounding = 0;
> 
> 		ctx->config.baud_rate = config->baud_rate;
>-		baud_div = (baud_base[dev_id] + (ctx->config.baud_rate >> 1)) /
>-		    ctx->config.baud_rate;
>+		baud_div = (baud_base[dev_id] + rounding) /
>+			ctx->config.baud_rate;
> 		rt_16550_reg_out(mode, base, LCR, LCR_DLAB);
> 		rt_16550_reg_out(mode, base, DLL, baud_div & 0xff);
> 		rt_16550_reg_out(mode, base, DLM, baud_div >> 8);
>@@ -595,10 +605,10 @@ int rt_16550_ioctl(struct rtdm_dev_conte
> 
> 		if (testbits(config->config_mask, RTSER_SET_BAUD) &&
> 		    (config->baud_rate >
>-		     baud_base[context->device->device_id])) {
>-			/* the baudrate is to high for this port */
>+		     baud_base[context->device->device_id] ||
>+		     config->baud_rate <= 0))
>+			/* invalid baudrate for this port */
> 			return -EINVAL;
>-		}
> 
> 		if (testbits(config->config_mask,
> 			     RTSER_SET_TIMESTAMP_HISTORY)) {
>@@ -1164,7 +1174,8 @@ int __init rt_16550_init(void)
> 			goto kfree_out;
> 
> 		if (baud_base[i] == 0)
>-			baud_base[i] = DEFAULT_BAUD_BASE;
>+			baud_base[i] = (variant[i] == VARIANT_MOXA) ?
>+				DEFAULT_BAUD_BASE_MOXA : DEFAULT_BAUD_BASE;
> 
> 		if (tx_fifo[i] == 0)
> 			tx_fifo[i] = DEFAULT_TX_FIFO;
>

I think the DEFAULT_BAUD_BASE_MOXA constant shouldn't be added. May be
other Moxa cards work slowly (or will be faster) and include this
computation, I would keep this parameter free and ever modifiable by the
boot line.

David


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 14:11             ` CHABAL David
@ 2007-05-11 13:25               ` Jan Kiszka
  2007-05-11 13:35                 ` Maksym Veremeyenko
  2007-05-11 14:33                 ` CHABAL David
  2007-05-11 13:29               ` Maksym Veremeyenko
  1 sibling, 2 replies; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 13:25 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai@xenomai.org

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

CHABAL David wrote:
>>> In additional:
>>> 1. You should use 921600 value instead of 912.600.
> 
> The "." was here for reading facility only, I consider it as an integer
> in my computations.

The point was not the point, but the flipped digits.

> 
>> (921600 + (115200 div 2)) div 115200 = 8
>>
>> So back to square #1: misconfiguration? David, please check with the
>> correct baud base again if you still see relevant divider variations.
>>
> 
> moxa:  921600/115200 = 8 (not 7, I apologize for this mistake but we
> guess here that the baud base is always 921600 and according to the
> mxser file it can be 230400 for some cards)

(230400+57600)/115200=2,5 => 2

230400/115200=2

???

> 
> xeno: (921600+57600)/115200 = 8.5 rounded to 8

So we have the same results for both formulas and I don't see the need
for a patch anymore. Do you? Otherwise I would just commit the
div-by-zero fix to trunk now and keep the rest as is.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 14:11             ` CHABAL David
  2007-05-11 13:25               ` Jan Kiszka
@ 2007-05-11 13:29               ` Maksym Veremeyenko
  1 sibling, 0 replies; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11 13:29 UTC (permalink / raw)
  To: CHABAL David; +Cc: Jan Kiszka, xenomai@xenomai.org

CHABAL David пишет:

> moxa:  921600/115200 = 8 (not 7, I apologize for this mistake but we
> guess here that the baud base is always 921600 and according to the
> mxser file it can be 230400 for some cards)
Then for 'some cards' it's possible to specify 'baud_base' parameter.

What can i suggest/recommend is add to Xenomai wiki some information 
about using xeno_16550A with some boards (also may be reasonable to add 
information for proper 'ioaddr' findings for multiports board).


-- 
________________________________________
Maksym Veremeyenko



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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 13:25               ` Jan Kiszka
@ 2007-05-11 13:35                 ` Maksym Veremeyenko
  2007-05-11 14:33                 ` CHABAL David
  1 sibling, 0 replies; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11 13:35 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai@xenomai.org

Jan Kiszka пишет:

 > (230400+57600)/115200=2,5 => 2
 >
 > 230400/115200=2

IMHO - even if result was '3' - i would suggest to use formula that 
gives '3' because it's more correct.

 > So we have the same results for both formulas and I don't see the need
 > for a patch anymore. Do you? Otherwise I would just commit the
 > div-by-zero fix to trunk now and keep the rest as is.
i think 'div-by-zero fix' is enough.

-- 
________________________________________
Maksym Veremeyenko



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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 14:33                 ` CHABAL David
@ 2007-05-11 13:54                   ` Jan Kiszka
  2007-05-11 13:58                   ` Maksym Veremeyenko
  1 sibling, 0 replies; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 13:54 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai@xenomai.org

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

CHABAL David wrote:
> Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:
> 
>> CHABAL David wrote:
>>>>> In additional:
>>>>> 1. You should use 921600 value instead of 912.600.
>>> The "." was here for reading facility only, I consider it as an integer
>>> in my computations.
>> The point was not the point, but the flipped digits.
>>
>>>> (921600 + (115200 div 2)) div 115200 = 8
>>>>
>>>> So back to square #1: misconfiguration? David, please check with the
>>>> correct baud base again if you still see relevant divider variations.
>>>>
>>> moxa:  921600/115200 = 8 (not 7, I apologize for this mistake but we
>>> guess here that the baud base is always 921600 and according to the
>>> mxser file it can be 230400 for some cards)
>> (230400+57600)/115200=2,5 => 2
>>
>> 230400/115200=2
>>
>> ???
> 
> Oupsss, I'm beaten :-(
> 
> The only case  with a different value that I found is for 1200:
> (230400+1200)/1200 = 193
> 230400/1200 = 192
> 
> I think it's not relevant for this speed.
> 

Fine - issue solved without adding tweaks, and everybody is happy. :)

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 14:33                 ` CHABAL David
  2007-05-11 13:54                   ` Jan Kiszka
@ 2007-05-11 13:58                   ` Maksym Veremeyenko
  2007-05-11 15:33                     ` CHABAL David
  1 sibling, 1 reply; 20+ messages in thread
From: Maksym Veremeyenko @ 2007-05-11 13:58 UTC (permalink / raw)
  To: CHABAL David; +Cc: Jan Kiszka, xenomai@xenomai.org

CHABAL David пишет:
> Oupsss, I'm beaten :-(
> 
> The only case  with a different value that I found is for 1200:

> (230400+1200)/1200 = 193
> 230400/1200 = 192

(230400+600)/1200 = [192,5] = 192
230400/1200 = 192


-- 
________________________________________
Maksym Veremeyenko


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 12:11           ` Jan Kiszka
@ 2007-05-11 14:11             ` CHABAL David
  2007-05-11 13:25               ` Jan Kiszka
  2007-05-11 13:29               ` Maksym Veremeyenko
  0 siblings, 2 replies; 20+ messages in thread
From: CHABAL David @ 2007-05-11 14:11 UTC (permalink / raw)
  To: Jan Kiszka, Maksym Veremeyenko; +Cc: xenomai@xenomai.org

>> 
>> In additional:
>> 1. You should use 921600 value instead of 912.600.
>

The "." was here for reading facility only, I consider it as an integer
in my computations.

>(921600 + (115200 div 2)) div 115200 = 8
>
>So back to square #1: misconfiguration? David, please check with the
>correct baud base again if you still see relevant divider variations.
>

moxa:  921600/115200 = 8 (not 7, I apologize for this mistake but we
guess here that the baud base is always 921600 and according to the
mxser file it can be 230400 for some cards)

xeno: (921600+57600)/115200 = 8.5 rounded to 8

David


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 13:25               ` Jan Kiszka
  2007-05-11 13:35                 ` Maksym Veremeyenko
@ 2007-05-11 14:33                 ` CHABAL David
  2007-05-11 13:54                   ` Jan Kiszka
  2007-05-11 13:58                   ` Maksym Veremeyenko
  1 sibling, 2 replies; 20+ messages in thread
From: CHABAL David @ 2007-05-11 14:33 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai@xenomai.org

Le 11/5/2007, "Jan Kiszka" <jan.kiszka@domain.hid> a écrit:

>CHABAL David wrote:
>>>> In additional:
>>>> 1. You should use 921600 value instead of 912.600.
>> 
>> The "." was here for reading facility only, I consider it as an integer
>> in my computations.
>
>The point was not the point, but the flipped digits.
>
>> 
>>> (921600 + (115200 div 2)) div 115200 = 8
>>>
>>> So back to square #1: misconfiguration? David, please check with the
>>> correct baud base again if you still see relevant divider variations.
>>>
>> 
>> moxa:  921600/115200 = 8 (not 7, I apologize for this mistake but we
>> guess here that the baud base is always 921600 and according to the
>> mxser file it can be 230400 for some cards)
>
>(230400+57600)/115200=2,5 => 2
>
>230400/115200=2
>
>???

Oupsss, I'm beaten :-(

The only case  with a different value that I found is for 1200:
(230400+1200)/1200 = 193
230400/1200 = 192

I think it's not relevant for this speed.

David


>
>> 
>> xeno: (921600+57600)/115200 = 8.5 rounded to 8
>
>So we have the same results for both formulas and I don't see the need
>for a patch anymore. Do you? Otherwise I would just commit the
>div-by-zero fix to trunk now and keep the rest as is.
>
>Jan
>


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 13:58                   ` Maksym Veremeyenko
@ 2007-05-11 15:33                     ` CHABAL David
  2007-05-11 15:45                       ` Jan Kiszka
  0 siblings, 1 reply; 20+ messages in thread
From: CHABAL David @ 2007-05-11 15:33 UTC (permalink / raw)
  To: Maksym Veremeyenko; +Cc: Jan Kiszka, xenomai@xenomai.org

Le 11/5/2007, "Maksym Veremeyenko" <verem@domain.hid> a écrit:

>CHABAL David ÐÉÛÅÔ:
>> Oupsss, I'm beaten :-(
>> 
>> The only case  with a different value that I found is for 1200:
>
>> (230400+1200)/1200 = 193
>> 230400/1200 = 192
>
>(230400+600)/1200 = [192,5] = 192
>230400/1200 = 192
>
>
>-- 
>________________________________________
>Maksym Veremeyenko
>

argh, beaten ... again

Sorry for this useless thread.

David


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

* Re: [Xenomai-core] 16550A driver and Moxa card / solved
  2007-05-11 15:33                     ` CHABAL David
@ 2007-05-11 15:45                       ` Jan Kiszka
  0 siblings, 0 replies; 20+ messages in thread
From: Jan Kiszka @ 2007-05-11 15:45 UTC (permalink / raw)
  To: CHABAL David; +Cc: xenomai@xenomai.org

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

CHABAL David wrote:
> Le 11/5/2007, "Maksym Veremeyenko" <verem@domain.hid> a écrit:
> 
>> CHABAL David ÐÉÛÅÔ:
>>> Oupsss, I'm beaten :-(
>>>
>>> The only case  with a different value that I found is for 1200:
>>> (230400+1200)/1200 = 193
>>> 230400/1200 = 192
>> (230400+600)/1200 = [192,5] = 192
>> 230400/1200 = 192
>>
>>
>> -- 
>> ________________________________________
>> Maksym Veremeyenko
>>
> 
> argh, beaten ... again
> 
> Sorry for this useless thread.

I wouldn't call it useless: Try to ask $your_favourite_search_engine for
"xenomai 16550 moxa" in a few days, and you'll find some more hints on
how to configure that hardware and that it works (once worked) for Xenomai.

However, the Maksym's suggestion to enhance the wiki is welcome. Anyone,
please check the existing page http://www.xenomai.org/index.php/16550A
and add what you think is missing or fix what is unclear.

Jan


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

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

end of thread, other threads:[~2007-05-11 15:45 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-11  9:31 [Xenomai-core] 16550A driver and Moxa card / solved CHABAL David
2007-05-11  9:08 ` Jan Kiszka
2007-05-11  9:12 ` Maksym Veremeyenko
2007-05-11  9:17   ` Jan Kiszka
2007-05-11 10:57     ` CHABAL David
2007-05-11 10:28       ` Maksym Veremeyenko
2007-05-11 10:36       ` Jan Kiszka
2007-05-11 11:25         ` Jan Kiszka
2007-05-11 12:33           ` CHABAL David
2007-05-11 11:46         ` Maksym Veremeyenko
2007-05-11 12:11           ` Jan Kiszka
2007-05-11 14:11             ` CHABAL David
2007-05-11 13:25               ` Jan Kiszka
2007-05-11 13:35                 ` Maksym Veremeyenko
2007-05-11 14:33                 ` CHABAL David
2007-05-11 13:54                   ` Jan Kiszka
2007-05-11 13:58                   ` Maksym Veremeyenko
2007-05-11 15:33                     ` CHABAL David
2007-05-11 15:45                       ` Jan Kiszka
2007-05-11 13:29               ` Maksym Veremeyenko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.