mbox series

[v2,0/6] Host1x and VIC support for Tegra186

Message ID 20170905084306.19318-1-mperttunen@nvidia.com
Headers show
Series Host1x and VIC support for Tegra186 | expand

Message

Mikko Perttunen Sept. 5, 2017, 8:43 a.m. UTC
Hi,

not many changes in v2:

Changed address-cells and size-cells for the Host1x device tree node
to have value 1, since all subdevices fit in the lower 4G. Also dropped
the incorrect change about this from the dt-bindings patch. Thanks to
Rob for pointing this out.

Mikko

Notes for v1:

Hi everyone,

this series adds basic support for the Host1x channel engine and the
VIC 2d compositor unit on Tegra186. The first three patches do the
required device tree changes, the fourth patch updates the device tree
binding documentation, and the two remaining patches add the actual
implementation, almost all of which is in Host1x itself.

The Tegra186 Host1x is a relatively large update over previous
generations, which can be seen in the diffstat. The biggest change is
that Host1x is now contains separate hypervisor and vm register
apertures to support virtualization at the hardware level. This driver,
however, currently assumes that this instance of Linux is the sole
operating system having access to the hardware.

This combined with increased numbers of supported channels and
syncpoints have caused a number of register space changes that are
responsible for most of the updated code.

The series has been tested on the Jetson TX1 (T210) and TX2 (T186)
using the host1x_test test suite available at

http://github.com/cyndis/host1x_test

The series itself is available at

http://github.com/cyndis/linux, branch host1x-t186-1

Cheers,
Mikko

Mikko Perttunen (6):
  arm64: tegra: Add #power-domain-cells for BPMP
  arm64: tegra: Add host1x on Tegra186
  arm64: tegra: Add VIC on Tegra186
  dt-bindings: host1x: Add Tegra186 information
  gpu: host1x: Add Tegra186 support
  drm/tegra: Add Tegra186 support for VIC

 .../display/tegra/nvidia,tegra20-host1x.txt        |   4 +
 arch/arm64/boot/dts/nvidia/tegra186.dtsi           |  31 ++++
 drivers/gpu/drm/tegra/drm.c                        |   1 +
 drivers/gpu/drm/tegra/vic.c                        |  10 ++
 drivers/gpu/host1x/Makefile                        |   3 +-
 drivers/gpu/host1x/dev.c                           |  60 ++++++-
 drivers/gpu/host1x/dev.h                           |   4 +
 drivers/gpu/host1x/hw/cdma_hw.c                    |  49 +++---
 drivers/gpu/host1x/hw/debug_hw.c                   | 137 +---------------
 drivers/gpu/host1x/hw/debug_hw_1x01.c              | 154 ++++++++++++++++++
 drivers/gpu/host1x/hw/debug_hw_1x06.c              | 133 +++++++++++++++
 drivers/gpu/host1x/hw/host1x01.c                   |   2 +
 drivers/gpu/host1x/hw/host1x02.c                   |   2 +
 drivers/gpu/host1x/hw/host1x04.c                   |   2 +
 drivers/gpu/host1x/hw/host1x05.c                   |   2 +
 drivers/gpu/host1x/hw/host1x06.c                   |  44 +++++
 drivers/gpu/host1x/hw/host1x06.h                   |  26 +++
 drivers/gpu/host1x/hw/host1x06_hardware.h          | 142 ++++++++++++++++
 drivers/gpu/host1x/hw/hw_host1x06_hypervisor.h     |  32 ++++
 drivers/gpu/host1x/hw/hw_host1x06_uclass.h         | 181 +++++++++++++++++++++
 drivers/gpu/host1x/hw/hw_host1x06_vm.h             |  47 ++++++
 drivers/gpu/host1x/hw/intr_hw.c                    |  29 ++--
 22 files changed, 926 insertions(+), 169 deletions(-)
 create mode 100644 drivers/gpu/host1x/hw/debug_hw_1x01.c
 create mode 100644 drivers/gpu/host1x/hw/debug_hw_1x06.c
 create mode 100644 drivers/gpu/host1x/hw/host1x06.c
 create mode 100644 drivers/gpu/host1x/hw/host1x06.h
 create mode 100644 drivers/gpu/host1x/hw/host1x06_hardware.h
 create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_hypervisor.h
 create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_uclass.h
 create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_vm.h

Comments

Daniel Vetter Sept. 5, 2017, 11:10 a.m. UTC | #1
On Tue, Sep 05, 2017 at 11:43:00AM +0300, Mikko Perttunen wrote:
> Hi,
> 
> not many changes in v2:
> 
> Changed address-cells and size-cells for the Host1x device tree node
> to have value 1, since all subdevices fit in the lower 4G. Also dropped
> the incorrect change about this from the dt-bindings patch. Thanks to
> Rob for pointing this out.
> 
> Mikko
> 
> Notes for v1:
> 
> Hi everyone,
> 
> this series adds basic support for the Host1x channel engine and the
> VIC 2d compositor unit on Tegra186. The first three patches do the
> required device tree changes, the fourth patch updates the device tree
> binding documentation, and the two remaining patches add the actual
> implementation, almost all of which is in Host1x itself.
> 
> The Tegra186 Host1x is a relatively large update over previous
> generations, which can be seen in the diffstat. The biggest change is
> that Host1x is now contains separate hypervisor and vm register
> apertures to support virtualization at the hardware level. This driver,
> however, currently assumes that this instance of Linux is the sole
> operating system having access to the hardware.
> 
> This combined with increased numbers of supported channels and
> syncpoints have caused a number of register space changes that are
> responsible for most of the updated code.
> 
> The series has been tested on the Jetson TX1 (T210) and TX2 (T186)
> using the host1x_test test suite available at
> 
> http://github.com/cyndis/host1x_test
> 
> The series itself is available at
> 
> http://github.com/cyndis/linux, branch host1x-t186-1

Since this is new hw support, is there also open source userspace using
all this?

Thanks, Daniel

> 
> Cheers,
> Mikko
> 
> Mikko Perttunen (6):
>   arm64: tegra: Add #power-domain-cells for BPMP
>   arm64: tegra: Add host1x on Tegra186
>   arm64: tegra: Add VIC on Tegra186
>   dt-bindings: host1x: Add Tegra186 information
>   gpu: host1x: Add Tegra186 support
>   drm/tegra: Add Tegra186 support for VIC
> 
>  .../display/tegra/nvidia,tegra20-host1x.txt        |   4 +
>  arch/arm64/boot/dts/nvidia/tegra186.dtsi           |  31 ++++
>  drivers/gpu/drm/tegra/drm.c                        |   1 +
>  drivers/gpu/drm/tegra/vic.c                        |  10 ++
>  drivers/gpu/host1x/Makefile                        |   3 +-
>  drivers/gpu/host1x/dev.c                           |  60 ++++++-
>  drivers/gpu/host1x/dev.h                           |   4 +
>  drivers/gpu/host1x/hw/cdma_hw.c                    |  49 +++---
>  drivers/gpu/host1x/hw/debug_hw.c                   | 137 +---------------
>  drivers/gpu/host1x/hw/debug_hw_1x01.c              | 154 ++++++++++++++++++
>  drivers/gpu/host1x/hw/debug_hw_1x06.c              | 133 +++++++++++++++
>  drivers/gpu/host1x/hw/host1x01.c                   |   2 +
>  drivers/gpu/host1x/hw/host1x02.c                   |   2 +
>  drivers/gpu/host1x/hw/host1x04.c                   |   2 +
>  drivers/gpu/host1x/hw/host1x05.c                   |   2 +
>  drivers/gpu/host1x/hw/host1x06.c                   |  44 +++++
>  drivers/gpu/host1x/hw/host1x06.h                   |  26 +++
>  drivers/gpu/host1x/hw/host1x06_hardware.h          | 142 ++++++++++++++++
>  drivers/gpu/host1x/hw/hw_host1x06_hypervisor.h     |  32 ++++
>  drivers/gpu/host1x/hw/hw_host1x06_uclass.h         | 181 +++++++++++++++++++++
>  drivers/gpu/host1x/hw/hw_host1x06_vm.h             |  47 ++++++
>  drivers/gpu/host1x/hw/intr_hw.c                    |  29 ++--
>  22 files changed, 926 insertions(+), 169 deletions(-)
>  create mode 100644 drivers/gpu/host1x/hw/debug_hw_1x01.c
>  create mode 100644 drivers/gpu/host1x/hw/debug_hw_1x06.c
>  create mode 100644 drivers/gpu/host1x/hw/host1x06.c
>  create mode 100644 drivers/gpu/host1x/hw/host1x06.h
>  create mode 100644 drivers/gpu/host1x/hw/host1x06_hardware.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_hypervisor.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_uclass.h
>  create mode 100644 drivers/gpu/host1x/hw/hw_host1x06_vm.h
> 
> -- 
> 2.14.1
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Mikko Perttunen Sept. 5, 2017, 11:28 a.m. UTC | #2
On 05.09.2017 14:10, Daniel Vetter wrote:
>
> Since this is new hw support, is there also open source userspace using
> all this?

The VIC HW in Tegra186 is backwards compatible with the one in Tegra210, 
which has open userspace (https://github.com/cyndis/vaapi-tegra-driver), 
so that userspace should remain compatible. The old firmware is not 
compatible so we need a new compatibility string for that.

>
> Thanks, Daniel

Thanks,
Mikko
--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html