public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 00/15] RPi: Properly handle dynamic serial configuration
Date: Thu, 25 Jan 2018 12:05:41 +0100	[thread overview]
Message-ID: <20180125110556.76352-1-agraf@suse.de> (raw)

The RPi has proprietary firmware that can be configured (using config.txt)
to expose either the PL11, Mini-UART or no serial device to the UART pins
on the GPIO pin bar of the RPi.

So far we've only half-heartedly dealt with that, with lost of heuristics
that ended up falling apart at times. For example the RPi3 CM uses PL011
when serial is enabled in config.txt, but we disabled PL11 support for BCM2837
because the RPi3 uses the Mini-UART with enable_uart=1 is set in config.txt.

This patch set always enables both serial outputs and determines at probe
time whether a serial device is actually muxed to the UART pins on the board.
Only in that case, it will be probed and thus used for in- and output in
U-Boot.

With this patch set applied, I have successfully used the same U-Boot binary
with CONFIG_OF_BOARD=y and a RPi firmware provided device tree with both
enable_uart=1 and without on both a RPi3 and RPi3 CM.

This patch set depends on v3 of the patch set "Rpi: Add support for second
sd host controller".

v1 -> v2:

  - Make search logic easier to follow

v2 -> v3:

  - Use bcm2835 specific serial devices to determine pinctrl state
  - New: Convert PL01* to Kconfig
  - New: Convert PL01* to dev_read
  - New: Convert BCM2835_MU to Kconfig
  - New: Add myself as maintainer
  - Use pinctrl driver to determine pinctrl state

Alexander Graf (15):
  serial: Use next serial device if probing fails
  rpi: Remove runtime disabling support for serial
  serial: bcm283x_mu: Remove support for post-init disabling
  rpi: Determine PL011/Mini-UART availability at runtime
  serial_bcm283x_mu: Convert to dev_read
  serial_bcm283x_mu: Always skip init
  serial_bcm283x_mu: Fail loading if not muxed
  pl01x: Convert to dev_read
  pl010: Convert CONFIG_PL010_SERIAL to Kconfig
  pl011: Convert CONFIG_PL011_SERIAL to Kconfig
  pl01x: Convert CONFIG_PL01X_SERIAL to Kconfig
  bcm2835_mu_serial: Convert to Kconfig
  MAINTAINERS: Take over BCM2835 maintainership
  bcm2835_pl011_serial: Add BCM2835 specific serial driver
  bcm2835_pinctrl: Probe pre-reloc

 MAINTAINERS                                  |  5 +-
 arch/arm/Kconfig                             | 31 ++++++++++++
 arch/arm/dts/bcm283x-uboot.dtsi              |  4 ++
 board/raspberrypi/rpi/rpi.c                  | 43 ----------------
 drivers/pinctrl/broadcom/pinctrl-bcm283x.c   |  3 +-
 drivers/serial/Kconfig                       | 34 +++++++++++++
 drivers/serial/Makefile                      |  1 +
 drivers/serial/serial-uclass.c               | 25 +++++++---
 drivers/serial/serial_bcm283x_mu.c           | 61 ++++++++++++++---------
 drivers/serial/serial_bcm283x_pl011.c        | 73 ++++++++++++++++++++++++++++
 drivers/serial/serial_pl01x.c                | 19 +++-----
 drivers/serial/serial_pl01x_internal.h       | 15 +++++-
 include/configs/edb93xx.h                    |  1 -
 include/configs/highbank.h                   |  1 -
 include/configs/hikey.h                      |  3 --
 include/configs/integrator-common.h          |  2 -
 include/configs/mxs.h                        |  1 -
 include/configs/poplar.h                     |  3 --
 include/configs/qemu-arm.h                   |  3 --
 include/configs/rpi.h                        |  7 ---
 include/configs/spear-common.h               |  1 -
 include/configs/stv0991.h                    |  3 --
 include/configs/thunderx_88xx.h              |  1 -
 include/configs/vexpress_aemv8a.h            |  2 -
 include/configs/vexpress_common.h            |  1 -
 include/configs/x600.h                       |  1 -
 include/dm/platform_data/serial_bcm283x_mu.h |  1 -
 scripts/config_whitelist.txt                 |  4 --
 28 files changed, 224 insertions(+), 125 deletions(-)
 create mode 100644 drivers/serial/serial_bcm283x_pl011.c

-- 
2.12.3

             reply	other threads:[~2018-01-25 11:05 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-25 11:05 Alexander Graf [this message]
2018-01-25 11:05 ` [U-Boot] [PATCH v3 01/15] serial: Use next serial device if probing fails Alexander Graf
2018-01-28 18:54   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-29  3:27     ` Derald D. Woods
2018-01-29 10:17       ` Alexander Graf
2018-01-29 22:40       ` Alexander Graf
2018-01-25 11:05 ` [U-Boot] [PATCH v3 02/15] rpi: Remove runtime disabling support for serial Alexander Graf
2018-01-28 18:54   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 03/15] serial: bcm283x_mu: Remove support for post-init disabling Alexander Graf
2018-01-28 18:54   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 04/15] rpi: Determine PL011/Mini-UART availability at runtime Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 05/15] serial_bcm283x_mu: Convert to dev_read Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 06/15] serial_bcm283x_mu: Always skip init Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot,v3,06/15] " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 07/15] serial_bcm283x_mu: Fail loading if not muxed Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 08/15] pl01x: Convert to dev_read Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot,v3,08/15] " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 09/15] pl010: Convert CONFIG_PL010_SERIAL to Kconfig Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 10/15] pl011: Convert CONFIG_PL011_SERIAL " Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 11/15] pl01x: Convert CONFIG_PL01X_SERIAL " Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 12/15] bcm2835_mu_serial: Convert " Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 13/15] MAINTAINERS: Take over BCM2835 maintainership Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-31  8:34   ` [U-Boot] [PATCH v3 " Wolfgang Denk
2018-01-31  8:52     ` Alexander Graf
2018-01-31 13:04       ` Wolfgang Denk
2018-01-25 11:05 ` [U-Boot] [PATCH v3 14/15] bcm2835_pl011_serial: Add BCM2835 specific serial driver Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-25 11:05 ` [U-Boot] [PATCH v3 15/15] bcm2835_pinctrl: Probe pre-reloc Alexander Graf
2018-01-28 18:55   ` [U-Boot] [U-Boot,v3,15/15] " Tom Rini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180125110556.76352-1-agraf@suse.de \
    --to=agraf@suse.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox