[U-Boot] Initial Microchip PIC32MZ[DA] Support

Purna Chandra Mandal purna.mandal at microchip.com
Mon Jan 4 14:08:28 CET 2016


This patch series adds support for Microchip PIC32MZ[DA] MIPS microcontroller
platform. All drivers required to boot Linux from MMC uSD card and network (TFTP)
are included in it; clock, pinctrl, serial, DDR2, SDHCI, gpio, ethernet.
This series is tested on PIC32MZ[DA] Starter Kit.

A tree with these changes are available at [1].

[1] https://github.com/purna-mandal/u-boot/tree/pic32-upstream-v2
[0] https://github.com/purna-mandal/u-boot/tree/pic32-upstream-v1

Changes in v2:
- move PIC32 specific headers to arch/mips/mach-pic32/include/mach/
- define register-base as physical address in header file
- add trivial ioremap support to convert physical address to MIPS KSEG1 address
- drop CONFIG_PIC32_SUPPORTS_FDT_BOOT as not required
- add get clock rate for mpll clock.
- add routine to configure pin properties
- serial: fix missing or corrupted chars during baud rate change
- serial: remove loop until any new char is available in _getc()
- move ddr2 initialization from board/microchip/ to drivers/ddr/microchip
- drop unnecessary board_early_init_f()
- use LEAF(), END() macros for lowlevel_init
- move initialization of board_init_f() argument to common start.S
- move initdram() from board/microchip/ to mach-pic32/cpu.c
- remove MIPS virtual address in favor physical in dts file
- move CONFIG_SYS_TEXT_BASE (from board/<>/config.mk) to include/configs/<board>.h
- drop SDHCI shared bus configuration (for shared interrupt-and-clock pins)
- replace unbounded loop with wait_for_bit()
- replace register access as readl/writel(base + offset)
- translate (dts provided) physical address to MIPS virtual address before use

Andrei Pistirica (1):
  drivers: mmc: add driver for Microchip PIC32 SDHCI controller.

Paul Thacker (1):
  drivers: serial: add driver for Microchip PIC32 UART controller.

Purna Chandra Mandal (11):
  MIPS: initial infrastructure for Microchip PIC32 architecture
  drivers: clk: Add clock driver for Microchip PIC32 Microcontroller.
  drivers: pinctrl: Add pinctrl driver for Microchip PIC32.
  drivers: ddr: Add DDR2 SDRAM controller driver for Microchip PIC32.
  MIPS: Add support for Microchip PIC32MZ[DA] SoC family.
  board: Add Microchip PIC32MZ[DA]-Starter-Kit board.
  board: add SDHCI support for PIC32MZDASK board.
  drivers: gpio: add driver for Microchip PIC32 GPIO controller.
  drivers: net: phy: add SMSC LAN8740 Phy support.
  drivers: net: add Microchip PIC32 ethernet controller driver.
  board: Add gpio and ethernet support to pic32mzdask board.

 arch/mips/Kconfig                                  |   6 +
 arch/mips/Makefile                                 |   1 +
 arch/mips/cpu/start.S                              |   2 +
 arch/mips/dts/Makefile                             |   2 +-
 arch/mips/dts/pic32mzda.dtsi                       | 170 ++++++
 arch/mips/dts/pic32mzda_sk.dts                     |  50 ++
 arch/mips/mach-pic32/Kconfig                       |  38 ++
 arch/mips/mach-pic32/Makefile                      |   7 +
 arch/mips/mach-pic32/cpu.c                         | 159 +++++
 arch/mips/mach-pic32/include/mach/ddr.h            |  32 +
 arch/mips/mach-pic32/include/mach/pic32.h          |  82 +++
 arch/mips/mach-pic32/lowlevel_init.S               |  27 +
 arch/mips/mach-pic32/reset.c                       |  36 ++
 board/microchip/pic32mzda/Kconfig                  |  13 +
 board/microchip/pic32mzda/MAINTAINERS              |   6 +
 board/microchip/pic32mzda/Makefile                 |   7 +
 board/microchip/pic32mzda/README                   |  22 +
 board/microchip/pic32mzda/pic32mzda.c              |  31 +
 configs/pic32mzdask_defconfig                      |  32 +
 .../clock/microchip,pic32-clock.txt                |  28 +
 .../serial/microchip,pic32-uart.txt                |   5 +
 drivers/Makefile                                   |   1 +
 drivers/clk/Makefile                               |   1 +
 drivers/clk/clk-pic32.c                            | 427 ++++++++++++++
 drivers/ddr/microchip/Makefile                     |   6 +
 drivers/ddr/microchip/ddr2.c                       | 277 +++++++++
 drivers/ddr/microchip/ddr2_regs.h                  | 151 +++++
 drivers/ddr/microchip/ddr2_timing.h                |  65 ++
 drivers/gpio/Kconfig                               |   7 +
 drivers/gpio/Makefile                              |   2 +-
 drivers/gpio/pic32_gpio.c                          | 164 ++++++
 drivers/mmc/Kconfig                                |   6 +
 drivers/mmc/Makefile                               |   2 +-
 drivers/mmc/pic32_sdhci.c                          |  63 ++
 drivers/mmc/sdhci.c                                |  12 +
 drivers/net/Kconfig                                |   7 +
 drivers/net/Makefile                               |   1 +
 drivers/net/phy/smsc.c                             |  10 +
 drivers/net/pic32_eth.c                            | 652 +++++++++++++++++++++
 drivers/net/pic32_eth.h                            | 174 ++++++
 drivers/net/pic32_mdio.c                           | 121 ++++
 drivers/pinctrl/Kconfig                            |   6 +
 drivers/pinctrl/Makefile                           |   1 +
 drivers/pinctrl/pinctrl_pic32.c                    | 284 +++++++++
 drivers/serial/Kconfig                             |  13 +
 drivers/serial/Makefile                            |   1 +
 drivers/serial/serial_pic32.c                      | 230 ++++++++
 include/configs/pic32mzdask.h                      | 187 ++++++
 include/dt-bindings/clock/microchip,clock.h        |  29 +
 49 files changed, 3653 insertions(+), 3 deletions(-)
 create mode 100644 arch/mips/dts/pic32mzda.dtsi
 create mode 100644 arch/mips/dts/pic32mzda_sk.dts
 create mode 100644 arch/mips/mach-pic32/Kconfig
 create mode 100644 arch/mips/mach-pic32/Makefile
 create mode 100644 arch/mips/mach-pic32/cpu.c
 create mode 100644 arch/mips/mach-pic32/include/mach/ddr.h
 create mode 100644 arch/mips/mach-pic32/include/mach/pic32.h
 create mode 100644 arch/mips/mach-pic32/lowlevel_init.S
 create mode 100644 arch/mips/mach-pic32/reset.c
 create mode 100644 board/microchip/pic32mzda/Kconfig
 create mode 100644 board/microchip/pic32mzda/MAINTAINERS
 create mode 100644 board/microchip/pic32mzda/Makefile
 create mode 100644 board/microchip/pic32mzda/README
 create mode 100644 board/microchip/pic32mzda/pic32mzda.c
 create mode 100644 configs/pic32mzdask_defconfig
 create mode 100644 doc/device-tree-bindings/clock/microchip,pic32-clock.txt
 create mode 100644 doc/device-tree-bindings/serial/microchip,pic32-uart.txt
 create mode 100644 drivers/clk/clk-pic32.c
 create mode 100644 drivers/ddr/microchip/Makefile
 create mode 100644 drivers/ddr/microchip/ddr2.c
 create mode 100644 drivers/ddr/microchip/ddr2_regs.h
 create mode 100644 drivers/ddr/microchip/ddr2_timing.h
 create mode 100644 drivers/gpio/pic32_gpio.c
 create mode 100644 drivers/mmc/pic32_sdhci.c
 create mode 100644 drivers/net/pic32_eth.c
 create mode 100644 drivers/net/pic32_eth.h
 create mode 100644 drivers/net/pic32_mdio.c
 create mode 100644 drivers/pinctrl/pinctrl_pic32.c
 create mode 100644 drivers/serial/serial_pic32.c
 create mode 100644 include/configs/pic32mzdask.h
 create mode 100644 include/dt-bindings/clock/microchip,clock.h

-- 
1.8.3.1




More information about the U-Boot mailing list