History log of /haiku/src/add-ons/kernel/drivers/ports/pc_serial/Driver.cpp
Revision Date Author Comments
# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# c4af8d06 12-Aug-2022 Oscar Lesta <oscar.lesta@gmail.com>

pc_serial: fix divisor values for baudrates 1200 and 1800

Change-Id: I57981b4c6f1b1ed22bea98d1199e86919f5ff30d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5544
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# d028516b 14-Apr-2022 Fredrik Holmqvist <fredrik.holmqvist@gmail.com>

Remove use of config_manager

bus_type has been added to MediaRoster.h and the serial driver.
It is not used enough to be in any shared header.
media_roster only uses it for buffer size estimation.

Change-Id: If4f372d44e871230da4744d99ec7cde0c79c8344
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5209
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# bb0d0ea2 24-Jun-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

pc_serial: cleanup, no functional changes

- Improve readability of code to detect serial debug
- Rename usb_serial_* functions to pc_serial_* (code was copied from the
USB serial driver)


# 4c9ec290 24-Jun-2017 Adrien Destugues <pulkomandy@gmail.com>

pc_serial: if kernel debugger is disabled, use the port

This makes it a lot easier to use and test pc_serial, even on machines
with a single serial port (COM2 is getting even more rare than COM1
these days).


# ec1395bd 21-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

pc_serial: trace when ignoring the kernel debug port.

* Since it is currently ignored even when serial debug is disabled in
the settings file, this was a bit confusing.


# 19dad39b 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: mention my oxfordsemi 2 ports card and specs


# 039f88d8 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: more NULL checks


# 8ee781bf 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: fix gcc4 warnings (hopefully)


# ddee8aa9 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: invoke scheduler when queuing DPC

We really want this to be done ASAP...


# a5d33e1a 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: try to skip the port used for kernel debugging output

Not that easy to handle all cases correctly,
but should work for the default case.


# 1a6072a0 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: manually probe the default ISA ports

Since config_manager is basically a stub, and even VirtualBox
doesn't publish the serial ports as PCI devices, we must probe for them.

Ideally config_manager would find them in the device manager tree
which would have been populated from the PnP BIOS or even ACPI tables...


# 7e613b47 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: convert irq handler to use DPC

Let's hope we won't loose data because it.

We have to cache the value of IIR read from IsInterruptPending(),
because some conditions are acknowledged only by reading it...


# ab325d98 16-Aug-2014 François Revol <revol@free.fr>

pc_serial: Drop BeOS stuff

Even I don't use it anymore...


# c8b6d087 16-Aug-2014 François Revol <revol@free.fr>

pc_serial: This one really is B31250


# 5f5d09f9 09-Dec-2010 François Revol <revol@free.fr>

Port pc_serial to the new tty module.
Builds but won't work because the tty module lacks essential calls to read and write data :^)
Lots of ifdef since I need the R5 code around for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bda6fd 28-Apr-2010 François Revol <revol@free.fr>

Fix #5754 so at least the driver builds. It is not yet usable since we do not have a tty manager. For now it should be possible to get the BeOS one to work in Haiku though, but it's not tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e45fc856 28-Mar-2010 François Revol <revol@free.fr>

Hmm, ignoremask is an *ignore* mask :D


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5692fe13 27-Mar-2010 François Revol <revol@free.fr>

Seems NetMos is another brand for MosChip, use the better known brand.
Add link to datasheet for the other supported chip. Seems their site wants people to register to get them, but google indexed the PDF directly anyway so...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d62878c 26-Mar-2010 François Revol <revol@free.fr>

Update copyrights. Mention TuneTracker Systems as a sponsor.
Add several ways to restrict UART probing when matching devices:
- max port count,
- PCI subsystem ID mask (some cards encode the port count there),
- Base Address Register mask (some cards only have UART in the first 2 ranges).
Use those to match 2 specific NetMos chips, and avoid screwing up when input_server tries to access UARTs at boggus ranges.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e5c475a 24-Mar-2010 François Revol <revol@free.fr>

Finish the alternative device scanning code (using the PCI bus manager instead of config manager) and use it, it actually works better in R5 on SMP boxen (config manager seems to miss reporting IRQ lines).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f878f096 23-Mar-2010 François Revol <revol@free.fr>

Less tracing by default...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35936 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94a6d7ad 08-Dec-2009 François Revol <revol@free.fr>

Work-in-progress BeOS hack allow loading with either the R5 or BONE tty manager, due to using the same version and incompatible module hooks we must detect it at runtime to avoid crashing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34576 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7ae7914 31-Oct-2009 François Revol <revol@free.fr>

- cleanup, remove fake device descriptions,
- add generic device descriptions for the various incarnations of the PC UART,
- just use pc_serial as devfs basename regardless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33858 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bbc84914 26-Feb-2009 François Revol <revol@free.fr>

Working version of the driver. At least it does seem to work with my onboard com port, but not the OxfordSemi PCI card I have here. Still requires tty_manager, and config_manager too, so won't work in Haiku yet. Needs cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cdf783e 21-Aug-2008 François Revol <revol@free.fr>

Start of a PC-style serial port driver. For now it's mostly just copied parts of usb_serial, not yet usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27111 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec1395bda94985bc4cebc2f0abf2c22edf89b487 21-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

pc_serial: trace when ignoring the kernel debug port.

* Since it is currently ignored even when serial debug is disabled in
the settings file, this was a bit confusing.


# 19dad39ba89e0146176b4789bb01318454452555 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: mention my oxfordsemi 2 ports card and specs


# 039f88d8077e1d599bbe26515443df85fc184643 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: more NULL checks


# 8ee781bf7b60186ca4e6ae8593ad85012d19d80a 29-Aug-2014 François Revol <revol@free.fr>

pc_serial: fix gcc4 warnings (hopefully)


# ddee8aa960719275fd3919b43d01a20e5da1db9d 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: invoke scheduler when queuing DPC

We really want this to be done ASAP...


# a5d33e1ab1b342bcf87ba7138ea72f94b496f2ac 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: try to skip the port used for kernel debugging output

Not that easy to handle all cases correctly,
but should work for the default case.


# 1a6072a0a1bf9c57347963a44fd415235c36c63a 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: manually probe the default ISA ports

Since config_manager is basically a stub, and even VirtualBox
doesn't publish the serial ports as PCI devices, we must probe for them.

Ideally config_manager would find them in the device manager tree
which would have been populated from the PnP BIOS or even ACPI tables...


# 7e613b4759303d69a721d012dac36a87d75001a3 28-Aug-2014 François Revol <revol@free.fr>

pc_serial: convert irq handler to use DPC

Let's hope we won't loose data because it.

We have to cache the value of IIR read from IsInterruptPending(),
because some conditions are acknowledged only by reading it...


# ab325d984f46398102dc5de8f1c2ccf494a41b27 16-Aug-2014 François Revol <revol@free.fr>

pc_serial: Drop BeOS stuff

Even I don't use it anymore...


# c8b6d087f39657dfedc44a0b6145eb84377854ec 16-Aug-2014 François Revol <revol@free.fr>

pc_serial: This one really is B31250


# 5f5d09f948eaf77cace673812b5824d2c12bd6ef 09-Dec-2010 François Revol <revol@free.fr>

Port pc_serial to the new tty module.
Builds but won't work because the tty module lacks essential calls to read and write data :^)
Lots of ifdef since I need the R5 code around for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39791 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 79bda6fd6efa7f31e3bdf3f195e03ddd164321da 28-Apr-2010 François Revol <revol@free.fr>

Fix #5754 so at least the driver builds. It is not yet usable since we do not have a tty manager. For now it should be possible to get the BeOS one to work in Haiku though, but it's not tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36515 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e45fc8563b3e8c9597fdf95306448698760e881d 28-Mar-2010 François Revol <revol@free.fr>

Hmm, ignoremask is an *ignore* mask :D


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35988 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5692fe13052f5606d1a187292c08404d62bbb34d 27-Mar-2010 François Revol <revol@free.fr>

Seems NetMos is another brand for MosChip, use the better known brand.
Add link to datasheet for the other supported chip. Seems their site wants people to register to get them, but google indexed the PDF directly anyway so...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35979 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1d62878c784211efa8979652a4ecd12b0ab4f9fb 26-Mar-2010 François Revol <revol@free.fr>

Update copyrights. Mention TuneTracker Systems as a sponsor.
Add several ways to restrict UART probing when matching devices:
- max port count,
- PCI subsystem ID mask (some cards encode the port count there),
- Base Address Register mask (some cards only have UART in the first 2 ranges).
Use those to match 2 specific NetMos chips, and avoid screwing up when input_server tries to access UARTs at boggus ranges.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35965 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6e5c475a0967c6d0401e9d6a33946a28a0e438b0 24-Mar-2010 François Revol <revol@free.fr>

Finish the alternative device scanning code (using the PCI bus manager instead of config manager) and use it, it actually works better in R5 on SMP boxen (config manager seems to miss reporting IRQ lines).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35947 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f878f09673e30965da0d7932b28ee3afd799f8c4 23-Mar-2010 François Revol <revol@free.fr>

Less tracing by default...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35936 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 94a6d7ada8946b69d2952047378d38850c7a78f4 08-Dec-2009 François Revol <revol@free.fr>

Work-in-progress BeOS hack allow loading with either the R5 or BONE tty manager, due to using the same version and incompatible module hooks we must detect it at runtime to avoid crashing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34576 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b7ae7914b8c600671ba239f4a674b308c873ad8e 31-Oct-2009 François Revol <revol@free.fr>

- cleanup, remove fake device descriptions,
- add generic device descriptions for the various incarnations of the PC UART,
- just use pc_serial as devfs basename regardless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33858 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bbc84914d4e340a18214a1a92b17deb03254169b 26-Feb-2009 François Revol <revol@free.fr>

Working version of the driver. At least it does seem to work with my onboard com port, but not the OxfordSemi PCI card I have here. Still requires tty_manager, and config_manager too, so won't work in Haiku yet. Needs cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29328 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3cdf783e2b2b56c04a415a14db42f23c7caba657 21-Aug-2008 François Revol <revol@free.fr>

Start of a PC-style serial port driver. For now it's mostly just copied parts of usb_serial, not yet usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27111 a95241bf-73f2-0310-859d-f6bbb57e9c96