[U-Boot] [PATCH v5 00/19] arm: rpi: Enable USB, Ethernet, MMC, Video driver model on Raspberry Pi
Simon Glass
sjg at chromium.org
Sat Apr 1 18:05:37 UTC 2017
Raspberry Pi uses a DWC2 USB controller and a SMSC USB Ethernet adaptor.
Driver model support for these is available.
This series does the following:
- Enable CONFIG_DM_ETH and CONFIG_DM_USB on Raspberry Pi
- Convert the MMC driver to driver model
- Convert the video driver to driver model
- Fixes a driver model video bug which accessed beyond the frame buffer
- Fixes start-up of MMC with driver model (e.g. at present it does not
support env_fat)
- Clean up a few loose ends
With Ethernet active the device list looks something like this:
U-Boot> dm tree
Class Probed Name
----------------------------------------
root [ + ] root_driver
simple_bus [ + ] |-- soc
gpio [ + ] | |-- gpio at 7e200000
serial [ + ] | |-- serial at 7e215040
mmc [ + ] | |-- sdhci at 7e300000
blk [ + ] | | `-- sdhci at 7e300000.blk
video [ + ] | |-- hdmi at 7e902000
vidconsole0 [ + ] | | `-- hdmi at 7e902000.vidconsole0
usb [ + ] | `-- usb at 7e980000
usb_hub [ + ] | `-- usb_hub
usb_hub [ + ] | `-- usb_hub
eth [ + ] | `-- smsc95xx_eth
simple_bus [ ] `-- clocks
With version 4 a problem was discovered where tftpboot does not correctly
read a file on rpi_2 and rpi_3. The cause is unknown but for now this
series includes a work-around in the dwc2 driver. See here for details:
https://lists.denx.de/pipermail/u-boot/2017-April/285451.html
Changes in v5:
- Add new patch for dwc2 to se separate input and output buffers
- Add new patch for smsc95xx to correct free_pkt() implementation
- Rebase to master
Changes in v4:
- Add patches to convert video and MMC to driver model also
- Rebase to master
Changes in v3:
- Drop applied patches from series
- Drop patch to introduce usbethaddr for driver model
Simon Glass (19):
net: smsc95xx: Correct free_pkt() implementation
usb: dwc2: Use separate input and output buffers
dm: mmc: Set up the MMC device when controller is probed
dm: video: Correct line clearing code
string: Use memcpy() within memmove() when we can
arm: rpi: Drop the GPIO device addresses
arm: rpi: Drop CONFIG_CONS_INDEX
dm: arm: rpi: Move to driver model for USB
dm: arm: rpi: Use driver model for Ethernet
arm: rpi: Add a file to handle messages
arm: rpi: Add a function to obtain the MMC clock
dm: mmc: rpi: Convert Raspberry Pi to driver model for MMC
dm: arm: rpi: Drop CONFIG_OF_EMBED
video: arm: rpi: Move the video query out of the driver
video: arm: rpi: Move the video settings out of the driver
dm: video: Refactor lcd_simplefb to prepare for driver model
dm: video: Add driver-model support to lcd_simplefb
dm: video: arm: rpi: Convert to use driver model for video
arm: rpi: Add a TODO to move all messages into the msg handler
arch/arm/mach-bcm283x/Makefile | 2 +-
arch/arm/mach-bcm283x/include/mach/gpio.h | 5 -
arch/arm/mach-bcm283x/include/mach/msg.h | 51 ++++++++++
arch/arm/mach-bcm283x/msg.c | 154 ++++++++++++++++++++++++++++++
board/raspberrypi/rpi/rpi.c | 56 +----------
common/lcd_simplefb.c | 47 +++++++--
configs/rpi_2_defconfig | 6 +-
configs/rpi_3_32b_defconfig | 6 +-
configs/rpi_3_defconfig | 6 +-
configs/rpi_defconfig | 6 +-
drivers/mmc/bcm2835_sdhci.c | 81 ++++++++++++----
drivers/mmc/mmc-uclass.c | 12 +++
drivers/usb/eth/smsc95xx.c | 4 +-
drivers/usb/host/dwc2.c | 27 ++++--
drivers/video/bcm2835.c | 140 +++++++--------------------
drivers/video/console_normal.c | 3 +-
include/configs/rpi.h | 17 +---
lib/string.c | 11 +--
18 files changed, 404 insertions(+), 230 deletions(-)
create mode 100644 arch/arm/mach-bcm283x/include/mach/msg.h
create mode 100644 arch/arm/mach-bcm283x/msg.c
--
2.12.2.564.g063fe858b8-goog
More information about the U-Boot
mailing list