From e6093de127e7efb5335608fc648882adc70ea797 Mon Sep 17 00:00:00 2001 From: Brandon Perez Date: Tue, 14 Jul 2015 11:17:06 -0400 Subject: [PATCH 3/6] This commit adds in several devices into the device tree which are implicitly used by the DRA72x chip. That is, the kernel simply knows about these devices, without them being listed in the device tree. This is a problem, however, when the kernel is being virutalized. In the ARM virtualization setup, the virtual memory uses a 2-stage translation. The guest OS VM performs a virtual address translation to an intermediate physical address, which is still not a true physical memory address. The Xen hypervisor VM then translates this IPA to an actual physical address. Thus, for the kernel to access a physical address Xen (or some other hypervisor), must map the physical address in its VM map. So, Xen must know about all the devices that the kernel is going to use so that it can map its MMIO registers. --- arch/arm/boot/dts/dra7.dtsi | 18 ++++++++++++++++++ arch/arm/boot/dts/dra72-evm.dts | 8 ++++++++ 2 files changed, 26 insertions(+) diff --git a/arch/arm/boot/dts/dra7.dtsi b/arch/arm/boot/dts/dra7.dtsi index 0f99bfa..22c720d 100644 --- a/arch/arm/boot/dts/dra7.dtsi +++ b/arch/arm/boot/dts/dra7.dtsi @@ -1979,6 +1979,24 @@ #size-cells = <0>; status = "disabled"; }; + + hdq1w: hdq1w@0x480B2000 { + compatible = "ti,hdq1w"; + ti,hwmods = "hdq1w"; + reg = <0x480B2000 0x1000>; + }; + + smartreflex_core: smartreflex_core@0x4A0DD000 { + compatible = "ti,smartreflex_core"; + ti,hwmods = "ti,smartreflex_core"; + reg = <0x4A0DD000 0x1000>; + }; + + smartreflex_mpu: smartreflex_mpu@0x4A0D9000 { + compatible = "ti,smartreflex_mpu"; + ti,hwmods = "ti,smartreflex_mpu"; + reg = <0x4A0D9000 0x1000>; + }; }; }; diff --git a/arch/arm/boot/dts/dra72-evm.dts b/arch/arm/boot/dts/dra72-evm.dts index e2d6170..729e176 100644 --- a/arch/arm/boot/dts/dra72-evm.dts +++ b/arch/arm/boot/dts/dra72-evm.dts @@ -87,6 +87,14 @@ #size-cells = <1>; ranges; + default_cma: default_cma@0xae000000 { + compatible = "shared-dma-pool"; + reg = <0xae000000 0x1800000>; + reusable; + status = "okay"; + linux,cma-default; + }; + ipu2_cma_pool: ipu2_cma@95800000 { compatible = "shared-dma-pool"; reg = <0x95800000 0x3800000>; -- 1.7.9.5