| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Approved by: re (kensmith)
Notes:
svn path=/releng/5.4/; revision=145735
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Allocate the interrupt resource as RF_SHAREABLE allowing uart(4) to work
with shared IRQs in case the bus code, MD interrupt code, etc. permits.
Together with sys/sparc64/sparc64/intr_machdep.c rev. 1.21 (MFC'ed in
rev. 1.19.2.1) this fixes an endless loop in uart_intr() when using the
second NS16550 on the ISA bus of sparc64 machines.
- Destroy the hardware mutex on detach and in case attaching fails.
Approved by: re (kensmith, scottl)
Notes:
svn path=/stable/5/; revision=144435
|
| |
|
|
|
|
|
|
|
|
| |
that have USB keyboards. See commit log for 1.18 for full details.
Work done by: marius
Approved by: re (scottl)
Notes:
svn path=/stable/5/; revision=143749
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- Don't blindly use the return value of uart_cpu_channel() to calculate
the address of a channel on a SCC, it returns 0 on failure.
- Hardcode channel 1 for the keyboard on Z8530, the information present
in the Open Firmware device tree doesn't allow to determine this via
uart_cpu_channel(). This makes the keyboard on Ultra 2 basically work.
- Add and improve comments about uart_cpu_channel() and uart_cpu_getdev_*().
Notes:
svn path=/stable/5/; revision=141735
|
| |
|
|
|
|
|
| |
Add the keyboard system device before we probe for the keyboard.
Notes:
svn path=/stable/5/; revision=141555
|
| |
|
|
| |
Notes:
svn path=/stable/5/; revision=141235
|
| |
|
|
| |
Notes:
svn path=/stable/5/; revision=141234
|
| |
|
|
| |
Notes:
svn path=/stable/5/; revision=141027
|
| |
|
|
| |
Notes:
svn path=/stable/5/; revision=141016
|
| |
|
|
|
|
|
| |
Implement UART_IOCTL_BAUD.
Notes:
svn path=/stable/5/; revision=137932
|
| |
|
|
|
|
|
|
| |
Add UART_IOCTL_BAUD to allow us to query the hardware about the current
baudrate setting.
Notes:
svn path=/stable/5/; revision=137931
|
| |
|
|
|
|
|
| |
Make sure the baudrate specified with the BR tag is somewhat sane.
Notes:
svn path=/stable/5/; revision=137930
|
| |
|
|
|
|
|
|
|
| |
Don't call uart_bus_probe() for non-matching PnP-devices.
Approved by: re (scottl)
Notes:
svn path=/stable/5/; revision=135776
|
| |
|
|
|
|
|
|
|
|
| |
of mine introduced in revision 1.10.
Approved by: marcel
Prodded by: marcel
Notes:
svn path=/head/; revision=133738
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and that can be used as an identify function for all kinds of busses on a
certain platform. Expect for sparc64 these are only stubs right now. [1]
- For sparc64, add code to its uart_cpu_identify() for registering the on-
board ISA UARTs and their resources based on information obtained from
Open Firmware.
It would be better if this would be done in the OFW ISA code. However, due
to the common FreeBSD ISA code and PNP-IDs not always being present in the
properties of the ISA nodes there seems to be no good way to implement that.
Therefore special casing UARTs as the sole really relevant ISA devices on
sparc64 seemed reasonable. [2]
Approved by: marcel
Discussed with: marcel [1], tmm [2]
Tested by: make universe
Notes:
svn path=/head/; revision=133735
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
subset ("compatible", "device_type", "model" and "name") of the standard
properties in drivers for devices on Open Firmware supported busses. The
standard properties "reg", "interrupts" und "address" are not covered by
this interface because they are only of interest in the respective bridge
code. There's a remaining standard property "status" which is unclear how
to support properly but which also isn't used in FreeBSD at present.
This ofw_bus kobj-interface allows to replace the various (ebus_get_node(),
ofw_pci_get_node(), etc.) and partially inconsistent (central_get_type()
vs. sbus_get_device_type(), etc.) existing IVAR ones with a common one.
This in turn allows to simplify and remove code-duplication in drivers for
devices that can hang off of more than one OFW supported bus.
- Convert the sparc64 Central, EBus, FHC, PCI and SBus bus drivers and the
drivers for their children to use the ofw_bus kobj-interface. The IVAR-
interfaces of the Central, EBus and FHC are entirely replaced by this. The
PCI bus driver used its own kobj-interface and now also uses the ofw_bus
one. The IVARs special to the SBus, e.g. for retrieving the burst size,
remain.
Beware: this causes an ABI-breakage for modules of drivers which used the
IVAR-interfaces, i.e. esp(4), hme(4), isp(4) and uart(4), which need to be
recompiled.
The style-inconsistencies introduced in some of the bus drivers will be
fixed by tmm@ in a generic clean-up of the respective drivers later (he
requested to add the changes in the "new" style).
- Convert the powerpc MacIO bus driver and the drivers for its children to
use the ofw_bus kobj-interface. This invloves removing the IVARs related
to the "reg" property which were unused and a leftover from the NetBSD
origini of the code. There's no ABI-breakage caused by this because none
of these driver are currently built as modules.
There are other powerpc bus drivers which can be converted to the ofw_bus
kobj-interface, e.g. the PCI bus driver, which should be done together
with converting powerpc to use the OFW PCI code from sparc64.
- Make the SBus and FHC front-end of zs(4) and the sparc64 eeprom(4) take
advantage of the ofw_bus kobj-interface and simplify them a bit.
Reviewed by: grehan, tmm
Approved by: re (scottl)
Discussed with: tmm
Tested with: Sun AX1105, AXe, Ultra 2, Ultra 60; PPC cross-build on i386
Notes:
svn path=/head/; revision=133589
|
| |
|
|
|
|
|
|
|
|
| |
with it that need to be understood better before they can be resolved.
This takes time and time is already in short supply.
Reported & tested by: glebius@
Notes:
svn path=/head/; revision=133220
|
| |
|
|
|
|
|
|
| |
size larger than 128 is considered an incompatible size. Stop counting
when we reach 130 in the loop.
Notes:
svn path=/head/; revision=132650
|
| |
|
|
|
|
|
|
|
|
|
|
| |
future:
rename ttyopen() -> tty_open() and ttyclose() -> tty_close().
We need the ttyopen() and ttyclose() for the new generic cdevsw
functions for tty devices in order to have consistent naming.
Notes:
svn path=/head/; revision=132226
|
| |
|
|
|
|
|
|
|
| |
o Call kdb_enter() instead of breakpoint().
o Call kdb_alt_break() instead of db_alt_break().
o Make debugging code conditional upon KDB instead of DDB.
Notes:
svn path=/head/; revision=131921
|
| |
|
|
| |
Notes:
svn path=/head/; revision=131901
|
| |
|
|
|
|
|
|
|
| |
Change the return type for t_break to void.
Add t_ioctl (more about this later).
Notes:
svn path=/head/; revision=131373
|
| |
|
|
| |
Notes:
svn path=/head/; revision=131095
|
| |
|
|
| |
Notes:
svn path=/head/; revision=131043
|
| |
|
|
| |
Notes:
svn path=/head/; revision=130969
|
| |
|
|
|
|
|
| |
Bump __FreeBSD_version accordingly.
Notes:
svn path=/head/; revision=130585
|
| |
|
|
|
|
|
|
|
| |
linesw[] directly to using the ttyld...() functions
The ttyld...() functions ar inline so there is no performance hit.
Notes:
svn path=/head/; revision=130077
|
| |
|
|
|
|
|
| |
the linedisc directly.
Notes:
svn path=/head/; revision=130057
|
| |
|
|
|
|
|
| |
in <sys/kernel.h>
Notes:
svn path=/head/; revision=130026
|
| |
|
|
|
|
|
|
|
| |
redundant includes and fix some of the include disordering.
Submitted by: bde
Notes:
svn path=/head/; revision=129764
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
does not reliably prevent the triggering of interrupts for all supported
configurations. Thus, the FIFO size probe could cause an interrupt,
which could lead to an interrupt storm in the shared interrupt case.
To prevent this, change ns8250_bus_probe() to use the overflow bit in
the line status register instead of the RX ready bit in the interrupt
identification register to detect whether the FIFO has filled up.
This allows us to clear all bits in the interrupt enable register during
the probe, which should prevent interrupts reliably.
Additionally, the detected FIFO size may be a bit more accurate, because
the overflow bit is only set when the FIFO did actually fill up, while
interrupts would trigger a bit early.
Reviewed and tested on a lot of hardware by: marcel
Notes:
svn path=/head/; revision=129757
|
| |
|
|
|
|
|
|
|
|
| |
the modules.
Also generate usbdevs.h automatically now, but a non-kernel file is
stopping that at the moment.
Notes:
svn path=/head/; revision=129740
|
| |
|
|
|
|
|
| |
- Fix wrong comment.
Notes:
svn path=/head/; revision=129276
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not as a pending interrupt status, but as a matter of status quo.
Consequently, when there's no data to be transmitted the condition
is not cleared and uart_intr() is stuck in an infinite loop trying
to clear the UART_IPEND_TXIDLE status.
The z8530_bus_ipend() function is changed to return idle only once
after having sent any data.
The root cause for this problem is that we cannot use the interrupt
status bits of the SCC itself. The register that holds the interrupt
status can only be accessed by channel A and holds the status for
both channels. Using the interrupt status register would complicate
the driver because we need to synchronize access to the SCC between
the channels.
Elementary testing: marius
Notes:
svn path=/head/; revision=128911
|
| |
|
|
|
|
|
| |
Mark it as such.
Notes:
svn path=/head/; revision=128909
|
| |
|
|
|
|
|
|
| |
it impossible to check the interrupt status bit when we try to get a
character in the low level console code.
Notes:
svn path=/head/; revision=128631
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
"... uart_cpu_sparc64.c currently only looks at /options if ttyX is
the selected console. However, there's one case where it should
additionally look at /chosen. If "keyboard" is the selected input-
device and "screen" the output-device (both via /options) but the
keyboard is unplugged, OF automatically switches to ttya for the
console. It even prints a line telling so on "screen". Solaris
respects this behaviour and uses ttya as the console in this case
and people probably expect FreeBSD to do the same (it's also very
handy to temporarily switch consoles)..."
Submitted by: Marius Strobl <marius@alchemy.franken.de>
Has no doubt the change is correct: marcel
Notes:
svn path=/head/; revision=127825
|
| |
|
|
|
|
|
|
|
|
|
| |
of UARTs. We already did this in uart_cpu_getdev().
While here, also check the compat name for "su" or "su16550".
Both changes submitted by: Marius Strobl <marius@alchemy.franken.de>
Does not doubt the correctness of the second change: marcel
Notes:
svn path=/head/; revision=127817
|
| |
|
|
|
|
|
| |
checking for transmitter empty.
Notes:
svn path=/head/; revision=127742
|
| |
|
|
|
|
|
|
| |
other architectures (like ia64), the variable has to be set to
an OpenFirmware device name.
Notes:
svn path=/head/; revision=127741
|
| |
|
|
|
|
|
| |
is only defined in that case.
Notes:
svn path=/head/; revision=127740
|
| |
|
|
| |
Notes:
svn path=/head/; revision=127226
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to select a serial console and debug port (resp). On ia64 these replace
the use of hints completely and take precedence over hints on alpha,
amd64 and i386. On sparc64 these variables are not yet recognised.
The reasons for introducing these variables are:
1. Hints have side-effects. They reserve the unit number for use by
isa or acpi devices and therefore cannot be used to select a pci
device. Also, the use of a unit number to select a device prior
to bus enumeration is nonsense. The new variables have no side-
effects and are not based on unit numbers.
2. Hints don't have the expression power to allow the sysadmin to
select UARTs that are not legacy PC devices and need the support
of compile-time constants to give the sysadmin some level of
flexibility.
The hw.uart.console and hw.uart.dbgport variables specify a list of
attributes. An attribute is a tag-value pair, seperated by a colon.
Attributes are seperated by a comma. Where possible, tags are the
same as those in /etc/remote (only br and pa in practice). Details
can be found in the manpage (not part of this commit).
Not tested on: amd64, pc98
Notes:
svn path=/head/; revision=127215
|
| |
|
|
|
|
|
|
| |
Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde
Notes:
svn path=/head/; revision=127135
|
| |
|
|
|
|
|
|
|
|
|
| |
Introduce d_version field in struct cdevsw, this must always be
initialized to D_VERSION.
Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing
four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
Notes:
svn path=/head/; revision=126080
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add missing D_TTY flags to various drivers.
Complete asserts that dev_t's passed to ttyread(), ttywrite(),
ttypoll() and ttykqwrite() have (d_flags & D_TTY) and a struct tty
pointer.
Make ttyread(), ttywrite(), ttypoll() and ttykqwrite() the default
cdevsw methods for D_TTY drivers and remove the explicit initializations
in various drivers cdevsw structures.
Notes:
svn path=/head/; revision=126078
|
| |
|
|
| |
Notes:
svn path=/head/; revision=125809
|
| |
|
|
|
|
|
|
|
|
| |
result in an error before.
PR: kern/60284
Submitted by: Thomas Sandford <freebsduser@paradisegreen.co.uk>
Notes:
svn path=/head/; revision=125797
|
| |
|
|
|
|
|
|
|
|
|
| |
this problem put these lines back in. While they should be
unnecessary, they appear to be sometimes necessary.
Reviewed in concept: dfr
Approved by: re (scottl@)
Notes:
svn path=/head/; revision=123019
|
| |
|
|
|
|
|
|
| |
this will work with any uart backend, currently supported hardware uses
either ns8250 or z8530.
Notes:
svn path=/head/; revision=122470
|