Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On 09/29/2014 12:09 AM, Siarhei Siamashka wrote: On Sun, 28 Sep 2014 21:34:57 +0200 Arnd Gronenberg a...@gronenberg.com wrote: On 09/28/2014 05:58 PM, Hans de Goede wrote: [...] On 09/18/2014 06:07 PM, Siarhei Siamashka wrote: Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html I have a revision A board. My Olimex A10 OLinuXino Lime is also labelled Rev. A... It is running stable at 1008MHz and I just tried Olivers djpeg test without any problems. I'm running Hans' u-boot-sunxi 2014.10-rc1-g7190869 and Linux mainline 3.17.0-rc1-00158-g451fd72. Thanks for trying the test and sharing the results. You are extending our sample set from 2 boards to 3 (by the whole 50%) :-) But could you please check whether you really have libjpeg-turbo (with NEON optimizations) and not libjpeg from IJG? I did mention libjpeg-turbo a few times in my original e-mail, however somehow failed to communicate that it is strictly required to reproduce the problem. Sorry about this. One of the commenters in the old discussion thread already fell into this trap :-( Later I provided a script for automating everything by using a ruby script. The script performs downloading and compiling the right libjpeg-turbo and then runs tests for all cpufreq operating points. But since the mainline kernel does not have cpufreq support yet, this script will not help us here (and is not really needed). Anyway, please check whether you have libjpeg-turbo by running djpeg -v command. If your distro happens to have IJG libjpeg instead of libjpeg-turbo, then you can download and compile libjpeg-turbo from sources (it is quite a small package and does not require any dependencies). After that, you can run the test as demonstrated in the examples below. Output from djpeg -v : libjpeg-turbo version 1.3.1 (build 20140403) Copyright (C) 1991-2012 Thomas G. Lane, Guido Vollbeding Copyright (C) 1999-2006 MIYASAKA Masaru Copyright (C) 2009 Pierre Ossman for Cendio AB Copyright (C) 2009-2014 D. R. Commander Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies) Emulating The Independent JPEG Group's software, version 8d 15-Jan-2012 My results from A10-Lime revision A with the sunxi-3.4 kernel and u-boot v2014.10-rc2: $ djpeg -v libjpeg-turbo version 1.3.0 (build 20130811) $ cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg $ while true ; do djpeg A10-LIME.jpg | md5sum ; done bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - 6047ca65e1412dd3f53b250239e4558b - bf66d2bd1a88c5720b0dc8d8ece43099 - 9d8eb11018cca04f70883c6ed9ddb9c6 - 7d2a4baa11e7015e2b8ae5717fce699b - 513bd48bcd3a67705324ec8658646e7d - f61c7c8f42b86ede28d48dfb350efd64 - 50a3b1ea14994d19a66238f2414d9f5c - 674f968fe8d7c79b2f7116c94b2fb02c - bf66d2bd1a88c5720b0dc8d8ece43099 - b57efa7bb81263a93f69fcbbbd06d590 - d1627d8fd02f54e0154fcced72be637b - ab92721819073d0fb4dd2a7a67afb0fc - 79cf9706c29c19b9325d3e04f34b5059 - bf66d2bd1a88c5720b0dc8d8ece43099 - 9ba81185fd5ed48277cc590fdb323955 - d43cdb0215bae6de33b7921b20c5545f - d1ef0584fdff38c84a7d24a32fde4de9 - 1cef1e0202605a93870279f23d93287f - f7fd0ae6b3beda26f61c2be566224ac3 - c346e833833f9b35093be336cadbcbc2 - 02c6e7e19882f438e5a9123a0d3e7ea2 - b9d788d94a469b3bad20a997a039ce88 - 8545180d6384a6319fbf672052d61549 - 455b8da5c39b21b5104c12b6d02e9ff8 - 670df0c3bf6becf5e4378e336d193f45 - 07e922c9510d9d75f701317ada24d1f9 - 8cdae0aa48061da5c45ac81159bdac53 - 4f3b47ad5603f7253c0a4b13a61987a5 - 02f6175d5fb8672e69c7e433451b5dbc - 1440adb6576c6d02cf05c31b3c2c2b7c - 618a736628096581dfd2d5421e061235 - 2a791022a39f7e8d57efa50cd801007b - 44d2e8dd4a205d3aadcfc25a446fe06e - 72e2d96eb5e0ea987763cfaa1f3ca0a5 - 4f4c11e23f09f2923f925e6bb0a88deb - f6ce3826e0e91ca75fbca378f21a6a72 - 6d2c6ac6eb8c96cad5b19e3287192802 - 8db6a3c5fb031317eb352110261e23fd - And results with the mainline kernel and u-boot v2014.10-rc2: $ djpeg -v libjpeg-turbo version 1.3.0 (build 20130811) $ cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg $ while true ; do djpeg A10-LIME.jpg | md5sum ; done bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 -
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
Hi, On 09/18/2014 06:07 PM, Siarhei Siamashka wrote: On Sun, 27 Jul 2014 23:25:21 +0200 Hans de Goede hdego...@redhat.com wrote: Add support for boards which I own and which already have a dts file in the upstream kernel. Hi Hans, It's good to know that you have all this hardware and can take care of maintaining it. With maintaining being the key word here, I don't have the time to extensively test things on all these different boards, but I do have them around to test things if some board specific issues pop up. Signed-off-by: Henrik Nordstrom hen...@henriknordstrom.net Signed-off-by: Stefan Roese s...@denx.de Signed-off-by: Hans de Goede hdego...@redhat.com --- board/sunxi/Makefile| 6 ++ board/sunxi/dram_a10_olinuxino_l.c | 31 +++ board/sunxi/dram_sun4i_360_1024_iow16.c | 31 +++ board/sunxi/dram_sun4i_360_1024_iow8.c | 31 +++ board/sunxi/dram_sun4i_360_512.c| 31 +++ board/sunxi/dram_sun4i_384_1024_iow8.c | 31 +++ boards.cfg | 6 ++ 7 files changed, 167 insertions(+) create mode 100644 board/sunxi/dram_a10_olinuxino_l.c create mode 100644 board/sunxi/dram_sun4i_360_1024_iow16.c create mode 100644 board/sunxi/dram_sun4i_360_1024_iow8.c create mode 100644 board/sunxi/dram_sun4i_360_512.c create mode 100644 board/sunxi/dram_sun4i_384_1024_iow8.c diff --git a/board/sunxi/Makefile b/board/sunxi/Makefile index 03f55cc..b1db5d9 100644 --- a/board/sunxi/Makefile +++ b/board/sunxi/Makefile @@ -11,8 +11,14 @@ obj-y += board.o obj-$(CONFIG_SUNXI_GMAC)+= gmac.o obj-$(CONFIG_SUNXI_AHCI)+= ahci.o +obj-$(CONFIG_A10_OLINUXINO_L) += dram_a10_olinuxino_l.o Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html I have a revision A board. A bunch of revision C boards were all fine in Oliver's tests. And nobody has ever tested revision B so far, so we have no idea whether it is stable or not. A mysterious thing is that the Olimex representatives on IRC were not aware of any fixes of this kind applied to the PCB. My understanding is that the revision A was just a small pre-production batch, donated by OLIMEX to a number of open source developers. Some of these boards were distributed at FOSDEM. I'm not sure if we should really worry about the reliability of the revision A, because none of the 'normal' customers probably have such boards. We only need to clarify the status of revision B. But if we want to support the revision A too, then it probably needs its own config, which would somehow restrict the CPU clock speed. My revision A was actually ordered normally, a couple of days before the first batch sold-out. So it is likely that the entire first batch was revision A. Do you have any easy step-by-step document (or ready to use sdcard image to download) to do some stress tests on my revision A ? Maybe the first couple handed out to developers where hand soldered or some such ? Either way it would be good to either confirm that my revision A has the same issues, or not :) obj-$(CONFIG_A13_OLINUXINOM)+= dram_a13_oli_micro.o +obj-$(CONFIG_BA10_TV_BOX) += dram_sun4i_384_1024_iow8.o obj-$(CONFIG_CUBIEBOARD)+= dram_cubieboard.o obj-$(CONFIG_CUBIEBOARD2) += dram_cubieboard2.o obj-$(CONFIG_CUBIETRUCK)+= dram_cubietruck.o +obj-$(CONFIG_MELE_A1000)+= dram_sun4i_360_512.o +obj-$(CONFIG_MELE_A1000G) += dram_sun4i_360_1024_iow8.o +obj-$(CONFIG_MINI_X)+= dram_sun4i_360_512.o +obj-$(CONFIG_MINI_X_1GB)+= dram_sun4i_360_1024_iow16.o obj-$(CONFIG_R7DONGLE) += dram_r7dongle.o diff --git a/board/sunxi/dram_a10_olinuxino_l.c b/board/sunxi/dram_a10_olinuxino_l.c new file mode 100644 index 000..24a1bd9 --- /dev/null +++ b/board/sunxi/dram_a10_olinuxino_l.c @@ -0,0 +1,31 @@ +/* this file is generated, don't edit it yourself */ + +#include common.h +#include asm/arch/dram.h + +static struct dram_para dram_para = { +.clock = 480, +.type = 3, +.rank_num = 1, +.density = 4096, +.io_width = 16, +.bus_width = 16, +.cas = 6, The CAS=6 is not quite right for the 480MHz DRAM clock speed if we are dealing with the typical DDR3 chips, with the timings mostly representing the standard JEDEC speed bins. CAS=6 is good up to 400MHz. CAS=7 is good up to 533MHz. And CAS=9 is good up to 667MHz. +.zq = 123, +.odt_en = 0, +.size = 512, +.tpr0 = 0x30926692, +.tpr1 = 0x1090, +.tpr2 = 0x1a0c8, The .tpr0/.tpr1/.tpr2 settings here are simply using the default reset
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On Sun, 28 Sep 2014 21:34:57 +0200 Arnd Gronenberg a...@gronenberg.com wrote: On 09/28/2014 05:58 PM, Hans de Goede wrote: [...] On 09/18/2014 06:07 PM, Siarhei Siamashka wrote: Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html I have a revision A board. My Olimex A10 OLinuXino Lime is also labelled Rev. A... It is running stable at 1008MHz and I just tried Olivers djpeg test without any problems. I'm running Hans' u-boot-sunxi 2014.10-rc1-g7190869 and Linux mainline 3.17.0-rc1-00158-g451fd72. Thanks for trying the test and sharing the results. You are extending our sample set from 2 boards to 3 (by the whole 50%) :-) But could you please check whether you really have libjpeg-turbo (with NEON optimizations) and not libjpeg from IJG? I did mention libjpeg-turbo a few times in my original e-mail, however somehow failed to communicate that it is strictly required to reproduce the problem. Sorry about this. One of the commenters in the old discussion thread already fell into this trap :-( Later I provided a script for automating everything by using a ruby script. The script performs downloading and compiling the right libjpeg-turbo and then runs tests for all cpufreq operating points. But since the mainline kernel does not have cpufreq support yet, this script will not help us here (and is not really needed). Anyway, please check whether you have libjpeg-turbo by running djpeg -v command. If your distro happens to have IJG libjpeg instead of libjpeg-turbo, then you can download and compile libjpeg-turbo from sources (it is quite a small package and does not require any dependencies). After that, you can run the test as demonstrated in the examples below. My results from A10-Lime revision A with the sunxi-3.4 kernel and u-boot v2014.10-rc2: $ djpeg -v libjpeg-turbo version 1.3.0 (build 20130811) $ cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg $ while true ; do djpeg A10-LIME.jpg | md5sum ; done bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - 6047ca65e1412dd3f53b250239e4558b - bf66d2bd1a88c5720b0dc8d8ece43099 - 9d8eb11018cca04f70883c6ed9ddb9c6 - 7d2a4baa11e7015e2b8ae5717fce699b - 513bd48bcd3a67705324ec8658646e7d - f61c7c8f42b86ede28d48dfb350efd64 - 50a3b1ea14994d19a66238f2414d9f5c - 674f968fe8d7c79b2f7116c94b2fb02c - bf66d2bd1a88c5720b0dc8d8ece43099 - b57efa7bb81263a93f69fcbbbd06d590 - d1627d8fd02f54e0154fcced72be637b - ab92721819073d0fb4dd2a7a67afb0fc - 79cf9706c29c19b9325d3e04f34b5059 - bf66d2bd1a88c5720b0dc8d8ece43099 - 9ba81185fd5ed48277cc590fdb323955 - d43cdb0215bae6de33b7921b20c5545f - d1ef0584fdff38c84a7d24a32fde4de9 - 1cef1e0202605a93870279f23d93287f - f7fd0ae6b3beda26f61c2be566224ac3 - c346e833833f9b35093be336cadbcbc2 - 02c6e7e19882f438e5a9123a0d3e7ea2 - b9d788d94a469b3bad20a997a039ce88 - 8545180d6384a6319fbf672052d61549 - 455b8da5c39b21b5104c12b6d02e9ff8 - 670df0c3bf6becf5e4378e336d193f45 - 07e922c9510d9d75f701317ada24d1f9 - 8cdae0aa48061da5c45ac81159bdac53 - 4f3b47ad5603f7253c0a4b13a61987a5 - 02f6175d5fb8672e69c7e433451b5dbc - 1440adb6576c6d02cf05c31b3c2c2b7c - 618a736628096581dfd2d5421e061235 - 2a791022a39f7e8d57efa50cd801007b - 44d2e8dd4a205d3aadcfc25a446fe06e - 72e2d96eb5e0ea987763cfaa1f3ca0a5 - 4f4c11e23f09f2923f925e6bb0a88deb - f6ce3826e0e91ca75fbca378f21a6a72 - 6d2c6ac6eb8c96cad5b19e3287192802 - 8db6a3c5fb031317eb352110261e23fd - And results with the mainline kernel and u-boot v2014.10-rc2: $ djpeg -v libjpeg-turbo version 1.3.0 (build 20130811) $ cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg $ while true ; do djpeg A10-LIME.jpg | md5sum ; done bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - ee013e5796bbfed7dcae4b7bae195fd7 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 - bf66d2bd1a88c5720b0dc8d8ece43099 -
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On 09/28/2014 05:58 PM, Hans de Goede wrote: [...] On 09/18/2014 06:07 PM, Siarhei Siamashka wrote: Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html I have a revision A board. My Olimex A10 OLinuXino Lime is also labelled Rev. A... It is running stable at 1008MHz and I just tried Olivers djpeg test without any problems. I'm running Hans' u-boot-sunxi 2014.10-rc1-g7190869 and Linux mainline 3.17.0-rc1-00158-g451fd72. A bunch of revision C boards were all fine in Oliver's tests. And nobody has ever tested revision B so far, so we have no idea whether it is stable or not. A mysterious thing is that the Olimex representatives on IRC were not aware of any fixes of this kind applied to the PCB. My understanding is that the revision A was just a small pre-production batch, donated by OLIMEX to a number of open source developers. Some of these boards were distributed at FOSDEM. I'm not sure if we should really worry about the reliability of the revision A, because none of the 'normal' customers probably have such boards. We only need to clarify the status of revision B. But if we want to support the revision A too, then it probably needs its own config, which would somehow restrict the CPU clock speed. I also ha My revision A was actually ordered normally, a couple of days before the first batch sold-out. So it is likely that the entire first batch was revision A. Do you have any easy step-by-step document (or ready to use sdcard image to download) to do some stress tests on my revision A ? Maybe the first couple handed out to developers where hand soldered or some such ? Either way it would be good to either confirm that my revision A has the same issues, or not :) I bought my revision A from a German distributor (exp-tech.de) and it doesn't look hand soldered (except for the through hole parts :-) ). If I correctly compared the schematics for revision A,B and C, there is only one change in regard to the DRAM: R8 (connected to ZQ) has a different value: - Revision A: 237 Ohm / 1% - Revision B: 430 Ohm / 1% - Revision C: 330 Ohm / 1% I checked R8 on my revision A's PCB: It is a 330 Ohm / 1%, therefore the value specified in the revision C schematic. So it may make sense to check R8 on the problematic revision A boards and replace it by a 330 Ohm resistor. The DRAM data sheet specifies this resistor with 240 Ohm / 1%... [...] Either way, these settings are outside of the valid range when running at 480MHz (which would be something like DDR3-960 in our case). [...] The current (probably incorrect) values work fine with my board (even though they may be out of spec), but the value of R8 may have some impact here. Best regards, Arnd -- Arnd Gronenberg, a...@gronenberg.com, DJ9PZ / AB2QP smime.p7s Description: S/MIME Cryptographic Signature ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On Sun, 28 Sep 2014 17:58:41 +0200 Hans de Goede hdego...@redhat.com wrote: Hi, On 09/18/2014 06:07 PM, Siarhei Siamashka wrote: On Sun, 27 Jul 2014 23:25:21 +0200 Hans de Goede hdego...@redhat.com wrote: Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html I have a revision A board. A bunch of revision C boards were all fine in Oliver's tests. And nobody has ever tested revision B so far, so we have no idea whether it is stable or not. A mysterious thing is that the Olimex representatives on IRC were not aware of any fixes of this kind applied to the PCB. My understanding is that the revision A was just a small pre-production batch, donated by OLIMEX to a number of open source developers. Some of these boards were distributed at FOSDEM. I'm not sure if we should really worry about the reliability of the revision A, because none of the 'normal' customers probably have such boards. We only need to clarify the status of revision B. But if we want to support the revision A too, then it probably needs its own config, which would somehow restrict the CPU clock speed. My revision A was actually ordered normally, a couple of days before the first batch sold-out. So it is likely that the entire first batch was revision A. Do you have any easy step-by-step document (or ready to use sdcard image to download) to do some stress tests on my revision A ? The easy step-by-step document was there since the beginning of May: https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html If you don't mind to download random binaries from the Internet, there was also a link to the static djpeg binary if you are unsure about the one used in your distro and don't want to waste time compiling libjpeg-turbo yourself. Also it looks like now we need to try a little bit harder with the mainline kernel, so I have posted some updates in my reply to Arnd Gronenberg: http://lists.denx.de/pipermail/u-boot/2014-September/190061.html Taking all of this into account and with the use of the djpeg static binary download, it's just a few lines to type in the console: cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg wget http://people.freedesktop.org/~siamashka/files/20140504/djpeg-static chmod +x djpeg-static while true ; do ./djpeg-static A10-LIME.jpg | md5sum ; done If identical hashes show up in each line of the output, then everything is fine. If some hashes end up to be different, then there is data corruption happening during JPEG decoding, which indicates hardware reliability issues. Maybe the first couple handed out to developers where hand soldered or some such ? Either way it would be good to either confirm that my revision A has the same issues, or not :) My board looks fine (without any visible soldering problems). As discussed months ago on the linux-sunxi mailing list, we are suspecting that the root cause is some significant voltage drop on the dcdc2 power line between the PMIC and the SoC. So that if the current is high (under high CPU usage) then the SoC actually gets a substantially reduced voltage compared to the requested 1.4V from the PMIC. Newer revisions of the A10-Lime PCB might just have a beefier power line with reduced resistance, but that's only a speculation. By the way, it looks like the Banana Pi might suffer from the very same problem. Somebody has just submitted a FEX file update (FEX serves a similar purpose as DTS in the sunxi-3.4 kernel): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg07629.html The commit message only says Fix the unstable problem caused by dvfs table without going into any details. The change that they are introducing is in fact moving the highest cpufreq operating point from 912MHz at 1.4V to 912MHz at 1.425V. Supposedly to fix some reliability problems reproduced on some undisclosed use case. Now if we are trying to use the mainline kernel, then it does not have cpufreq support and the CPU clock frequency/voltage settings are inherited from u-boot. And u-boot currently configures them to, surprise surprise, 912MHz at 1.4V which is expected to be unstable according to that FEX update submitter. This raises an obvious red flag. The libjpeg-turbo decoding test appears to be sensitive to the CPU clock frequency/voltage (at least for Cortex-A8), so somebody might want to give it a try also on the Banana Pi. Or if the libjpeg-turbo test does not reveal anything interesting, then we might want to ask the Banana Pi FEX update submitter to find out how the reliability problem is supposed to be reproduced. -- Best regards, Siarhei Siamashka ___ U-Boot mailing list U-Boot@lists.denx.de
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On Mon, 29 Sep 2014 08:38:42 +0300 Siarhei Siamashka siarhei.siamas...@gmail.com wrote: On Sun, 28 Sep 2014 17:58:41 +0200 Hans de Goede hdego...@redhat.com wrote: Do you have any easy step-by-step document (or ready to use sdcard image to download) to do some stress tests on my revision A ? The easy step-by-step document was there since the beginning of May: https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html If you don't mind to download random binaries from the Internet, there was also a link to the static djpeg binary if you are unsure about the one used in your distro and don't want to waste time compiling libjpeg-turbo yourself. Also it looks like now we need to try a little bit harder with the mainline kernel, so I have posted some updates in my reply to Arnd Gronenberg: http://lists.denx.de/pipermail/u-boot/2014-September/190061.html Taking all of this into account and with the use of the djpeg static binary download, it's just a few lines to type in the console: cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg wget http://people.freedesktop.org/~siamashka/files/20140504/djpeg-static chmod +x djpeg-static while true ; do ./djpeg-static A10-LIME.jpg | md5sum ; done Sorry, my e-mail client decided to unhelpfully reshuffle line breaks. This was supped to be: cd /tmp wget http://linux-sunxi.org/images/8/83/A10-LIME.jpg wget http://people.freedesktop.org/~siamashka/files/20140504/djpeg-static chmod +x djpeg-static while true ; do ./djpeg-static A10-LIME.jpg | md5sum ; done -- Best regards, Siarhei Siamashka ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [linux-sunxi] [PATCH 5/7] sun4i: Add support for a number of new sun4i boards
On Sun, 27 Jul 2014 23:25:21 +0200 Hans de Goede hdego...@redhat.com wrote: Add support for boards which I own and which already have a dts file in the upstream kernel. Hi Hans, It's good to know that you have all this hardware and can take care of maintaining it. Signed-off-by: Henrik Nordstrom hen...@henriknordstrom.net Signed-off-by: Stefan Roese s...@denx.de Signed-off-by: Hans de Goede hdego...@redhat.com --- board/sunxi/Makefile| 6 ++ board/sunxi/dram_a10_olinuxino_l.c | 31 +++ board/sunxi/dram_sun4i_360_1024_iow16.c | 31 +++ board/sunxi/dram_sun4i_360_1024_iow8.c | 31 +++ board/sunxi/dram_sun4i_360_512.c| 31 +++ board/sunxi/dram_sun4i_384_1024_iow8.c | 31 +++ boards.cfg | 6 ++ 7 files changed, 167 insertions(+) create mode 100644 board/sunxi/dram_a10_olinuxino_l.c create mode 100644 board/sunxi/dram_sun4i_360_1024_iow16.c create mode 100644 board/sunxi/dram_sun4i_360_1024_iow8.c create mode 100644 board/sunxi/dram_sun4i_360_512.c create mode 100644 board/sunxi/dram_sun4i_384_1024_iow8.c diff --git a/board/sunxi/Makefile b/board/sunxi/Makefile index 03f55cc..b1db5d9 100644 --- a/board/sunxi/Makefile +++ b/board/sunxi/Makefile @@ -11,8 +11,14 @@ obj-y+= board.o obj-$(CONFIG_SUNXI_GMAC) += gmac.o obj-$(CONFIG_SUNXI_AHCI) += ahci.o +obj-$(CONFIG_A10_OLINUXINO_L)+= dram_a10_olinuxino_l.o Which revision of A10-OLinuXino-LIME do you have? Revision A is known to have troubles running stable at 1008MHz CPU clock speed, as confirmed on a sample set of two boards (mine and Oliver Schinagl's): https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg04343.html A bunch of revision C boards were all fine in Oliver's tests. And nobody has ever tested revision B so far, so we have no idea whether it is stable or not. A mysterious thing is that the Olimex representatives on IRC were not aware of any fixes of this kind applied to the PCB. My understanding is that the revision A was just a small pre-production batch, donated by OLIMEX to a number of open source developers. Some of these boards were distributed at FOSDEM. I'm not sure if we should really worry about the reliability of the revision A, because none of the 'normal' customers probably have such boards. We only need to clarify the status of revision B. But if we want to support the revision A too, then it probably needs its own config, which would somehow restrict the CPU clock speed. obj-$(CONFIG_A13_OLINUXINOM) += dram_a13_oli_micro.o +obj-$(CONFIG_BA10_TV_BOX)+= dram_sun4i_384_1024_iow8.o obj-$(CONFIG_CUBIEBOARD) += dram_cubieboard.o obj-$(CONFIG_CUBIEBOARD2)+= dram_cubieboard2.o obj-$(CONFIG_CUBIETRUCK) += dram_cubietruck.o +obj-$(CONFIG_MELE_A1000) += dram_sun4i_360_512.o +obj-$(CONFIG_MELE_A1000G)+= dram_sun4i_360_1024_iow8.o +obj-$(CONFIG_MINI_X) += dram_sun4i_360_512.o +obj-$(CONFIG_MINI_X_1GB) += dram_sun4i_360_1024_iow16.o obj-$(CONFIG_R7DONGLE) += dram_r7dongle.o diff --git a/board/sunxi/dram_a10_olinuxino_l.c b/board/sunxi/dram_a10_olinuxino_l.c new file mode 100644 index 000..24a1bd9 --- /dev/null +++ b/board/sunxi/dram_a10_olinuxino_l.c @@ -0,0 +1,31 @@ +/* this file is generated, don't edit it yourself */ + +#include common.h +#include asm/arch/dram.h + +static struct dram_para dram_para = { + .clock = 480, + .type = 3, + .rank_num = 1, + .density = 4096, + .io_width = 16, + .bus_width = 16, + .cas = 6, The CAS=6 is not quite right for the 480MHz DRAM clock speed if we are dealing with the typical DDR3 chips, with the timings mostly representing the standard JEDEC speed bins. CAS=6 is good up to 400MHz. CAS=7 is good up to 533MHz. And CAS=9 is good up to 667MHz. + .zq = 123, + .odt_en = 0, + .size = 512, + .tpr0 = 0x30926692, + .tpr1 = 0x1090, + .tpr2 = 0x1a0c8, The .tpr0/.tpr1/.tpr2 settings here are simply using the default reset values of the DRAM controller hardware registers. Which happen to match the DDR2-800E speed bin, as identified by Jens Kuske: https://www.mail-archive.com/linux-sunxi@googlegroups.com/msg03548.html Either way, these settings are outside of the valid range when running at 480MHz (which would be something like DDR3-960 in our case). The fundamental problem here is that u-boot-sunxi essentially trusted the device manufacturers to pick the correct DRAM settings. However it looks like the device manufacturers did not have any proper DRAM documentation either. And they just ended up picking some random settings, which seemed to kinda work (and then copy/pasted these settings from one device to another with minor variation). Also without doubt, they were all under a