Skip to content

soc: aspeed: Add XDMA engine driver

Eddie James linux-aspeed linux-devicetree lkml 9 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v11 Latest8 patches 1 replyIn review
  2. v107 patches 1 replySuperseded
  3. v95 patches 1 replySuperseded
Earlier versions · 6
VersionPostedPatchesRepliesStatus
v85 patches2 repliesSuperseded
v75 patches3 repliesSuperseded
v48 patches1 replySuperseded
v38 patches7 repliesSuperseded
v27 patches7 repliesSuperseded
v16 patches5 repliesSuperseded

Changes in v11 from the cover letter

- Fix devicetree binding documentation
- Add patches to enable the device on witherspoon and tacoma systems
- Fix the driver to actually use the updated bindings
- Remove the device managed memory in favor of manually allocating and freeing This adds considerable complexity to the probe function and requires the use of a kobject and associated release method, but it fixes the problem of the device context being deleted during an operation or with memory still mapped if the device is unbound from the driver
- Remove the client kref system
- Reset the device when a user closes a file handle with an on-going operation

Patches in v11 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/8dt-bindings: soc: Add Aspeed XDMA EngineDocumentation/devicetree/bindings/soc/aspeed/xdma.yaml MAINTAINERS+109 -01 reply
2/8soc: aspeed: Add XDMA Engine DriverMAINTAINERS drivers/soc/aspeed/Kconfig drivers/soc/aspeed/Makefile +2 more+1004 -00 replies
3/8soc: aspeed: xdma: Add user interfacedrivers/soc/aspeed/aspeed-xdma.c+218 -00 replies
4/8soc: aspeed: xdma: Add reset ioctldrivers/soc/aspeed/aspeed-xdma.c include/uapi/linux/aspeed-xdma.h+36 -00 replies
5/8ARM: dts: Aspeed: AST2600: Update XDMA engine nodearch/arm/boot/dts/aspeed-g6.dtsi+5 -30 replies
6/8ARM: dts: Aspeed: AST2500: Update XDMA engine nodearch/arm/boot/dts/aspeed-g5.dtsi+3 -20 replies
7/8ARM: dts: Aspeed: Witherspoon: Enable XDMA enginearch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts+11 -00 replies
8/8ARM: dts: Aspeed: Tacoma: Enable XDMA enginearch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts+11 -00 replies

Reviews trailers per patch

4 of 8 patches have a Reviewed-by or Acked-by.

PatchAndrew JefferyRob Herring
1/8R-b R-b
2/8R-b
3/8R-b
4/8A-b
5/8
6/8
7/8
8/8

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v11 thread

Cover letter [PATCH v11 0/8] soc: aspeed: Add XDMA engine driver

This series adds a driver to control the Aspeed XDMA engine embedded in the AST2500 and AST2600. The XDMA engine performs automatic DMA operations over PCI-E between the Aspeed SOC (acting as a BMC) and a host processor.

Changes since v10:
- Fix devicetree binding documentation
- Add patches to enable the device on witherspoon and tacoma systems
- Fix the driver to actually use the updated bindings
- Remove the device managed memory in favor of manually allocating and freeing This adds considerable complexity to the probe function and requires the use of a kobject and associated release method, but it fixes the problem of the device context being deleted during an operation or with memory still mapped if the device is unbound from the driver
- Remove the client kref system
- Reset the device when a user closes a file handle with an on-going operation

Changes since v9:
- Remove the kernel command queue
- Use memcpy_toio instead to copy commands to the buffer
- Free the client's genalloc'd memory in the release method
- Switch the bindings documentation to yaml
- Add patches to fix SCU interrupt controller include

Changes since v8:
- Use DMA API to allocate memory from reserved region.
- Fix the driver for the AST2500 by keeping the command queue in kernel memory and copying the whole buffer to the reserved memory area before starting the operation.
- Add krefs to the client structure to prevent use-after-free.
- Switch reset-names binding to "device", "root-complex"

Eddie James (8):
dt-bindings: soc: Add Aspeed XDMA Engine
soc: aspeed: Add XDMA Engine Driver
soc: aspeed: xdma: Add user interface
soc: aspeed: xdma: Add reset ioctl
ARM: dts: Aspeed: AST2600: Update XDMA engine node
ARM: dts: Aspeed: AST2500: Update XDMA engine node
ARM: dts: Aspeed: Witherspoon: Enable XDMA engine
ARM: dts: Aspeed: Tacoma: Enable XDMA engine

 .../devicetree/bindings/soc/aspeed/xdma.yaml       |  103 ++
 MAINTAINERS                                        |    8 +
 arch/arm/boot/dts/aspeed-bmc-opp-tacoma.dts        |   11 +
 arch/arm/boot/dts/aspeed-bmc-opp-witherspoon.dts   |   11 +
 arch/arm/boot/dts/aspeed-g5.dtsi                   |    5 +-
 arch/arm/boot/dts/aspeed-g6.dtsi                   |    8 +-
 drivers/soc/aspeed/Kconfig                         |    8 +
 drivers/soc/aspeed/Makefile                        |    1 +
 drivers/soc/aspeed/aspeed-xdma.c                   | 1205 ++++++++++++++++++++
 include/uapi/linux/aspeed-xdma.h                   |   42 +
 10 files changed, 1397 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/soc/aspeed/xdma.yaml
 create mode 100644 drivers/soc/aspeed/aspeed-xdma.c
 create mode 100644 include/uapi/linux/aspeed-xdma.h
Signature · 1 line
1.8.3.1