Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-22 Thread Timur Tabi
On Tue, Sep 17, 2013 at 10:59 AM, York Sun york...@freescale.com wrote:
 I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.

Sadly, no such thing exists.  There is no generic DDR controller for
ARM.  I'm working on DDR controller support for our ARM chips, and
it's nowhere near as elegant as Freescale's PowerPC parts.  In our
case, we have firmware running in the chip that does DDR
initialization and then loads u-boot.bin from a SPI flash into DDR,
and then it boots the main processor.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-22 Thread Timur Tabi
On Thu, Sep 19, 2013 at 3:57 PM, Tom Rini tr...@ti.com wrote:

 Thinking back, as a rule of thumb, PowerPC has SPD I2C data
 available, usually.  That's not the rule for ARM.  One of a few choices
 happen:

Even if you do have SPD on your ARM chip, that's still no guarantee
that you can program the DDR controller properly.  On our chips, we
have to have a table of 300+ for each frequency that we support, and
the SPD only lets us tweak a few registers to account for different
size DIMMs.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-22 Thread Wolfgang Denk
Dear Timur,

In message caozdjxvdf7z7ya8p4nkybp1wj1cnmts736cetrnp_9yqygq...@mail.gmail.com 
you wrote:
 On Tue, Sep 17, 2013 at 10:59 AM, York Sun york...@freescale.com wrote:
  I am wondering if there is generic
  DDR driver used by many ARM platforms, like the one we have for
  powerpc/mpc85xx SoCs.
 
 Sadly, no such thing exists.  There is no generic DDR controller for
 ARM.  I'm working on DDR controller support for our ARM chips, and
 it's nowhere near as elegant as Freescale's PowerPC parts.  In our

MPC85xx is just one family of processors.  And I don't think you
really want to claim that all Freescale's PowerPC processors use the
same memory controller?  Try and compare the memory controllers (and
the required initialization sequences) for just a selection of
MPC8xx, MPC82xx, MPC83xx, MPC85xx.

And even if some parts use the same IP block, usually the register
interfaces to it are sufficiently different to make common code a
challenge at least (compare MPC5121 and MPC5125).

Yes, some of the later modes share more common IP blocks, but PowerPC
is in no way better than ARM in this respect - the difference is only,
that there are way more different ARM SoCs than there ver have been
PPC ones, so the problems become more visible.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
A man is not complete until he is married -- then he is finished.
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-20 Thread Mj Embd
Hi York,

I was thinking about your problem and this could be a solution
mpc85xx uses a family of ddr controllers.
I believe they would be migrated to LayerScape,

Freescale has also i.mx4/5/6 series and coming i.mx8, that series
uses/might use another ddr controller

Option1
As you suggested which looks a worthy option.
 ddr/fsl/contoller1/ --- for 85xx
 ddr/fsl/contoller2/ --- for I.mx

in your board config file, you might want to use
 CONFIG_DDR_CONTROLLER_MPC85xx
or CONFIG_DDR_CONTROLLER_IMX

PS: I see no direct relation between ddr controller and core, also
freescale is going core agnostic so I think the ddr controller be moved
from cpu folder to driver/ddr folder.

-Regards
mj


On Fri, Sep 20, 2013 at 3:19 AM, York Sun york...@freescale.com wrote:

 On 09/19/2013 02:33 PM, Tom Rini wrote:
  On 09/19/2013 05:08 PM, York Sun wrote:
  On 09/19/2013 01:57 PM, Tom Rini wrote:
  On Tue, Sep 17, 2013 at 08:59:24AM -0700, York Sun wrote:
 
  Albert,
 
  Pardon me if this is a dumb question. I have been working on
  powerpc platforms in the past. Now we (the developers I work
  with) are exploring ARM cores. I am searching how memory is
  initialized and found different solutions. Some platforms have
  memory ready before u-boot even starts, some simply write to a
  set of registers. I understand many platforms don't share the
  IP of DDR controller. I am wondering if there is generic DDR
  driver used by many ARM platforms, like the one we have for
  powerpc/mpc85xx SoCs.
 
  Thinking back, as a rule of thumb, PowerPC has SPD I2C data
  available, usually.  That's not the rule for ARM.  One of a few
  choices happen: 1) ROM sets up DDR. 2) U-Boot/SPL sets up the DDR
  controller.
 
 
  So for ARM platforms, the majority don't have the flexibility of
  using different DIMMs and/or clocks?
 
  It's a different world.  Again, thinking back to the PowerPC boards
  I've seen, they had regular DDR sockets.  Most ARM boards don't.
  You can design your board with whatever, and I know in prototyping
  folks make do swapping chips in and out (and if you look at the omap
  code, you can see where we have code to calculate the timing values
  and print them, or use provided hard-coded values).

 Understood. We may have boards with DIMM slots. I do see value of a
 fully functional DDR driver here.

 
  The problem is that the DDR controller is usually
  vendor-specific. Perhaps the flip-side here is that there's not
  so much a generic DDR driver for mpc85xx but simply one vendor
  for mpc85xx.  Taking arch/powerpc/cpu/mpc85xx/ddr-gen3.c as what
  you're talking about,
  arch/arm/cpu/armv7/omap-common/emif-common.c would be an
  ARM-world example (the 'EMIF' is found on a large variety of TI
  parts, not just omap ones).
 
  Does it make sense to share the Freescale DDR driver across ARM
  and Powerpc? Or does it make more sense to selectively copy the
  mpc8xxx DDR driver to Freescale ARM subfolder to start with. If the
  similarity sustains then we merge them into common driver. If not,
  we maintain two separated drivers.
 
  For those who is not familiar with, Freescale is extending products
  to ARM cores. I am expecting peripherals stay relatively close, so
  many driver can be reused.
 
  I've been wondering when this would start to be visible.  If we are
  able to share the DDR controller code between mpc85xx and the ARM
  stuff you're talking about, we'll have to sort out someplace within
  drivers/ to place it, to avoid #include nightmares I suspect.  Other
  drivers should be easier to share at least :)
 

 I did a quick and dirty hack yesterday to move DDR driver to
 drivers/ddr/fsl. I had to change many #include asm/.

 York



 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot




-- 
-mj
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread York Sun
On 09/19/2013 01:57 PM, Tom Rini wrote:
 On Tue, Sep 17, 2013 at 08:59:24AM -0700, York Sun wrote:
 
 Albert,

 Pardon me if this is a dumb question. I have been working on powerpc
 platforms in the past. Now we (the developers I work with) are exploring
 ARM cores. I am searching how memory is initialized and found different
 solutions. Some platforms have memory ready before u-boot even starts,
 some simply write to a set of registers. I understand many platforms
 don't share the IP of DDR controller. I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.
 
 Thinking back, as a rule of thumb, PowerPC has SPD I2C data
 available, usually.  That's not the rule for ARM.  One of a few choices
 happen:
 1) ROM sets up DDR.
 2) U-Boot/SPL sets up the DDR controller.
 

So for ARM platforms, the majority don't have the flexibility of using
different DIMMs and/or clocks?

 The problem is that the DDR controller is usually vendor-specific.
 Perhaps the flip-side here is that there's not so much a generic DDR
 driver for mpc85xx but simply one vendor for mpc85xx.  Taking
 arch/powerpc/cpu/mpc85xx/ddr-gen3.c as what you're talking about,
 arch/arm/cpu/armv7/omap-common/emif-common.c would be an ARM-world
 example (the 'EMIF' is found on a large variety of TI parts, not just
 omap ones).

Does it make sense to share the Freescale DDR driver across ARM and
Powerpc? Or does it make more sense to selectively copy the mpc8xxx DDR
driver to Freescale ARM subfolder to start with. If the similarity
sustains then we merge them into common driver. If not, we maintain two
separated drivers.

For those who is not familiar with, Freescale is extending products to
ARM cores. I am expecting peripherals stay relatively close, so many
driver can be reused.

York



___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread Tom Rini
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 09/19/2013 05:08 PM, York Sun wrote:
 On 09/19/2013 01:57 PM, Tom Rini wrote:
 On Tue, Sep 17, 2013 at 08:59:24AM -0700, York Sun wrote:
 
 Albert,
 
 Pardon me if this is a dumb question. I have been working on
 powerpc platforms in the past. Now we (the developers I work
 with) are exploring ARM cores. I am searching how memory is
 initialized and found different solutions. Some platforms have
 memory ready before u-boot even starts, some simply write to a
 set of registers. I understand many platforms don't share the
 IP of DDR controller. I am wondering if there is generic DDR
 driver used by many ARM platforms, like the one we have for 
 powerpc/mpc85xx SoCs.
 
 Thinking back, as a rule of thumb, PowerPC has SPD I2C data 
 available, usually.  That's not the rule for ARM.  One of a few
 choices happen: 1) ROM sets up DDR. 2) U-Boot/SPL sets up the DDR
 controller.
 
 
 So for ARM platforms, the majority don't have the flexibility of
 using different DIMMs and/or clocks?

It's a different world.  Again, thinking back to the PowerPC boards
I've seen, they had regular DDR sockets.  Most ARM boards don't.
You can design your board with whatever, and I know in prototyping
folks make do swapping chips in and out (and if you look at the omap
code, you can see where we have code to calculate the timing values
and print them, or use provided hard-coded values).

 The problem is that the DDR controller is usually
 vendor-specific. Perhaps the flip-side here is that there's not
 so much a generic DDR driver for mpc85xx but simply one vendor
 for mpc85xx.  Taking arch/powerpc/cpu/mpc85xx/ddr-gen3.c as what
 you're talking about, 
 arch/arm/cpu/armv7/omap-common/emif-common.c would be an
 ARM-world example (the 'EMIF' is found on a large variety of TI
 parts, not just omap ones).
 
 Does it make sense to share the Freescale DDR driver across ARM
 and Powerpc? Or does it make more sense to selectively copy the
 mpc8xxx DDR driver to Freescale ARM subfolder to start with. If the
 similarity sustains then we merge them into common driver. If not,
 we maintain two separated drivers.
 
 For those who is not familiar with, Freescale is extending products
 to ARM cores. I am expecting peripherals stay relatively close, so
 many driver can be reused.

I've been wondering when this would start to be visible.  If we are
able to share the DDR controller code between mpc85xx and the ARM
stuff you're talking about, we'll have to sort out someplace within
drivers/ to place it, to avoid #include nightmares I suspect.  Other
drivers should be easier to share at least :)

- -- 
Tom
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQIcBAEBAgAGBQJSO22RAAoJENk4IS6UOR1WhJYQALM/XAMzPMMH4WJD8PkO7DqJ
HB3WI2oopdm096Bfe8ZT2MPpuEm6OuIb/5HjacED0XxfCHT59NVxIo5tI51IEbqH
74k3LtvTMgADqVw092H3LsFFIJWPd0MsWCDian+NuAp8g03PK9eDOgczQujYflm/
cs6En1hYp+QolbxdHxpQ0HKwNxzA+bkT6JGzF2ziutp8P+wTHh5ypjtFCwF8h4cG
IrGAhePYPHXZzCZYGRPWD0CXthcizXCuRCpykflEGpUsTOR0Cd/2UT0jBFh3aUCU
jalrVG/LjhUWqO+IEzAhOtML4Z84oFLQQ5EBmwAOnt+ql6sxk2+L8kxEMWUzaE23
EppRrT7HDHI/Uc7ogeJP5JNjiYGmmp0dLhqIK3vIJ8pAyenj8TcOW2q0Y7eCrItN
UPJNrYGLKXHC1f5OpfMSJG33lNRJY2oSI+D2ELENMtXBiC9y3nb8Lqar7GjJ6VQq
BJcEbCNUT1IVqvCP/OsYKhtssqHdKYmjfSd9oOHonhwmZTqEyVh08/U1LIfIiYfa
7lody/RNVvnbUKjlojiBR6upJbfGC6YJSDQUzy02zf4gPNF01Q1rXO5fT6vfIa1z
YVM5yV4MJ8F0Phma2uOk25NLgRmDcXeL4LCvpOOQUi3+ymMqMarmZwRdThARsBKh
1tFCkl3LA01CtGdZCzBI
=INiu
-END PGP SIGNATURE-
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread Wolfgang Denk
Dear York Sun,

In message 523b67d2.2050...@freescale.com you wrote:

 So for ARM platforms, the majority don't have the flexibility of using
 different DIMMs and/or clocks?

The majority of ARM systems are embedded designs which never use any
kind of DIMM, but raw soldered-on RAM chips.

 Does it make sense to share the Freescale DDR driver across ARM and
 Powerpc? Or does it make more sense to selectively copy the mpc8xxx DDR
 driver to Freescale ARM subfolder to start with. If the similarity

You are probably in a beter position to answer that than us - how many
ARM systems are there around that use the same memory controller as
the MPC8xxx?

 For those who is not familiar with, Freescale is extending products to
 ARM cores. I am expecting peripherals stay relatively close, so many
 driver can be reused.

Well, I'm not sure which exact products you might have in mind here,
but from what we've seen so far with the i.MX2x (and mxs), i.MX3x,
iMX5x and i.MX6 systems, there are commnon IP blocks like the FEC, but
so far I haven't seen this with the memory controller.

And I haven't seen any single FSL ARM board in our lab yet that was
using any kind ot DIMM or such.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
In Christianity neither morality nor religion come into contact with
reality at any point.  - Friedrich Nietzsche
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread York Sun
On 09/19/2013 02:39 PM, Wolfgang Denk wrote:
 Dear York Sun,
 
 In message 523b67d2.2050...@freescale.com you wrote:

 So for ARM platforms, the majority don't have the flexibility of using
 different DIMMs and/or clocks?
 
 The majority of ARM systems are embedded designs which never use any
 kind of DIMM, but raw soldered-on RAM chips.

That explains a lot.

 
 Does it make sense to share the Freescale DDR driver across ARM and
 Powerpc? Or does it make more sense to selectively copy the mpc8xxx DDR
 driver to Freescale ARM subfolder to start with. If the similarity
 
 You are probably in a beter position to answer that than us - how many
 ARM systems are there around that use the same memory controller as
 the MPC8xxx?

Zero as far as I know. But this is changing and this is why I brought it
up. I don't want to maintain two set of drivers if not necessary.

 
 For those who is not familiar with, Freescale is extending products to
 ARM cores. I am expecting peripherals stay relatively close, so many
 driver can be reused.
 
 Well, I'm not sure which exact products you might have in mind here,
 but from what we've seen so far with the i.MX2x (and mxs), i.MX3x,
 iMX5x and i.MX6 systems, there are commnon IP blocks like the FEC, but
 so far I haven't seen this with the memory controller.

I hope I am not revealing a secret. :)
It has been announced that new SoCs are coming. It is still too early.
But I am preparing software for it.

 
 And I haven't seen any single FSL ARM board in our lab yet that was
 using any kind ot DIMM or such.
 
Thanks for confirmation. I will let you know once I learn what the board
will look like (not very soon).

York




___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread York Sun
On 09/19/2013 02:33 PM, Tom Rini wrote:
 On 09/19/2013 05:08 PM, York Sun wrote:
 On 09/19/2013 01:57 PM, Tom Rini wrote:
 On Tue, Sep 17, 2013 at 08:59:24AM -0700, York Sun wrote:

 Albert,

 Pardon me if this is a dumb question. I have been working on
 powerpc platforms in the past. Now we (the developers I work
 with) are exploring ARM cores. I am searching how memory is
 initialized and found different solutions. Some platforms have
 memory ready before u-boot even starts, some simply write to a
 set of registers. I understand many platforms don't share the
 IP of DDR controller. I am wondering if there is generic DDR
 driver used by many ARM platforms, like the one we have for 
 powerpc/mpc85xx SoCs.

 Thinking back, as a rule of thumb, PowerPC has SPD I2C data 
 available, usually.  That's not the rule for ARM.  One of a few
 choices happen: 1) ROM sets up DDR. 2) U-Boot/SPL sets up the DDR
 controller.

 
 So for ARM platforms, the majority don't have the flexibility of
 using different DIMMs and/or clocks?
 
 It's a different world.  Again, thinking back to the PowerPC boards
 I've seen, they had regular DDR sockets.  Most ARM boards don't.
 You can design your board with whatever, and I know in prototyping
 folks make do swapping chips in and out (and if you look at the omap
 code, you can see where we have code to calculate the timing values
 and print them, or use provided hard-coded values).

Understood. We may have boards with DIMM slots. I do see value of a
fully functional DDR driver here.

 
 The problem is that the DDR controller is usually
 vendor-specific. Perhaps the flip-side here is that there's not
 so much a generic DDR driver for mpc85xx but simply one vendor
 for mpc85xx.  Taking arch/powerpc/cpu/mpc85xx/ddr-gen3.c as what
 you're talking about, 
 arch/arm/cpu/armv7/omap-common/emif-common.c would be an
 ARM-world example (the 'EMIF' is found on a large variety of TI
 parts, not just omap ones).
 
 Does it make sense to share the Freescale DDR driver across ARM
 and Powerpc? Or does it make more sense to selectively copy the
 mpc8xxx DDR driver to Freescale ARM subfolder to start with. If the
 similarity sustains then we merge them into common driver. If not,
 we maintain two separated drivers.
 
 For those who is not familiar with, Freescale is extending products
 to ARM cores. I am expecting peripherals stay relatively close, so
 many driver can be reused.
 
 I've been wondering when this would start to be visible.  If we are
 able to share the DDR controller code between mpc85xx and the ARM
 stuff you're talking about, we'll have to sort out someplace within
 drivers/ to place it, to avoid #include nightmares I suspect.  Other
 drivers should be easier to share at least :)
 

I did a quick and dirty hack yesterday to move DDR driver to
drivers/ddr/fsl. I had to change many #include asm/.

York



___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-19 Thread Tom Rini
On Tue, Sep 17, 2013 at 08:59:24AM -0700, York Sun wrote:

 Albert,
 
 Pardon me if this is a dumb question. I have been working on powerpc
 platforms in the past. Now we (the developers I work with) are exploring
 ARM cores. I am searching how memory is initialized and found different
 solutions. Some platforms have memory ready before u-boot even starts,
 some simply write to a set of registers. I understand many platforms
 don't share the IP of DDR controller. I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.

Thinking back, as a rule of thumb, PowerPC has SPD I2C data
available, usually.  That's not the rule for ARM.  One of a few choices
happen:
1) ROM sets up DDR.
2) U-Boot/SPL sets up the DDR controller.

The problem is that the DDR controller is usually vendor-specific.
Perhaps the flip-side here is that there's not so much a generic DDR
driver for mpc85xx but simply one vendor for mpc85xx.  Taking
arch/powerpc/cpu/mpc85xx/ddr-gen3.c as what you're talking about,
arch/arm/cpu/armv7/omap-common/emif-common.c would be an ARM-world
example (the 'EMIF' is found on a large variety of TI parts, not just
omap ones).

 
 Regards,
 
 York
 
 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot

-- 
Tom


signature.asc
Description: Digital signature
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] How do ARM platform initialize DDR?

2013-09-17 Thread York Sun
Albert,

Pardon me if this is a dumb question. I have been working on powerpc
platforms in the past. Now we (the developers I work with) are exploring
ARM cores. I am searching how memory is initialized and found different
solutions. Some platforms have memory ready before u-boot even starts,
some simply write to a set of registers. I understand many platforms
don't share the IP of DDR controller. I am wondering if there is generic
DDR driver used by many ARM platforms, like the one we have for
powerpc/mpc85xx SoCs.

Regards,

York

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-17 Thread MJ embd
Hi York,

There is no generic driver. AFAIK. Having worked on both mpc85xx and ARM

I can tell you about samsung 5250. There are 2 uboots (one spl and other main).
In case of sd/mmc boot the internal rom copies the spl uboot to iRAM
and the spl boot loader initialises the DDR3.

you can check for board/samsung/smdk5250/dmc_init_ddr3.c

-Regards
mj

On 9/17/13, York Sun york...@freescale.com wrote:
 Albert,

 Pardon me if this is a dumb question. I have been working on powerpc
 platforms in the past. Now we (the developers I work with) are exploring
 ARM cores. I am searching how memory is initialized and found different
 solutions. Some platforms have memory ready before u-boot even starts,
 some simply write to a set of registers. I understand many platforms
 don't share the IP of DDR controller. I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.

 Regards,

 York

 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot



-- 
-mj
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-17 Thread York Sun
Dear MJ,

Thanks for your reply.

I don't see the file in my copy. Probably it is not merged yet?
Anyway, you just confirmed what I found so far. Do you use static
setting in dmc_init_ddr3.c? I mean does it adapt to different DDR speeds
and modules (if applicable)?

In my mind, I am thinking to restructure arch/powerpc/cpu/mpc8xxx/ddr/
to driver/ddr/fsl/ so the same driver can be shared as far as the DDR IP
is the same (or similar).

York


On 09/17/2013 09:34 AM, MJ embd wrote:
 Hi York,
 
 There is no generic driver. AFAIK. Having worked on both mpc85xx and ARM
 
 I can tell you about samsung 5250. There are 2 uboots (one spl and other 
 main).
 In case of sd/mmc boot the internal rom copies the spl uboot to iRAM
 and the spl boot loader initialises the DDR3.
 
 you can check for board/samsung/smdk5250/dmc_init_ddr3.c
 
 -Regards
 mj
 
 On 9/17/13, York Sun york...@freescale.com wrote:
 Albert,

 Pardon me if this is a dumb question. I have been working on powerpc
 platforms in the past. Now we (the developers I work with) are exploring
 ARM cores. I am searching how memory is initialized and found different
 solutions. Some platforms have memory ready before u-boot even starts,
 some simply write to a set of registers. I understand many platforms
 don't share the IP of DDR controller. I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.

 Regards,

 York

 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot

 
 


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-17 Thread MJ embd
yes, I am using uboot for arndale board.
The code is written by samsung only and it is not static.

The best option would be to have an eth / serial driver kind of arch
which all soc vendors can share. But ddr is scattered, in absence of
that, your point seems valid for fsl specific.

-mj

On 9/17/13, York Sun york...@freescale.com wrote:
 Dear MJ,

 Thanks for your reply.

 I don't see the file in my copy. Probably it is not merged yet?
 Anyway, you just confirmed what I found so far. Do you use static
 setting in dmc_init_ddr3.c? I mean does it adapt to different DDR speeds
 and modules (if applicable)?

 In my mind, I am thinking to restructure arch/powerpc/cpu/mpc8xxx/ddr/
 to driver/ddr/fsl/ so the same driver can be shared as far as the DDR IP
 is the same (or similar).

 York


 On 09/17/2013 09:34 AM, MJ embd wrote:
 Hi York,

 There is no generic driver. AFAIK. Having worked on both mpc85xx and ARM

 I can tell you about samsung 5250. There are 2 uboots (one spl and other
 main).
 In case of sd/mmc boot the internal rom copies the spl uboot to iRAM
 and the spl boot loader initialises the DDR3.

 you can check for board/samsung/smdk5250/dmc_init_ddr3.c

 -Regards
 mj

 On 9/17/13, York Sun york...@freescale.com wrote:
 Albert,

 Pardon me if this is a dumb question. I have been working on powerpc
 platforms in the past. Now we (the developers I work with) are exploring
 ARM cores. I am searching how memory is initialized and found different
 solutions. Some platforms have memory ready before u-boot even starts,
 some simply write to a set of registers. I understand many platforms
 don't share the IP of DDR controller. I am wondering if there is generic
 DDR driver used by many ARM platforms, like the one we have for
 powerpc/mpc85xx SoCs.

 Regards,

 York

 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot








-- 
-mj
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


Re: [U-Boot] How do ARM platform initialize DDR?

2013-09-17 Thread Sharma Bhupesh-B45370
Adding Vipin to the thread as he has better knowledge on this than me.
Vipin can you please add your comments here as well..

As far as I can remember for the ARM based SPEAr SoCs on which we worked in the 
past:

- At the moment the DDR initialization code for various ARM SoCs in u-boot is 
scattered
  across ARCH directories:

See examples of SPEAr (based on ARM926ejs) [1] and OMAP4 (ARmv7) [2] 
DDR drivers.

- There is no unified driver model in place for DDR driver similar to what is 
available for eth/serial
  drivers and we need to formulate a DDR model (something using the suggested 
framework in [3]) so
  that the same DDR driver can be shared across PPC and ARM SoCs.

References:

[1] SPEAr DDR drivers for Denali MPMC - 

http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/arm926ejs/spear/start.S;h=7dbd5dbf99e8c6e216cc50e789ec7f103e0ecaea;hb=HEAD#l105

http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/arm926ejs/spear/spl.c;h=b550404352b8c04f2e5d5d71df41c750c07ab1a8;hb=HEAD#l69

http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/arm926ejs/spear/spr600_mt47h128m8_3_266_cl5_async.c;h=cc45ab7016b1658eceb545c959bb1b59f33c06c7;hb=HEAD#l12

[2] OMAP4 Elpida DDR drivers - 

http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/armv7/omap4/sdram_elpida.c;h=67a79261f778c6afab3d0e3870eac1e18cff8411;hb=HEAD

http://git.denx.de/?p=u-boot.git;a=blob;f=arch/arm/cpu/armv7/omap4/emif.c;h=e89032be75dc916891ccfd70c66e19c4b7b38839;hb=HEAD

[3] UDM-cores.txt - 

http://git.denx.de/?p=u-boot.git;a=blob;f=doc/driver-model/UDM-cores.txt;h=4e1318871a8d9f7f6f329800d6394158e42f85dd;hb=HEAD


Regards,
Bhupesh


 -Original Message-
 From: u-boot-boun...@lists.denx.de [mailto:u-boot-boun...@lists.denx.de]
 On Behalf Of MJ embd
 Sent: Tuesday, September 17, 2013 10:37 PM
 To: sun york-R58495
 Cc: u-boot@lists.denx.de
 Subject: Re: [U-Boot] How do ARM platform initialize DDR?
 
 yes, I am using uboot for arndale board.
 The code is written by samsung only and it is not static.
 
 The best option would be to have an eth / serial driver kind of arch
 which all soc vendors can share. But ddr is scattered, in absence of
 that, your point seems valid for fsl specific.
 
 -mj
 
 On 9/17/13, York Sun york...@freescale.com wrote:
  Dear MJ,
 
  Thanks for your reply.
 
  I don't see the file in my copy. Probably it is not merged yet?
  Anyway, you just confirmed what I found so far. Do you use static
  setting in dmc_init_ddr3.c? I mean does it adapt to different DDR
  speeds and modules (if applicable)?
 
  In my mind, I am thinking to restructure arch/powerpc/cpu/mpc8xxx/ddr/
  to driver/ddr/fsl/ so the same driver can be shared as far as the DDR
  IP is the same (or similar).
 
  York
 
 
  On 09/17/2013 09:34 AM, MJ embd wrote:
  Hi York,
 
  There is no generic driver. AFAIK. Having worked on both mpc85xx and
  ARM
 
  I can tell you about samsung 5250. There are 2 uboots (one spl and
  other main).
  In case of sd/mmc boot the internal rom copies the spl uboot to iRAM
  and the spl boot loader initialises the DDR3.
 
  you can check for board/samsung/smdk5250/dmc_init_ddr3.c
 
  -Regards
  mj
 
  On 9/17/13, York Sun york...@freescale.com wrote:
  Albert,
 
  Pardon me if this is a dumb question. I have been working on powerpc
  platforms in the past. Now we (the developers I work with) are
  exploring ARM cores. I am searching how memory is initialized and
  found different solutions. Some platforms have memory ready before
  u-boot even starts, some simply write to a set of registers. I
  understand many platforms don't share the IP of DDR controller. I am
  wondering if there is generic DDR driver used by many ARM platforms,
  like the one we have for powerpc/mpc85xx SoCs.
 
  Regards,
 
  York
 
  ___
  U-Boot mailing list
  U-Boot@lists.denx.de
  http://lists.denx.de/mailman/listinfo/u-boot
 
 
 
 
 
 
 
 
 --
 -mj
 ___
 U-Boot mailing list
 U-Boot@lists.denx.de
 http://lists.denx.de/mailman/listinfo/u-boot


___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot