2000-12-10 20:46:01

by clock

[permalink] [raw]
Subject: Dropping chars on 16550

Hi folks

What should I do, when I run cdda2wav | gogo (riping CD from a ATAPI
CD thru mp3 encoder) and get a continuous dropping of characters, on a 16550-
enhanced serial port, without handshake, with full-duplex load of 115200 bps?
About 1 of 320 bytes is miscommunicated.

The kernel is 2.2.12.

Clock


2000-12-10 23:39:18

by Igmar Palsenberg

[permalink] [raw]
Subject: Re: Dropping chars on 16550

On Sun, 10 Dec 2000 [email protected] wrote:

> Hi folks
>
> What should I do, when I run cdda2wav | gogo (riping CD from a ATAPI
> CD thru mp3 encoder) and get a continuous dropping of characters, on a 16550-
> enhanced serial port, without handshake, with full-duplex load of 115200 bps?
> About 1 of 320 bytes is miscommunicated.

Use handshaking



Igmar

2000-12-10 23:53:22

by Jens Axboe

[permalink] [raw]
Subject: Re: Dropping chars on 16550

On Sun, Dec 10 2000, [email protected] wrote:
> Hi folks
>
> What should I do, when I run cdda2wav | gogo (riping CD from a ATAPI
> CD thru mp3 encoder) and get a continuous dropping of characters, on a 16550-
> enhanced serial port, without handshake, with full-duplex load of 115200 bps?
> About 1 of 320 bytes is miscommunicated.
>
> The kernel is 2.2.12.

hdparm -u1 /dev/hdX

--
* Jens Axboe <[email protected]>
* SuSE Labs

2000-12-11 06:02:43

by Mark Orr

[permalink] [raw]
Subject: Re: Dropping chars on 16550


On 11-Dec-2000 Igmar Palsenberg wrote:
> On Sun, 10 Dec 2000 [email protected] wrote:
>
>> Hi folks
>>
>> What should I do, when I run cdda2wav | gogo (riping CD from a ATAPI
>> CD thru mp3 encoder) and get a continuous dropping of characters, on a
>> 16550-
>> enhanced serial port, without handshake, with full-duplex load of 115200
>> bps?
>> About 1 of 320 bytes is miscommunicated.
>
> Use handshaking

Heh...do what I did. Go on eBay and pick up a Hayes ESP card.

I have a fairly weak system by todays standards, and I found that
even with a 16550 serial port, I'd get tcp/ip errors in my logs
(and lots of 'em).

They never wrote decent ESP drivers for Windows, but the
Linux drivers are superb. I popped it in, configured it,
and the tcp errors vanished...not a single one in the 10 months
I've owned it.

It bugs me that they're making PC's w/o ISA cards now, because
I dont wanna give up my Hayes ESP. Based on what I saw, a 16550
with it's tiny 16-byte buffer, isnt enough.

(yes, I'm stuck with POTS+PPP. Cable modems are available...
but the ISP is @Hoax. Yuck. The only DSL grade I can get is
IDSL -- $70/month. Double yuck.)

--
Mark Orr
[email protected]

2000-12-11 08:36:36

by Chad Schwartz

[permalink] [raw]
Subject: Re: Dropping chars on 16550

You'll find that there is a problem with 2.2.12, on down - with losing a
few bytes here and there.

The bug is in the tty subsystem - in that when you pass off chars to the
ldisc - from the driver, the ldisc doesn't actually write them. (I could
get into the details, but you probably don't care.)

upgrade to 2.2.17.

It takes care of that bug.

Now. You *NEED* to understand that the way cdrecord does things, is by
sending control codes (lots of them) to your tty, to achieve the "oOoOo"
effect.

9600bps should be okay - on any reasonable system, to NEVER flow control.

But the *MOMENT* you bank on that, you'll get burned.

Set up flow control. if you don't, you're asking for trouble.

Chad

> Hi folks
>
> What should I do, when I run cdda2wav | gogo (riping CD from a ATAPI
> CD thru mp3 encoder) and get a continuous dropping of characters, on a 16550-
> enhanced serial port, without handshake, with full-duplex load of 115200 bps?
> About 1 of 320 bytes is miscommunicated.
>
> The kernel is 2.2.12.
>
> Clock
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> Please read the FAQ at http://www.tux.org/lkml/
>

2000-12-13 00:36:12

by Igmar Palsenberg

[permalink] [raw]
Subject: Re: Dropping chars on 16550


> > Use handshaking
>
> Heh...do what I did. Go on eBay and pick up a Hayes ESP card.

Hmm.. High speed comm is fine here, as long is I use handshaking. If I
don't, I'll loose chars.

> I have a fairly weak system by todays standards, and I found that
> even with a 16550 serial port, I'd get tcp/ip errors in my logs
> (and lots of 'em).

Mine used to be a 200MMX until last week :)

> --
> Mark Orr
> [email protected]


Igmar

2000-12-13 15:07:54

by Chad Schwartz

[permalink] [raw]
Subject: Re: Dropping chars on 16550

> > Heh...do what I did. Go on eBay and pick up a Hayes ESP card.
>
> Hmm.. High speed comm is fine here, as long is I use handshaking. If I
> don't, I'll loose chars.

there are many situations in which a 16550 is KNOWN to be overrunable, all
of which can occur in your common PPP connection.

More importantly - if you have 2 16550's talking together (Which is
EXACTLY what you have, when you hook it to a modem) there are even MORE
overrun possibilities. (For instance, when you fill the transmitter up to
16 bytes - on a uart, and then the receiving side suddenly drops RTS,
there is *NO* way for that 16550 to stop its transmitter. Once the bytes
are in its fifo, it HAS TO SEND THEM.)

This is where a 654 or an 854 (I'm only listing startech design chips.
there are others that would do the job.) come in handy. They can pause
their transmitter WITH bytes in their fifo. (Automated hardware/software
flow control.)

I have no idea why the 16550 caught on as the "De facto standard" like it
did. there are UARTS out there that are more efficient, yet cost only a
few dollars more to manufacture.

(Your common QUAD 16654 chip costs $20 to an end user, nowadays. Your
common QUAD 16554 costs about $15.)

Imagine what the 2-UART chips would cost. (or, mass-produced all-in-1
sets even.)

Really makes you think.

Chad

2000-12-14 13:58:10

by Igmar Palsenberg

[permalink] [raw]
Subject: Re: Dropping chars on 16550


> there are many situations in which a 16550 is KNOWN to be overrunable, all
> of which can occur in your common PPP connection.
>
> More importantly - if you have 2 16550's talking together (Which is
> EXACTLY what you have, when you hook it to a modem) there are even MORE
> overrun possibilities. (For instance, when you fill the transmitter up to
> 16 bytes - on a uart, and then the receiving side suddenly drops RTS,
> there is *NO* way for that 16550 to stop its transmitter. Once the bytes
> are in its fifo, it HAS TO SEND THEM.)

Indeed. I saw this behaviour some years ago when I was debugging a
controller that went beserk when been talked to at a 115k2 buad rate.

My modem isn't on 115k2 now, so I don't see the problem often. I'm gonne
setup a second machine with remote kernel debugging, since I'm sick of
rebooting when I want to scan something.

> This is where a 654 or an 854 (I'm only listing startech design chips.
> there are others that would do the job.) come in handy. They can pause
> their transmitter WITH bytes in their fifo. (Automated hardware/software
> flow control.)

Indeed. Most chips I've seen are 1 16550, or pretend to be. Probably an
issue of cost (At least, I think :))

> I have no idea why the 16550 caught on as the "De facto standard" like it
> did. there are UARTS out there that are more efficient, yet cost only a
> few dollars more to manufacture.

Well.. Why is the i386 the defacto standard ? There architectures that are
a lot better. Reason it is that the some big company used it, and it got
populair.

> (Your common QUAD 16654 chip costs $20 to an end user, nowadays. Your
> common QUAD 16554 costs about $15.)
>
> Imagine what the 2-UART chips would cost. (or, mass-produced all-in-1
> sets even.)
>
> Really makes you think.

Indeed.. Why do they save $15 bucks on a modem chipset, and replace it
with a buggy software driven solution... Making things as cheap as
possible, to make sure the're chaper then their compatitor.

> Chad



Igmar

2000-12-14 15:22:21

by Chad Schwartz

[permalink] [raw]
Subject: Re: Dropping chars on 16550

> > This is where a 654 or an 854 (I'm only listing startech design chips.
> > there are others that would do the job.) come in handy. They can pause
> > their transmitter WITH bytes in their fifo. (Automated hardware/software
> > flow control.)
>
> Indeed. Most chips I've seen are 1 16550, or pretend to be. Probably an
> issue of cost (At least, I think :))

Yeah. most of this crap is manufactured as all-in-1 chips. (IDE, FDC, SER,
PAR, etc.) and right along with that, you get 2 16550AFN's. Now. they
hyped the heck out of 16550's when they came out, because "You can use
your 28.8kbps modem without overruns!". Yeah. clocking it at 38400 or
57600 on a system doing NOTHING ELSE BUT SERIAL.

For a little extra cost - approx. $2.50 (this number could skew a bit,
depending on in what quantity they buy), they could put 16652's in there.

Not much support for it on an enduser system yet (our serial.c does, but
the MS folks dont support 'em in their generic driver, I dont think) so I
think this has some weight in why it doesn't become defacto standard,
either.

> Well.. Why is the i386 the defacto standard ? There architectures that are
> a lot better. Reason it is that the some big company used it, and it got
> populair.

Heh. Well, serial doesn't even have anything to do with architecture. As
long as the machine supports addressable I/O, its capable of running a
UART.

And what kind of serial ports do you find on your Alpha? 16550's! Your
PowerPC? 16550's! Your PA-RISC box? 16550's! Hey! Even RS/6000's use
16550's!

So while i concur with your statement, it still doesn't explain why the
business hasn't chosen to move on yet.

NOTE: The same can also be stated about FLOPPY DRIVES. Why on EARTH would
we want 1.44mb media - on a drive that costs $15, and media that costs
$.10/ea - when there are things like Zipdrives, where you can get
100mb internal drives for $50, and media for $4? (Thats what FLOPPY DRIVES
used to cost!! $60 for the drive, $1-2/ea for the media.)

> Indeed.. Why do they save $15 bucks on a modem chipset, and replace it
> with a buggy software driven solution... Making things as cheap as
> possible, to make sure the're chaper then their compatitor.

Good point. But in this particular model, it obviously explains why
electronics technology expands in the particular way that it does.

In the year 1970, everyone thought that we'd have transporter beams and
spaceships and computers named Hal in the year 2000. What do we *REALLY*
have? Technology that makes things more CONVENIENT for people. They also
CATER to people who don't want to spend any money.

Celphones. Pagers. Microwaves.

Hey. we even have Web-based grocery delivery guys that
arrive in pretty vans. and all you had to do was click!

Our computers use parts that were designed 10 years previous, because
nobody wants to spend the money on newer and better stuff.

Chad


2000-12-14 17:36:55

by Igmar Palsenberg

[permalink] [raw]
Subject: Re: Dropping chars on 16550


> Yeah. most of this crap is manufactured as all-in-1 chips. (IDE, FDC, SER,
> PAR, etc.) and right along with that, you get 2 16550AFN's. Now. they
> hyped the heck out of 16550's when they came out, because "You can use
> your 28.8kbps modem without overruns!". Yeah. clocking it at 38400 or
> 57600 on a system doing NOTHING ELSE BUT SERIAL.
>
> For a little extra cost - approx. $2.50 (this number could skew a bit,
> depending on in what quantity they buy), they could put 16652's in there.

In that case you're talking a few dollars on a motherboard that costs at
least $100 to produce. I've seen this with all hardware I've seen : The
famous HP scanner series come with some kind of totally shitty SCSI card
just to save $15 or so.

> Not much support for it on an enduser system yet (our serial.c does, but
> the MS folks dont support 'em in their generic driver, I dont think) so I
> think this has some weight in why it doesn't become defacto standard,
> either.
>
> > Well.. Why is the i386 the defacto standard ? There architectures that are
> > a lot better. Reason it is that the some big company used it, and it got
> > populair.
>
> Heh. Well, serial doesn't even have anything to do with architecture. As
> long as the machine supports addressable I/O, its capable of running a
> UART.

I know. I just named the Intel as an example. The Alpha architecture is on
most things superiours to the Intel, en the current PIII arcitecture still
has the some bloat of the old archtecture carried along, thing that comes
in mind is the old 80x86 compability mode.

My point was that getting rid of something that most users have is very
hard, even if the're better things on the market.

> And what kind of serial ports do you find on your Alpha? 16550's! Your
> PowerPC? 16550's! Your PA-RISC box? 16550's! Hey! Even RS/6000's use
> 16550's!

I want an Alpha.. That's my gift I give to myself after I graduate ;)

> So while i concur with your statement, it still doesn't explain why the
> business hasn't chosen to move on yet.
> NOTE: The same can also be stated about FLOPPY DRIVES. Why on EARTH would
> we want 1.44mb media - on a drive that costs $15, and media that costs
> $.10/ea - when there are things like Zipdrives, where you can get
> 100mb internal drives for $50, and media for $4? (Thats what FLOPPY DRIVES
> used to cost!! $60 for the drive, $1-2/ea for the media.)

1.44 MB is anchient, and hardlike suitable for anything else then a recue
disk. Problem that when the 3.5 inch disk was introduced it was the only
thing that was cheap and available on the market. So it became a standard,
and it is still widely used.

Today an LS drive can keep 120 MB, that is a lot better, especially if you
realize what the avarage diskstorage is today.

> > Indeed.. Why do they save $15 bucks on a modem chipset, and replace it
> > with a buggy software driven solution... Making things as cheap as
> > possible, to make sure the're chaper then their compatitor.
>
> Good point. But in this particular model, it obviously explains why
> electronics technology expands in the particular way that it does.
>
> In the year 1970, everyone thought that we'd have transporter beams and
> spaceships and computers named Hal in the year 2000. What do we *REALLY*
> have? Technology that makes things more CONVENIENT for people. They also
> CATER to people who don't want to spend any money.
>
> Celphones. Pagers. Microwaves.
>
> Hey. we even have Web-based grocery delivery guys that
> arrive in pretty vans. and all you had to do was click!
>
> Our computers use parts that were designed 10 years previous, because
> nobody wants to spend the money on newer and better stuff.

Indeed.. People want to pay $.10 to sit on the first row in the theatre. I
choose to pay for good hardware that I buy, plug in and it works. Nog plug
in, install 20 megs of software, and then the bloody thing still refuses
to work :(

> Chad


Igmar

2000-12-16 20:59:29

by Tom Vier

[permalink] [raw]
Subject: Re: Dropping chars on 16550

On Thu, Dec 14, 2000 at 08:51:42AM -0600, Chad Schwartz wrote:
> And what kind of serial ports do you find on your Alpha? 16550's! Your
> PowerPC? 16550's! Your PA-RISC box? 16550's! Hey! Even RS/6000's use
> 16550's!

macs and sun machines use z85c30 chips, so there are some non-16550 boxes
out there.

--
Tom Vier <[email protected]>
DSA Key id 0x27371A2C

2000-12-16 23:01:41

by Alan

[permalink] [raw]
Subject: Re: Dropping chars on 16550

> macs and sun machines use z85c30 chips, so there are some non-16550 boxes
> out there.

SGI kit also tends to use Z85Cx30 based devices. Its unfortunate the 16xx0
series serial controllers won as the Z85Cx30 is much more flexible ;)

2000-12-17 02:14:02

by Chad Schwartz

[permalink] [raw]
Subject: Re: Dropping chars on 16550

heh. yep.

Thats why I didn't list them.

z85's are good chips, but they perform JUST LIKE a 16550.

Chad

> On Thu, Dec 14, 2000 at 08:51:42AM -0600, Chad Schwartz wrote:
> > And what kind of serial ports do you find on your Alpha? 16550's! Your
> > PowerPC? 16550's! Your PA-RISC box? 16550's! Hey! Even RS/6000's use
> > 16550's!
>
> macs and sun machines use z85c30 chips, so there are some non-16550 boxes
> out there.
>
> --
> Tom Vier <[email protected]>
> DSA Key id 0x27371A2C
>

2000-12-17 02:15:12

by Chad Schwartz

[permalink] [raw]
Subject: Re: Dropping chars on 16550

absolutely, they are.

They don't follow the same archaic I/O register mechanism, either. which
is *GOOD*.

(Just take a peak at the 16C854 sometime. You'll understand exactly how
archaic it can GET.)

Chad

> > macs and sun machines use z85c30 chips, so there are some non-16550 boxes
> > out there.
>
> SGI kit also tends to use Z85Cx30 based devices. Its unfortunate the 16xx0
> series serial controllers won as the Z85Cx30 is much more flexible ;)
>