<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/uart/uart_dev_z8530.c, branch upstream/11.1.0</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>Add support for the uart classes to set their default register shift value.</title>
<updated>2015-04-11T17:16:23+00:00</updated>
<author>
<name>Andrew Turner</name>
<email>andrew@FreeBSD.org</email>
</author>
<published>2015-04-11T17:16:23+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=405ada37fbdafaa6691a906f3630ba8d064e5f30'/>
<id>405ada37fbdafaa6691a906f3630ba8d064e5f30</id>
<content type='text'>
This is needed with the pl011 driver. Before this change it would default
to a shift of 0, however the hardware places the registers at 4-byte
addresses meaning the value should be 2.

This patch fixes this for the pl011 when configured using the fdt. The
other drivers have a default value of 0 to keep this a no-op.

MFC after:	1 week
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is needed with the pl011 driver. Before this change it would default
to a shift of 0, however the hardware places the registers at 4-byte
addresses meaning the value should be 2.

This patch fixes this for the pl011 when configured using the fdt. The
other drivers have a default value of 0 to keep this a no-op.

MFC after:	1 week
</pre>
</div>
</content>
</entry>
<entry>
<title>Introduce grab and ungrab upcalls. When the kernel desires to grab the</title>
<updated>2014-01-19T19:39:13+00:00</updated>
<author>
<name>Warner Losh</name>
<email>imp@FreeBSD.org</email>
</author>
<published>2014-01-19T19:39:13+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=d76a1ef4e1adf1729f970e3787bd89276e2ee9db'/>
<id>d76a1ef4e1adf1729f970e3787bd89276e2ee9db</id>
<content type='text'>
console, it calls the grab functions. These functions should turn off
the RX interrupts, and any others that interfere. This makes mountroot
prompt work again. If there's more generalized need other than
prompting, many of these routines should be expanded to do those new
things.

Should have been part of r260889, but waasn't due to command line typo.

Reviewed by:	bde (with reservations)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
console, it calls the grab functions. These functions should turn off
the RX interrupts, and any others that interfere. This makes mountroot
prompt work again. If there's more generalized need other than
prompting, many of these routines should be expanded to do those new
things.

Should have been part of r260889, but waasn't due to command line typo.

Reviewed by:	bde (with reservations)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix low-level uart drivers that set their fifo sizes in the softc too late.</title>
<updated>2013-04-01T00:44:20+00:00</updated>
<author>
<name>Ian Lepore</name>
<email>ian@FreeBSD.org</email>
</author>
<published>2013-04-01T00:44:20+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=4d7abca0576b034bbe0c4ac8d723ff15d36f4323'/>
<id>4d7abca0576b034bbe0c4ac8d723ff15d36f4323</id>
<content type='text'>
uart(4) allocates send and receiver buffers in attach() before it calls
the low-level driver's attach routine.  Many low-level drivers set the
fifo sizes in their attach routine, which is too late.  Other drivers set
them in the probe() routine, so that they're available when uart(4)
allocates buffers.  This fixes the ones that were setting the values too
late by moving the code to probe().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
uart(4) allocates send and receiver buffers in attach() before it calls
the low-level driver's attach routine.  Many low-level drivers set the
fifo sizes in their attach routine, which is too late.  Other drivers set
them in the probe() routine, so that they're available when uart(4)
allocates buffers.  This fixes the ones that were setting the values too
late by moving the code to probe().
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't expose the uart_ops structure directly, but instead have</title>
<updated>2007-04-02T22:00:22+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2007-04-02T22:00:22+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f8100ce2a70db5c60672578fee913d986ac1cf01'/>
<id>f8100ce2a70db5c60672578fee913d986ac1cf01</id>
<content type='text'>
it obtained through the uart_class structure. This allows us
to declare the uart_class structure as weak and as such allows
us to reference it even when it's not compiled-in.
It also allows is to get the uart_ops structure by name, which
makes it possible to implement the dt tag handling in uart_getenv().
The side-effect of all this is that we're using the uart_class
structure more consistently which means that we now also have
access to the size of the bus space block needed by the hardware
when we map the bus space, eliminating any hardcoding.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
it obtained through the uart_class structure. This allows us
to declare the uart_class structure as weak and as such allows
us to reference it even when it's not compiled-in.
It also allows is to get the uart_ops structure by name, which
makes it possible to implement the dt tag handling in uart_getenv().
The side-effect of all this is that we're using the uart_class
structure more consistently which means that we now also have
access to the size of the bus space block needed by the hardware
when we map the bus space, eliminating any hardcoding.
</pre>
</div>
</content>
</entry>
<entry>
<title>- Add a uart_rxready() and corresponding device-specific implementations</title>
<updated>2007-01-18T22:01:19+00:00</updated>
<author>
<name>Marius Strobl</name>
<email>marius@FreeBSD.org</email>
</author>
<published>2007-01-18T22:01:19+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=97202af2dca1942e1873e9ef8feb527a2e58fa7b'/>
<id>97202af2dca1942e1873e9ef8feb527a2e58fa7b</id>
<content type='text'>
  that can be used to check whether receive data is ready, i.e. whether
  the subsequent call of uart_poll() should return a char, and unlike
  uart_poll() doesn't actually receive data.
- Remove the device-specific implementations of uart_poll() and implement
  uart_poll() in terms of uart_getc() and the newly added uart_rxready()
  in order to minimize code duplication.
- In sunkbd(4) take advantage of uart_rxready() and use it to implement
  the polled mode part of sunkbd_check() so we don't need to buffer a
  potentially read char in the softc.
- Fix some mis-indentation in sunkbd_read_char().

Discussed with:	marcel
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  that can be used to check whether receive data is ready, i.e. whether
  the subsequent call of uart_poll() should return a char, and unlike
  uart_poll() doesn't actually receive data.
- Remove the device-specific implementations of uart_poll() and implement
  uart_poll() in terms of uart_getc() and the newly added uart_rxready()
  in order to minimize code duplication.
- In sunkbd(4) take advantage of uart_rxready() and use it to implement
  the polled mode part of sunkbd_check() so we don't need to buffer a
  potentially read char in the softc.
- Fix some mis-indentation in sunkbd_read_char().

Discussed with:	marcel
</pre>
</div>
</content>
</entry>
<entry>
<title>On PowerPC the clock for the BRG comes from RTxC, not PCLK. Add a</title>
<updated>2006-07-26T17:29:37+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-07-26T17:29:37+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=54cfafcf9859c119c4fdd2b47cccc1044747c0fc'/>
<id>54cfafcf9859c119c4fdd2b47cccc1044747c0fc</id>
<content type='text'>
quick hack to deal with this. We may need to formalize this better
and have this information come from the bus attachments.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
quick hack to deal with this. We may need to formalize this better
and have this information come from the bus attachments.
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement UART_IOCTL_BAUD for the Z8530. This allows a serial console</title>
<updated>2006-07-26T17:21:59+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-07-26T17:21:59+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=afd396ac93e88fb073f0f73a3f16765c6296228d'/>
<id>afd396ac93e88fb073f0f73a3f16765c6296228d</id>
<content type='text'>
on PowerPC use the current setting of the hardware and not second
guess what the OFW does on various machines.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
on PowerPC use the current setting of the hardware and not second
guess what the OFW does on various machines.
</pre>
</div>
</content>
</entry>
<entry>
<title>o  A divisor of 0 is perfectly valid. Reserve -1 for an invalid</title>
<updated>2006-05-12T23:24:45+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-05-12T23:24:45+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=ace86f3f275d811038495d84292148522966750f'/>
<id>ace86f3f275d811038495d84292148522966750f</id>
<content type='text'>
   divisor. This allows us to set the line speed to the maximum
   of 1/4 of the device clock.
o  Disable the baudrate generator before programming the line
   settings, including baudrate, and enable it afterwards.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
   divisor. This allows us to set the line speed to the maximum
   of 1/4 of the device clock.
o  Disable the baudrate generator before programming the line
   settings, including baudrate, and enable it afterwards.
</pre>
</div>
</content>
</entry>
<entry>
<title>In z8530_divisor() return 0 if the calculated divisor is less than 0.</title>
<updated>2006-04-04T01:16:16+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-04-04T01:16:16+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a24d2e121e56cc61f07a3e0b605bc831ae5c8b20'/>
<id>a24d2e121e56cc61f07a3e0b605bc831ae5c8b20</id>
<content type='text'>
This happens when the baudrate is too high for the given RCLK.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This happens when the baudrate is too high for the given RCLK.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't hold the hardware mutex across getc(). It can wait indefinitely</title>
<updated>2006-04-01T19:04:54+00:00</updated>
<author>
<name>Marcel Moolenaar</name>
<email>marcel@FreeBSD.org</email>
</author>
<published>2006-04-01T19:04:54+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=634e63c986ba07fd015e3854392d44eec6e0ad35'/>
<id>634e63c986ba07fd015e3854392d44eec6e0ad35</id>
<content type='text'>
for a character to be received. Instead let getc() do any necesary
locking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
for a character to be received. Instead let getc() do any necesary
locking.
</pre>
</div>
</content>
</entry>
</feed>
