Re: [linux-sunxi] [ANNOUNCE] Allwinner releasing CedarX open source

2015-05-19 Thread Andreas Baierl

Hi Kevin,

Am 19.05.2015 um 02:44 schrieb ke...@allwinnertech.com:

Hi All,

We're proud to announce a new code release today for CedarX. Before 
delving

into the details, I'd like to share some context:

i'm glad to see, that AW tries to make a move in the right direction. 
Although steps are not finished.
1. As a growing company, we are doing our best to understand the needs 
of the

open source software community. This is a learning process. We're working
with different people across the Linux development community to better
understand best practices.

2. Open source software development is a collaborative process. It works
because people genuinely want to help others improve and be 
successful. Some
people are new and others help them learn the ropes over time. We hope 
that

this same positive feedback process can be applied to GPL.

With that context, here's an update on our CedarX code release (we welcome
constructive feedback!)

1. New code architecture. Driver has been split into several plugins, one
plugin per video format.
2. GPL-complaint. We have scanned and analyzed the code to ensure that 
there

is no GPL code used or called.
3. Partial CedarX video decoder source code release. MPEG2, MPEG4, 
MJPEG, and

H264 drivers source code available.

I wonder, if you guys have ever recognized 
http://linux-sunxi.org/VE_Register_guide or 
http://linux-sunxi.org/Cedrus from our community wiki.
Most of the registers, that are needed to make the VE (MPEG1/2/4, H264) 
work without the recent source code drop or the old binaries, are known 
already - figured out by reverse engineering.
So, i wonder, why there are still missing register descriptions. For 
example 
https://github.com/allwinner-zh/media-codec/blob/master/sunxi-cedarx/SOURCE/vdecoder/include/veregister.h#L193 
, which are known to deal with the maf deinterlacer.
We hope this is helpful to everyone. If not, please let us know how we 
can improve. Thanks!


Although it's fine and essential to try to resolve the GPL issues by 
publishing the source code, another step to help the open source 
community will be to complete the register documentation, we already 
know in most parts anyway. In addition, there are missing some 
schematics about what versions of the VE is used within which SoC and 
what registers are available or have been altered. The user manuals are 
in genreal a good resource when someone wants to figure out sth about 
the registers, but the Video Engine is sadly completely missing there...


Please also read the other thread 
https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg11469.html 
and think about the statements.


Best Regards,
kevin.z.m


Regards
Andreas


NOTICE: This e-mail and any included attachments are intended only for 
the sole use of named and intended recipient (s) only. If you are the 
named and intended recipient, please note that the information 
contained in this email and its embedded files are confidential and 
privileged. If you are neither the intended nor named recipient, you 
are hereby notified that any unauthorized review, use, disclosure, 
dissemination, distribution, or copying of this communication, or any 
of its contents, is strictly prohibited. Please reply to the sender 
and destroy the original message and all your records of this message 
(whether electronic or otherwise). Furthermore, you should not 
disclose to any other person, use, copy or disseminate the contents of 
this e-mail and/or the documents accompanying it. --
You received this message because you are subscribed to the Google 
Groups linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send 
an email to linux-sunxi+unsubscr...@googlegroups.com 
mailto:linux-sunxi+unsubscr...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v2 04/10] pinctrl: sunxi: Prepare for building SoC specific drivers as modules

2015-05-19 Thread Maxime Ripard
On Mon, May 18, 2015 at 11:32:31AM +0200, Jens Kuske wrote:
 Hi,
 
 On 05/17/15 16:19, Maxime Ripard wrote:
  On Fri, May 15, 2015 at 06:38:54PM +0200, Jens Kuske wrote:
  Add a remove function and export the init and remove function
  to allow us to build the SoC specific drivers as modules.
 
  Signed-off-by: Jens Kuske jensku...@gmail.com
  ---
   drivers/pinctrl/sunxi/pinctrl-sunxi.c | 25 +++--
   drivers/pinctrl/sunxi/pinctrl-sunxi.h |  2 ++
   2 files changed, 21 insertions(+), 6 deletions(-)
 
  diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c 
  b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  index f8e171b..4ef6b3d 100644
  --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  @@ -856,7 +856,6 @@ int sunxi_pinctrl_init(struct platform_device *pdev,
 struct sunxi_pinctrl *pctl;
 struct resource *res;
 int i, ret, last_pin;
  -  struct clk *clk;
   
 pctl = devm_kzalloc(pdev-dev, sizeof(*pctl), GFP_KERNEL);
 if (!pctl)
  @@ -954,13 +953,13 @@ int sunxi_pinctrl_init(struct platform_device *pdev,
 goto gpiochip_error;
 }
   
  -  clk = devm_clk_get(pdev-dev, NULL);
  -  if (IS_ERR(clk)) {
  -  ret = PTR_ERR(clk);
  +  pctl-clk = devm_clk_get(pdev-dev, NULL);
  +  if (IS_ERR(pctl-clk)) {
  +  ret = PTR_ERR(pctl-clk);
 goto gpiochip_error;
 }
   
  -  ret = clk_prepare_enable(clk);
  +  ret = clk_prepare_enable(pctl-clk);
 if (ret)
 goto gpiochip_error;
   
  @@ -1015,10 +1014,24 @@ int sunxi_pinctrl_init(struct platform_device 
  *pdev,
 return 0;
   
   clk_error:
  -  clk_disable_unprepare(clk);
  +  clk_disable_unprepare(pctl-clk);
   gpiochip_error:
 gpiochip_remove(pctl-chip);
   pinctrl_error:
 pinctrl_unregister(pctl-pctl_dev);
 return ret;
   }
  +EXPORT_SYMBOL(sunxi_pinctrl_init);
  +
  +int sunxi_pinctrl_remove(struct platform_device *pdev)
  +{
  +  struct sunxi_pinctrl *pctl = platform_get_drvdata(pdev);
  +
  +  gpiochip_remove(pctl-chip);
  +  pinctrl_unregister(pctl-pctl_dev);
  +
  +  clk_disable_unprepare(pctl-clk);
  
  We should also remove the domain and the interrupt mapping here.
 
 Ouch, I missed that. Only looked at the *_error: labels.
 
 Apart from that, currently the kernel panics some seconds after removing
 the pinctrl module because mmc wants to access a gpio. Can this be
 prevented somehow? I think pinctrl must not be removed once other
 devices use any pin-related things.

pinctrl_unregister doesn't look like it cares about whether or not
there's users left in the system.

Maybe the easiest path would be to just make this builtin like Paul
suggested then ... :/

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


signature.asc
Description: Digital signature


[linux-sunxi] Re: [PATCH v2 04/10] pinctrl: sunxi: Prepare for building SoC specific drivers as modules

2015-05-19 Thread Chen-Yu Tsai
On Tue, May 19, 2015 at 3:55 PM, Maxime Ripard
maxime.rip...@free-electrons.com wrote:
 On Mon, May 18, 2015 at 11:32:31AM +0200, Jens Kuske wrote:
 Hi,

 On 05/17/15 16:19, Maxime Ripard wrote:
  On Fri, May 15, 2015 at 06:38:54PM +0200, Jens Kuske wrote:
  Add a remove function and export the init and remove function
  to allow us to build the SoC specific drivers as modules.
 
  Signed-off-by: Jens Kuske jensku...@gmail.com
  ---
   drivers/pinctrl/sunxi/pinctrl-sunxi.c | 25 +++--
   drivers/pinctrl/sunxi/pinctrl-sunxi.h |  2 ++
   2 files changed, 21 insertions(+), 6 deletions(-)
 
  diff --git a/drivers/pinctrl/sunxi/pinctrl-sunxi.c 
  b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  index f8e171b..4ef6b3d 100644
  --- a/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  +++ b/drivers/pinctrl/sunxi/pinctrl-sunxi.c
  @@ -856,7 +856,6 @@ int sunxi_pinctrl_init(struct platform_device *pdev,
 struct sunxi_pinctrl *pctl;
 struct resource *res;
 int i, ret, last_pin;
  -  struct clk *clk;
 
 pctl = devm_kzalloc(pdev-dev, sizeof(*pctl), GFP_KERNEL);
 if (!pctl)
  @@ -954,13 +953,13 @@ int sunxi_pinctrl_init(struct platform_device *pdev,
 goto gpiochip_error;
 }
 
  -  clk = devm_clk_get(pdev-dev, NULL);
  -  if (IS_ERR(clk)) {
  -  ret = PTR_ERR(clk);
  +  pctl-clk = devm_clk_get(pdev-dev, NULL);
  +  if (IS_ERR(pctl-clk)) {
  +  ret = PTR_ERR(pctl-clk);
 goto gpiochip_error;
 }
 
  -  ret = clk_prepare_enable(clk);
  +  ret = clk_prepare_enable(pctl-clk);
 if (ret)
 goto gpiochip_error;
 
  @@ -1015,10 +1014,24 @@ int sunxi_pinctrl_init(struct platform_device 
  *pdev,
 return 0;
 
   clk_error:
  -  clk_disable_unprepare(clk);
  +  clk_disable_unprepare(pctl-clk);
   gpiochip_error:
 gpiochip_remove(pctl-chip);
   pinctrl_error:
 pinctrl_unregister(pctl-pctl_dev);
 return ret;
   }
  +EXPORT_SYMBOL(sunxi_pinctrl_init);
  +
  +int sunxi_pinctrl_remove(struct platform_device *pdev)
  +{
  +  struct sunxi_pinctrl *pctl = platform_get_drvdata(pdev);
  +
  +  gpiochip_remove(pctl-chip);
  +  pinctrl_unregister(pctl-pctl_dev);
  +
  +  clk_disable_unprepare(pctl-clk);
 
  We should also remove the domain and the interrupt mapping here.

 Ouch, I missed that. Only looked at the *_error: labels.

 Apart from that, currently the kernel panics some seconds after removing
 the pinctrl module because mmc wants to access a gpio. Can this be
 prevented somehow? I think pinctrl must not be removed once other
 devices use any pin-related things.

 pinctrl_unregister doesn't look like it cares about whether or not
 there's users left in the system.

 Maybe the easiest path would be to just make this builtin like Paul
 suggested then ... :/

Is there a way to mark modules as not removable? At least we can keep
the multi-platform kernel image small.

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v2 02/10] clk: sunxi: Add support for multiple parents to gates

2015-05-19 Thread Maxime Ripard
On Mon, May 18, 2015 at 11:11:34AM +0200, Jens Kuske wrote:
 Hi,
 
 On 05/17/15 14:50, Maxime Ripard wrote:
  Hi Jens,
  
  On Fri, May 15, 2015 at 06:38:52PM +0200, Jens Kuske wrote:
  Some newer sunxi SoCs (A83T, H3) don't have individual registers for
  AHB1, APB1 and APB2 gates anymore, but one big bus gates area where each
  gate can have a different parent.
 
  The current clock driver sets the same parent for all gates in a group.
  This commit adds a new parents field to the gates_data structure, which
  allows us to specify an array of parent indices for every single gate.
 
  Signed-off-by: Jens Kuske jensku...@gmail.com
  ---
   drivers/clk/sunxi/clk-sunxi.c | 12 +++-
   1 file changed, 11 insertions(+), 1 deletion(-)
 
  diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
  index 9a82f17..17cba4d 100644
  --- a/drivers/clk/sunxi/clk-sunxi.c
  +++ b/drivers/clk/sunxi/clk-sunxi.c
  @@ -898,6 +898,8 @@ static void __init sunxi_divider_clk_setup(struct 
  device_node *node,
   
   struct gates_data {
 DECLARE_BITMAP(mask, SUNXI_GATES_MAX_SIZE);
  +  /* If used, ARRAY_SIZE(parents) has to be = bitmap_weight(mask) */
  +  const u8 *parents;
   };
   
   static const struct gates_data sun4i_axi_gates_data __initconst = {
  @@ -1000,16 +1002,21 @@ static void __init sunxi_gates_clk_setup(struct 
  device_node *node,
  struct gates_data *data)
   {
 struct clk_onecell_data *clk_data;
  +  const char *parents[SUNXI_MAX_PARENTS];
 const char *clk_parent;
 const char *clk_name;
 void __iomem *reg;
  +  int npar = 0;
 int qty;
 int i = 0;
 int j = 0;
   
 reg = of_iomap(node, 0);
   
  -  clk_parent = of_clk_get_parent_name(node, 0);
  +  while (npar  SUNXI_MAX_PARENTS 
  + (parents[npar] = of_clk_get_parent_name(node, npar)) != NULL)
  +  npar++;
  +  clk_parent = parents[0];
   
 /* Worst-case size approximation and memory allocation */
 qty = find_last_bit(data-mask, SUNXI_GATES_MAX_SIZE);
  @@ -1026,6 +1033,9 @@ static void __init sunxi_gates_clk_setup(struct 
  device_node *node,
 of_property_read_string_index(node, clock-output-names,
   j, clk_name);
   
  +  if (data-parents  !WARN_ON(data-parents[j] = npar))
  +  clk_parent = parents[data-parents[j]];
  +
  
  I'm currently removing that code, so I was more expecting a new
  standalone driver for that clock.
 
 How do you want to replace that code? To me this looks like a good way
 to set up all the different gates sunxi has.

By using clock-indices and moving all this gate stuff out of clk-sunxi
and into a new driver.

It's done already, I just need to make sure everything works at it
used to on all the SoCs.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


signature.asc
Description: Digital signature


Re: [linux-sunxi] [ANNOUNCE] Allwinner releasing CedarX open source

2015-05-19 Thread Luc Verhaegen
On Tue, May 19, 2015 at 08:44:13AM +0800, ke...@allwinnertech.com wrote:
 Hi All,
 
 We're proud to announce a new code release today for CedarX. Before delving
 into the details, I'd like to share some context:
 
 1. As a growing company, we are doing our best to understand the needs of the
 open source software community. This is a learning process. We're working
 with different people across the Linux development community to better
 understand best practices.
 
 2. Open source software development is a collaborative process. It works
 because people genuinely want to help others improve and be successful. Some
 people are new and others help them learn the ropes over time. We hope that
 this same positive feedback process can be applied to GPL.
 
 With that context, here's an update on our CedarX code release (we welcome
 constructive feedback!)
 
 1. New code architecture. Driver has been split into several plugins, one
 plugin per video format.
 2. GPL-complaint. We have scanned and analyzed the code to ensure that there
 is no GPL code used or called.
 3. Partial CedarX video decoder source code release. MPEG2, MPEG4, MJPEG, and
 H264 drivers source code available.
 
 We hope this is helpful to everyone. If not, please let us know how we can
 improve. Thanks!

This is a good first step, not only to try to meet some legal 
obligations, but also to support Allwinners customers and the sunxi 
community.

But...

The choice of exactly those codecs for a first(?) release, the fact that 
you underline the use of a code scanner/analyzer, and then the fact that 
Allwinner chose to turn this into a modular design with codecs as 
modules... All that seems to hint at Allwinner intending to keep 
upcoming modules as binaries. If this happens, not only will that be 
another massive marketing setback for Allwinner, but we will push the 
legal limits hard and force a full release of the source code of all 
binaries that allwinner has released so far. As said countless times 
before, the LGPL applies to the whole of the binaries Allwinner released 
before, not just those codecs where LGPLed code was used.

Luc Verhaegen.

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread Hans de Goede

Hi,

On 19-05-15 12:56, sufi al hussaini hassani kamili raheemi wrote:

I have a board that's got A20 with Samsung's SDRAM 'K4B1G1646G BCK0'.

The problem I'm facing now is that I'm not able to get it to boot. I keep
getting the following on debug UART:

U-Boot SPL 2014.04-10706-g36080eb (Aug 19 2014 - 16:42:16)


That is a pretty old u-boot we're doing all sunxi u-boot development upstream 
now:

http://git.denx.de/?p=u-boot.git;a=summary

And we are detecting the most important DRAM parameters (like bus-width) 
automatically
now. The only thing you need to set really is the clock-speed. So I think that
giving upstream u-boot a try on your board is a good idea.

Regards,

Hans




DRAM:Timeout initialising DRAM

resetting ...

 (Repeats infinitely)


I suspected that the (old) '[dram_para]' in my FEX file was causing this,
as it was configured for 'K4B4G1646D' (which is widely used).
So, I edited the FEX file based on the info I could gather from the SDRAM's
datasheet. It now looks like this:


[dram_para]
dram_baseaddr = 0x4000
dram_clk = 384
dram_type = 3
dram_rank_num = 1
dram_chip_density = 1024
dram_io_width = 16
dram_bus_width = 32
dram_cas = 9
dram_zq = 0x7f
dram_odt_en = 0
dram_size = 256
dram_tpr0 = 0x42d899b7
dram_tpr1 = 0xa090
dram_tpr2 = 0x22a00
dram_tpr3 = 0x0
dram_tpr4 = 0x0
dram_tpr5 = 0x0
dram_emr1 = 0x4
dram_emr2 = 0x10
dram_emr3 = 0x0

I tried booting with this but to no avail. The problem persists (same
error).

I looked for ways to get the DRAM info directly from the hardware and found
meminfo in sunxi tools.
I was able to compile (and run) it (on a A20 based commercial board), but I
just can't figure out how to get it running on my board.

Now, I'm confused- whether just setting the correct values in my FEX would
suffice or would I have to rebuild U-Boot.
I would appreciate if someone could point me in the right direction to
solve this problem.

Thanks.



--
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: Request for detaild for GSL1680 driver for porting to Linux x86_64 kernel on baytrail 3735f platform

2015-05-19 Thread sergk . admin
The problem is that there is usually NOAndroid kernel for device, for 
example Chuwi vi8 super with its plarform (vendor) drivers and platform 
initial settings.
Actually I have found of the way how to detect corresponding gpio pin but 
it is manual (scripted + manual) guessing (enumerating).
Moreover from kenel to kernel this is different gpio pin number. I still 
could not fix it how to immediately find out which exactly pin inside 
Z3735F architecture is used and how to find out it's number in any linux 
kernelю
Currently - I just enumerating all on concrete linux kernel and for each 
kernel finding out its number - :( this is ridiculous but its works!

Regards, 
   Serge.

On Tuesday, May 19, 2015 at 10:58:21 AM UTC+3, Henrik Nordström wrote:

 fre 2015-05-15 klockan 18:40 -0400 skrev jons...@gmail.com javascript:: 
  Another way - hook up JTAG. Use boundary scan to toggle the pins. That 
  will tell you the pin number. Look up the pin number and figure out 
  the GPIO. 

 Or look at the source of the Android kernel running on the device for 
 any hints. 

 Regards 
 Henrik 





-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: New firmware for GSL1680

2015-05-19 Thread sergk . admin
Thank you for make it clear.

;-) Lets transform this knowledge into practical result! 


I have successfully compiled i2c-tools for x86 Android.
So, what is the exact command line to grab all loaded into GSL 1680 chip 
firmware?

i2cbus or i2cget? and how to use it , How via this toolset I could 
enumerate all 256 chunks of 128 bytes using information that chip resides 
on 0x40 I2c adress, dev is /dev/i2c-3, Page register is 0xF0 (8 bit too, so 
holds 256 addresses) and registers that store current 128 chunk are 
0x00-0x7F

Cheers, 
   Serge.

On Tuesday, May 19, 2015 at 1:48:14 PM UTC+3, Michal Suchanek wrote:

 On 19 May 2015 at 12:36,  sergk...@gmail.com javascript: wrote: 
  On Tuesday, May 19, 2015 at 12:53:43 PM UTC+3, Michal Suchanek wrote: 
  That's one page of the configuration which is 128 bytes or 32 integers. 
  Writing the page register gives access (read or write) to different 
 pages. 
  So one blob might have multiple such pages or the firmware can be 
  composed of multiple pages stored in multiple blobs 
  
  
  Still not clear - where does stored these blobs? 
  
  0x00-0x7F = 128 items 128 * x =1 byte registers. So physically chip 
 could 
  reside only 128 byte. 
  0xF0: PAGE register. Contains the memory page number currently mapped in 
 the 
  0x00-0x7F registers. 
  
  
  What is logic of these  Page register and 0x00-0x7F registers? 
  
  Am I right that firmware is loaded into ram splitted by 128 byte pages 
 and 
  0xF0 register contains a set of adressed in RAM of such 128 byte chunks? 

 Yes, that's what the datasheet says. F0 stores a page number and each 
 page has different set of registers to map to 00-7F. The chip has more 
 memory than can be accessible through i2c at any given time due to the 
 i2c 1 byte address limit so it uses paging to make more data 
 accessible. 

 Thanks 

 Michal 


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread sufi al hussaini hassani kamili raheemi
Thanks for the guidance @Hans. 
I'm trying to build Mainline U-Boot http://linux-sunxi.org/Mainline_U-boot 
now. 
Will post my progress here.

On Tuesday, May 19, 2015 at 2:56:30 PM UTC+4, sufi al hussaini hassani 
kamili raheemi wrote:

 I have a board that's got A20 with Samsung's SDRAM 'K4B1G1646G BCK0'. 

 The problem I'm facing now is that I'm not able to get it to boot. I keep 
 getting the following on debug UART:

 U-Boot SPL 2014.04-10706-g36080eb (Aug 19 2014 - 16:42:16)
 DRAM:Timeout initialising DRAM

 resetting ...

  (Repeats infinitely)


 I suspected that the (old) '[dram_para]' in my FEX file was causing this, 
 as it was configured for 'K4B4G1646D' (which is widely used).
 So, I edited the FEX file based on the info I could gather from the 
 SDRAM's datasheet. It now looks like this:


 [dram_para]
 dram_baseaddr = 0x4000
 dram_clk = 384
 dram_type = 3
 dram_rank_num = 1
 dram_chip_density = 1024
 dram_io_width = 16
 dram_bus_width = 32
 dram_cas = 9
 dram_zq = 0x7f
 dram_odt_en = 0
 dram_size = 256
 dram_tpr0 = 0x42d899b7
 dram_tpr1 = 0xa090
 dram_tpr2 = 0x22a00
 dram_tpr3 = 0x0
 dram_tpr4 = 0x0
 dram_tpr5 = 0x0
 dram_emr1 = 0x4
 dram_emr2 = 0x10
 dram_emr3 = 0x0

 I tried booting with this but to no avail. The problem persists (same 
 error).

 I looked for ways to get the DRAM info directly from the hardware and 
 found meminfo in sunxi tools. 
 I was able to compile (and run) it (on a A20 based commercial board), but 
 I just can't figure out how to get it running on my board.

 Now, I'm confused- whether just setting the correct values in my FEX would 
 suffice or would I have to rebuild U-Boot.
 I would appreciate if someone could point me in the right direction to 
 solve this problem. 

 Thanks.


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: New firmware for GSL1680

2015-05-19 Thread Michal Suchanek
On 19 May 2015 at 11:39,  sergk.ad...@gmail.com wrote:
 Sorry but your post makes it more weird.
 According https://linux-sunxi.org/GSL1680 page GSL1680 controller stores
 Firmware in 0x00-0x7F: these registers are used to load portions of the
 firmware
 This is only 128 8bit = 1byte registers.
 So main question is - does this registers = 128 1 byte registers store the
 whole firmware?

That's one page of the configuration which is 128 bytes or 32 integers.

Writing the page register gives access (read or write) to different pages.

So one blob might have multiple such pages or the firmware can be
composed of multiple pages stored in multiple blobs. Also there is
nothing stopping the driver writing the registers again after sending
the blob patching/adjusting some values or leaving them out from the
blob and sending them separately.


 What is the logic of working of controller chip with firmware?

 For example = why when I am loading firmware Silead.fw taken from my tablet
 from Windows 8.1  with ported Sergio Costas user space driver for GSL1680 I
 could not get correct feedback (coordinates that are read from 0x84-0x87
 ) for my 1280x800 touch? I have response for all but not 1280x800, acrtually
 weird coordinates like 1725x1120 or something close.

The logic is  that with the chip configurable you can save on PCB
design because you can design traces as convenient and configure which
trace connects where in firmware. The obvious result is that without
correct configuration the chip is useless so dumb non-configurable
chips are a win when dealing with non-cooperative vendors.

Thanks

Michal

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: New firmware for GSL1680

2015-05-19 Thread sergk . admin
On Tuesday, May 19, 2015 at 12:53:43 PM UTC+3, Michal Suchanek wrote:
That's one page of the configuration which is 128 bytes or 32 integers. 
Writing the page register gives access (read or write) to different pages. 
So one blob might have multiple such pages or the firmware can be 
composed of multiple pages stored in multiple blobs


Still not clear - where does stored these blobs?

0x00-0x7F = 128 items 128 * x =1 byte registers. So physically chip could 
reside only 128 byte.
0xF0: PAGE register. Contains the memory page number currently mapped in 
the 0x00-0x7F registers. 


What is logic of these  Page register and 0x00-0x7F registers?

Am I right that firmware is loaded into ram splitted by 128 byte pages and 
0xF0 register contains a set of adressed in RAM of such 128 byte chunks?


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: New firmware for GSL1680

2015-05-19 Thread Michal Suchanek
On 19 May 2015 at 12:36,  sergk.ad...@gmail.com wrote:
 On Tuesday, May 19, 2015 at 12:53:43 PM UTC+3, Michal Suchanek wrote:
 That's one page of the configuration which is 128 bytes or 32 integers.
 Writing the page register gives access (read or write) to different pages.
 So one blob might have multiple such pages or the firmware can be
 composed of multiple pages stored in multiple blobs


 Still not clear - where does stored these blobs?

 0x00-0x7F = 128 items 128 * x =1 byte registers. So physically chip could
 reside only 128 byte.
 0xF0: PAGE register. Contains the memory page number currently mapped in the
 0x00-0x7F registers.


 What is logic of these  Page register and 0x00-0x7F registers?

 Am I right that firmware is loaded into ram splitted by 128 byte pages and
 0xF0 register contains a set of adressed in RAM of such 128 byte chunks?

Yes, that's what the datasheet says. F0 stores a page number and each
page has different set of registers to map to 00-7F. The chip has more
memory than can be accessible through i2c at any given time due to the
i2c 1 byte address limit so it uses paging to make more data
accessible.

Thanks

Michal

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] [ANNOUNCE] Allwinner releasing CedarX open source

2015-05-19 Thread Manuel Braga
On Tue, 19 May 2015 08:44:13 +0800 ke...@allwinnertech.com
ke...@allwinnertech.com wrote:
 3. Partial CedarX video decoder source code release. MPEG2, MPEG4,
 MJPEG, and H264 drivers source code available.

And for the others codecs, what are allwinner plans?
Should we expect for them to also be released, and which and in what
time frame should be this expected to happen?

This would be a very useful information to have, because this would help
us decide if we also have to reverse engineering h265, or only wait for
your release.
As h265 is the next much wished codec to have, is certain it will be
reversed engineered if allwinner takes too long.

Don't forget that, VP8 decoding, h264 encoding, jpeg encoding, was
also successful reversed engineered.
This is only to tell that, it is hardware documentation that we are
interested in, not the software in the form of your cedarx library.




 
 We hope this is helpful to everyone. If not, please let us know how
 we can improve. Thanks!

In the socs datasheets, in the video engine features description, it has
as feature alpha bending. Can we have more information what is mean by
this.

I tried my guess by poking random isp subengine registers but only we
could find is at the wiki page.
http://linux-sunxi.org/VE_Register_guide#ISP_Engine_Registers

If this is what it appears to be, then this would be very useful for
subtitles/osd, because if the bending can occur in the video engine,
then this is optimal in the performance point of view.

-- 
Manuel Braga

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v2 07/10] pinctrl: sunxi: Add H3 PIO controller support

2015-05-19 Thread Linus Walleij
On Fri, May 15, 2015 at 6:38 PM, Jens Kuske jensku...@gmail.com wrote:

 The H3 uses the same pin controller as previous SoC's from Allwinner.
 Add support for the pins controlled by the main PIO controller.

 Signed-off-by: Jens Kuske jensku...@gmail.com

Waiting for Maxime's ACKs on these patches before merging.

Yours,
Linus Walleij

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] [ANNOUNCE] Allwinner releasing CedarX open source

2015-05-19 Thread Sergey Lapin
 1. New code architecture. Driver has been split into several plugins, one
 plugin per video format.
 2. GPL-complaint. We have scanned and analyzed the code to ensure that
 there
 is no GPL code used or called.
 3. Partial CedarX video decoder source code release. MPEG2, MPEG4, MJPEG,
 and
 H264 drivers source code available.


Thanks a lot, guys, for your hard work! Ayeee, I'm dancing in circles!

Looking forward for next steps.


 We hope this is helpful to everyone. If not, please let us know how we can
 improve. Thanks!

  --
  Best Regards,
 kevin.z.m


  NOTICE: This e-mail and any included attachments are intended only for
 the sole use of named and intended recipient (s) only. If you are the named
 and intended recipient, please note that the information contained in this
 email and its embedded files are confidential and privileged. If you are
 neither the intended nor named recipient, you are hereby notified that any
 unauthorized review, use, disclosure, dissemination, distribution, or
 copying of this communication, or any of its contents, is strictly
 prohibited. Please reply to the sender and destroy the original message and
 all your records of this message (whether electronic or otherwise).
 Furthermore, you should not disclose to any other person, use, copy or
 disseminate the contents of this e-mail and/or the documents accompanying
 it.

 --
 You received this message because you are subscribed to the Google Groups
 linux-sunxi group.
 To unsubscribe from this group and stop receiving emails from it, send an
 email to linux-sunxi+unsubscr...@googlegroups.com.
 For more options, visit https://groups.google.com/d/optout.


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread sufi al hussaini hassani kamili raheemi
Has anyone tried this specific DRAM (Samsung's SDRAM 'K4B1G1646G BCK0')?
I was wondering if someone could provide me with '[dram_para]' for the FEX 
file for this specific RAM.

Thanks.

On Tuesday, May 19, 2015 at 2:56:30 PM UTC+4, sufi al hussaini hassani 
kamili raheemi wrote:

 I have a board that's got A20 with Samsung's SDRAM 'K4B1G1646G BCK0'. 

 The problem I'm facing now is that I'm not able to get it to boot. I keep 
 getting the following on debug UART:

 U-Boot SPL 2014.04-10706-g36080eb (Aug 19 2014 - 16:42:16)
 DRAM:Timeout initialising DRAM

 resetting ...

  (Repeats infinitely)


 I suspected that the (old) '[dram_para]' in my FEX file was causing this, 
 as it was configured for 'K4B4G1646D' (which is widely used).
 So, I edited the FEX file based on the info I could gather from the 
 SDRAM's datasheet. It now looks like this:


 [dram_para]
 dram_baseaddr = 0x4000
 dram_clk = 384
 dram_type = 3
 dram_rank_num = 1
 dram_chip_density = 1024
 dram_io_width = 16
 dram_bus_width = 32
 dram_cas = 9
 dram_zq = 0x7f
 dram_odt_en = 0
 dram_size = 256
 dram_tpr0 = 0x42d899b7
 dram_tpr1 = 0xa090
 dram_tpr2 = 0x22a00
 dram_tpr3 = 0x0
 dram_tpr4 = 0x0
 dram_tpr5 = 0x0
 dram_emr1 = 0x4
 dram_emr2 = 0x10
 dram_emr3 = 0x0

 I tried booting with this but to no avail. The problem persists (same 
 error).

 I looked for ways to get the DRAM info directly from the hardware and 
 found meminfo in sunxi tools. 
 I was able to compile (and run) it (on a A20 based commercial board), but 
 I just can't figure out how to get it running on my board.

 Now, I'm confused- whether just setting the correct values in my FEX would 
 suffice or would I have to rebuild U-Boot.
 I would appreciate if someone could point me in the right direction to 
 solve this problem. 

 Thanks.


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v2 07/10] pinctrl: sunxi: Add H3 PIO controller support

2015-05-19 Thread Maxime Ripard
On Tue, May 19, 2015 at 04:04:58PM +0200, Linus Walleij wrote:
 On Fri, May 15, 2015 at 6:38 PM, Jens Kuske jensku...@gmail.com wrote:
 
  The H3 uses the same pin controller as previous SoC's from Allwinner.
  Add support for the pins controlled by the main PIO controller.
 
  Signed-off-by: Jens Kuske jensku...@gmail.com
 
 Waiting for Maxime's ACKs on these patches before merging.

There's still the modules issue being debated on another patch of this
serie, so there will probably be a v3 of these patches.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


signature.asc
Description: Digital signature


Re: [linux-sunxi] [ANNOUNCE] Allwinner releasing CedarX open source

2015-05-19 Thread Manuel Braga
On Tue, 19 May 2015 08:44:13 +0800 ke...@allwinnertech.com
ke...@allwinnertech.com wrote:
 2. Open source software development is a collaborative process. It
 works because people genuinely want to help others improve and be
 successful. Some people are new and others help them learn the ropes
 over time. We hope that this same positive feedback process can be
 applied to GPL.
 

I am sorry, but i find curious the reference here to the GPL license.

In order of Some people are new and others help them learn the ropes
over time., i will try to explain.


This, have nothing to do with any particular license.
The GPL license is only the most known and used copyleft license, and
by being so, is the license that is more talked about. And by this, it
happened to be the license(LGPL) involved in ours license issues.
It would happened with any other license, the problems are the existence
of the issues by itself.

The key point here, is that the existence of the issues is a
disrespect towards the developers that wrote those same software source
code, and in some cases did without paid and in their free time.

And is not with license issues that allwinner or any other will
attract the contribution of open source developers.

-- 
Manuel Braga

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread sufi al hussaini hassani kamili raheemi
I tried building mainline u-boot as you suggested @Hans. Here's what I did 
(please bear with me):

Compiled u-boot (natively on olimex A20-micro):
(Installed dtc first)

 git clone git://git.denx.de/u-boot.git
 make A20-OLinuXino_MICRO_defconfig
 make



Wrote the bootloader files to an SD card using:
 sudo dd if=~/u-boot/u-boot.bin of=/dev/disk2 bs=1024 seek=32 
 sudo dd if=~/u-boot/spl/sunxi-spl.bin of=/dev/disk2 bs=1024 seek=8



However, I still (sadly) get the same error.
U-Boot SPL 2015.07-rc1-00255-g0e6b7a2 (May 19 2015 - 16:55:13)

DRAM:Timeout initialising DRAM

As seen above, this is a recent U-Boot version, so I'm guessing I did 
compile the U-Boot alright.
But, the problem persists and I've run out of ideas. 

Any other suggestions? 
Could there be any other reason (apart from DRAM parameters) that could be 
causing this?

Thanks and regards,
Shoaib.

On Tuesday, May 19, 2015 at 2:56:30 PM UTC+4, sufi al hussaini hassani 
kamili raheemi wrote:

 I have a board that's got A20 with Samsung's SDRAM 'K4B1G1646G BCK0'. 

 The problem I'm facing now is that I'm not able to get it to boot. I keep 
 getting the following on debug UART:

 U-Boot SPL 2014.04-10706-g36080eb (Aug 19 2014 - 16:42:16)
 DRAM:Timeout initialising DRAM

 resetting ...

  (Repeats infinitely)


 I suspected that the (old) '[dram_para]' in my FEX file was causing this, 
 as it was configured for 'K4B4G1646D' (which is widely used).
 So, I edited the FEX file based on the info I could gather from the 
 SDRAM's datasheet. It now looks like this:


 [dram_para]
 dram_baseaddr = 0x4000
 dram_clk = 384
 dram_type = 3
 dram_rank_num = 1
 dram_chip_density = 1024
 dram_io_width = 16
 dram_bus_width = 32
 dram_cas = 9
 dram_zq = 0x7f
 dram_odt_en = 0
 dram_size = 256
 dram_tpr0 = 0x42d899b7
 dram_tpr1 = 0xa090
 dram_tpr2 = 0x22a00
 dram_tpr3 = 0x0
 dram_tpr4 = 0x0
 dram_tpr5 = 0x0
 dram_emr1 = 0x4
 dram_emr2 = 0x10
 dram_emr3 = 0x0

 I tried booting with this but to no avail. The problem persists (same 
 error).

 I looked for ways to get the DRAM info directly from the hardware and 
 found meminfo in sunxi tools. 
 I was able to compile (and run) it (on a A20 based commercial board), but 
 I just can't figure out how to get it running on my board.

 Now, I'm confused- whether just setting the correct values in my FEX would 
 suffice or would I have to rebuild U-Boot.
 I would appreciate if someone could point me in the right direction to 
 solve this problem. 

 Thanks.


-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[linux-sunxi] Re: [PATCH v2 04/10] pinctrl: sunxi: Prepare for building SoC specific drivers as modules

2015-05-19 Thread Linus Walleij
On Tue, May 19, 2015 at 9:55 AM, Maxime Ripard
maxime.rip...@free-electrons.com wrote:

 Apart from that, currently the kernel panics some seconds after removing
 the pinctrl module because mmc wants to access a gpio. Can this be
 prevented somehow? I think pinctrl must not be removed once other
 devices use any pin-related things.

 pinctrl_unregister doesn't look like it cares about whether or not
 there's users left in the system.

Both GPIO and pinctrl has this problem, Johan Hovold has been
looking at fixing the GPIO side of things.

Patches welcome.

Yours,
Linus Walleij

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread Siarhei Siamashka
On Tue, 19 May 2015 08:20:24 -0700 (PDT)
sufi al hussaini hassani kamili raheemi sufialhussa...@gmail.com
wrote:

 Has anyone tried this specific DRAM (Samsung's SDRAM 'K4B1G1646G BCK0')?

Regarding the has anyone tried part of the question, this particular
DDR3 chip does not seem to be very popular, according to the information
from http://linux-sunxi.org/DDR3

However this should not be a problem and DRAM should work just fine.
Assuming that the board itself is not defective.

 I was wondering if someone could provide me with '[dram_para]' for the FEX 
 file for this specific RAM.

The FEX file is not used by U-Boot at all. All the DRAM parameters are
configured in the U-Boot defconfig files. And this is explained at:

http://linux-sunxi.org/Mainline_U-boot#DRAM_Settings

The http://linux-sunxi.org/Fex_Guide#SDRAM section probably needs to
be adjusted and explicitly say that you don't want to touch this stuff
unless using the Allwinner's boot0 bootloader and/or livesuit.

If there is some other part of the wiki with misleading information,
please let us know.

-- 
Best regards,
Siarhei Siamashka

 
 Thanks.
 
 On Tuesday, May 19, 2015 at 2:56:30 PM UTC+4, sufi al hussaini hassani 
 kamili raheemi wrote:
 
  I have a board that's got A20 with Samsung's SDRAM 'K4B1G1646G BCK0'. 
 
  The problem I'm facing now is that I'm not able to get it to boot. I keep 
  getting the following on debug UART:
 
  U-Boot SPL 2014.04-10706-g36080eb (Aug 19 2014 - 16:42:16)
  DRAM:Timeout initialising DRAM
 
  resetting ...
 
   (Repeats infinitely)
 
 
  I suspected that the (old) '[dram_para]' in my FEX file was causing this, 
  as it was configured for 'K4B4G1646D' (which is widely used).
  So, I edited the FEX file based on the info I could gather from the 
  SDRAM's datasheet. It now looks like this:
 
 
  [dram_para]
  dram_baseaddr = 0x4000
  dram_clk = 384
  dram_type = 3
  dram_rank_num = 1
  dram_chip_density = 1024
  dram_io_width = 16
  dram_bus_width = 32
  dram_cas = 9
  dram_zq = 0x7f
  dram_odt_en = 0
  dram_size = 256
  dram_tpr0 = 0x42d899b7
  dram_tpr1 = 0xa090
  dram_tpr2 = 0x22a00
  dram_tpr3 = 0x0
  dram_tpr4 = 0x0
  dram_tpr5 = 0x0
  dram_emr1 = 0x4
  dram_emr2 = 0x10
  dram_emr3 = 0x0
 
  I tried booting with this but to no avail. The problem persists (same 
  error).
 
  I looked for ways to get the DRAM info directly from the hardware and 
  found meminfo in sunxi tools. 
  I was able to compile (and run) it (on a A20 based commercial board), but 
  I just can't figure out how to get it running on my board.
 
  Now, I'm confused- whether just setting the correct values in my FEX would 
  suffice or would I have to rebuild U-Boot.
  I would appreciate if someone could point me in the right direction to 
  solve this problem. 
 
  Thanks.
 

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [linux-sunxi] Re: A20 with Samsung's SDRAM 'K4B1G1646G BCK0'

2015-05-19 Thread Siarhei Siamashka
On Tue, 19 May 2015 07:57:19 -0700 (PDT)
sufi al hussaini hassani kamili raheemi sufialhussa...@gmail.com
wrote:

 I tried building mainline u-boot as you suggested @Hans. Here's what I did 
 (please bear with me):
 
 Compiled u-boot (natively on olimex A20-micro):
 (Installed dtc first)
 
  git clone git://git.denx.de/u-boot.git
  make A20-OLinuXino_MICRO_defconfig
  make

So you have an A20-OLinuXino_MICRO board, which is working fine. That's
very good. Using it you can learn quite a lot about the Allwinner
hardware in general.

And this experience should help with the other boards.

 Wrote the bootloader files to an SD card using:
  sudo dd if=~/u-boot/u-boot.bin of=/dev/disk2 bs=1024 seek=32 
  sudo dd if=~/u-boot/spl/sunxi-spl.bin of=/dev/disk2 bs=1024 seek=8

 However, I still (sadly) get the same error.
 U-Boot SPL 2015.07-rc1-00255-g0e6b7a2 (May 19 2015 - 16:55:13)
 
 DRAM:Timeout initialising DRAM

 As seen above, this is a recent U-Boot version, so I'm guessing I did 
 compile the U-Boot alright.

Your U-Boot is configured for the A20-OLinuXino_MICRO board. Does
the A20-OLinuXino_MICRO board boot fine with this new freshly compiled
mainline U-Boot?

Using the A20-OLinuXino_MICRO config for a different Allwinner based
board may lead to unpredictable results. Each board has its own
defconfig file for a reason. You need to provide a proper defconfig
file for your board. To help people to succeed in this task, there
is a guide about bringing up new and previously unsupported devices:

   http://linux-sunxi.org/New_Device_howto

 But, the problem persists and I've run out of ideas. 
 
 Any other suggestions? 
 Could there be any other reason (apart from DRAM parameters) that could be 
 causing this?

Based on the Timeout initialising DRAM error message, this is often
encountered when you have configured U-Boot for the wrong SoC type.
Is your board really using specifically the *A20* SoC?

And as an extra experiment, you may also try:

https://github.com/ssvb/sunxi-bootsetup/releases/tag/20141215-sunxi-bootsetup-prototype
If your board is really A10, A10s or A20 (and the hardware is not
defective), then you may successfully boot it with this SD card image.

-- 
Best regards,
Siarhei Siamashka

-- 
You received this message because you are subscribed to the Google Groups 
linux-sunxi group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.