Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v8 2/4] vcodec: mediatek: Add Mediatek JPEG Decoder Driver
From: Rick Chang @ 2016-12-12  9:07 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <CAAJzSMfNyMiia==mXKo6aBw1VxMBxGE20LB870Zm1u9mCoioyQ@mail.gmail.com>

Hi Ricky,

Thanks for your feedback. We will fix the problem in another patch.

On Mon, 2016-12-12 at 12:34 +0800, Ricky Liang wrote:
> Hi Rick,
> 
> On Wed, Nov 30, 2016 at 11:08 AM, Rick Chang <rick.chang@mediatek.com> wrote:
> > Add v4l2 driver for Mediatek JPEG Decoder
> >
> > Signed-off-by: Rick Chang <rick.chang@mediatek.com>
> > Signed-off-by: Minghsiu Tsai <minghsiu.tsai@mediatek.com>
> 
> <snip...>
> 
> > +static bool mtk_jpeg_check_resolution_change(struct mtk_jpeg_ctx *ctx,
> > +                                            struct mtk_jpeg_dec_param *param)
> > +{
> > +       struct mtk_jpeg_dev *jpeg = ctx->jpeg;
> > +       struct mtk_jpeg_q_data *q_data;
> > +
> > +       q_data = &ctx->out_q;
> > +       if (q_data->w != param->pic_w || q_data->h != param->pic_h) {
> > +               v4l2_dbg(1, debug, &jpeg->v4l2_dev, "Picture size change\n");
> > +               return true;
> > +       }
> > +
> > +       q_data = &ctx->cap_q;
> > +       if (q_data->fmt != mtk_jpeg_find_format(ctx, param->dst_fourcc,
> > +                                               MTK_JPEG_FMT_TYPE_CAPTURE)) {
> > +               v4l2_dbg(1, debug, &jpeg->v4l2_dev, "format change\n");
> > +               return true;
> > +       }
> > +       return false;
> 
> <snip...>
> 
> > +static void mtk_jpeg_device_run(void *priv)
> > +{
> > +       struct mtk_jpeg_ctx *ctx = priv;
> > +       struct mtk_jpeg_dev *jpeg = ctx->jpeg;
> > +       struct vb2_buffer *src_buf, *dst_buf;
> > +       enum vb2_buffer_state buf_state = VB2_BUF_STATE_ERROR;
> > +       unsigned long flags;
> > +       struct mtk_jpeg_src_buf *jpeg_src_buf;
> > +       struct mtk_jpeg_bs bs;
> > +       struct mtk_jpeg_fb fb;
> > +       int i;
> > +
> > +       src_buf = v4l2_m2m_next_src_buf(ctx->fh.m2m_ctx);
> > +       dst_buf = v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx);
> > +       jpeg_src_buf = mtk_jpeg_vb2_to_srcbuf(src_buf);
> > +
> > +       if (jpeg_src_buf->flags & MTK_JPEG_BUF_FLAGS_LAST_FRAME) {
> > +               for (i = 0; i < dst_buf->num_planes; i++)
> > +                       vb2_set_plane_payload(dst_buf, i, 0);
> > +               buf_state = VB2_BUF_STATE_DONE;
> > +               goto dec_end;
> > +       }
> > +
> > +       if (mtk_jpeg_check_resolution_change(ctx, &jpeg_src_buf->dec_param)) {
> > +               mtk_jpeg_queue_src_chg_event(ctx);
> > +               ctx->state = MTK_JPEG_SOURCE_CHANGE;
> > +               v4l2_m2m_job_finish(jpeg->m2m_dev, ctx->fh.m2m_ctx);
> > +               return;
> > +       }
> 
> This only detects source change if multiple OUPUT buffers are queued.
> It does not catch the source change in the following scenario:
> 
> - OUPUT buffers for jpeg1 enqueued
> - OUTPUT queue STREAMON
> - userspace creates CAPTURE buffers
> - CAPTURE buffers enqueued
> - CAPTURE queue STREAMON
> - decode
> - OUTPUT queue STREAMOFF
> - userspace recreates OUTPUT buffers for jpeg2
> - OUTPUT buffers for jpeg2 enqueued
> - OUTPUT queue STREAMON
> 
> In the above sequence if jpeg2's decoded size is larger than jpeg1 the
> function fails to detect that the existing CAPTURE buffers are not big
> enough to hold the decoded data.
> 
> A possible fix is to pass *dst_buf to
> mtk_jpeg_check_resolution_change(), and check in the function that all
> the dst_buf planes are large enough to hold the decoded data.
> 
> > +
> > +       mtk_jpeg_set_dec_src(ctx, src_buf, &bs);
> > +       if (mtk_jpeg_set_dec_dst(ctx, &jpeg_src_buf->dec_param, dst_buf, &fb))
> > +               goto dec_end;
> > +
> > +       spin_lock_irqsave(&jpeg->hw_lock, flags);
> > +       mtk_jpeg_dec_reset(jpeg->dec_reg_base);
> > +       mtk_jpeg_dec_set_config(jpeg->dec_reg_base,
> > +                               &jpeg_src_buf->dec_param, &bs, &fb);
> > +
> > +       mtk_jpeg_dec_start(jpeg->dec_reg_base);
> > +       spin_unlock_irqrestore(&jpeg->hw_lock, flags);
> > +       return;
> > +
> > +dec_end:
> > +       v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx);
> > +       v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx);
> > +       v4l2_m2m_buf_done(to_vb2_v4l2_buffer(src_buf), buf_state);
> > +       v4l2_m2m_buf_done(to_vb2_v4l2_buffer(dst_buf), buf_state);
> > +       v4l2_m2m_job_finish(jpeg->m2m_dev, ctx->fh.m2m_ctx);
> > +}
> 
> <snip...>

^ permalink raw reply

* [PATCH renesas/devel 00/13] ARM, arm64: dts: Use R-Car fallback bindings for i2c/iic nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

this short series makes use of newly added R-Car fallback bindings in
i2c and iic nodes of the DTs for SoCs where the drivers in question are
already used.

This should have no run-time effect at this time as the current
driver implementations use the same initialisation squeuences for
SoC-specific and R-Car fallback bindings for all the cases covered by
this patch-set.

Based on renesas-devel-20161212-v4.9

Simon Horman (13):
  ARM: dts: r8a7779: Use R-Car Gen 1 fallback binding for i2c nodes
  ARM: dts: r8a7778: Use R-Car Gen 1 fallback binding for i2c nodes
  ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7791: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7792: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7793: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7794: Use R-Car Gen 2 fallback binding for i2c nodes
  arm64: dts: r8a7795: Use R-Car Gen 3 fallback binding for i2c nodes
  arm64: dts: r8a7796: Use R-Car Gen 3 fallback binding for i2c nodes
  ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7791: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7793: Use R-Car Gen 2 fallback binding for i2c nodes
  ARM: dts: r8a7794: Use R-Car Gen 2 fallback binding for i2c nodes

 arch/arm/boot/dts/r8a7778.dtsi           |  8 ++++----
 arch/arm/boot/dts/r8a7779.dtsi           |  8 ++++----
 arch/arm/boot/dts/r8a7790.dtsi           | 20 ++++++++++++--------
 arch/arm/boot/dts/r8a7791.dtsi           | 21 ++++++++++++---------
 arch/arm/boot/dts/r8a7792.dtsi           | 18 ++++++++++++------
 arch/arm/boot/dts/r8a7793.dtsi           | 21 ++++++++++++---------
 arch/arm/boot/dts/r8a7794.dtsi           | 18 ++++++++++--------
 arch/arm64/boot/dts/renesas/r8a7795.dtsi | 21 ++++++++++++++-------
 arch/arm64/boot/dts/renesas/r8a7796.dtsi | 21 ++++++++++++++-------
 9 files changed, 94 insertions(+), 62 deletions(-)

-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply

* [PATCH renesas/devel 01/13] ARM: dts: r8a7779: Use R-Car Gen 1 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 1 fallback binding for i2c nodes in
DT for r8a7779 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7779 and the
fallback binding for R-Car Gen 1.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7779.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7779.dtsi b/arch/arm/boot/dts/r8a7779.dtsi
index 55a7c1e37c57..f47a0edc26d4 100644
--- a/arch/arm/boot/dts/r8a7779.dtsi
+++ b/arch/arm/boot/dts/r8a7779.dtsi
@@ -173,7 +173,7 @@
 	i2c0: i2c at ffc70000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7779";
+		compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
 		reg = <0xffc70000 0x1000>;
 		interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7779_CLK_I2C0>;
@@ -184,7 +184,7 @@
 	i2c1: i2c at ffc71000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7779";
+		compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
 		reg = <0xffc71000 0x1000>;
 		interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7779_CLK_I2C1>;
@@ -195,7 +195,7 @@
 	i2c2: i2c at ffc72000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7779";
+		compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
 		reg = <0xffc72000 0x1000>;
 		interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7779_CLK_I2C2>;
@@ -206,7 +206,7 @@
 	i2c3: i2c at ffc73000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7779";
+		compatible = "renesas,i2c-r8a7779", "renesas,rcar-gen1-i2c";
 		reg = <0xffc73000 0x1000>;
 		interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7779_CLK_I2C3>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 02/13] ARM: dts: r8a7778: Use R-Car Gen 1 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 1 fallback binding for i2c nodes in
DT for r8a7778 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7778 and the
fallback binding for R-Car Gen 1.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7778.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7778.dtsi b/arch/arm/boot/dts/r8a7778.dtsi
index b0c9674fad17..1e93c94a9eac 100644
--- a/arch/arm/boot/dts/r8a7778.dtsi
+++ b/arch/arm/boot/dts/r8a7778.dtsi
@@ -150,7 +150,7 @@
 	i2c0: i2c at ffc70000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7778";
+		compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
 		reg = <0xffc70000 0x1000>;
 		interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7778_CLK_I2C0>;
@@ -161,7 +161,7 @@
 	i2c1: i2c at ffc71000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7778";
+		compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
 		reg = <0xffc71000 0x1000>;
 		interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7778_CLK_I2C1>;
@@ -172,7 +172,7 @@
 	i2c2: i2c at ffc72000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7778";
+		compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
 		reg = <0xffc72000 0x1000>;
 		interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7778_CLK_I2C2>;
@@ -183,7 +183,7 @@
 	i2c3: i2c at ffc73000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7778";
+		compatible = "renesas,i2c-r8a7778", "renesas,rcar-gen1-i2c";
 		reg = <0xffc73000 0x1000>;
 		interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp0_clks R8A7778_CLK_I2C3>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 03/13] ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for i2c nodes in
DT for r8a7790 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7790 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7790.dtsi | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index b7ed7466308b..823ab536175d 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -480,7 +480,7 @@
 	i2c0: i2c at e6508000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7790";
+		compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6508000 0 0x40>;
 		interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7790_CLK_I2C0>;
@@ -492,7 +492,7 @@
 	i2c1: i2c at e6518000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7790";
+		compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6518000 0 0x40>;
 		interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7790_CLK_I2C1>;
@@ -504,7 +504,7 @@
 	i2c2: i2c at e6530000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7790";
+		compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6530000 0 0x40>;
 		interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7790_CLK_I2C2>;
@@ -516,7 +516,7 @@
 	i2c3: i2c at e6540000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7790";
+		compatible = "renesas,i2c-r8a7790", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6540000 0 0x40>;
 		interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7790_CLK_I2C3>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 04/13] ARM: dts: r8a7791: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for i2c nodes in
DT for r8a7791 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7791 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7791.dtsi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 93f446db6a21..48662c13f79a 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -444,7 +444,7 @@
 	i2c0: i2c at e6508000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6508000 0 0x40>;
 		interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C0>;
@@ -456,7 +456,7 @@
 	i2c1: i2c at e6518000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6518000 0 0x40>;
 		interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C1>;
@@ -468,7 +468,7 @@
 	i2c2: i2c at e6530000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6530000 0 0x40>;
 		interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C2>;
@@ -480,7 +480,7 @@
 	i2c3: i2c at e6540000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6540000 0 0x40>;
 		interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C3>;
@@ -492,7 +492,7 @@
 	i2c4: i2c at e6520000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6520000 0 0x40>;
 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C4>;
@@ -505,7 +505,7 @@
 		/* doesn't need pinmux */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7791";
+		compatible = "renesas,i2c-r8a7791", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6528000 0 0x40>;
 		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_I2C5>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 05/13] ARM: dts: r8a7792: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for i2c nodes in
DT for r8a7792 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7792 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7792.dtsi | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7792.dtsi b/arch/arm/boot/dts/r8a7792.dtsi
index c5e834073cb3..222895fc1d0d 100644
--- a/arch/arm/boot/dts/r8a7792.dtsi
+++ b/arch/arm/boot/dts/r8a7792.dtsi
@@ -498,7 +498,8 @@
 
 		/* I2C doesn't need pinmux */
 		i2c0: i2c at e6508000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792",
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6508000 0 0x40>;
 			interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C0>;
@@ -510,7 +511,8 @@
 		};
 
 		i2c1: i2c at e6518000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792",
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6518000 0 0x40>;
 			interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C1>;
@@ -522,7 +524,8 @@
 		};
 
 		i2c2: i2c at e6530000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792",
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6530000 0 0x40>;
 			interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C2>;
@@ -534,7 +537,8 @@
 		};
 
 		i2c3: i2c at e6540000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792"
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6540000 0 0x40>;
 			interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C3>;
@@ -546,7 +550,8 @@
 		};
 
 		i2c4: i2c at e6520000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792"
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6520000 0 0x40>;
 			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C4>;
@@ -558,7 +563,8 @@
 		};
 
 		i2c5: i2c at e6528000 {
-			compatible = "renesas,i2c-r8a7792";
+			compatible = "renesas,i2c-r8a7792"
+				     "renesas,rcar-gen2-i2c";
 			reg = <0 0xe6528000 0 0x40>;
 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&mstp9_clks R8A7792_CLK_I2C5>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 06/13] ARM: dts: r8a7793: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for i2c nodes in
DT for r8a7793 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7793 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7793.dtsi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index 84af1598e292..cbe9ac629693 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -411,7 +411,7 @@
 	i2c0: i2c at e6508000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6508000 0 0x40>;
 		interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C0>;
@@ -423,7 +423,7 @@
 	i2c1: i2c at e6518000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6518000 0 0x40>;
 		interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C1>;
@@ -435,7 +435,7 @@
 	i2c2: i2c at e6530000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6530000 0 0x40>;
 		interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C2>;
@@ -447,7 +447,7 @@
 	i2c3: i2c at e6540000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6540000 0 0x40>;
 		interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C3>;
@@ -459,7 +459,7 @@
 	i2c4: i2c at e6520000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6520000 0 0x40>;
 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C4>;
@@ -472,7 +472,7 @@
 		/* doesn't need pinmux */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,i2c-r8a7793";
+		compatible = "renesas,i2c-r8a7793", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6528000 0 0x40>;
 		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_I2C5>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 07/13] ARM: dts: r8a7794: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for i2c nodes in
DT for r8a7794 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7794 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7794.dtsi | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 78e964d5dacb..5fd382a5a7b2 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -611,7 +611,7 @@
 
 	/* The memory map in the User's Manual maps the cores to bus numbers */
 	i2c0: i2c at e6508000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6508000 0 0x40>;
 		interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C0>;
@@ -623,7 +623,7 @@
 	};
 
 	i2c1: i2c at e6518000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6518000 0 0x40>;
 		interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C1>;
@@ -635,7 +635,7 @@
 	};
 
 	i2c2: i2c at e6530000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6530000 0 0x40>;
 		interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C2>;
@@ -647,7 +647,7 @@
 	};
 
 	i2c3: i2c at e6540000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6540000 0 0x40>;
 		interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C3>;
@@ -659,7 +659,7 @@
 	};
 
 	i2c4: i2c at e6520000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6520000 0 0x40>;
 		interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C4>;
@@ -671,7 +671,7 @@
 	};
 
 	i2c5: i2c at e6528000 {
-		compatible = "renesas,i2c-r8a7794";
+		compatible = "renesas,i2c-r8a7794", "renesas,rcar-gen2-i2c";
 		reg = <0 0xe6528000 0 0x40>;
 		interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7794_CLK_I2C5>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 08/13] arm64: dts: r8a7795: Use R-Car Gen 3 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 3 fallback binding for i2c nodes in
DT for r8a7795 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7795 and the
fallback binding for R-Car Gen 3.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm64/boot/dts/renesas/r8a7795.dtsi | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index e4110243817d..428056d287a9 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -792,7 +792,8 @@
 		i2c0: i2c at e6500000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6500000 0 0x40>;
 			interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 931>;
@@ -806,7 +807,8 @@
 		i2c1: i2c at e6508000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6508000 0 0x40>;
 			interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 930>;
@@ -820,7 +822,8 @@
 		i2c2: i2c at e6510000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6510000 0 0x40>;
 			interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 929>;
@@ -834,7 +837,8 @@
 		i2c3: i2c at e66d0000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66d0000 0 0x40>;
 			interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 928>;
@@ -848,7 +852,8 @@
 		i2c4: i2c at e66d8000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66d8000 0 0x40>;
 			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 927>;
@@ -862,7 +867,8 @@
 		i2c5: i2c at e66e0000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66e0000 0 0x40>;
 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 919>;
@@ -876,7 +882,8 @@
 		i2c6: i2c at e66e8000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7795";
+			compatible = "renesas,i2c-r8a7795",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66e8000 0 0x40>;
 			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 918>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 09/13] arm64: dts: r8a7796: Use R-Car Gen 3 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 3 fallback binding for i2c nodes in
DT for r8a7796 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7796 and the
fallback binding for R-Car Gen 3.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm64/boot/dts/renesas/r8a7796.dtsi | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/boot/dts/renesas/r8a7796.dtsi b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
index 7bf0f2f6c224..9ebf5c7ab339 100644
--- a/arch/arm64/boot/dts/renesas/r8a7796.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7796.dtsi
@@ -269,7 +269,8 @@
 		i2c0: i2c at e6500000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6500000 0 0x40>;
 			interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 931>;
@@ -284,7 +285,8 @@
 		i2c1: i2c at e6508000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6508000 0 0x40>;
 			interrupts = <GIC_SPI 288 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 930>;
@@ -299,7 +301,8 @@
 		i2c2: i2c at e6510000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe6510000 0 0x40>;
 			interrupts = <GIC_SPI 286 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 929>;
@@ -314,7 +317,8 @@
 		i2c3: i2c at e66d0000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66d0000 0 0x40>;
 			interrupts = <GIC_SPI 290 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 928>;
@@ -328,7 +332,8 @@
 		i2c4: i2c at e66d8000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66d8000 0 0x40>;
 			interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 927>;
@@ -342,7 +347,8 @@
 		i2c5: i2c at e66e0000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66e0000 0 0x40>;
 			interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 919>;
@@ -356,7 +362,8 @@
 		i2c6: i2c at e66e8000 {
 			#address-cells = <1>;
 			#size-cells = <0>;
-			compatible = "renesas,i2c-r8a7796";
+			compatible = "renesas,i2c-r8a7796",
+				     "renesas,rcar-gen3-i2c";
 			reg = <0 0xe66e8000 0 0x40>;
 			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
 			clocks = <&cpg CPG_MOD 918>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 10/13] ARM: dts: r8a7790: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for iii nodes in
DT for r8a7790 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7790 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7790.dtsi | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7790.dtsi b/arch/arm/boot/dts/r8a7790.dtsi
index 823ab536175d..ddf6a8cbe6c1 100644
--- a/arch/arm/boot/dts/r8a7790.dtsi
+++ b/arch/arm/boot/dts/r8a7790.dtsi
@@ -528,7 +528,8 @@
 	iic0: i2c at e6500000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6500000 0 0x425>;
 		interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7790_CLK_IIC0>;
@@ -542,7 +543,8 @@
 	iic1: i2c at e6510000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6510000 0 0x425>;
 		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7790_CLK_IIC1>;
@@ -556,7 +558,8 @@
 	iic2: i2c at e6520000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6520000 0 0x425>;
 		interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7790_CLK_IIC2>;
@@ -570,7 +573,8 @@
 	iic3: i2c at e60b0000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7790", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7790", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe60b0000 0 0x425>;
 		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7790_CLK_IICDVFS>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 11/13] ARM: dts: r8a7791: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for iii nodes in
DT for r8a7791 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7791 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7791.dtsi | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7791.dtsi b/arch/arm/boot/dts/r8a7791.dtsi
index 48662c13f79a..01599fe90fc0 100644
--- a/arch/arm/boot/dts/r8a7791.dtsi
+++ b/arch/arm/boot/dts/r8a7791.dtsi
@@ -518,7 +518,8 @@
 		/* doesn't need pinmux */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe60b0000 0 0x425>;
 		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7791_CLK_IICDVFS>;
@@ -532,7 +533,8 @@
 	i2c7: i2c at e6500000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6500000 0 0x425>;
 		interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7791_CLK_IIC0>;
@@ -546,7 +548,8 @@
 	i2c8: i2c at e6510000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7791", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7791", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6510000 0 0x425>;
 		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7791_CLK_IIC1>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 12/13] ARM: dts: r8a7793: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for iii nodes in
DT for r8a7793 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7793 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7793.dtsi | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7793.dtsi b/arch/arm/boot/dts/r8a7793.dtsi
index cbe9ac629693..d5114cac656d 100644
--- a/arch/arm/boot/dts/r8a7793.dtsi
+++ b/arch/arm/boot/dts/r8a7793.dtsi
@@ -485,7 +485,8 @@
 		/* doesn't need pinmux */
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe60b0000 0 0x425>;
 		interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp9_clks R8A7793_CLK_IICDVFS>;
@@ -499,7 +500,8 @@
 	i2c7: i2c at e6500000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6500000 0 0x425>;
 		interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7793_CLK_IIC0>;
@@ -513,7 +515,8 @@
 	i2c8: i2c at e6510000 {
 		#address-cells = <1>;
 		#size-cells = <0>;
-		compatible = "renesas,iic-r8a7793", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7793", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6510000 0 0x425>;
 		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7793_CLK_IIC1>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [PATCH renesas/devel 13/13] ARM: dts: r8a7794: Use R-Car Gen 2 fallback binding for i2c nodes
From: Simon Horman @ 2016-12-12  9:11 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481533902-14789-1-git-send-email-horms+renesas@verge.net.au>

Use recently added R-Car Gen 2 fallback binding for iii nodes in
DT for r8a7794 SoC.

This has no run-time effect for the current driver as the initialisation
sequence is the same for the SoC-specific binding for r8a7794 and the
fallback binding for R-Car Gen 2.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 arch/arm/boot/dts/r8a7794.dtsi | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/r8a7794.dtsi b/arch/arm/boot/dts/r8a7794.dtsi
index 5fd382a5a7b2..e41f1c9b4a9c 100644
--- a/arch/arm/boot/dts/r8a7794.dtsi
+++ b/arch/arm/boot/dts/r8a7794.dtsi
@@ -683,7 +683,8 @@
 	};
 
 	i2c6: i2c at e6500000 {
-		compatible = "renesas,iic-r8a7794", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7794", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6500000 0 0x425>;
 		interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7794_CLK_IIC0>;
@@ -697,7 +698,8 @@
 	};
 
 	i2c7: i2c at e6510000 {
-		compatible = "renesas,iic-r8a7794", "renesas,rmobile-iic";
+		compatible = "renesas,iic-r8a7794", "renesas,rcar-gen2-iic",
+			     "renesas,rmobile-iic";
 		reg = <0 0xe6510000 0 0x425>;
 		interrupts = <GIC_SPI 175 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7794_CLK_IIC1>;
-- 
2.7.0.rc3.207.g0ac5344

^ permalink raw reply related

* [RFC v3 PATCH 00/25] Allow NOMMU for MULTIPLATFORM
From: Vladimir Murzin @ 2016-12-12  9:28 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <238a0185-db3a-fa43-cd7d-91baebdb82d4@st.com>

Hi,

On 12/12/16 07:07, mickael guene wrote:
> Hi all,
> 
>  You can find an R toolchain here:
> https://github.com/mickael-guene/fdpic_manifest/releases/download/v7-r-1.0.1/toolset-v7-r-1.0.1-0-gbdcc6a7c-armv7-r.tgz
> 
>  It's an fdpic toolset for cortex-r cpu class. gcc version is
> quite old (4.7).
> 
>  Note also that generated code may crash on class A cpu due to
> generation of udiv/sdiv which is optional for class A.
> (cortex a15 is ok but not a9).
> 
> Hope it helps

Unfortunately, it doesn't help because it depends on FDPIC Linux patches
which are out of tree and no link has been given.

M-class toolchain should just work with A-class; you don't even need to
disable MMU to try it out after d782e42 ("ARM: 8594/1: enable binfmt_flat on
systems with an MMU").

Cheers
Vladimir

> 
> Regards
> Mickael
> 
> On 12/11/2016 09:01 PM, Peter Korsgaard wrote:
>>>>>>> "Afzal" == Afzal Mohammed <afzal.mohd.ma@gmail.com> writes:
>>
>> Hi,
>>
>>  >> You can build a toolchain and initramfs with Buildroot. Have a look at
>>  >> the stm32f429 nommu config:
>>  >>
>>  >> https://git.buildroot.net/buildroot/tree/configs/stm32f429_disco_defconfig
>>
>>  > iiuc, it builds one for Cortex-M. i already had a file system w/
>>  > busybox compiled using a Cortex-M toolchain (stolen from
>>  > Pengutronix's OSELAS.Toolchain), which works on Cortex M4 (Vybrid
>>  > VF610 M4 core). But it does not work here, i.e. on Cortex A, seems the
>>  > above mentioned also would have the same effect.
>>
>> Hmm, I'm not sure why a cortex-M toolchain wouldn't work on cortex-A, I
>> thought the 'M' instruction set was a pure subset of the 'A'.
>>
>>  > And in buildroot, couldn't see Cortex R option in menuconfig, and
>>  > selecting Cortex-A's excludes flat binary target & presents only with
>>  > ELF.
>>
>> We indeed don't have cortex-R support. I'm not aware of any cortex-R
>> Linux support.
>>
>> When you select a cortex-A variant, then we enable MMU support by
>> default, but you can disable it under toolchain options (Enable MMU) and
>> then the flat binary option is available.
>>
> 

^ permalink raw reply

* Tegra baseline test results for v4.8-rc6
From: Jon Hunter @ 2016-12-12  9:29 UTC (permalink / raw)
  To: linux-arm-kernel

Here are some basic Tegra test results for Linux v4.9-rc6.
Logs and other details at:

    https://nvtb.github.io//linux/test_v4.9-rc6/20161121033104/


Test summary
------------

Build: zImage:
    Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig

Build: Image:
    Pass: ( 1/ 1): defconfig

Boot to userspace: defconfig:
    Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
		   tegra210-p2371-0000, tegra210-smaug

Boot to userspace: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

Boot to userspace: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver


vmlinux object size
(delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6)):
   text     data      bss    total  kernel
   -329     +592        0     +263  defconfig
  +1307      +64        0    +1371  multi_v7_defconfig
  +1143        0        0    +1143  tegra_defconfig


Boot-time memory difference
(delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6))
    avail    rsrvd     high    freed                board              kconfig                  dtb
        .        .        .        .      qemu-vexpress64            defconfig           __internal
        .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
        .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
        .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
        .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
        .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
        .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
        .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
        .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
        .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
        .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
        .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
        .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
        .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver

^ permalink raw reply

* Tegra baseline test results for v4.9-rc6
From: Jon Hunter @ 2016-12-12  9:30 UTC (permalink / raw)
  To: linux-arm-kernel

Here are some basic Tegra test results for Linux v4.9-rc6.
Logs and other details at:

    https://nvtb.github.io//linux/test_v4.9-rc6/20161121033104/


Test summary
------------

Build: zImage:
    Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig

Build: Image:
    Pass: ( 1/ 1): defconfig

Boot to userspace: defconfig:
    Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
		   tegra210-p2371-0000, tegra210-smaug

Boot to userspace: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

Boot to userspace: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver


vmlinux object size
(delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6)):
   text     data      bss    total  kernel
   -329     +592        0     +263  defconfig
  +1307      +64        0    +1371  multi_v7_defconfig
  +1143        0        0    +1143  tegra_defconfig


Boot-time memory difference
(delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6))
    avail    rsrvd     high    freed                board              kconfig                  dtb
        .        .        .        .      qemu-vexpress64            defconfig           __internal
        .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
        .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
        .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
        .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
        .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
        .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
        .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
        .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
        .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
        .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
        .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
        .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
        .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver

^ permalink raw reply

* Odroid C2 crashes with Bad mode in Error handler detected on CPUx
From: Neil Armstrong @ 2016-12-12  9:34 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <8587bd84-0135-708b-5cde-67c8a537b111@gmx.de>

On 12/08/2016 10:20 PM, Heinrich Schuchardt wrote:
> On Linux-Next 20160812 Hardkernel Ordroid C2 crashes reproducably with
> errors like those listed below.
> 
> Same happened with 4.9.0-rc6-next-20161124
> (cf. https://lkml.org/lkml/2016/11/26/63)
> and v4.9-rc8.
> 
> The errors occur only under heavy CPU load like
> git checkout linux-next
> or building the kernel.
> 
> Could someone, please, give me a hint how to analyze the problem.
> 
> Best regards
> 
> Heinrich Schuchardt
> 
> [  978.592628] CPU: 1 PID: 2240 Comm: git Not tainted
> 4.9.0-rc8-next-20161208-r002-arm64 #1
> [  978.600644] Hardware name: Hardkernel ODROID-C2 (DT)
> [  978.605561] task: ffff800070da7080 task.stack: ffff80007332c000
> [  978.611427] PC is at 0xffff8b9ed958
> [  978.614875] LR is at 0xaaaad12538d0
> [  978.618325] pc : [<0000ffff8b9ed958>] lr : [<0000aaaad12538d0>]
> pstate: 80000000
> [  978.625655] sp : 0000ffffd0ea7c20
> [  978.628934] x29: 0000ffffd0ea7c20 x28: 0000000000000004
> [  978.634194] x27: 0000000000000000 x26: 0000aaaaead52414
> [  978.639455] x25: 0000ffffd0ea7c70 x24: 0000000000000004
> [  978.644717] x23: 0000ffffd0ea7d18 x22: 0000aaaad12b7000
> [  978.649978] x21: 0000000000000004 x20: 0000000000002722
> [  978.655239] x19: 0000000000002722 x18: 00000000000700d9
> [  978.660500] x17: 0000ffff8b9ed980 x16: 0000000000000000
> [  978.665762] x15: 0000000000052332 x14: 0000000000000008
> [  978.671023] x13: 5241574d5249465f x12: 454c55444f4d0a3b
> [  978.676284] x11: 0a3b29445f564552 x10: 5f455241574d5249
> [  978.681545] x9 : 465f353631324953 x8 : 0000000000000040
> [  978.686807] x7 : 465f454c55444f4d x6 : 0a3b29224c504722
> [  978.692068] x5 : 0000aaaad11af1c8 x4 : 0000ffffd0ea7ca0
> [  978.697329] x3 : 0000aaaaeb1189d8 x2 : 0000000000002722
> [  978.702590] x1 : 0000ffffd0ea7d18 x0 : 0000000000002722
> [  978.707851]
> [  978.709329] Internal error: Attempting to execute userspace memory:
> 8600000f [#1] PREEMPT SMP
> [  978.717771] Modules linked in: meson_rng rng_core iscsi_tcp
> libiscsi_tcp libiscsi scsi_transport_iscsi ip_tables x_tables ipv6 realtek
> [  978.729762] CPU: 1 PID: 2240 Comm: git Not tainted
[...]
> [ 1072.564370] Exception stack(0xffff80007158fcf0 to 0xffff80007158fe20)
> [ 1072.570752] fce0:                                   0000000000000000
> 0001000000000000
> [ 1072.578515] fd00: ffff80007158fec0 0000000000000000 ffff800070fe8aa0
> 0000000000000000
> [ 1072.586278] fd20: 0000000000000004 ffff000008aa9818 ffff800070e31900
> 000000000808540c
> [ 1072.594040] fd40: ffff80007158fd90 ffff0000080c87f8 ffff80007158fe40
> ffff800070e31900
> [ 1072.601803] fd60: 0000000000000004 00000000000003c0 ffff80007158fe40
> 0000000000000000
> [ 1072.609565] fd80: 0000000000000000 0000000000000000 0000000000000000
> ffff800070e31900
> [ 1072.617328] fda0: 000000000000047b 0000000000000003 0000000000000000
> 00000000047b047a
> [ 1072.625090] fdc0: 000000000000047a 0000000000000000 000000000004db59
> ffff80007158fb40
> [ 1072.632853] fde0: 00000000000002e4 0000000000000002 00000000000002e3
> ffff000008b1eacd
> [ 1072.640615] fe00: ffff000088b1eabf 0000000000000006 0000000000000000
> 0000000000000000
> [ 1072.648376] [<          (null)>]           (null)
> [ 1072.653036] Code: bad PC value
> [ 1072.656128] ---[ end trace e838c4fb00307731 ]---

Hi Heinrich,

This is known issue, and I already posted an hack to disable some reserved memory zones at [1]

A patch will be posted for all boards in the next days.

Neil

[1] http://lists.infradead.org/pipermail/linux-amlogic/2016-November/001729.html

^ permalink raw reply

* [PATCH] efi/libstub: arm*: Pass latest memory map to the kernel
From: James Morse @ 2016-12-12  9:35 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1481307843-18521-1-git-send-email-ard.biesheuvel@linaro.org>

Hi Ard,

On 09/12/16 18:24, Ard Biesheuvel wrote:
> As reported by James, the current libstub code involving the annotated
> memory map only works somewhat correctly by accident, due to the fact
> that a pool allocation happens to be reused immediately, retaining its
> former contents.
> 
> Instead of juggling memory maps, which makes the code more complex than
> it needs to be, simply put a placholder value into the FDT, and only
> write the actual value after ExitBootServices() has been called.

> diff --git a/drivers/firmware/efi/libstub/fdt.c b/drivers/firmware/efi/libstub/fdt.c
> index a6a93116a8f0..5d39dff77f17 100644
> --- a/drivers/firmware/efi/libstub/fdt.c
> +++ b/drivers/firmware/efi/libstub/fdt.c
> @@ -101,7 +101,7 @@ efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt,
>  	if (status)
>  		goto fdt_set_fail;
>  
> -	fdt_val64 = cpu_to_fdt64((u64)(unsigned long)memory_map);
> +	fdt_val64 = U64_MAX; /* placeholder */
>  	status = fdt_setprop(fdt, node, "linux,uefi-mmap-start",
>  			     &fdt_val64,  sizeof(fdt_val64));
>  	if (status)
> @@ -148,6 +148,24 @@ efi_status_t update_fdt(efi_system_table_t *sys_table, void *orig_fdt,
>  	return EFI_LOAD_ERROR;
>  }
>  
> +static efi_status_t update_fdt_memmap(void *fdt, u64 memmap)
> +{
> +	int node = fdt_path_offset(fdt, "/chosen");
> +	efi_status_t status;
> +
> +	if (node < 0)
> +		return EFI_LOAD_ERROR;
> +
> +	memmap = cpu_to_fdt64(memmap);
> +	status = fdt_setprop_inplace(fdt, node, "linux,uefi-mmap-start",
> +				     &memmap, sizeof(memmap));
> +
> +	if (status)
> +		return EFI_LOAD_ERROR;
> +
> +	return EFI_SUCCESS;
> +}

v4.9.0 with this patch doesn't boot on my Seattle (with known buggy UEFI FW)
[0]. It looks like the memory map is truncated (and missing a runtime region,
compare with [1]). Should 'linux,uefi-mmap-size' be updated too? (Otherwise its
the size when we retrieved the runtime mapping, but before we allocated the FDT)


> +
>  #ifndef EFI_FDT_ALIGN
>  #define EFI_FDT_ALIGN EFI_PAGE_SIZE
>  #endif
> @@ -243,15 +261,6 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table,
>  			goto fail;
>  		}
>  
> -		/*
> -		 * Now that we have done our final memory allocation (and free)
> -		 * we can get the memory map key  needed for
> -		 * exit_boot_services().
> -		 */
> -		status = efi_get_memory_map(sys_table, &map);
> -		if (status != EFI_SUCCESS)
> -			goto fail_free_new_fdt;
> -
>  		status = update_fdt(sys_table,
>  				    (void *)fdt_addr, fdt_size,
>  				    (void *)*new_fdt_addr, new_fdt_size,
                                    cmdline_ptr, initrd_addr, initrd_size,
                                    memory_map, map_size, desc_size, desc_ver);

Removing the efi_get_memory_map() call means memory_map is an uninitialised
pointer passed here. It looks like the compiler spots that its also unused so
doesn't generate a warning.

Wouldn't it be better to remove the argument (as its unused), or pass the
placeholder value here? (readability is in the eye of the beholder...)



> @@ -266,20 +275,16 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table,
>  			/*
>  			 * We need to allocate more space for the new
>  			 * device tree, so free existing buffer that is
> -			 * too small.  Also free memory map, as we will need
> -			 * to get new one that reflects the free/alloc we do
> -			 * on the device tree buffer.
> +			 * too small.
>  			 */
>  			efi_free(sys_table, new_fdt_size, *new_fdt_addr);
> -			sys_table->boottime->free_pool(memory_map);
>  			new_fdt_size += EFI_PAGE_SIZE;
>  		} else {
>  			pr_efi_err(sys_table, "Unable to construct new device tree.\n");
> -			goto fail_free_mmap;
> +			goto fail_free_new_fdt;
>  		}
>  	}
>  
> -	sys_table->boottime->free_pool(memory_map);
>  	priv.runtime_map = runtime_map;
>  	priv.runtime_entry_count = &runtime_entry_count;
>  	status = efi_exit_boot_services(sys_table, handle, &map, &priv,
> @@ -288,6 +293,17 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table,
>  	if (status == EFI_SUCCESS) {
>  		efi_set_virtual_address_map_t *svam;
>  
> +		status = update_fdt_memmap((void *)*new_fdt_addr,
> +					   (u64)memory_map);
> +		if (status != EFI_SUCCESS) {
> +			/*
> +			 * The kernel won't get far without the memory map, but
> +			 * may still be able to print something meaningful so
> +			 * return success here.
> +			 */
> +			return EFI_SUCCESS;
> +		}
> +
>  		/* Install the new virtual address map */
>  		svam = sys_table->runtime->set_virtual_address_map;
>  		status = svam(runtime_entry_count * desc_size, desc_size,
> @@ -319,9 +335,6 @@ efi_status_t allocate_new_fdt_and_exit_boot(efi_system_table_t *sys_table,
>  
>  	pr_efi_err(sys_table, "Exit boot services failed.\n");
>  
> -fail_free_mmap:
> -	sys_table->boottime->free_pool(memory_map);
> -
>  fail_free_new_fdt:
>  	efi_free(sys_table, new_fdt_size, *new_fdt_addr);
>  
> 

Looks better than my attempt!

Thanks,

James

[0] Seattle broken boot, v4.9.0:defconfig + this patch
Shell> efi\morse\Image console=ttyAMA0,115200
root=PARTUUID=b2edf709-3b28-4cb3-8809-203f262e2bcc rw earlycon=pl011,0xe1010000
crashkernel=1G stacktrace ignore_loglevel=1 acpi=on efi=debug resume=/dev/sda3
EFI stub: Booting Linux Kernel...
EFI stub: Using DTB from configuration table
EFI stub: Exiting boot services and installing virtual address map...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-00001-gd0a79eca7083 (morse at melchizedek) (gcc
version 5.2.1 20150903 (Debian 5.2.1-16) ) #6482 SMP PREEMPT Mon Dec 12 08:41:16
GMT 2016
[    0.000000] Boot CPU: AArch64 Processor [411fd072]
[    0.000000] earlycon: pl11 at MMIO 0x00000000e1010000 (options '')
[    0.000000] bootconsole [pl11] enabled
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi:   System Table: 0x00000083ff34bf18
[    0.000000] efi:   MemMap Address: 0x00000083fced4018
[    0.000000] efi:   MemMap Size: 0x000004e0
[    0.000000] efi:   MemMap Desc. Size: 0x00000030
[    0.000000] efi:   MemMap Desc. Version: 0x00000001
[    0.000000] efi: EFI v2.40 by American Megatrends
[    0.000000] efi:  ACPI 2.0=0x83ff1c3000  SMBIOS 3.0=0x83ff347798
[    0.000000] efi: Processing EFI memory map:
[    0.000000] efi:   0x0000e1050000-0x0000e105ffff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x0000e1300000-0x0000e1300fff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x0000e8200000-0x0000e827ffff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x008000000000-0x008001e7ffff [Runtime Data       |RUN|  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008001e80000-0x008001ffffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008002000000-0x008002e6ffff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008002e70000-0x00801fdfffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fe00000-0x00801fe0ffff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fe10000-0x00801fffbfff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fffc000-0x00801fffffff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008020000000-0x0083f0ffffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083f1000000-0x0083f101ffff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083f1020000-0x0083fb347fff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fb348000-0x0083fc133fff [Loader Code        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fc134000-0x0083fced3fff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fced4000-0x0083fced4fff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fced5000-0x0083fcff0fff [Loader Code        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fcff1000-0x0083fea67fff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fea68000-0x0083febd3fff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083febd4000-0x0083ff186fff [Boot Code          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff187000-0x0083ff1b6fff [Reserved           |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff1b7000-0x0083ff1c4fff [ACPI Reclaim Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff1c5000-0x0083ff20ffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff210000-0x0083ff224fff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff225000-0x0083ff226fff [ACPI Memory NVS    |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff227000-0x0083ff34bfff [Runtime Data       |RUN|  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] cma: Reserved 16 MiB at 0x00000080ff000000
[    0.000000] ACPI: Early table checksum verification disabled
[    0.000000] ACPI: RSDP 0x00000083FF1C3000 000024 (v02 AMDINC)
[    0.000000] ACPI: XSDT 0x00000083FF1C3028 000084 (v01 AMDINC SEATTLE
00000000 AMI  00010013)
[    0.000000] ACPI: FACP 0x00000083FF1C30B0 00010C (v05 AMDINC SEATTLE
00000000 AMI  00010013)
[    0.000000] ACPI: DSDT 0x00000083FF1C31C0 000967 (v02 AMDINC SEATTLE
00000003 INTL 20140926)
[    0.000000] ACPI: MCFG 0x00000083FF1C3B28 00003C (v01 AMDINC SEATTLE
00000000 MSFT 00000097)
[    0.000000] ACPI: DBG2 0x00000083FF1C3B68 00005A (v00 AMDINC SEATTLE
00000000 AMI  00000000)
[    0.000000] ACPI: GTDT 0x00000083FF1C3BC8 000060 (v02 AMDINC SEATTLE
00000000 AMI  00000000)
[    0.000000] ACPI: APIC 0x00000083FF1C3C28 0002BC (v03 AMDINC SEATTLE
00000000 AMI  00000000)
[    0.000000] ACPI: CSRT 0x00000083FF1C3EE8 000060 (v00 AMDINC
00000000 AMI  00000000)
[    0.000000] ACPI: SSDT 0x00000083FF1C3F48 00011B (v02 AMDINC CPUSSDT
00000000 AMI  00000000)
[    0.000000] ACPI: SSDT 0x00000083FF1C4068 00008A (v01 AMDINC SATASSDT
00000003 INTL 20140926)
[    0.000000] ACPI: SSDT 0x00000083FF1C40F8 0004B3 (v01 AMDINC ETHSSDT
00000003 INTL 20140926)
[    0.000000] ACPI: SPCR 0x00000083FF1C45B0 000050 (v02 A M I  APTIO V
00000000 AMI. 00000005)
[    0.000000] ACPI: HEST 0x00000083FF1C4600 0001A8 (v01 AMD    AMD HEST
00000000      00000000)
[    0.000000] ACPI: BERT 0x00000083FF1C47A8 000030 (v01 AMD    AMD BERT
00000000      00000000)
[    0.000000] ACPI: SPCR: console: pl011,mmio,0xe1010000,115200
[    0.000000] ACPI: NUMA: Failed to initialise from firmware
[    0.000000] NUMA: Faking a node at [mem 0x0000000000000000-0x00000083ff34bfff]
[    0.000000] NUMA: Adding memblock [0x8000000000 - 0x8001e7ffff] on node 0
[    0.000000] NUMA: Adding memblock [0x8001e80000 - 0x83ff186fff] on node 0
[    0.000000] NUMA: Adding memblock [0x83ff187000 - 0x83ff1c4fff] on node 0
[    0.000000] NUMA: Adding memblock [0x83ff1c5000 - 0x83ff224fff] on node 0
[    0.000000] NUMA: Adding memblock [0x83ff225000 - 0x83ff34bfff] on node 0
[    0.000000] NUMA: Initmem setup node 0 [mem 0x8000000000-0x83ff34bfff]
[    0.000000] NUMA: NODE_DATA [mem 0x83ff214500-0x83ff215fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000008000000000-0x00000080ffffffff]
[    0.000000]   Normal   [mem 0x0000008100000000-0x00000083ff34bfff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000008000000000-0x0000008001e7ffff]
[    0.000000]   node   0: [mem 0x0000008001e80000-0x00000083ff186fff]
[    0.000000]   node   0: [mem 0x00000083ff187000-0x00000083ff1c4fff]
[    0.000000]   node   0: [mem 0x00000083ff1c5000-0x00000083ff224fff]
[    0.000000]   node   0: [mem 0x00000083ff225000-0x00000083ff34bfff]
[    0.000000] Initmem setup node 0 [mem 0x0000008000000000-0x00000083ff34bfff]
[    0.000000] On node 0 totalpages: 4191052
[    0.000000]   DMA zone: 16384 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 1048576 pages, LIFO batch:31
[    0.000000]   Normal zone: 49102 pages used for memmap
[    0.000000]   Normal zone: 3142476 pages, LIFO batch:31
[    0.000000] psci: probing for conduit method from ACPI.
[    0.000000] psci: PSCIv0.2 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] percpu: Embedded 21 pages/cpu @ffff8003ff0df000 s47896 r8192
d29928 u86016
[    0.000000] pcpu-alloc: s47896 r8192 d29928 u86016 alloc=21*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 832075
[    0.000000] CPU features: enabling workaround for ARM erratum 834220
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total
pages: 4125566
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: efi\morse\Image console=ttyAMA0,115200
root=PARTUUID=b2edf709-3b28-4cb3-8809-203f262e2bcc rw earlycon=pl011,0xe1010000
crashkernel=1G stacktrace ignore_loglevel=1 acpi=on efi=debug resume=/dev/sda3
[    0.000000] log_buf_len individual max cpu contribution: 4096 bytes
[    0.000000] log_buf_len total cpu_extra contributions: 28672 bytes
[    0.000000] log_buf_len min size: 16384 bytes
[    0.000000] log_buf_len: 65536 bytes
[    0.000000] early log buf free: 7932(48%)
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] software IO TLB [mem 0x80fafff000-0x80fefff000] (64MB) mapped at
[ffff8000fafff000-ffff8000feffefff]
[    0.000000] Memory: 16371940K/16764208K available (8444K kernel code, 834K
rwdata, 3624K rodata, 1024K init, 277K bss, 375884K reserved, 16384K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     modules : 0xffff000000000000 - 0xffff000008000000   (   128 MB)
[    0.000000]     vmalloc : 0xffff000008000000 - 0xffff7dffbfff0000   (129022 GB)
[    0.000000]       .text : 0xffff000008080000 - 0xffff0000088c0000   (  8448 KB)
[    0.000000]     .rodata : 0xffff0000088c0000 - 0xffff000008c50000   (  3648 KB)
[    0.000000]       .init : 0xffff000008c50000 - 0xffff000008d50000   (  1024 KB)
[    0.000000]       .data : 0xffff000008d50000 - 0xffff000008e20a00   (   835 KB)
[    0.000000]        .bss : 0xffff000008e20a00 - 0xffff000008e65fbc   (   278 KB)
[    0.000000]     fixed   : 0xffff7dfffe7fd000 - 0xffff7dfffec00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffff7dfffee00000 - 0xffff7dffffe00000   (    16 MB)
[    0.000000]     vmemmap : 0xffff7e0000000000 - 0xffff800000000000   (  2048
GB maximum)
[    0.000000]               0xffff7e0000000000 - 0xffff7e000ffcd300   (   255
MB actual)
[    0.000000]     memory  : 0xffff800000000000 - 0xffff8003ff34c000   ( 16371 MB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Build-time adjustment of leaf fanout to 64.
[    0.000000]  RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=8.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=8
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] GICv2m: range[mem 0xe1180000-0xe1180fff], SPI[64:319]
[    0.000000] arm_arch_timer: Architected cp15 timer(s) running at 250.00MHz
(phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles:
0x7350b89c29, max_idle_ns: 881590431910 ns
[    0.000001] sched_clock: 56 bits at 250MHz, resolution 4ns, wraps every
4398046511102ns
[    0.008135] Console: colour dummy device 80x25
[    0.012700] Calibrating delay loop (skipped), value calculated using timer
frequency.. 500.00 BogoMIPS (lpj=1000000)
[    0.023333] pid_max: default: 32768 minimum: 301
[    0.027997] ACPI: Core revision 20160831
[    0.032378] ACPI: 4 ACPI AML tables successfully acquired and loaded
[    0.038819] Security Framework initialized
[    0.044630] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes)
[    0.056118] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.064713] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.071683] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes)
[    0.079547] ASID allocator initialised with 65536 entries
[    0.117078] Remapping and enabling EFI services.
[    0.121756]   EFI remap 0x00000000e1050000 => 0000000020000000
[    0.127645]   EFI remap 0x00000000e1300000 => 0000000020010000
[    0.133531]   EFI remap 0x00000000e8200000 => 0000000020020000
[    0.139459]   EFI remap 0x0000008000000000 => 0000000020200000
[    0.145348]   EFI remap 0x00000083ff227000 => 0000000022087000
[    0.209377] Detected PIPT I-cache on CPU1
[    0.209397] CPU1: Booted secondary processor [411fd072]
[    0.255389] Detected PIPT I-cache on CPU2
[    0.255406] CPU2: Booted secondary processor [411fd072]
[    0.297453] Detected PIPT I-cache on CPU3
[    0.297465] CPU3: Booted secondary processor [411fd072]
[    0.343475] Detected PIPT I-cache on CPU4
[    0.343489] CPU4: Booted secondary processor [411fd072]
[    0.385539] Detected PIPT I-cache on CPU5
[    0.385551] CPU5: Booted secondary processor [411fd072]
[    0.431557] Detected PIPT I-cache on CPU6
[    0.431572] CPU6: Booted secondary processor [411fd072]
[    0.473621] Detected PIPT I-cache on CPU7
[    0.473633] CPU7: Booted secondary processor [411fd072]
[    0.473661] Brought up 8 CPUs
[    0.541646] SMP: Total of 8 processors activated.
[    0.546379] CPU features: detected feature: 32-bit EL0 Support
[    0.552287] CPU: All CPU(s) started at EL2
[    0.556418] alternatives: patching kernel code
[    0.564405] devtmpfs: initialized
[    0.568066] SMBIOS 3.0.0 present.
[    0.571469] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff,
max_idle_ns: 7645041785100000 ns
[    0.581454] pinctrl core: initialized pinctrl subsystem
[    0.587047] NET: Registered protocol family 16
[    0.615078] cpuidle: using governor menu
[    0.619095] vdso: 2 pages (1 code @ ffff0000088c7000, 1 data @ ffff000008d54000)
[    0.626550] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.633729] DMA: preallocated 256 KiB pool for atomic allocations
[    0.639929] ACPI: bus type PCI registered
[    0.644002] Serial: AMBA PL011 UART driver
[    0.664262] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    0.670997] ACPI: Added _OSI(Module Device)
[    0.675210] ACPI: Added _OSI(Processor Device)
[    0.679681] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.684413] ACPI: Added _OSI(Processor Aggregator Device)
[    0.690715] ACPI: Interpreter enabled
[    0.694400] ACPI: Using GIC for interrupt routing
[    0.699149] ACPI: MCFG table detected, 1 entries
[    0.706008] AMDI0511:00: ttyAMA0 at MMIO 0xe1010000 (irq = 8, base_baud = 0)
is a SBSA
[    0.713985] console [ttyAMA0] enabled
[    0.713985] console [ttyAMA0] enabled
[    0.721314] bootconsole [pl11] disabled
[    0.721314] bootconsole [pl11] disabled
[    0.729170] acpi AMDI0400:01: amba_handler_attach(): amba_device_add() failed
(-19)
[    0.737230] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-0f])
[    0.743407] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM
Segments MSI]
[    0.751790] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER
PCIeCapability]
[    0.759793] acpi PNP0A08:00: ECAM at [mem 0xf0000000-0xf0ffffff] for [bus 00-0f]
[    0.767211] Remapped I/O 0x00000001dffe0000 to [io  0x0000-0xffff window]
[    0.774105] PCI host bridge to bus 0000:00
[    0.778194] pci_bus 0000:00: root bus resource [mem 0x40000000-0x5fffffff window]
[    0.785667] pci_bus 0000:00: root bus resource [mem 0x60000000-0x7fffffff window]
[    0.793141] pci_bus 0000:00: root bus resource [mem 0x80000000-0x9fffffff window]
[    0.800616] pci_bus 0000:00: root bus resource [mem 0xa0000000-0xbfffffff window]
[    0.808089] pci_bus 0000:00: root bus resource [mem 0x100000000-0x1ffffffff
window]
[    0.815735] pci_bus 0000:00: root bus resource [mem 0x200000000-0x3ffffffff
window]
[    0.823380] pci_bus 0000:00: root bus resource [mem 0x400000000-0x7ffffffff
window]
[    0.831026] pci_bus 0000:00: root bus resource [mem 0x800000000-0xfffffffff
window]
[    0.838672] pci_bus 0000:00: root bus resource [mem 0x1000000000-0x1fffffffff
window]
[    0.846492] pci_bus 0000:00: root bus resource [mem 0x2000000000-0x3fffffffff
window]
[    0.854311] pci_bus 0000:00: root bus resource [mem 0x4000000000-0x7fffffffff
window]
[    0.862130] pci_bus 0000:00: root bus resource [io  0x0000-0xffff window]
(bus address [0xefff0000-0xefffffff])
[    0.872206] pci_bus 0000:00: root bus resource [bus 00-0f]
[    0.877687] pci 0000:00:00.0: [1022:1a00] type 00 class 0x060000
[    0.883770] pci 0000:00:02.0: [1022:1a01] type 00 class 0x060000
[    0.889848] pci 0000:00:02.1: [1022:1a02] type 01 class 0x060400
[    0.895882] pci 0000:00:02.1: PME# supported from D0 D3hot D3cold
[    0.902102] pci 0000:01:00.0: [10ec:8168] type 00 class 0x020000
[    0.908115] pci 0000:01:00.0: reg 0x10: initial BAR value 0x00000000 invalid
[    0.915153] pci 0000:01:00.0: reg 0x10: [io  size 0x0100]
[    0.920565] pci 0000:01:00.0: reg 0x18: [mem 0xbff00000-0xbff00fff 64bit]
[    0.927356] pci 0000:01:00.0: reg 0x20: [mem 0x7ffff00000-0x7ffff03fff 64bit
pref]
[    0.934988] pci 0000:01:00.0: supports D1 D2
[    0.939249] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.957880] pci 0000:00:02.1: BAR 14: assigned [mem 0x40000000-0x400fffff]
[    0.964751] pci 0000:00:02.1: BAR 15: assigned [mem 0x100000000-0x1000fffff
64bit pref]
[    0.972746] pci 0000:00:02.1: BAR 13: assigned [io  0x1000-0x1fff]
[    0.978918] pci 0000:01:00.0: BAR 4: assigned [mem 0x100000000-0x100003fff
64bit pref]
[    0.986834] pci 0000:01:00.0: BAR 2: assigned [mem 0x40000000-0x40000fff 64bit]
[    0.994141] pci 0000:01:00.0: BAR 0: assigned [io  0x1000-0x10ff]
[    1.000229] pci 0000:00:02.1: PCI bridge to [bus 01]
[    1.005184] pci 0000:00:02.1:   bridge window [io  0x1000-0x1fff]
[    1.011267] pci 0000:00:02.1:   bridge window [mem 0x40000000-0x400fffff]
[    1.018045] pci 0000:00:02.1:   bridge window [mem 0x100000000-0x1000fffff
64bit pref]
[    1.026555] vgaarb: loaded
[    1.029330] SCSI subsystem initialized
[    1.033135] libata version 3.00 loaded.
[    1.037015] ACPI: bus type USB registered
[    1.041052] usbcore: registered new interface driver usbfs
[    1.046545] usbcore: registered new interface driver hub
[    1.051878] usbcore: registered new device driver usb
[    1.057097] ------------[ cut here ]------------
[    1.061709] WARNING: CPU: 2 PID: 1 at
../drivers/i2c/busses/i2c-designware-core.c:293 i2c_dw_clk_rate+0x3c/0x48
[    1.071780] Modules linked in:
[    1.074823]
[    1.076303] CPU: 2 PID: 1 Comm: swapper/0 Not tainted
4.9.0-00001-gd0a79eca7083 #6482
[    1.084119] Hardware name: AMD Overdrive/Supercharger/Default string, BIOS
ROD1002C 04/08/2016
[    1.092717] task: ffff8003ecd08000 task.stack: ffff8003ecd10000
[    1.098623] PC is at i2c_dw_clk_rate+0x3c/0x48
[    1.103055] LR is at i2c_dw_init+0xfc/0x3c8
[    1.107225] pc : [<ffff000008704e74>] lr : [<ffff0000087056b4>] pstate: 60000045
[    1.114607] sp : ffff8003ecd13ba0
[    1.117908] x29: ffff8003ecd13ba0 x28: 0000000000000000
[    1.123211] x27: ffff000008d0d158 x26: ffff000008c50450
[    1.128514] x25: ffff000008ca2798 x24: ffff000008c46b38
[    1.133815] x23: 00000000431bde83 x22: 000000000000012c
[    1.139116] x21: 00000000000707ae x20: 000000000000012c
[    1.144417] x19: ffff8003eca7b018 x18: ffff00000806dfff
[    1.149718] x17: 0000000000000000 x16: 0000000000000001
[    1.155019] x15: ffff00000806dfff x14: efffffffefff0000
[    1.160320] x13: 00000000030c0100 x12: 0000000000000018
[    1.165621] x11: 0000000000000000 x10: 0101010101010101
[    1.170922] x9 : 0000000000000000 x8 : ffff8003ecbfc880
[    1.176223] x7 : 0000000000000000 x6 : 000000000000003f
[    1.181524] x5 : 0000000000000000 x4 : 0000000000000000
[    1.186825] x3 : ffff00000806d06c x2 : 0000000000000000
[    1.192126] x1 : 0000000000000001 x0 : ffff000008e10000
[    1.197426]

[    1.198906] ---[ end trace f3069799ac0efee6 ]---
[    1.203510] Call trace:
[    1.205945] Exception stack(0xffff8003ecd139d0 to 0xffff8003ecd13b00)
[    1.212372] 39c0:                                   ffff8003eca7b018
0001000000000000
[    1.220188] 39e0: ffff8003ecd13ba0 ffff000008704e74 ffff8003ecd13a90
ffff000008451794
[    1.228005] 3a00: ffff8003ecbfc818 0000000000000000 ffff8003ee8137a8
ffff8003ecbfc818
[    1.235821] 3a20: 0000000000000000 ffff8003ee8137a8 ffff000008ca2798
ffff000008c50450
[    1.243637] 3a40: ffff8003ecd13a90 ffff0000084517a0 0000000000000005
0000000000000000
[    1.251453] 3a60: ffff8003ee8137a8 ffff8003ecbfc818 ffff000008e10000
0000000000000001
[    1.259269] 3a80: 0000000000000000 ffff00000806d06c 0000000000000000
0000000000000000
[    1.267084] 3aa0: 000000000000003f 0000000000000000 ffff8003ecbfc880
0000000000000000
[    1.274900] 3ac0: 0101010101010101 0000000000000000 0000000000000018
00000000030c0100
[    1.282716] 3ae0: efffffffefff0000 ffff00000806dfff 0000000000000001
0000000000000000
[    1.290533] [<ffff000008704e74>] i2c_dw_clk_rate+0x3c/0x48
[    1.296006] [<ffff0000087059b8>] i2c_dw_probe+0x38/0x250
[    1.301305] [<ffff000008706410>] dw_i2c_plat_probe+0x1d0/0x430
[    1.307127] [<ffff000008521a40>] platform_drv_probe+0x50/0xb8
[    1.312861] [<ffff00000851ff2c>] driver_probe_device+0x1fc/0x2a8
[    1.318854] [<ffff000008520084>] __driver_attach+0xac/0xb0
[    1.324326] [<ffff00000851df48>] bus_for_each_dev+0x60/0xa0
[    1.329886] [<ffff00000851f718>] driver_attach+0x20/0x28
[    1.335185] [<ffff00000851f318>] bus_add_driver+0x1d0/0x238
[    1.340744] [<ffff000008520848>] driver_register+0x60/0xf8
[    1.346217] [<ffff000008521980>] __platform_driver_register+0x40/0x48
[    1.352646] [<ffff000008c8fccc>] dw_i2c_init_driver+0x18/0x20
[    1.358380] [<ffff0000080830b8>] do_one_initcall+0x38/0x128
[    1.363941] [<ffff000008c50cf8>] kernel_init_freeable+0x1ac/0x250
[    1.370023] [<ffff0000088ae008>] kernel_init+0x10/0x108
[    1.375234] [<ffff000008082e80>] ret_from_fork+0x10/0x50
[    1.381032] pps_core: LinuxPPS API ver. 1 registered
[    1.385988] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo
Giometti <giometti@linux.it>
[    1.395116] PTP clock support registered
[    1.399087] Registered efivars operations
[    1.403091] Unable to handle kernel paging request at virtual address 22c4a238
[    1.410303] pgd = ffff000008e69000
[    1.413691] [22c4a238] *pgd=00000083ff223003[    1.417777] ,
*pud=00000083ff222003
, *pmd=0000000000000000[    1.423254]
[    1.424734] Internal error: Oops: 86000006 [#1] PREEMPT SMP
[    1.430292] Modules linked in:
[    1.433336] CPU: 2 PID: 1 Comm: swapper/0 Tainted: G        W
4.9.0-00001-gd0a79eca7083 #6482
[    1.442367] Hardware name: AMD Overdrive/Supercharger/Default string, BIOS
ROD1002C 04/08/2016
[    1.450963] task: ffff8003ecd08000 task.stack: ffff8003ecd10000
[    1.456869] PC is at 0x22c4a238
[    1.460001] LR is at virt_efi_get_next_variable+0x88/0xc8
[    1.465386] pc : [<0000000022c4a238>] lr : [<ffff00000875e7d0>] pstate: 20000045
[    1.472766] sp : ffff8003ecd13c70
[    1.476068] x29: ffff8003ecd13c70 x28: ffff000008e0bc68
[    1.481369] x27: ffff8003ecd13dc0 x26: ffff000008c50450
[    1.486670] x25: ffff000008e0b000 x24: 0000000000000001
[    1.491971] x23: 0000000000000040 x22: ffff8003ecd13d30
[    1.497271] x21: ffff8003eca32800 x20: ffff8003ecd13d28
[    1.502571] x19: ffff000008e0bf20 x18: 0000000000000006
[    1.507871] x17: 0000000000000000 x16: 0000000000000001
[    1.513172] x15: ffff000008e2cc35 x14: 0000000000000127
[    1.518472] x13: 0000000000000001 x12: 0000000005f5e0ff
[    1.523773] x11: 0000000000000006 x10: 0000000000000128
[    1.529073] x9 : 0000000000000000 x8 : ffff8003eca32c00
[    1.534373] x7 : 0000000000000000 x6 : 0000000000000000
[    1.539673] x5 : 0000000000000000 x4 : 0000000000000004
[    1.544974] x3 : 0000000022c4a238 x2 : ffff8003ecd13d30
[    1.550274] x1 : ffff8003eca32800 x0 : ffff8003ecd13d28
[    1.555574]
[    1.557053] Process swapper/0 (pid: 1, stack limit = 0xffff8003ecd10020)
[    1.563740] Stack: (0xffff8003ecd13c70 to 0xffff8003ecd14000)
[    1.569472] 3c60:                                   ffff8003ecd13cb0
ffff00000875c8ac
[    1.577288] 3c80: ffff8003eca32800 ffff000008e58000 ffff8003ecd13dc0
0000000000000400
[    1.585104] 3ca0: ffff000008e58568 ffff8003ecd13d20 ffff8003ecd13d60
ffff000008c930fc
[    1.592920] 3cc0: 0000000000000000 ffff000008e58000 ffff000008d5bf88
ffff8003ecd13dc0
[    1.600735] 3ce0: ffff000008e25000 ffff000008c46b38 ffff000008ca2798
ffff000008c50450
[    1.608551] 3d00: ffff000008d0d1b0 0000000000000000 ffff000008e0bc68
ffff000008c92d30
[    1.616367] 3d20: ffff8003ecd13d60 0000000000000400 ffff8003ecd10000
ffff000008e58000
[    1.624183] 3d40: ffff000008d5bf88 0000000000000004 ffff000008e25000
ffff000008e58000
[    1.631998] 3d60: ffff8003ecd13dd0 ffff0000080830b8 ffff8003ecd10000
ffff000008c93028
[    1.639813] 3d80: 0000000000000000 0000000000000004 ffff000008e25000
ffff000008c46b38
[    1.647628] 3da0: ffff000008ca2798 ffff000008c91bdc ffff8003ecd13dd0
ffff0000080830b8
[    1.655444] 3dc0: ffff8003ecd13dc0 ffff8003ecd13dc0 ffff8003ecd13e40
ffff000008c50cf8
[    1.663259] 3de0: 000000000000011e ffff000008e25000 ffff000008ca2840
0000000000000004
[    1.671074] 3e00: ffff000008d0cf00 0000000000000000 ffff000008e25000
ffff000008b2da98
[    1.678890] 3e20: 0000000400000004 0000000000000000 0000000000000000
ffff000008c46b38
[    1.686705] 3e40: ffff8003ecd13ea0 ffff0000088ae008 ffff0000088adff8
0000000000000000
[    1.694520] 3e60: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.702336] 3e80: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.710151] 3ea0: 0000000000000000 ffff000008082e80 ffff0000088adff8
0000000000000000
[    1.717966] 3ec0: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.725781] 3ee0: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.733597] 3f00: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.741412] 3f20: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.749227] 3f40: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.757042] 3f60: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.764858] 3f80: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.772673] 3fa0: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.780488] 3fc0: 0000000000000000 0000000000000005 0000000000000000
0000000000000000
[    1.788304] 3fe0: 0000000000000000 0000000000000000 0000000000000000
0000000000000000
[    1.796118] Call trace:
[    1.798551] Exception stack(0xffff8003ecd13aa0 to 0xffff8003ecd13bd0)
[    1.804978] 3aa0: ffff000008e0bf20 0001000000000000 ffff8003ecd13c70
0000000022c4a238
[    1.812794] 3ac0: ffff000008e2c6b8 0000000000000000 0000000000000000
ffff8003ecd13b20
[    1.820609] 3ae0: ffff0000080ff730 ffff8003ecd13b20 ffff8003ecd13b20
ffff0000080ff7a4
[    1.828425] 3b00: ffff8003ecd13b20 ffff0000080ff7dc ffff000008e2c000
ffff000008e2c6b8
[    1.836240] 3b20: ffff8003ecd13ba0 ffff0000080ffcfc ffff000008e2c000
ffff000008d6e398
[    1.844055] 3b40: ffff8003ecd13d28 ffff8003eca32800 ffff8003ecd13d30
0000000022c4a238
[    1.851871] 3b60: 0000000000000004 0000000000000000 0000000000000000
0000000000000000
[    1.859686] 3b80: ffff8003eca32c00 0000000000000000 0000000000000128
0000000000000006
[    1.867502] 3ba0: 0000000005f5e0ff 0000000000000001 0000000000000127
ffff000008e2cc35
[    1.875316] 3bc0: 0000000000000001 0000000000000000
[    1.880181] [<0000000022c4a238>] 0x22c4a238
[    1.884352] [<ffff00000875c8ac>] efivar_init+0x8c/0x348
[    1.889565] [<ffff000008c930fc>] efisubsys_init+0xd4/0x270
[    1.895037] [<ffff0000080830b8>] do_one_initcall+0x38/0x128
[    1.900596] [<ffff000008c50cf8>] kernel_init_freeable+0x1ac/0x250
[    1.906676] [<ffff0000088ae008>] kernel_init+0x10/0x108
[    1.911887] [<ffff000008082e80>] ret_from_fork+0x10/0x50
[    1.917187] Code: bad PC value
[    1.920238] ---[ end trace f3069799ac0efee7 ]---
[    1.924847] note: swapper/0[1] exited with preempt_count 2
[    1.930329] Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
[    1.930329]
[    1.939447] SMP: stopping secondary CPUs
[    1.943361] ---[ end Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
[    1.943361]



[1] efi=debug output for v4.9.0:defconfig
[    0.000000] efi:   0x0000e1050000-0x0000e105ffff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x0000e1300000-0x0000e1300fff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x0000e8200000-0x0000e827ffff [Memory Mapped I/O  |RUN|  |
 |  |  |  |  |   |  |  |  |UC]
[    0.000000] efi:   0x008000000000-0x008001e7ffff [Runtime Data       |RUN|  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008001e80000-0x008001ffffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008002000000-0x008002e7ffff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008002e80000-0x00801fdfffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fe00000-0x00801fe0ffff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fe10000-0x00801fffbfff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x00801fffc000-0x00801fffffff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x008020000000-0x0083f0ffffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083f1000000-0x0083f101ffff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083f1020000-0x0083fb33afff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fb33b000-0x0083fc12dfff [Loader Code        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fc12e000-0x0083fced3fff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fced4000-0x0083fced4fff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fced5000-0x0083fcff0fff [Loader Code        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fcff1000-0x0083fea67fff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083fea68000-0x0083febd3fff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083febd4000-0x0083ff186fff [Boot Code          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff187000-0x0083ff1b6fff [Reserved           |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff1b7000-0x0083ff1c4fff [ACPI Reclaim Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff1c5000-0x0083ff20ffff [Conventional Memory|   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff210000-0x0083ff224fff [Loader Data        |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff225000-0x0083ff226fff [ACPI Memory NVS    |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff227000-0x0083ff34bfff [Runtime Data       |RUN|  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ff34c000-0x0083ffe42fff [Runtime Code       |RUN|  |
 |  |  |  |  |   |WB|WT|WC|UC]
[    0.000000] efi:   0x0083ffe43000-0x0083ffffffff [Boot Data          |   |  |
 |  |  |  |  |   |WB|WT|WC|UC]

^ permalink raw reply

* Tegra baseline test results for v4.9-rc7
From: Jon Hunter @ 2016-12-12  9:37 UTC (permalink / raw)
  To: linux-arm-kernel

Here are some basic Tegra test results for Linux v4.9-rc7.
Logs and other details at:

    https://nvtb.github.io//linux/test_v4.9-rc7/20161127133104/


Test summary
------------

Build: zImage:
    Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig

Build: Image:
    Pass: ( 1/ 1): defconfig

Boot to userspace: defconfig:
    Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
		   tegra210-p2371-0000, tegra210-smaug

Boot to userspace: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

Boot to userspace: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver


vmlinux object size
(delta in bytes from test_v4.9-rc6 (9c763584b7c8911106bb77af7e648bef09af9d80)):
   text     data      bss    total  kernel
    -88      +88        0        0  defconfig
  +1312        0        0    +1312  multi_v7_defconfig
   +928        0        0     +928  tegra_defconfig


Boot-time memory difference
(delta in bytes from test_v4.9-rc6 (9c763584b7c8911106bb77af7e648bef09af9d80))
    avail    rsrvd     high    freed                board              kconfig                  dtb
        .        .        .        .      qemu-vexpress64            defconfig           __internal
        .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
        .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
        .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
        .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
        .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
        .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
        .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
        .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
        .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
        .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
        .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
        .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
        .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver

^ permalink raw reply

* Tegra baseline test results for v4.8-rc6
From: Jon Hunter @ 2016-12-12  9:38 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <9eb90711-3de9-09dd-7751-fb8e3bfc91dd@nvidia.com>

Ignore this, wrong $subject ... still half asleep!

On 12/12/16 09:29, Jon Hunter wrote:
> Here are some basic Tegra test results for Linux v4.9-rc6.
> Logs and other details at:
> 
>     https://nvtb.github.io//linux/test_v4.9-rc6/20161121033104/
> 
> 
> Test summary
> ------------
> 
> Build: zImage:
>     Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig
> 
> Build: Image:
>     Pass: ( 1/ 1): defconfig
> 
> Boot to userspace: defconfig:
>     Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
> 		   tegra210-p2371-0000, tegra210-smaug
> 
> Boot to userspace: multi_v7_defconfig:
>     Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
> 		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver
> 
> Boot to userspace: tegra_defconfig:
>     Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
> 		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver
> 
> PM: System suspend: multi_v7_defconfig:
>     Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
> 		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver
> 
> PM: System suspend: tegra_defconfig:
>     Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
> 		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver
> 
> 
> vmlinux object size
> (delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6)):
>    text     data      bss    total  kernel
>    -329     +592        0     +263  defconfig
>   +1307      +64        0    +1371  multi_v7_defconfig
>   +1143        0        0    +1143  tegra_defconfig
> 
> 
> Boot-time memory difference
> (delta in bytes from test_v4.9-rc5 (a25f0944ba9b1d8a6813fd6f1a86f1bd59ac25a6))
>     avail    rsrvd     high    freed                board              kconfig                  dtb
>         .        .        .        .      qemu-vexpress64            defconfig           __internal
>         .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
>         .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
>         .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
>         .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
>         .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
>         .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
>         .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
>         .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
>         .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
>         .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
>         .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
>         .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
>         .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver
> --
> To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
nvpublic

^ permalink raw reply

* Tegra baseline test results for v4.9-rc8
From: Jon Hunter @ 2016-12-12  9:40 UTC (permalink / raw)
  To: linux-arm-kernel

Here are some basic Tegra test results for Linux v4.9-rc8.
Logs and other details at:

    https://nvtb.github.io//linux/test_v4.9-rc8/20161206040103/


Test summary
------------

Build: zImage:
    Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig

Build: Image:
    Pass: ( 1/ 1): defconfig

Boot to userspace: defconfig:
    Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
		   tegra210-p2371-0000, tegra210-smaug

Boot to userspace: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

Boot to userspace: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver


vmlinux object size
(delta in bytes from test_v4.9-rc7 (e5517c2a5a49ed5e99047008629f1cd60246ea0e)):
   text     data      bss    total  kernel
  +3849     +216        0    +4065  defconfig
   +936        0        0     +936  multi_v7_defconfig
   +228        0        0     +228  tegra_defconfig


Boot-time memory difference
(delta in bytes from test_v4.9-rc7 (e5517c2a5a49ed5e99047008629f1cd60246ea0e))
    avail    rsrvd     high    freed                board              kconfig                  dtb
        .        .        .        .      qemu-vexpress64            defconfig           __internal
        .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
        .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
        .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
        .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
        .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
        .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
        .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
        .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
        .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
        .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
        .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
        .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
        .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver

^ permalink raw reply

* Tegra baseline test results for v4.9
From: Jon Hunter @ 2016-12-12  9:41 UTC (permalink / raw)
  To: linux-arm-kernel

Here are some basic Tegra test results for Linux v4.9.
Logs and other details at:

    https://nvtb.github.io//linux/test_v4.9/20161211123105/


Test summary
------------

Build: zImage:
    Pass: ( 2/ 2): multi_v7_defconfig, tegra_defconfig

Build: Image:
    Pass: ( 1/ 1): defconfig

Boot to userspace: defconfig:
    Pass: ( 4/ 4): qemu-vexpress64, tegra132-norrin,
		   tegra210-p2371-0000, tegra210-smaug

Boot to userspace: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

Boot to userspace: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: multi_v7_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver

PM: System suspend: tegra_defconfig:
    Pass: ( 5/ 5): tegra114-dalmore-a04, tegra124-jetson-tk1,
		   tegra124-nyan-big, tegra20-trimslice, tegra30-beaver


vmlinux object size
(delta in bytes from test_v4.9-rc8 (3e5de27e940d00d8d504dfb96625fb654f641509)):
   text     data      bss    total  kernel
    -96      +96        0        0  defconfig
   +672        0        0     +672  multi_v7_defconfig
   +432        0        0     +432  tegra_defconfig


Boot-time memory difference
(delta in bytes from test_v4.9-rc8 (3e5de27e940d00d8d504dfb96625fb654f641509))
    avail    rsrvd     high    freed                board              kconfig                  dtb
        .        .        .        .      qemu-vexpress64            defconfig           __internal
        .        .        .        . tegra114-dalmore-a04   multi_v7_defconfig     tegra114-dalmore
        .        .        .        . tegra114-dalmore-a04      tegra_defconfig     tegra114-dalmore
        .        .        .        .  tegra124-jetson-tk1   multi_v7_defconfig  tegra124-jetson-tk1
        .        .        .        .  tegra124-jetson-tk1      tegra_defconfig  tegra124-jetson-tk1
        .        .        .        .    tegra124-nyan-big   multi_v7_defconfig    tegra124-nyan-big
        .        .        .        .    tegra124-nyan-big      tegra_defconfig    tegra124-nyan-big
        .        .        .        .      tegra132-norrin            defconfig      tegra132-norrin
        .        .        .        .    tegra20-trimslice   multi_v7_defconfig    tegra20-trimslice
        .        .        .        .    tegra20-trimslice      tegra_defconfig    tegra20-trimslice
        .        .        .        .  tegra210-p2371-0000            defconfig  tegra210-p2371-0000
        .        .        .        .       tegra210-smaug            defconfig       tegra210-smaug
        .        .        .        .       tegra30-beaver   multi_v7_defconfig       tegra30-beaver
        .        .        .        .       tegra30-beaver      tegra_defconfig       tegra30-beaver

^ permalink raw reply

* [RFC v3 PATCH 00/25] Allow NOMMU for MULTIPLATFORM
From: mickael guene @ 2016-12-12  9:44 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <584E6DA3.5070009@arm.com>

Hi Vladimir,

  At the end of https://github.com/mickael-guene/fdpic_manifest you can
find a set of patch to apply for kernel fdpic support. Unfortunately
they are quite old ... But I have done some test on May for
stm32f469-disco platform and I have attached patches against more
recent kernel.

  I also remove Maxime address since he quit st few month ago and his
address is no more valid.

Regards
Mickael

On 12/12/2016 10:28 AM, Vladimir Murzin wrote:
> Hi,
>
> On 12/12/16 07:07, mickael guene wrote:
>> Hi all,
>>
>>  You can find an R toolchain here:
>> https://github.com/mickael-guene/fdpic_manifest/releases/download/v7-r-1.0.1/toolset-v7-r-1.0.1-0-gbdcc6a7c-armv7-r.tgz
>>
>>  It's an fdpic toolset for cortex-r cpu class. gcc version is
>> quite old (4.7).
>>
>>  Note also that generated code may crash on class A cpu due to
>> generation of udiv/sdiv which is optional for class A.
>> (cortex a15 is ok but not a9).
>>
>> Hope it helps
>
> Unfortunately, it doesn't help because it depends on FDPIC Linux patches
> which are out of tree and no link has been given.
>
> M-class toolchain should just work with A-class; you don't even need to
> disable MMU to try it out after d782e42 ("ARM: 8594/1: enable binfmt_flat on
> systems with an MMU").
>
> Cheers
> Vladimir
>
>>
>> Regards
>> Mickael
>>
>> On 12/11/2016 09:01 PM, Peter Korsgaard wrote:
>>>>>>>> "Afzal" == Afzal Mohammed <afzal.mohd.ma@gmail.com> writes:
>>>
>>> Hi,
>>>
>>>  >> You can build a toolchain and initramfs with Buildroot. Have a look at
>>>  >> the stm32f429 nommu config:
>>>  >>
>>>  >> https://git.buildroot.net/buildroot/tree/configs/stm32f429_disco_defconfig
>>>
>>>  > iiuc, it builds one for Cortex-M. i already had a file system w/
>>>  > busybox compiled using a Cortex-M toolchain (stolen from
>>>  > Pengutronix's OSELAS.Toolchain), which works on Cortex M4 (Vybrid
>>>  > VF610 M4 core). But it does not work here, i.e. on Cortex A, seems the
>>>  > above mentioned also would have the same effect.
>>>
>>> Hmm, I'm not sure why a cortex-M toolchain wouldn't work on cortex-A, I
>>> thought the 'M' instruction set was a pure subset of the 'A'.
>>>
>>>  > And in buildroot, couldn't see Cortex R option in menuconfig, and
>>>  > selecting Cortex-A's excludes flat binary target & presents only with
>>>  > ELF.
>>>
>>> We indeed don't have cortex-R support. I'm not aware of any cortex-R
>>> Linux support.
>>>
>>> When you select a cortex-A variant, then we enable MMU support by
>>> default, but you can disable it under toolchain options (Enable MMU) and
>>> then the flat binary option is available.
>>>
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-fdpic-Add-support-for-fdpic-binaries-loading.patch
Type: text/x-patch
Size: 10273 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161212/39f2c4af/attachment-0005.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-fdpic-add-support-to-return-to-thumb2-code-from-sign.patch
Type: text/x-patch
Size: 2673 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161212/39f2c4af/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-fdpic-Add-get_tls-syscall.patch
Type: text/x-patch
Size: 1430 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161212/39f2c4af/attachment-0007.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0007-fdpic-Add-tls-support-for-cortex-m-cpu-family.patch
Type: text/x-patch
Size: 894 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161212/39f2c4af/attachment-0008.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0008-fdpic-Workaround-to-fix-futex-bug-on-mmu-less.patch
Type: text/x-patch
Size: 3635 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161212/39f2c4af/attachment-0009.bin>

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox