[U-Boot] Xilinx Zed Board resets with Master

Michal Simek monstr at monstr.eu
Thu Mar 27 13:05:03 CET 2014


On 03/27/2014 01:01 PM, Michal Simek wrote:
> Hi Tim,
> 
> On 03/27/2014 11:33 AM, Tim Sander wrote:
>> Hi Michael, Jagan
>>
>> Thanks for your replies.
>>> On Thu, Mar 27, 2014 at 1:51 PM, Michal Simek <monstr at monstr.eu> wrote:
>>>> Hi,
>>>>
>>>> On 03/27/2014 09:08 AM, Tim Sander wrote:
>>>>> Hi
>>>>>
>>>>> As i have seen that the Xilinx support has entered master i just tried to
>>>>> boot it on a Xilinx Zynx Zedboard Rev. D. The build works with the
>>>>> xilinx git tree so i am pretty confident that its not some issues with
>>>>> bootgen or the embedded fpga image.
>>>>>
>>>>> The board loads the fpga which can be seen by the blue "done" led of the
>>>>> ZedBoard. But then the LED turns off and about after a second or so it
>>>>> just
>>>>> lights up shortly again to turn off again. So it seems as if the board is
>>>>> somehow caught in a reboot loop. Any ideas what might be wrong?
>>>>>
>>>>> I am building with:
>>>>> export PATH=~/xilinx/SDK/2013.3/gnu/arm/lin/bin:$PATH
>>>>> export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
>>>>> make clean
>>>>> make distclean
>>>>> make zynq_zed_config
>>>>> make
>>>>>
>>>>> The BOOT.BIN is build
>>>>> xilinx/SDK/2013.3/bin/lin64/bootgen -image u-boot.bif -w on -o BOOT.BIN
>>>>>
>>>>> And u-boot.bif looks like that:
>>>>> the_ROM_image:
>>>>> {
>>>>>
>>>>>  [bootloader]zynq_fsbl_0.elf
>>>>>
>>>>> system.bit
>>>>> u-boot.elf
>> I have added the zynq-zed.dtb file here, as i was not sure where else to put 
>> it...
> 
> I have just tested on zedboard rev-C I have here
> 
> Head u-boot commit commit
> commit 2c072c958bb544c72f0e848375803dbd6971f022
> Author: Simon Glass <sjg at chromium.org>
> Date:   Thu Feb 27 13:26:25 2014 -0700
> 
>     sandbox: config: Enable cros_ec emulation and related items
> 
>     Enable the Chrome OS EC emulation for sandbox along with LCD, sound
>     expanded GPIOs and a few other options to make this work correctly.
> 
>     Reviewed-by: Simon Glass <sjg at chromium.org>
>     Tested-by: Che-Liang Chiou <clchiou at chromium.org>
>     Signed-off-by: Simon Glass <sjg at chromium.org>
> 
> Copy attached file over this one
> arch/arm/dts/zynq-zed.dts
> 
> export ARCH=arm
> export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
> make zynq_zed_config
> make -j
> 
> run xmd
> 
> connect arm hw
> dow zynq_fsbl.elf
> run
> stop
> dow -data u-boot-dtb.bin 0x4000000
> rwr pc 0x4000000
> con
> exit
> 
> And you should see something like this on your console
> 
> U-Boot 2014.04-rc2-00061-g2c072c9-dirty (Mar 27 2014 - 12:47:39)
> 
> I2C:   ready
> Memory: ECC disabled
> DRAM:  512 MiB
> MMC:   zynq_sdhci: 0
> Using default environment
> 
> In:    serial
> Out:   serial
> Err:   serial
> Model: Xilinx Zynq
> Net:   Gem.e000b000
> Warning: failed to set MAC address
> 
> Hit any key to stop autoboot:  0
> zynq-uboot>
> 
> 
> 
>>>>> }
>>>>
>>>> mainline u-boot support is using configuration based on dts files
>>>> (OF_CONTROL) And because our DTSes are almost empty in mainline I expect
>>>> you are not able to see anything from u-boot.
>>>> I recommend you to copy dts file from xilinx kernel and then use
>>>> u-boot-dtb version.
>> Ok i tried this, and now the reboot loops seems to be gone. The blue "done" 
>> led now only switches "on" one time and stays on. Unfortunatly i still don't 
>> see anything on the console in this case.
>> I can see that the registers
>> lr             0x1d70   0x1d70
>> pc             0xcf6c   0xcf6c
>> But according to the u-boot map there is nothing and i am not sure how to
>> get information about the relocation without u-boot command line.
>>
>>>> Or the second option is to remove OF_CONTROL from
>>>> zynq-common.h file and then I hope you should be able to see something on
>>>> console.
>> Removeing OF_CONTROL gives a compile error:
>> xilinx/zynq/u-boot-xlnx/arch/arm/lib/board.c:633: undefined reference to 
>> `checkboard'
>> lib/built-in.o: In function `rsa_verify_with_keynode':
>> xilinx/zynq/u-boot-xlnx/lib/rsa/rsa-verify.c:284: undefined reference to 
>> `fdtdec_get_int'
> 
> More things has changed recently.
> If you do these changes then non DT configuration is performed.
> 
> diff --git a/board/xilinx/zynq/board.c b/board/xilinx/zynq/board.c
> index 485a5e4..559ef3d 100644
> --- a/board/xilinx/zynq/board.c
> +++ b/board/xilinx/zynq/board.c
> @@ -62,6 +62,11 @@ int board_init(void)
>         return 0;
>  }
> 
> +int checkboard(void)
> +{
> +       return 0;
> +}
> +
>  int board_late_init(void)
>  {
>         switch ((zynq_slcr_get_boot_mode()) & ZYNQ_BM_MASK) {
> diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
> index 731e69b..8a63cd5 100644
> --- a/include/configs/zynq-common.h
> +++ b/include/configs/zynq-common.h
> @@ -200,14 +200,8 @@
>  #define CONFIG_FIT_VERBOSE     1 /* enable fit_format_{error,warning}() */
> 
>  /* FDT support */
> -#define CONFIG_OF_CONTROL
> -#define CONFIG_OF_SEPARATE
>  #define CONFIG_DISPLAY_BOARDINFO_LATE
> 
> -/* RSA support */
> -#define CONFIG_FIT_SIGNATURE
> -#define CONFIG_RSA
> -
>  /* Extend size of kernel image for uncompression */
>  #define CONFIG_SYS_BOOTM_LEN   (20 * 1024 * 1024)
> 

I was too fast for static configuration you can just removed this.
(checkboard() function is required by CONFIG_DISPLAY_BOARDINFO_LATE)
which I have disabled here.

diff --git a/include/configs/zynq-common.h b/include/configs/zynq-common.h
index 731e69b..0d5a145 100644
--- a/include/configs/zynq-common.h
+++ b/include/configs/zynq-common.h
@@ -199,15 +199,6 @@
 #define CONFIG_FIT
 #define CONFIG_FIT_VERBOSE     1 /* enable fit_format_{error,warning}() */

-/* FDT support */
-#define CONFIG_OF_CONTROL
-#define CONFIG_OF_SEPARATE
-#define CONFIG_DISPLAY_BOARDINFO_LATE
-
-/* RSA support */
-#define CONFIG_FIT_SIGNATURE
-#define CONFIG_RSA
-
 /* Extend size of kernel image for uncompression */
 #define CONFIG_SYS_BOOTM_LEN   (20 * 1024 * 1024)

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 263 bytes
Desc: OpenPGP digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20140327/8cecb2c2/attachment.pgp>


More information about the U-Boot mailing list