devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Steffen Trumtrar <s.trumtrar@pengutronix.de>
To: Thor Thayer <tthayer.linux@gmail.com>
Cc: Alan Tull <delicious.quinoa@gmail.com>,
	Thor Thayer <tthayer@altera.com>,
	Rob Herring <robherring2@gmail.com>,
	pawel.moll@arm.com, Mark Rutland <mark.rutland@arm.com>,
	ijc+devicetree@hellion.org.uk, Kumar Gala <galak@codeaurora.org>,
	Rob Landley <rob@landley.net>,
	linux@arm.linux.org.uk, Dinh Nguyen <dinguyen@altera.com>,
	dougthompson@xmission.com, Grant Likely <grant.likely@linaro.org>,
	Borislav Petkov <bp@alien8.de>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org,
	Alan Tull <atull@altera.com>
Subject: Re: [PATCHv5 1/3] dts: socfpga: Add bindings for Altera SoC SDRAM controller
Date: Tue, 27 May 2014 09:11:57 +0200	[thread overview]
Message-ID: <20140527071157.GC20695@pengutronix.de> (raw)
In-Reply-To: <CAF03EBe+G8EpZSU7vhu4QZ3E-Nq4WnHw7DRM7=EyxHkjzp5cqg@mail.gmail.com>

On Wed, May 21, 2014 at 10:38:34AM -0500, Thor Thayer wrote:
> On Tue, May 20, 2014 at 9:44 AM, Steffen Trumtrar
> <s.trumtrar@pengutronix.de> wrote:
> > Hi!
> >
> > On Tue, May 20, 2014 at 09:31:06AM -0500, Alan Tull wrote:
> >> On Mon, May 19, 2014 at 2:37 PM, Thor Thayer <tthayer.linux@gmail.com> wrote:
> >>
> >> >>> >> diff --git a/Documentation/devicetree/bindings/arm/altera/socfpga-sdram.txt b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram.txt
> >> >>> >> new file mode 100644
> >> >>> >> index 0000000..8f8746b
> >> >>> >> --- /dev/null
> >> >>> >> +++ b/Documentation/devicetree/bindings/arm/altera/socfpga-sdram.txt
> >> >>> >> @@ -0,0 +1,11 @@
> >> >>> >> +Altera SOCFPGA SDRAM Controller
> >> >>> >> +
> >> >>> >> +Required properties:
> >> >>> >> +- compatible : "altr,sdr-ctl";
> >> >>> >> +- reg : Should contain 1 register ranges(address and length)
> >> >>> >> +
> >> >>> >> +Example:
> >> >>> >> +     sdrctl@ffc25000 {
> >> >>> >> +             compatible = "altr,sdr-ctl";
> >> >>> >> +             reg = <0xffc25000 0x1000>;
> >> >>> >> +     };
> >> >>> >> diff --git a/arch/arm/boot/dts/socfpga.dtsi b/arch/arm/boot/dts/socfpga.dtsi
> >> >>> >> index df43702..6ce912e 100644
> >> >>> >> --- a/arch/arm/boot/dts/socfpga.dtsi
> >> >>> >> +++ b/arch/arm/boot/dts/socfpga.dtsi
> >> >>> >> @@ -676,6 +676,11 @@
> >> >>> >>                       clocks = <&l4_sp_clk>;
> >> >>> >>               };
> >> >>> >>
> >> >>> >> +             sdrctl@ffc25000 {
> >> >>> >> +                     compatible = "altr,sdr-ctl", "syscon";
> >> >>> >                                                    ^^^^^^^^^^
> >> >>> >
> >> >>> > Get rid of that, too, please.
> >> >>>
> >> >>> Hi Steffan,
> >> >>>
> >> >>> I believe I need to keep the "syscon". The same register (ctrlcfg)
> >> >>> that has the ECC enable bitfield also includes the DRAM configuration
> >> >>> bitfields that other drivers will want to access (specifically the
> >> >>> FPGA bridge needs this information). Since this register will be
> >> >>> shared between drivers,  syscon seems like the best solution.
> >> >>>
> >> >>
> >> >> Hm, from looking at the documentation of the ctrlcfg I can't really
> >> >> understand which bits you would need for the FPGA brigde and why.
> >>
> >> Hi Steffen,
> >>
> >> Offset 0x80 in the sdr-ctl is the "fpgaportrst" register.  14 bits
> >> wide, defaults to 0.  When appropriate bits set to 1 in that reg, it
> >> allows an FPGA port to come out of reset (enables that port).  Has no
> >> other effect on SDRAM configuration.
> >>
> >> >> That all sounds like stuff you would want to set for the specific
> >> >> RAM you are dealing with on a specific board.
> >> >> What bridge are you talking about? The SDRAM bridge?
> >>
> >> Yes, the port allows the FPGA a direct path to the SDRAM.  This one
> >> register the only register in the sdr that the bridge driver needs.
> >>
> >
> > So, what I suggested down ...
> >
> >> >>
> >> >> I can see the problem with the ECC enable, though.
> >> >>
> >> >> Regards,
> >> >> Steffen
> >> >>
> >> >
> >> >>> >                 sdrctl@ffc25000 {
> >> >>> >                         compatible = "altr,sdr-ctl";
> >> >>> >                         reg = <0xffc25000 0x1000>;
> >> >>> >                         ranges;
> >> >>> >
> >> >>> >                         edac@ffc2502c {
> >> >>> >                                 compatible = "altr,sdram-edac";
> >> >>> >                                 reg = <0xffc2502c 0x50>;
> >> >>> >                                 interrupts = <0 39 4>;
> >> >>> >                         };
> >> >>> >                 };
> >> >>> >
> >> >>> > Then we can later add:
> >> >>> >
> >> >>> >                         sdr-ports: ports@ffc2507c {
> >> >>> >                                 #reset-cells = <1>;
> >> >>> >                                 compatible = "altr,sdr-ports";
> >> >>> >                                 reg = <0xffc2507c 0x10>;
> >> >>> >                                 clocks = <&ddr_dqs_clk>;
> >> >>> >                                 ...
> >> >>> >                         };
> >>
> >
> > ... here should work. No?! Just a simple driver that registers with the
> > reset-framework. I would add 0x7c to that driver and than that driver could
> > "configure" the port and let it out of reset.
> >
> > I have done the same thing for the other 3 bridges, but am not finished yet.
> > Especially the GPV-stuff needs to at least be able to be added later if not now.
> >

Hi Thor!

> I'm not clear on how the EDAC driver will interact with the registers
> allocated to the SDRAM controller. If the group of registers from
> 0xffc25000 to 0xffc26000 is exclusively allocated to the SDRAM
> controller, how does the EDAC driver cleanly access that single
> register inside this range?
> 

The compatible in the example is wrong. I didn't mean to map the whole address space
to some driver.
I think for the configuration register syscon is the right approach. It is a
bag of bits that don't necessitate an own driver, so syscon is perfect.

So, let me change my proposal to

	sdr-ctl: sdram@ffc25000 {
		compatible = "altr,sdr-ctl", "syscon";
		reg = <0xffc25000 0x1>;
	};

	edac: edac@ffc2502c {
		compatible = "altr,sdram-edac";
		reg = <0xffc2502c 0x50>;
		interrupts = <0 39 4>;
		config = <&sdr-ctl>;
		...
	};

	sdr-ports: ports@ffc2507c {
		compatible = "altr,sdr-ports";
		reg = <0xffc2507c 0x10>;
		clocks = <&ddr_dqs_clk>;
		...
	};

Maybe we can just skip the outer node that combines all the others.
So, if we do it like that, you can still use syscon, but only for the register
that needs it. And the EDAC definitely needs access to the config register, so
all is good.

> Is the solution that I don't use request_region() (and therefore not
> request exclusive access) when setting up the SDRAM controller?
> 
> If you could point me to your drivers for the other bridges that you
> reference, your code may answer my question.
>

The other bridges don't need access to any SDRAM controller registers and
I haven't even started to implement the GPV-stuff with the lw2hps-bridge :-(

Regards,
Steffen

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  reply	other threads:[~2014-05-27  7:11 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-15 16:04 Add EDAC support for Altera SoC SDRAM Controller tthayer
2014-05-15 16:04 ` [PATCHv5 1/3] dts: socfpga: Add bindings for Altera SoC SDRAM controller tthayer
2014-05-16  7:53   ` Steffen Trumtrar
2014-05-19 18:36     ` Thor Thayer
2014-05-19 19:12       ` Steffen Trumtrar
2014-05-19 19:37         ` Thor Thayer
2014-05-20 14:31           ` Alan Tull
2014-05-20 14:44             ` Steffen Trumtrar
2014-05-21 15:38               ` Thor Thayer
2014-05-27  7:11                 ` Steffen Trumtrar [this message]
2014-05-27 18:00                   ` Thor Thayer
2014-05-27 19:51                     ` Steffen Trumtrar
2014-05-27 19:12                   ` Alan Tull
2014-05-27 19:42                     ` Steffen Trumtrar
     [not found]                       ` <20140527194228.GB13172-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2014-05-27 20:57                         ` Alan Tull
2014-05-28  7:01                           ` Steffen Trumtrar
2014-05-28 14:38                             ` Alan Tull
2014-05-15 16:04 ` [PATCHv5 2/3] dts: socfpga: Add bindings for Altera SoC SDRAM EDAC tthayer
2014-05-15 16:04 ` [PATCHv5 3/3] edac: altera: Add EDAC support for Altera SoC SDRAM Controller tthayer
2014-05-26  9:57   ` Borislav Petkov
     [not found]     ` <20140526095730.GC25732-fF5Pk5pvG8Y@public.gmane.org>
2014-05-27 17:58       ` Thor Thayer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140527071157.GC20695@pengutronix.de \
    --to=s.trumtrar@pengutronix.de \
    --cc=atull@altera.com \
    --cc=bp@alien8.de \
    --cc=delicious.quinoa@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dinguyen@altera.com \
    --cc=dougthompson@xmission.com \
    --cc=galak@codeaurora.org \
    --cc=grant.likely@linaro.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=mark.rutland@arm.com \
    --cc=pawel.moll@arm.com \
    --cc=rob@landley.net \
    --cc=robherring2@gmail.com \
    --cc=tthayer.linux@gmail.com \
    --cc=tthayer@altera.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).