[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH gnumach] console: Fix baud rate on com ports, use 115200 defa
From: |
Samuel Thibault |
Subject: |
Re: [PATCH gnumach] console: Fix baud rate on com ports, use 115200 default baud, 8 data bits |
Date: |
Sat, 20 Jan 2024 18:49:57 +0100 |
User-agent: |
NeoMutt/20170609 (1.8.3) |
Applied, thanks!
Damien Zammit, le ven. 19 janv. 2024 03:12:24 +0000, a ecrit:
> TESTED: By booting gnumach off an HP T620 with console=com0 and receiving
> 115200 8N1 console
> on another machine connected via the serial port in minicom.
> Without this patch, part of the console is garbled by mismatching com params
> (9600 7N1).
>
> ---
> i386/i386at/com.c | 27 +++++++--------------------
> i386/i386at/kd.c | 4 ++--
> xen/console.c | 4 ++--
> 3 files changed, 11 insertions(+), 24 deletions(-)
>
> diff --git a/i386/i386at/com.c b/i386/i386at/com.c
> index de21206c..bfc8da4e 100644
> --- a/i386/i386at/com.c
> +++ b/i386/i386at/com.c
> @@ -62,20 +62,15 @@ boolean_t comfifo[NCOM];
> boolean_t comtimer_active;
> int comtimer_state[NCOM];
>
> -#define RCBAUD B9600
> +#define RCBAUD B115200
> static int rcline = -1;
> static struct bus_device *comcndev;
>
> /* XX */
> extern char *kernel_cmdline;
>
> -#ifndef PORTSELECTOR
> -#define ISPEED B9600
> -#define IFLAGS (EVENP|ODDP|ECHO|CRMOD)
> -#else
> -#define ISPEED B4800
> -#define IFLAGS (EVENP|ODDP)
> -#endif
> +#define ISPEED B115200
> +#define IFLAGS (EVENP|ODDP|ECHO|CRMOD|XTABS|LITOUT)
>
> u_short divisorreg[] = {
> 0, 2304, 1536, 1047, /* 0, 50, 75, 110*/
> @@ -361,18 +356,10 @@ io_return_t comopen(
> tp->t_mctl = commctl;
> tp->t_getstat = comgetstat;
> tp->t_setstat = comsetstat;
> -#ifndef PORTSELECTOR
> - if (tp->t_ispeed == 0) {
> -#else
> - tp->t_state |= TS_HUPCLS;
> -#endif /* PORTSELECTOR */
> - tp->t_ispeed = ISPEED;
> - tp->t_ospeed = ISPEED;
> - tp->t_flags = IFLAGS;
> - tp->t_state &= ~TS_BUSY;
> -#ifndef PORTSELECTOR
> - }
> -#endif /* PORTSELECTOR */
> + tp->t_ispeed = ISPEED;
> + tp->t_ospeed = ISPEED;
> + tp->t_flags = IFLAGS;
> + tp->t_state &= ~TS_BUSY;
> }
> /*rvb tp->t_state |= TS_WOPEN; */
> if ((tp->t_state & TS_ISOPEN) == 0)
> diff --git a/i386/i386at/kd.c b/i386/i386at/kd.c
> index e9b110bf..984d62e3 100644
> --- a/i386/i386at/kd.c
> +++ b/i386/i386at/kd.c
> @@ -453,8 +453,8 @@ kdopen(
> */
> tp->t_oproc = kdstart;
> tp->t_stop = kdstop;
> - tp->t_ospeed = tp->t_ispeed = B9600;
> - tp->t_flags = ODDP|EVENP|ECHO|CRMOD|XTABS;
> + tp->t_ospeed = tp->t_ispeed = B115200;
> + tp->t_flags = ODDP|EVENP|ECHO|CRMOD|XTABS|LITOUT;
> kdinit();
> }
> tp->t_state |= TS_CARR_ON;
> diff --git a/xen/console.c b/xen/console.c
> index e0ec0ca4..9ceb6ddf 100644
> --- a/xen/console.c
> +++ b/xen/console.c
> @@ -191,8 +191,8 @@ int hypcnopen(dev_t dev, int flag, io_req_t ior)
> simple_lock_nocheck(&tp->t_lock.slock);
> tp->t_oproc = hypcnstart;
> tp->t_stop = hypcnstop;
> - tp->t_ospeed = tp->t_ispeed = B9600;
> - tp->t_flags = ODDP|EVENP|ECHO|CRMOD|XTABS;
> + tp->t_ospeed = tp->t_ispeed = B115200;
> + tp->t_flags = ODDP|EVENP|ECHO|CRMOD|XTABS|LITOUT;
> }
> tp->t_state |= TS_CARR_ON;
> simple_unlock_irq(o_pri, &tp->t_lock);
> --
> 2.40.1
>
>
>
--
Samuel
---
Pour une évaluation indépendante, transparente et rigoureuse !
Je soutiens la Commission d'Évaluation de l'Inria.