u-boot/drivers
Mark Kettenis c12f9d2e54 drivers: serial: Make sure we really return a serial device
The stdout-path property in the device tree does not necessarily
point at a serial device. On machines such as the Apple M1 laptops
where the serial port isn't easy to access and users expect to see
console output on the integrated display stdout-path may point at
the device tree node for the framebuffer for example.

If stdout-path does not point at a node for a serial device, the
serial_check_stdout() will not find a bound device and will drop
down into code that attempts to use lists_bind_fdt() to bind a
device anyway. However, that fallback code does not check that
the uclass of the device is UCLASS_SERIAL. So if stdout-path points
at the framebuffer instead of the serial device it will return a
UCLASS_VIDEO device. Since the code that calls this function
expects the returned device to be a UCLASS_SERIAL device, U-Boot
will crash as soon as it attempts to send output to the console.

Add a check here to verify that the uclass of the bound device
really is UCLASS_SERIAL. If it isn't, serial_check_stdout() will
return an error and serial_find_console_or_panic() will use the
serial device with sequence number 0 as the console and all is fine.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
2022-03-08 08:42:43 -05:00
..
adc dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
ata Xilinx changes for v2022.04-rc3 2022-02-21 08:32:02 -05:00
axi WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
bios_emulator pci: Drop DM_PCI check from bios_emul 2021-08-05 19:46:35 -04:00
block Convert CONFIG_SYS_IDE_MAXBUS et al to Kconfig 2022-02-09 09:16:47 -05:00
bootcount bootcount: fix printf() code 2022-01-28 17:58:41 -05:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: adc: set state to pressed when the voltage is closest to nominal 2022-02-11 09:00:47 -05:00
cache cache: sifive: Fix -Wint-to-pointer-cast warning 2021-10-20 10:59:09 +08:00
clk clk: ccf: correct the test on the parent uclass in clk_enable/clk_disable 2022-02-25 01:41:04 -05:00
core acpi: Tidy up the item list 2022-01-25 11:44:36 -07:00
cpu sandbox: correct cpu nodes 2021-09-25 09:46:15 -06:00
crypto crypto: aspeed: fix polling RSA status wrong issue 2022-02-21 08:35:40 -05:00
ddr ddr: marvell: a38x: fix BYTE_HOMOGENEOUS_SPLIT_OUT decision 2022-02-17 14:17:07 +01:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu DFU: Check the number of arguments and argument string strictly 2022-02-11 11:29:23 -05:00
dma drivers: dma: Add support for J721S2 2022-02-08 09:41:27 -05:00
fastboot fastboot: only look up real partition names when no alias exists 2022-01-28 11:30:39 -05:00
firmware Xilinx changes for v2022.04-rc3 2022-02-21 08:32:02 -05:00
fpga arm: socfpga: arria10: Enable double peripheral RBF configuration 2021-12-17 12:58:01 +08:00
gpio gpio: add sl28cpld driver 2022-02-28 11:59:35 +05:30
hwspinlock treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
i2c ti: i2c: fix probe_chip() return value 2022-02-21 08:39:52 -05:00
input input: apple: Add support for Apple SPI keyboard 2022-02-10 16:44:23 -05:00
iommu iommu: Add M1 Pro/Max support to Apple DART driver 2022-02-21 08:35:40 -05:00
led dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
mailbox mailbox: apple: Add driver for Apple IOP mailbox 2022-02-10 16:44:23 -05:00
memory keystone2: Move CONFIG_AEMIF_CNTRL_BASE out of CONFIG namespace 2021-09-27 21:38:34 -04:00
misc misc: add sl28cpld base driver 2022-02-28 11:59:35 +05:30
mmc mmc: fsl_esdhc_imx: correct the actual card clock 2022-02-19 14:46:54 +01:00
mtd mtd: cfi_mtd: populate mtd->dev with flash_info->dev 2022-02-01 10:56:25 +01:00
mux treewide: invaild -> invalid 2022-01-13 07:57:49 -05:00
net net: ravb: Add tx/rx delay flag checks and support for rgmii-rxid 2022-02-25 21:42:07 +01:00
nvme nvme: apple: Add driver for Apple NVMe storage controller 2022-02-10 16:44:23 -05:00
pch treewide: Simply conditions with the new OF_REAL 2021-09-25 09:46:15 -06:00
pci pci: pci_mvebu: Cleanup macro names 2022-03-04 08:38:05 +01:00
pci_endpoint dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
phy phy: nop-phy: Fix phy reset if no reset-gpio defined 2022-03-01 00:21:11 +01:00
pinctrl arm64: a37xx: pinctrl: Fix PWM pins indexes 2022-03-04 08:38:05 +01:00
power Xilinx changes for v2022.04-rc3 2022-02-21 08:32:02 -05:00
pwm exynos: pwm: Deal with a PWM at 100% 2021-11-09 11:57:22 +09:00
qe configs: fsl: migrate FMAN/QE specific defines to Kconfig 2021-11-09 17:18:23 +05:30
ram ram: k3-ddrss: Add support for J721S2 SoC 2022-02-08 09:41:27 -05:00
reboot-mode reboot-mode: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
remoteproc remoteproc: ipu: Add driver to bring up ipu 2022-02-08 11:00:03 -05:00
reset reset: dra7: Add a reset driver 2022-02-08 09:41:27 -05:00
rng clk: Add clk_get_by_name_optional 2022-02-25 01:41:04 -05:00
rtc drivers: rtc: fix null pointer access in armada38x_rtc_reset 2022-03-04 08:38:05 +01:00
scsi Convert CONFIG_SCSI_AHCI_PLAT et al to Kconfig 2022-02-09 09:16:48 -05:00
serial drivers: serial: Make sure we really return a serial device 2022-03-08 08:42:43 -05:00
smem dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
soc soc: soc_ti_k3: update j721e revision numbering 2022-02-08 09:41:27 -05:00
sound doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
spi Xilinx changes for v2022.04-rc3 2022-02-21 08:32:02 -05:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: rcar3: Add Renesas R-Car Gen3 sysinfo driver 2021-07-20 23:33:54 +02:00
sysreset Xilinx changes for v2022.04-rc1 2022-01-19 11:43:44 -05:00
tee tee: optee: remove unused duplicated login Id macros 2021-11-23 13:53:03 -05:00
thermal WS cleanup: remove SPACE(s) followed by TAB 2021-09-30 09:08:16 -04:00
timer omap: timer: implement timer_get_boot_us 2022-01-16 08:31:03 -05:00
tpm doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
ufs dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
usb usb: ehci-omap: Remove OMAP_EHCI_PHYx_RESET_GPIO from Kconfig 2022-02-23 05:25:17 +01:00
video video: Add missing dependency for DM_GPIO 2022-02-15 13:05:34 +01:00
virtio doc: replace @return by Return: 2022-01-19 18:11:34 +01:00
w1 arm: Remove zmx25 board and ARCH_MX25 2021-10-01 21:08:18 -04:00
w1-eeprom dm: define LOG_CATEGORY for all uclass 2021-07-06 10:38:03 -06:00
watchdog watchdog: add sl28cpld watchdog driver 2022-02-28 11:59:35 +05:30
xen WS cleanup: remove trailing empty lines 2021-09-30 08:08:56 -04:00
Kconfig iommu: Add IOMMU uclass 2021-10-31 08:46:44 -04:00
Makefile iommu: Add IOMMU uclass 2021-10-31 08:46:44 -04:00