Skip to content

Initial Microchip PIC32MZ[DA] Support

Purna Chandra Mandal u-boot 4 versions – New

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest13 patches 0 repliesNew
  2. v314 patches 0 repliesSuperseded
  3. v213 patches 0 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v118 patches0 repliesSuperseded

Changes in v4 from the cover letter · 16 lines

- update kconfig dependency and default selection
- drop ioremap failure check
- gpio: return -EPERM if the pin is found in analog mode
- gpio: drop desc->offset setting in _gpio_xlate()
- serial: update comment for _pending_input().
- serial: rename UART_RX_OERR to UART_RX_OVER.
- serial: DEBUG_UART_PIC32 now depends on PIC32_SERIAL
- serial: extract clock-id from device-tree
- drop forcing DM_SERIAL, PIC32_SERIAL, PIC32_PINCTRL in mach-pic32/Kconfig
- drop extra includes
- rename clock compatible to "pic32mzda-clk" from "pic32mzda_clk".
- fix typo 'clock-cells' to '#clock-cells'
- create defconfig by 'make savedefconfig'
- drop explicit SYS_BAUDRATE_TABLE in favor of default one
- add CD errata under SDHCI_QUIRK_NO_CD
- eth: drop _dcache_flush/invalidate() helpers for flush/invalidate_dcache_range().

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/13MIPS: initial infrastructure for Microchip PIC32 architecturearch/mips/Kconfig arch/mips/Makefile arch/mips/mach-pic32/Kconfig +3 more+110 -00 replies
2/13drivers: clk: Add clock driver for Microchip PIC32 Microcontroller.doc/device-tree-bindings/clock/microchip,pic32-clock.txt drivers/clk/Makefile drivers/clk/clk_pic32.c +1 more+496 -00 replies
3/13drivers: pinctrl: Add pinctrl driver for Microchip PIC32.drivers/pinctrl/Kconfig drivers/pinctrl/Makefile drivers/pinctrl/pinctrl_pic32.c+374 -00 replies
4/13drivers: gpio: add driver for Microchip PIC32 GPIO controller.drivers/gpio/Kconfig drivers/gpio/Makefile drivers/gpio/pic32_gpio.c+182 -10 replies
5/13drivers: serial: add driver for Microchip PIC32 UART controller.doc/device-tree-bindings/serial/microchip,pic32-uart.txt drivers/serial/Kconfig drivers/serial/Makefile +1 more+219 -00 replies
6/13drivers: ddr: Add DDR2 SDRAM controller driver for Microchip PIC32.arch/mips/mach-pic32/include/mach/ddr.h drivers/Makefile drivers/ddr/microchip/Makefile +3 more+530 -00 replies
7/13MIPS: Add support for Microchip PIC32MZ[DA] SoC family.arch/mips/dts/pic32mzda.dtsi arch/mips/mach-pic32/Kconfig arch/mips/mach-pic32/Makefile +4 more+379 -21 reply
8/13board: Add Microchip PIC32MZ[DA]-Starter-Kit board.arch/mips/dts/Makefile arch/mips/dts/pic32mzda_sk.dts arch/mips/mach-pic32/Kconfig +7 more+254 -11 reply
8/13board: Add Microchip PIC32MZ[DA]-Starter-Kit board.+0 -00 replies
9/13drivers: mmc: add driver for Microchip PIC32 SDHCI controller.drivers/mmc/Kconfig drivers/mmc/Makefile drivers/mmc/pic32_sdhci.c +1 more+72 -10 replies
10/13board: add SDHCI support for PIC32MZDASK board.arch/mips/dts/pic32mzda.dtsi arch/mips/dts/pic32mzda_sk.dts configs/pic32mzdask_defconfig +1 more+77 -30 replies
11/13drivers: net: phy: add SMSC LAN8740 Phy support.drivers/net/phy/smsc.c+10 -01 reply
12/13drivers: net: Add ethernet driver for Microchip PIC32.drivers/net/Kconfig drivers/net/Makefile drivers/net/pic32_eth.c +2 more+899 -00 replies
13/13board: Enable ethernet, tftpboot support to pic32mzdask board.arch/mips/dts/pic32mzda.dtsi arch/mips/dts/pic32mzda_sk.dts configs/pic32mzdask_defconfig +1 more+47 -40 replies

Reviews trailers per patch

11 of 14 patches have a Reviewed-by or Acked-by.

PatchDaniel SchwierzeckTom RiniSimon GlassJoe Hershberger
1/13R-b R-b
2/13R-b R-b
3/13R-b R-b R-b
4/13R-b R-b R-b
5/13R-b R-b R-b
6/13R-b R-b R-b
7/13R-b
8/13R-b
8/13R-b
9/13R-b R-b
10/13
11/13R-b R-b A-b
12/13
13/13

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.

Read the v4 thread

Cover letter [U-Boot] [PATCH v4 00/13] Initial Microchip PIC32MZ[DA] Support

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

This series is generated on u-boot/master branch. A tree with these changes is available at [1].

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

Changes in v4:
- update kconfig dependency and default selection
- drop ioremap failure check
- gpio: return -EPERM if the pin is found in analog mode
- gpio: drop desc->offset setting in _gpio_xlate()
- serial: update comment for _pending_input().
- serial: rename UART_RX_OERR to UART_RX_OVER.
- serial: DEBUG_UART_PIC32 now depends on PIC32_SERIAL
- serial: extract clock-id from device-tree
- drop forcing DM_SERIAL, PIC32_SERIAL, PIC32_PINCTRL in mach-pic32/Kconfig
- drop extra includes
- rename clock compatible to "pic32mzda-clk" from "pic32mzda_clk".
- fix typo 'clock-cells' to '#clock-cells'
- create defconfig by 'make savedefconfig'
- drop explicit SYS_BAUDRATE_TABLE in favor of default one
- add CD errata under SDHCI_QUIRK_NO_CD
- eth: drop _dcache_flush/invalidate() helpers for flush/invalidate_dcache_range().

Changes in v3:
- drop empty choice in mach-pic32/Kconfig
- add pic32_get_syscfg_base()
- rename clk-pic32.c to clk_pic32.c
- update clock binding documentation
- replace pic32_ioremap() with ioremap()
- separate MPLL initialization constants
- read register base from device-tree
- add/update comments to explain how pinctrl'r works.
- replace pic32_ioremap() with ioremap().
- add check on dev_get_addr()
- remove ofdata_to_platdata, and replace platdata with priv
- remove special handling of '\r' as being handled by serial-uclass
- remove loop to wait for space in tx buffer before pumping char
- annotating fixed table with const
- fix camel-case in ddr2 timing parameters
- fix cmd index parameter of host_load_cmd().
- fix compilation warning
- drop forcing CONFIG_MIPS_BOOT_* selection in mach-pic32/Kconfig
- indent assembly instructions in delay slot
- made GPIO-nodes child of pinctrl-node in devicetree
- replace pic32_ioremap() with ioremap()
- drop SKIP_LOWLEVEL_INIT, GBL_DATA_OFFSET from config header
- move CMD_MEMTEST, CMD_MEMINFO to defconfig
- increase SYS_MALLOC_F_LEN to 0x600
- use auto-generated defconfig - no hand edit
- remove ofdata_to_platdata, and replace platdata with priv
- replace pic32_ioremap() with ioremap()
- use distro boot commands from config_distro_bootcmd.h
- separate old booting logic as legacy_bootcmd
- merge wrappers with eth operation callbacks
- read phy address from device-tree
- rename functions (e.g. _eth_xyz() with pic32_eth_xyz())

Changes in v2:
- move PIC32 specific headers to arch/mips/mach-pic32/include/mach/
- define register-base as physical address
- drop CONFIG_PIC32_SUPPORTS_FDT_BOOT
- add mpll get clock rate
- add pinconf routine for configuring pin property
- fix missing/corrupted chars during baud rate change
- remove loop until any char is avaialbale in getc()
- move ddr2 initialization from board/microchip/ to drivers/ddr/microchip
- drop board_early_init_f
- use macro LEAF(), END() 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 one 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, clock pins)
- drop shared bus (shared pin selection) configuration.
- replace unbounded loop with wait_for_bit()
- replace register access as readl/writel(base + offset)
- translate (dts provided) physical address to MIPS kseg1 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: gpio: add driver for Microchip PIC32 GPIO controller.
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: net: phy: add SMSC LAN8740 Phy support.
drivers: net: Add ethernet driver for Microchip PIC32.
board: Enable ethernet, tftpboot support to pic32mzdask board.

 arch/mips/Kconfig                                  |   6 +
 arch/mips/Makefile                                 |   1 +
 arch/mips/dts/Makefile                             |   2 +-
 arch/mips/dts/pic32mzda.dtsi                       | 174 ++++++
 arch/mips/dts/pic32mzda_sk.dts                     |  55 ++
 arch/mips/mach-pic32/Kconfig                       |  35 ++
 arch/mips/mach-pic32/Makefile                      |   7 +
 arch/mips/mach-pic32/cpu.c                         | 156 ++++++
 arch/mips/mach-pic32/include/mach/ddr.h            |  32 ++
 arch/mips/mach-pic32/include/mach/pic32.h          |  79 +++
 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                      |  34 ++
 .../clock/microchip,pic32-clock.txt                |  33 ++
 .../serial/microchip,pic32-uart.txt                |   5 +
 drivers/Makefile                                   |   1 +
 drivers/clk/Makefile                               |   1 +
 drivers/clk/clk_pic32.c                            | 433 +++++++++++++++
 drivers/ddr/microchip/Makefile                     |   6 +
 drivers/ddr/microchip/ddr2.c                       | 278 ++++++++++
 drivers/ddr/microchip/ddr2_regs.h                  | 148 +++++
 drivers/ddr/microchip/ddr2_timing.h                |  65 +++
 drivers/gpio/Kconfig                               |   7 +
 drivers/gpio/Makefile                              |   2 +-
 drivers/gpio/pic32_gpio.c                          | 174 ++++++
 drivers/mmc/Kconfig                                |   6 +
 drivers/mmc/Makefile                               |   2 +-
 drivers/mmc/pic32_sdhci.c                          |  58 ++
 drivers/mmc/sdhci.c                                |   7 +
 drivers/net/Kconfig                                |   8 +
 drivers/net/Makefile                               |   1 +
 drivers/net/phy/smsc.c                             |  10 +
 drivers/net/pic32_eth.c                            | 605 +++++++++++++++++++++
 drivers/net/pic32_eth.h                            | 164 ++++++
 drivers/net/pic32_mdio.c                           | 121 +++++
 drivers/pinctrl/Kconfig                            |  10 +
 drivers/pinctrl/Makefile                           |   1 +
 drivers/pinctrl/pinctrl_pic32.c                    | 363 +++++++++++++
 drivers/serial/Kconfig                             |  15 +
 drivers/serial/Makefile                            |   1 +
 drivers/serial/serial_pic32.c                      | 198 +++++++
 include/configs/pic32mzdask.h                      | 168 ++++++
 include/dt-bindings/clock/microchip,clock.h        |  29 +
 48 files changed, 3640 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
Signature · 1 line
1.8.3.1