mbox

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

Message ID d9705fde-724b-4f98-833e-711d80ef3fc3@BN1BFFO11FD044.protection.gbl
State Accepted
Delegated to: Michal Simek
Headers show

Pull-request

git://www.denx.de/git/u-boot-microblaze.git zynq

Message

Michal Simek June 4, 2014, 10:54 a.m. UTC
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

Comments

Masahiro Yamada June 5, 2014, 8:49 a.m. UTC | #1
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
Masahiro Yamada June 5, 2014, 8:59 a.m. UTC | #2
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
Michal Simek June 5, 2014, 10:12 a.m. UTC | #3
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
Masahiro Yamada June 5, 2014, 11:07 a.m. UTC | #4
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