[U-Boot] [PATCH v6 00/18] arm: rpi: Enable USB, Ethernet, MMC, Video driver model on Raspberry Pi

Simon Glass sjg at chromium.org
Wed Apr 5 22:23:27 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 v6:
- Drop changes to dwc2.c now we have http://patchwork.ozlabs.org/patch/746917/
- Rebase to master

Changes in v5:
- 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 (18):
  net: smsc95xx: Correct free_pkt() implementation
  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/video/bcm2835.c                   | 140 +++++++--------------------
 drivers/video/console_normal.c            |   3 +-
 include/configs/rpi.h                     |  17 +---
 lib/string.c                              |  11 +--
 17 files changed, 384 insertions(+), 223 deletions(-)
 create mode 100644 arch/arm/mach-bcm283x/include/mach/msg.h
 create mode 100644 arch/arm/mach-bcm283x/msg.c

-- 
2.12.2.715.g7642488e1d-goog



More information about the U-Boot mailing list