[U-Boot] Zynq bug and fix by generic board

Hi Albert and Masahiro,
surprisingly I have tested zynq in Tom's repo and I am getting stuck in full u-boot. I have also tried SPL with MMC and it is hanging in the same location
U-Boot SPL 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12) mmc boot reading system.dtb spl_load_image_fat_os: error reading image system.dtb, err - -1 reading u-boot-dtb.img reading u-boot-dtb.img
U-Boot 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12)
I2C: ready Memory: ECC disabled DRAM: 1 GiB
Problem is with relocation and it is not related to OF_CONTROL.
I have added 3 pending patches on the top of current master next and "ARM: zynq: Enable generic board for Xilinx Zynq" fix the problem. That's why I think that is easier for just apply it to mainline repo because we need to apply this patch anyway.
Masahiro: Can you please check if the latest u-boot is working for you? Albert: If Masahiro confirms the same issue, can I send you one more pull request with these 3 fixes? (I have also run buildman on them too) (Enabling generic board, Fix message which is caused by enabling generic board, + one fix from Masahiro regarding compilation out of tree files for SPL).
Thanks, Michal
The following changes since commit 3fe1a8545b55d31a6db2d9e60d962c4f6e048913:
powerpc: hiddendragon: remove orphan board (2014-05-30 14:03:24 -0400)
are available in the git repository at:
git://www.denx.de/git/u-boot-microblaze.git zynq
for you to fetch changes up to 061d95fd997d8aeea4fd0d93dcf2996e3cadd41c:
zynq: disable -Wstrict-prototypes option for ps7_init.c (2014-06-04 11:05:00 +0200)
---------------------------------------------------------------- Masahiro Yamada (1): zynq: disable -Wstrict-prototypes option for ps7_init.c
Michal Simek (2): ARM: zynq: Enable generic board for Xilinx Zynq ARM: zynq: Show ECC status on the same line as DRAM size
arch/arm/cpu/armv7/zynq/ddrc.c | 4 ++-- board/xilinx/zynq/Makefile | 3 +++ include/configs/zynq-common.h | 2 ++ 3 files changed, 7 insertions(+), 2 deletions(-)
[u-boot]$ ./tools/buildman/buildman -b zynq zynq -sSed Summary of 4 commits for 6 boards (6 threads, 2 jobs per thread) 01: powerpc: hiddendragon: remove orphan board 02: ARM: zynq: Enable generic board for Xilinx Zynq arm: (for 6/6 boards) all +984.7 bss -6.7 data +188.7 rodata -237.3 spl/u-boot-spl:all +52.0 spl/u-boot-spl:data +52.0 text +1040.0 zynq_zc770_xm012: all +1079 data +188 rodata -209 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1100 zynq_zed : all +977 bss -16 data +192 rodata -243 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1044 zynq_zc70x : all +977 bss -16 data +192 rodata -243 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1044 zynq_zc770_xm010: all +965 bss -4 data +188 rodata -243 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1024 zynq_microzed : all +965 bss -4 data +188 rodata -243 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1024 zynq_zc770_xm013: all +945 data +184 rodata -243 spl/u-boot-spl:all +52 spl/u-boot-spl:data +52 text +1004 03: ARM: zynq: Show ECC status on the same line as DRAM size arm: (for 6/6 boards) all -16.0 rodata -16.0 spl/u-boot-spl:all -16.7 spl/u-boot-spl:rodata -16.7 zynq_zed : bss +16 rodata -16 spl/u-boot-spl:all -16 spl/u-boot-spl:rodata -16 zynq_zc70x : bss +16 rodata -16 spl/u-boot-spl:all -16 spl/u-boot-spl:rodata -16 zynq_zc770_xm013: all -16 rodata -16 spl/u-boot-spl:all -18 spl/u-boot-spl:rodata -18 zynq_zc770_xm012: all -16 rodata -16 spl/u-boot-spl:all -18 spl/u-boot-spl:rodata -18 zynq_zc770_xm010: all -32 bss -16 rodata -16 spl/u-boot-spl:all -16 spl/u-boot-spl:rodata -16 zynq_microzed : all -32 bss -16 rodata -16 spl/u-boot-spl:all -16 spl/u-boot-spl:rodata -16 04: zynq: disable -Wstrict-prototypes option for ps7_init.c

Hi Michal and Albert,
On Wed, 4 Jun 2014 12:54:23 +0200 Michal Simek michal.simek@xilinx.com wrote:
Hi Albert and Masahiro,
surprisingly I have tested zynq in Tom's repo and I am getting stuck in full u-boot. I have also tried SPL with MMC and it is hanging in the same location
U-Boot SPL 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12) mmc boot reading system.dtb spl_load_image_fat_os: error reading image system.dtb, err - -1 reading u-boot-dtb.img reading u-boot-dtb.img
U-Boot 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12)
I2C: ready Memory: ECC disabled DRAM: 1 GiB
Problem is with relocation and it is not related to OF_CONTROL.
Yes. I confirmed the same problem as you saw.
I did "git bisect" and figured out the cause of the problem is the following commit:
commit 41623c91b09a0c865fab41acdaff30f060f29ad6 Author: Albert ARIBAUD albert.u.boot@aribaud.net Date: Tue Apr 15 16:13:51 2014 +0200
arm: move exception handling out of start.S files
Exception handling is basically identical for all ARM targets. Factorize it out of the various start.S files and into a single vectors.S file, and adjust linker scripts accordingly.
Signed-off-by: Albert ARIBAUD albert.u.boot@aribaud.net
I have added 3 pending patches on the top of current master next and "ARM: zynq: Enable generic board for Xilinx Zynq" fix the problem. That's why I think that is easier for just apply it to mainline repo because we need to apply this patch anyway.
Masahiro: Can you please check if the latest u-boot is working for you? Albert: If Masahiro confirms the same issue, can I send you one more pull request with these 3 fixes? (I have also run buildman on them too) (Enabling generic board, Fix message which is caused by enabling generic board,
- one fix from Masahiro regarding compilation out of tree files for SPL).
Just try "git revert 41623c91b0" on the u-boot/master branch. Everything will work fine.
Best Regards Masahiro Yamada

Hi Albert and Michal,
On Wed, 4 Jun 2014 12:54:23 +0200 Michal Simek michal.simek@xilinx.com wrote:
Hi Albert and Masahiro,
surprisingly I have tested zynq in Tom's repo and I am getting stuck in full u-boot. I have also tried SPL with MMC and it is hanging in the same location
U-Boot SPL 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12) mmc boot reading system.dtb spl_load_image_fat_os: error reading image system.dtb, err - -1 reading u-boot-dtb.img reading u-boot-dtb.img
U-Boot 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12)
I2C: ready Memory: ECC disabled DRAM: 1 GiB
Problem is with relocation and it is not related to OF_CONTROL.
I have added 3 pending patches on the top of current master next and "ARM: zynq: Enable generic board for Xilinx Zynq" fix the problem. That's why I think that is easier for just apply it to mainline repo because we need to apply this patch anyway.
Masahiro: Can you please check if the latest u-boot is working for you? Albert: If Masahiro confirms the same issue, can I send you one more pull request with these 3 fixes? (I have also run buildman on them too) (Enabling generic board, Fix message which is caused by enabling generic board,
- one fix from Masahiro regarding compilation out of tree files for SPL).
I found how to fix the problem.
Add one line to arch/arm/cpu/armv7/zynq/u-boot.lds as follows:
--- a/arch/arm/cpu/armv7/zynq/u-boot.lds +++ b/arch/arm/cpu/armv7/zynq/u-boot.lds @@ -18,6 +18,7 @@ SECTIONS .text : { *(.__image_copy_start) + *(.vectors) CPUDIR/start.o (.text*) *(.text*) }
It worked on my ZC706 board.
Best Regards Masahiro Yamada

Hi,
On 06/05/2014 10:59 AM, Masahiro Yamada wrote:
Hi Albert and Michal,
On Wed, 4 Jun 2014 12:54:23 +0200 Michal Simek michal.simek@xilinx.com wrote:
Hi Albert and Masahiro,
surprisingly I have tested zynq in Tom's repo and I am getting stuck in full u-boot. I have also tried SPL with MMC and it is hanging in the same location
U-Boot SPL 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12) mmc boot reading system.dtb spl_load_image_fat_os: error reading image system.dtb, err - -1 reading u-boot-dtb.img reading u-boot-dtb.img
U-Boot 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12)
I2C: ready Memory: ECC disabled DRAM: 1 GiB
Problem is with relocation and it is not related to OF_CONTROL.
I have added 3 pending patches on the top of current master next and "ARM: zynq: Enable generic board for Xilinx Zynq" fix the problem. That's why I think that is easier for just apply it to mainline repo because we need to apply this patch anyway.
Masahiro: Can you please check if the latest u-boot is working for you? Albert: If Masahiro confirms the same issue, can I send you one more pull request with these 3 fixes? (I have also run buildman on them too) (Enabling generic board, Fix message which is caused by enabling generic board,
- one fix from Masahiro regarding compilation out of tree files for SPL).
I found how to fix the problem.
Add one line to arch/arm/cpu/armv7/zynq/u-boot.lds as follows:
--- a/arch/arm/cpu/armv7/zynq/u-boot.lds +++ b/arch/arm/cpu/armv7/zynq/u-boot.lds @@ -18,6 +18,7 @@ SECTIONS .text : { *(.__image_copy_start)
*(.vectors) CPUDIR/start.o (.text*) *(.text*) }
It worked on my ZC706 board.
Interesting that it is not needed for GENERIC_BOARD but anyway this fix is also works for me.
Masahiro: Can you please send proper patch which Albert or Tom can directly take? Link to origin commit sha will be also useful to point where the problem happened.
Please add this to the patch. Tested-by: Michal Simek monstr@monstr.eu
Thanks, Michal

Hi Michal and Albert,
On Thu, 05 Jun 2014 12:12:37 +0200 Michal Simek monstr@monstr.eu wrote:
Hi,
On 06/05/2014 10:59 AM, Masahiro Yamada wrote:
Hi Albert and Michal,
On Wed, 4 Jun 2014 12:54:23 +0200 Michal Simek michal.simek@xilinx.com wrote:
Hi Albert and Masahiro,
surprisingly I have tested zynq in Tom's repo and I am getting stuck in full u-boot. I have also tried SPL with MMC and it is hanging in the same location
U-Boot SPL 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12) mmc boot reading system.dtb spl_load_image_fat_os: error reading image system.dtb, err - -1 reading u-boot-dtb.img reading u-boot-dtb.img
U-Boot 2014.07-rc2-00063-g3fe1a8545b55 (Jun 04 2014 - 11:57:12)
I2C: ready Memory: ECC disabled DRAM: 1 GiB
Problem is with relocation and it is not related to OF_CONTROL.
I have added 3 pending patches on the top of current master next and "ARM: zynq: Enable generic board for Xilinx Zynq" fix the problem. That's why I think that is easier for just apply it to mainline repo because we need to apply this patch anyway.
Masahiro: Can you please check if the latest u-boot is working for you? Albert: If Masahiro confirms the same issue, can I send you one more pull request with these 3 fixes? (I have also run buildman on them too) (Enabling generic board, Fix message which is caused by enabling generic board,
- one fix from Masahiro regarding compilation out of tree files for SPL).
I found how to fix the problem.
Add one line to arch/arm/cpu/armv7/zynq/u-boot.lds as follows:
--- a/arch/arm/cpu/armv7/zynq/u-boot.lds +++ b/arch/arm/cpu/armv7/zynq/u-boot.lds @@ -18,6 +18,7 @@ SECTIONS .text : { *(.__image_copy_start)
*(.vectors) CPUDIR/start.o (.text*) *(.text*) }
It worked on my ZC706 board.
Interesting that it is not needed for GENERIC_BOARD but anyway this fix is also works for me.
I think it is working with GENERIC_BOARD by coincidence.
"_start" symbol should be 0x04000000 (=CONFIG_SYS_TEXT_BASE) But it is set to 0 without fixing the linker script.
Masahiro: Can you please send proper patch which Albert or Tom can directly take? Link to origin commit sha will be also useful to point where the problem happened.
Please add this to the patch. Tested-by: Michal Simek monstr@monstr.eu
Done. http://patchwork.ozlabs.org/patch/356300/
Albert, This is a fatal bug. Please pick it up asap.
And please apply the followings as well: http://patchwork.ozlabs.org/patch/352484/ http://patchwork.ozlabs.org/patch/352672/ They also fix the bugs you added by commit 41623c91.
Best Regards Masahiro Yamada
participants (3)
-
Masahiro Yamada
-
Michal Simek
-
Michal Simek