AR# 53180

Zynq - Configuration - Determining the Address of Linux Files During Configuration

描述

When using U-Boot to boot Linux, the address ranges used for 14.2 no longer work for 14.3.

解决方案

When booting Linux on Zynq, each file is given a certain address to be associated within the memory space. 

However, these address spaces may be different depending on the boot mode and version of the Linux/U-Boot build used.

To determine the exact address for a given version and boot mode, users must refer to the Xilinx GIT Repository.

u-boot-xarm.git -> specify build tag -> tree -> include -> configs -> zynq_common.h

For example, below is an excerpt from zynq_common.h of the Xilinx 14.3 build of U-Boot

35 /* Default environment */
36 #define CONFIG_EXTRA_ENV_SETTINGS \
37     "ethaddr=00:0a:35:00:01:22\0" \
38     "kernel_image=uImage\0" \
39     "ramdisk_image=uramdisk.image.gz\0" \
40     "devicetree_image=devicetree.dtb\0" \
41     "kernel_size=0x140000\0" \
42     "ramdisk_size=0x200000\0" \
43     "nand_kernel_size=0x400000\0" \
44     "nand_ramdisk_size=0x400000\0" \
45     "fdt_high=0x20000000\0" \
46     "initrd_high=0x20000000\0" \
47     "norboot=echo Copying Linux from NOR flash to RAM...;" \
48         "cp 0xE2100000 0x3000000 ${kernel_size};" \
49         "cp 0xE2600000 0x2A00000 0x20000;" \
50         "echo Copying ramdisk...;" \
51         "cp 0xE3000000 0x2000000 ${ramdisk_size};" \
52         "bootm 0x3000000 0x2000000 0x2A00000\0" \
53     "qspiboot=echo Copying Linux from QSPI flash to RAM...;" \
54         "cp 0xFC100000 0x3000000 ${kernel_size};" \
55         "cp 0xFC600000 0x2A00000 0x20000;" \
56         "echo Copying ramdisk...;" \
57         "cp 0xFC800000 0x2000000 ${ramdisk_size};" \
58         "bootm 0x3000000 0x2000000 0x2A00000\0" \
59     "sdboot=echo Copying Linux from SD to RAM...;" \
60         "mmcinfo;" \
61         "fatload mmc 0 0x3000000 ${kernel_image};" \
62         "fatload mmc 0 0x2A00000 ${devicetree_image};" \
63         "fatload mmc 0 0x2000000 ${ramdisk_image};" \
64         "bootm 0x3000000 0x2000000 0x2A00000\0" \
65     "nandboot=echo Copying Linux from NAND flash to RAM...;" \
66         "nand read 0x3000000 0x200000 ${nand_kernel_size};" \
67         "nand read 0x2A00000 0x700000 0x20000;" \
68         "echo Copying ramdisk...;" \
69         "nand read 0x2000000 0x900000 ${nand_ramdisk_size};" \
70         "bootm 0x3000000 0x2000000 0x2A00000\0" \
71     "jtagboot=echo TFTPing Linux to RAM...;" \
72         "tftp 0x3000000 ${kernel_image};" \
73         "tftp 0x2A00000 ${devicetree_image};" \
74         "tftp 0x2000000 ${ramdisk_image};" \
75         "bootm 0x3000000 0x2000000 0x2A00000\0"



链接问答记录

主要问答记录

Answer Number 问答标题 问题版本 已解决问题的版本
52538 Zynq-7000 SoC - Boot and Configuration N/A N/A
AR# 53180
日期 10/14/2014
状态 Active
Type 综合文章
器件
Tools More Less