Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Nov 2004 12:08:05 +0200
From:      Ruslan Ermilov <ru@FreeBSD.org>
To:        "David O'Brien" <obrien@FreeBSD.org>, John Baldwin <jhb@FreeBSD.org>
Cc:        freebsd-hackers@FreeBSD.org
Subject:   Re: boot serial console speed
Message-ID:  <20041114100805.GF84553@ip.net.ua>
In-Reply-To: <20041114093850.GE84553@ip.net.ua>
References:  <20041114083914.B43BC43D1D@mx1.FreeBSD.org> <20041114093850.GE84553@ip.net.ua>

next in thread | previous in thread | raw e-mail | index | archive | help

--iAL9S67WQOXgEPD9
Content-Type: multipart/mixed; boundary="i3lJ51RuaGWuFYNw"
Content-Disposition: inline


--i3lJ51RuaGWuFYNw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Nov 14, 2004 at 11:38:50AM +0200, Ruslan Ermilov wrote:
> On Sun, Nov 14, 2004 at 10:39:13AM +0200, Danny Braniss wrote:
> > what's the magic encantation to set the console to 38400?
> > btw, i solved my problem by just commenting out that part of the code,
> > since i rely on the bios setting it.
> >=20
> > from src/sys/boot/i386/boot0/Makefile:
> >=20
> > # Comm settings for boot0sio.  0xE3 =3D> 9600 8-N-1
> > # XXX: We should create a build-tool or something to convert BOOT_CONSO=
LE_SPEED
> > # and BOOT_COMCONSOLE_PORT into the correct values to define on the bui=
ld
> > # command line
> > BOOT_BOOT0_COMCONSOLE_SPEED?=3D	0xE3
> >=20
> This is the value passed in the AL register to the Int 14/AH=3D00h
> BIOS function:
>=20
> 	http://www.ctyme.com/intr/rb-0811.htm
>=20
> : Bit(s) Description     (Table 00300)
> : 7-5    data rate (110,150,300,600,1200,2400,4800,9600 bps)
> : 4-3    parity (00 or 10 =3D none, 01 =3D odd, 11 =3D even)
> : 2      stop bits (set =3D 2, clear =3D 1)
> : 1-0    data bits (00 =3D 5, 01 =3D 6, 10 =3D 7, 11 =3D 8)
>=20
> 0xE3 =3D 111-00-0-11 =3D 9600 bps, no parity, 1 stop bit, 8 data bits
>=20
> But I think it's not possible to set it to anything above 9600 bps
> using this BIOS call.
>=20
Attached is the patch that converts supported BOOT_COMCONSOLE_SPEED
values into corresponding BOOT_BOOT0_COMCONSOLE_SPEED.  Unsupported
BOOT_COMCONSOLE_VALUES cause the boot0sio console speed to be set
to 9600.


Cheers,
--=20
Ruslan Ermilov
ru@FreeBSD.org
FreeBSD committer

--i3lJ51RuaGWuFYNw
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=p
Content-Transfer-Encoding: quoted-printable

Index: Makefile
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /home/ncvs/src/sys/boot/i386/boot0/Makefile,v
retrieving revision 1.30
diff -u -r1.30 Makefile
--- Makefile	27 Aug 2004 00:18:03 -0000	1.30
+++ Makefile	14 Nov 2004 10:04:36 -0000
@@ -21,11 +21,34 @@
 # unless you are glutton for punishment.
 BOOT_BOOT0_ORG?=3D	0x600
=20
-# Comm settings for boot0sio.  0xE3 =3D> 9600 8-N-1
-# XXX: We should create a build-tool or something to convert BOOT_CONSOLE_=
SPEED
-# and BOOT_COMCONSOLE_PORT into the correct values to define on the build
-# command line
-BOOT_BOOT0_COMCONSOLE_SPEED?=3D	0xE3
+# Comm settings for boot0sio.
+# Bit(s) Description
+# 7-5    data rate (110,150,300,600,1200,2400,4800,9600 bps)
+# 4-3    parity (00 or 10 =3D none, 01 =3D odd, 11 =3D even)
+# 2      stop bits (set =3D 2, clear =3D 1)
+# 1-0    data bits (00 =3D 5, 01 =3D 6, 10 =3D 7, 11 =3D 8)
+.if !defined(BOOT_BOOT0_COMCONSOLE_SPEED)
+BOOT_COMCONSOLE_SPEED?=3D	9600
+.if ${BOOT_COMCONSOLE_SPEED} =3D=3D 9600
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"7 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 4800
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"6 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 2400
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"5 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 1200
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"4 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 600
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"3 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 300
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"2 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 150
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"1 << 5 + 3"
+.elif ${BOOT_COMCONSOLE_SPEED} =3D=3D 110
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"0 << 5 + 3"
+.else
+BOOT_BOOT0_COMCONSOLE_SPEED=3D	"7 << 5 + 3"
+.endif
+.endif
=20
 CFLAGS+=3D-DFLAGS=3D${BOOT_BOOT0_FLAGS} \
 	-DTICKS=3D${BOOT_BOOT0_TICKS} \

--i3lJ51RuaGWuFYNw--

--iAL9S67WQOXgEPD9
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQFBly6FqRfpzJluFF4RAmPrAJ0XHq1Tq8uO3Og+LNfQtCF2BHpuiQCgk5YQ
xh0FdkKIZEj2Ppluf8/k1do=
=2NFN
-----END PGP SIGNATURE-----

--iAL9S67WQOXgEPD9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041114100805.GF84553>