diff options
| author | Nathan Rossi <nathan.rossi@xilinx.com> | 2015-04-20 16:38:00 +1000 |
|---|---|---|
| committer | Nathan Rossi <nathan.rossi@xilinx.com> | 2015-04-20 16:38:00 +1000 |
| commit | 50ed79670d32372d86e3d904fa0c0d0f8262684c (patch) | |
| tree | f7e8d64c91bb1dab0f6d9b372d434d7e4a6eca6a /recipes-bsp | |
| parent | bc07a46a710120f749fdb2529be5e885d7c1d5bb (diff) | |
| download | meta-xilinx-50ed79670d32372d86e3d904fa0c0d0f8262684c.tar.gz | |
u-boot-zynqmp-mainline_2015.04: Update to final tag
* Remove ZynqMP patch as it was accepted and part of the v2015.04
release
Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com>
Diffstat (limited to 'recipes-bsp')
| -rw-r--r-- | recipes-bsp/u-boot/u-boot-zynqmp-mainline/0001-arm64-Add-Xilinx-ZynqMP-support.patch | 597 | ||||
| -rw-r--r-- | recipes-bsp/u-boot/u-boot-zynqmp-mainline_2015.04.bb | 11 |
2 files changed, 3 insertions, 605 deletions
diff --git a/recipes-bsp/u-boot/u-boot-zynqmp-mainline/0001-arm64-Add-Xilinx-ZynqMP-support.patch b/recipes-bsp/u-boot/u-boot-zynqmp-mainline/0001-arm64-Add-Xilinx-ZynqMP-support.patch deleted file mode 100644 index 7aa42664..00000000 --- a/recipes-bsp/u-boot/u-boot-zynqmp-mainline/0001-arm64-Add-Xilinx-ZynqMP-support.patch +++ /dev/null | |||
| @@ -1,597 +0,0 @@ | |||
| 1 | From 87adcf00f0718fe99578f58e9bba9aa5785803a8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Michal Simek <michal.simek@xilinx.com> | ||
| 3 | Date: Thu, 15 Jan 2015 10:01:51 +0100 | ||
| 4 | Subject: [PATCH] arm64: Add Xilinx ZynqMP support | ||
| 5 | |||
| 6 | Add basic Xilinx ZynqMP arm64 support. | ||
| 7 | Serial and SD is supported. | ||
| 8 | It supports emulation platfrom ep108 and QEMU. | ||
| 9 | |||
| 10 | Signed-off-by: Michal Simek <michal.simek@xilinx.com> | ||
| 11 | --- | ||
| 12 | MAINTAINERS | 6 ++ | ||
| 13 | arch/arm/Kconfig | 5 + | ||
| 14 | arch/arm/cpu/armv8/Makefile | 1 + | ||
| 15 | arch/arm/cpu/armv8/zynqmp/Makefile | 9 ++ | ||
| 16 | arch/arm/cpu/armv8/zynqmp/clk.c | 49 ++++++++++ | ||
| 17 | arch/arm/cpu/armv8/zynqmp/cpu.c | 28 ++++++ | ||
| 18 | arch/arm/include/asm/arch-zynqmp/clk.h | 13 +++ | ||
| 19 | arch/arm/include/asm/arch-zynqmp/hardware.h | 52 +++++++++++ | ||
| 20 | arch/arm/include/asm/arch-zynqmp/sys_proto.h | 15 +++ | ||
| 21 | board/xilinx/zynqmp/Kconfig | 15 +++ | ||
| 22 | board/xilinx/zynqmp/MAINTAINERS | 6 ++ | ||
| 23 | board/xilinx/zynqmp/Makefile | 8 ++ | ||
| 24 | board/xilinx/zynqmp/zynqmp.c | 90 ++++++++++++++++++ | ||
| 25 | configs/xilinx_zynqmp_defconfig | 14 +++ | ||
| 26 | include/configs/xilinx_zynqmp.h | 134 +++++++++++++++++++++++++++ | ||
| 27 | 15 files changed, 445 insertions(+) | ||
| 28 | create mode 100644 arch/arm/cpu/armv8/zynqmp/Makefile | ||
| 29 | create mode 100644 arch/arm/cpu/armv8/zynqmp/clk.c | ||
| 30 | create mode 100644 arch/arm/cpu/armv8/zynqmp/cpu.c | ||
| 31 | create mode 100644 arch/arm/include/asm/arch-zynqmp/clk.h | ||
| 32 | create mode 100644 arch/arm/include/asm/arch-zynqmp/hardware.h | ||
| 33 | create mode 100644 arch/arm/include/asm/arch-zynqmp/sys_proto.h | ||
| 34 | create mode 100644 board/xilinx/zynqmp/Kconfig | ||
| 35 | create mode 100644 board/xilinx/zynqmp/MAINTAINERS | ||
| 36 | create mode 100644 board/xilinx/zynqmp/Makefile | ||
| 37 | create mode 100644 board/xilinx/zynqmp/zynqmp.c | ||
| 38 | create mode 100644 configs/xilinx_zynqmp_defconfig | ||
| 39 | create mode 100644 include/configs/xilinx_zynqmp.h | ||
| 40 | |||
| 41 | diff --git a/MAINTAINERS b/MAINTAINERS | ||
| 42 | index 1f77359..d2becd2 100644 | ||
| 43 | --- a/MAINTAINERS | ||
| 44 | +++ b/MAINTAINERS | ||
| 45 | @@ -178,6 +178,12 @@ S: Maintained | ||
| 46 | F: arch/arm/cpu/armv7/zynq/ | ||
| 47 | F: arch/arm/include/asm/arch-zynq/ | ||
| 48 | |||
| 49 | +ARM ZYNQMP | ||
| 50 | +M: Michal Simek <michal.simek@xilinx.com> | ||
| 51 | +S: Maintained | ||
| 52 | +F: arch/arm/cpu/armv8/zynqmp/ | ||
| 53 | +F: arch/arm/include/asm/arch-zynqmp/ | ||
| 54 | + | ||
| 55 | AVR32 | ||
| 56 | M: Andreas Bießmann <andreas.devel@googlemail.com> | ||
| 57 | S: Maintained | ||
| 58 | diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig | ||
| 59 | index 986b4c5..3d01775 100644 | ||
| 60 | --- a/arch/arm/Kconfig | ||
| 61 | +++ b/arch/arm/Kconfig | ||
| 62 | @@ -719,6 +719,10 @@ config ZYNQ | ||
| 63 | select CPU_V7 | ||
| 64 | select SUPPORT_SPL | ||
| 65 | |||
| 66 | +config TARGET_XILINX_ZYNQMP | ||
| 67 | + bool "Support Xilinx ZynqMP Platform" | ||
| 68 | + select ARM64 | ||
| 69 | + | ||
| 70 | config TEGRA | ||
| 71 | bool "NVIDIA Tegra" | ||
| 72 | select SUPPORT_SPL | ||
| 73 | @@ -998,6 +1002,7 @@ source "board/vpac270/Kconfig" | ||
| 74 | source "board/wandboard/Kconfig" | ||
| 75 | source "board/woodburn/Kconfig" | ||
| 76 | source "board/xaeniax/Kconfig" | ||
| 77 | +source "board/xilinx/zynqmp/Kconfig" | ||
| 78 | source "board/zipitz2/Kconfig" | ||
| 79 | |||
| 80 | source "arch/arm/Kconfig.debug" | ||
| 81 | diff --git a/arch/arm/cpu/armv8/Makefile b/arch/arm/cpu/armv8/Makefile | ||
| 82 | index 0c10223..dee5e25 100644 | ||
| 83 | --- a/arch/arm/cpu/armv8/Makefile | ||
| 84 | +++ b/arch/arm/cpu/armv8/Makefile | ||
| 85 | @@ -16,3 +16,4 @@ obj-y += tlb.o | ||
| 86 | obj-y += transition.o | ||
| 87 | |||
| 88 | obj-$(CONFIG_FSL_LSCH3) += fsl-lsch3/ | ||
| 89 | +obj-$(CONFIG_TARGET_XILINX_ZYNQMP) += zynqmp/ | ||
| 90 | diff --git a/arch/arm/cpu/armv8/zynqmp/Makefile b/arch/arm/cpu/armv8/zynqmp/Makefile | ||
| 91 | new file mode 100644 | ||
| 92 | index 0000000..a997e04 | ||
| 93 | --- /dev/null | ||
| 94 | +++ b/arch/arm/cpu/armv8/zynqmp/Makefile | ||
| 95 | @@ -0,0 +1,9 @@ | ||
| 96 | +# | ||
| 97 | +# (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 98 | +# Michal Simek <michal.simek@xilinx.com> | ||
| 99 | +# | ||
| 100 | +# SPDX-License-Identifier: GPL-2.0+ | ||
| 101 | +# | ||
| 102 | + | ||
| 103 | +obj-y += clk.o | ||
| 104 | +obj-y += cpu.o | ||
| 105 | diff --git a/arch/arm/cpu/armv8/zynqmp/clk.c b/arch/arm/cpu/armv8/zynqmp/clk.c | ||
| 106 | new file mode 100644 | ||
| 107 | index 0000000..0af619d | ||
| 108 | --- /dev/null | ||
| 109 | +++ b/arch/arm/cpu/armv8/zynqmp/clk.c | ||
| 110 | @@ -0,0 +1,49 @@ | ||
| 111 | +/* | ||
| 112 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 113 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 114 | + * | ||
| 115 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 116 | + */ | ||
| 117 | + | ||
| 118 | +#include <common.h> | ||
| 119 | +#include <asm/arch/hardware.h> | ||
| 120 | +#include <asm/arch/sys_proto.h> | ||
| 121 | + | ||
| 122 | +DECLARE_GLOBAL_DATA_PTR; | ||
| 123 | + | ||
| 124 | +unsigned long get_uart_clk(int dev_id) | ||
| 125 | +{ | ||
| 126 | + u32 ver = zynqmp_get_silicon_version(); | ||
| 127 | + | ||
| 128 | + switch (ver) { | ||
| 129 | + case ZYNQMP_CSU_VERSION_EP108: | ||
| 130 | + return 25000000; | ||
| 131 | + } | ||
| 132 | + | ||
| 133 | + return 133000000; | ||
| 134 | +} | ||
| 135 | + | ||
| 136 | +#ifdef CONFIG_CLOCKS | ||
| 137 | +/** | ||
| 138 | + * set_cpu_clk_info() - Initialize clock framework | ||
| 139 | + * Always returns zero. | ||
| 140 | + * | ||
| 141 | + * This function is called from common code after relocation and sets up the | ||
| 142 | + * clock framework. The framework must not be used before this function had been | ||
| 143 | + * called. | ||
| 144 | + */ | ||
| 145 | +int set_cpu_clk_info(void) | ||
| 146 | +{ | ||
| 147 | + gd->cpu_clk = get_tbclk(); | ||
| 148 | + | ||
| 149 | + /* Support Veloce to show at least 1MHz via bdi */ | ||
| 150 | + if (gd->cpu_clk > 1000000) | ||
| 151 | + gd->bd->bi_arm_freq = gd->cpu_clk / 1000000; | ||
| 152 | + else | ||
| 153 | + gd->bd->bi_arm_freq = 1; | ||
| 154 | + | ||
| 155 | + gd->bd->bi_dsp_freq = 0; | ||
| 156 | + | ||
| 157 | + return 0; | ||
| 158 | +} | ||
| 159 | +#endif | ||
| 160 | diff --git a/arch/arm/cpu/armv8/zynqmp/cpu.c b/arch/arm/cpu/armv8/zynqmp/cpu.c | ||
| 161 | new file mode 100644 | ||
| 162 | index 0000000..6fae03c | ||
| 163 | --- /dev/null | ||
| 164 | +++ b/arch/arm/cpu/armv8/zynqmp/cpu.c | ||
| 165 | @@ -0,0 +1,28 @@ | ||
| 166 | +/* | ||
| 167 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 168 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 169 | + * | ||
| 170 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 171 | + */ | ||
| 172 | + | ||
| 173 | +#include <common.h> | ||
| 174 | +#include <asm/arch/hardware.h> | ||
| 175 | +#include <asm/arch/sys_proto.h> | ||
| 176 | +#include <asm/io.h> | ||
| 177 | + | ||
| 178 | +#define ZYNQ_SILICON_VER_MASK 0xF000 | ||
| 179 | +#define ZYNQ_SILICON_VER_SHIFT 12 | ||
| 180 | + | ||
| 181 | +DECLARE_GLOBAL_DATA_PTR; | ||
| 182 | + | ||
| 183 | +unsigned int zynqmp_get_silicon_version(void) | ||
| 184 | +{ | ||
| 185 | + gd->cpu_clk = get_tbclk(); | ||
| 186 | + | ||
| 187 | + switch (gd->cpu_clk) { | ||
| 188 | + case 50000000: | ||
| 189 | + return ZYNQMP_CSU_VERSION_QEMU; | ||
| 190 | + } | ||
| 191 | + | ||
| 192 | + return ZYNQMP_CSU_VERSION_EP108; | ||
| 193 | +} | ||
| 194 | diff --git a/arch/arm/include/asm/arch-zynqmp/clk.h b/arch/arm/include/asm/arch-zynqmp/clk.h | ||
| 195 | new file mode 100644 | ||
| 196 | index 0000000..d55bc31 | ||
| 197 | --- /dev/null | ||
| 198 | +++ b/arch/arm/include/asm/arch-zynqmp/clk.h | ||
| 199 | @@ -0,0 +1,13 @@ | ||
| 200 | +/* | ||
| 201 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 202 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 203 | + * | ||
| 204 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 205 | + */ | ||
| 206 | + | ||
| 207 | +#ifndef _ASM_ARCH_CLK_H_ | ||
| 208 | +#define _ASM_ARCH_CLK_H_ | ||
| 209 | + | ||
| 210 | +unsigned long get_uart_clk(int dev_id); | ||
| 211 | + | ||
| 212 | +#endif /* _ASM_ARCH_CLK_H_ */ | ||
| 213 | diff --git a/arch/arm/include/asm/arch-zynqmp/hardware.h b/arch/arm/include/asm/arch-zynqmp/hardware.h | ||
| 214 | new file mode 100644 | ||
| 215 | index 0000000..97fb49a | ||
| 216 | --- /dev/null | ||
| 217 | +++ b/arch/arm/include/asm/arch-zynqmp/hardware.h | ||
| 218 | @@ -0,0 +1,52 @@ | ||
| 219 | +/* | ||
| 220 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 221 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 222 | + * | ||
| 223 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 224 | + */ | ||
| 225 | + | ||
| 226 | +#ifndef _ASM_ARCH_HARDWARE_H | ||
| 227 | +#define _ASM_ARCH_HARDWARE_H | ||
| 228 | + | ||
| 229 | +#define ZYNQ_SERIAL_BASEADDR0 0xFF000000 | ||
| 230 | +#define ZYNQ_SERIAL_BASEADDR1 0xFF001000 | ||
| 231 | + | ||
| 232 | +#define ZYNQ_SDHCI_BASEADDR0 0xFF160000 | ||
| 233 | +#define ZYNQ_SDHCI_BASEADDR1 0xFF170000 | ||
| 234 | + | ||
| 235 | +#define ZYNQMP_CRL_APB_BASEADDR 0xFF5E0000 | ||
| 236 | +#define ZYNQMP_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT 0x1000000 | ||
| 237 | + | ||
| 238 | +struct crlapb_regs { | ||
| 239 | + u32 reserved0[74]; | ||
| 240 | + u32 timestamp_ref_ctrl; /* 0x128 */ | ||
| 241 | + u32 reserved0_1[53]; | ||
| 242 | + u32 boot_mode; /* 0x200 */ | ||
| 243 | + u32 reserved1[26]; | ||
| 244 | +}; | ||
| 245 | + | ||
| 246 | +#define crlapb_base ((struct crlapb_regs *)ZYNQMP_CRL_APB_BASEADDR) | ||
| 247 | + | ||
| 248 | +#define ZYNQMP_IOU_SCNTR 0xFF250000 | ||
| 249 | +#define ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_EN 0x1 | ||
| 250 | +#define ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_HDBG 0x2 | ||
| 251 | + | ||
| 252 | +struct iou_scntr { | ||
| 253 | + u32 counter_control_register; | ||
| 254 | + u32 reserved0[7]; | ||
| 255 | + u32 base_frequency_id_register; | ||
| 256 | +}; | ||
| 257 | + | ||
| 258 | +#define iou_scntr ((struct iou_scntr *)ZYNQMP_IOU_SCNTR) | ||
| 259 | + | ||
| 260 | +/* Bootmode setting values */ | ||
| 261 | +#define BOOT_MODES_MASK 0x0000000F | ||
| 262 | +#define SD_MODE 0x00000005 | ||
| 263 | +#define JTAG_MODE 0x00000000 | ||
| 264 | + | ||
| 265 | +/* Board version value */ | ||
| 266 | +#define ZYNQMP_CSU_VERSION_SILICON 0x0 | ||
| 267 | +#define ZYNQMP_CSU_VERSION_EP108 0x1 | ||
| 268 | +#define ZYNQMP_CSU_VERSION_QEMU 0x3 | ||
| 269 | + | ||
| 270 | +#endif /* _ASM_ARCH_HARDWARE_H */ | ||
| 271 | diff --git a/arch/arm/include/asm/arch-zynqmp/sys_proto.h b/arch/arm/include/asm/arch-zynqmp/sys_proto.h | ||
| 272 | new file mode 100644 | ||
| 273 | index 0000000..d8e0ba1 | ||
| 274 | --- /dev/null | ||
| 275 | +++ b/arch/arm/include/asm/arch-zynqmp/sys_proto.h | ||
| 276 | @@ -0,0 +1,15 @@ | ||
| 277 | +/* | ||
| 278 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 279 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 280 | + * | ||
| 281 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 282 | + */ | ||
| 283 | + | ||
| 284 | +#ifndef _ASM_ARCH_SYS_PROTO_H | ||
| 285 | +#define _ASM_ARCH_SYS_PROTO_H | ||
| 286 | + | ||
| 287 | +int zynq_sdhci_init(unsigned long regbase); | ||
| 288 | + | ||
| 289 | +unsigned int zynqmp_get_silicon_version(void); | ||
| 290 | + | ||
| 291 | +#endif /* _ASM_ARCH_SYS_PROTO_H */ | ||
| 292 | diff --git a/board/xilinx/zynqmp/Kconfig b/board/xilinx/zynqmp/Kconfig | ||
| 293 | new file mode 100644 | ||
| 294 | index 0000000..b07932e | ||
| 295 | --- /dev/null | ||
| 296 | +++ b/board/xilinx/zynqmp/Kconfig | ||
| 297 | @@ -0,0 +1,15 @@ | ||
| 298 | +if TARGET_XILINX_ZYNQMP | ||
| 299 | + | ||
| 300 | +config SYS_BOARD | ||
| 301 | + default "zynqmp" | ||
| 302 | + | ||
| 303 | +config SYS_VENDOR | ||
| 304 | + default "xilinx" | ||
| 305 | + | ||
| 306 | +config SYS_SOC | ||
| 307 | + default "zynqmp" | ||
| 308 | + | ||
| 309 | +config SYS_CONFIG_NAME | ||
| 310 | + default "xilinx_zynqmp" | ||
| 311 | + | ||
| 312 | +endif | ||
| 313 | diff --git a/board/xilinx/zynqmp/MAINTAINERS b/board/xilinx/zynqmp/MAINTAINERS | ||
| 314 | new file mode 100644 | ||
| 315 | index 0000000..da33340 | ||
| 316 | --- /dev/null | ||
| 317 | +++ b/board/xilinx/zynqmp/MAINTAINERS | ||
| 318 | @@ -0,0 +1,6 @@ | ||
| 319 | +XILINX_ZYNQMP BOARD | ||
| 320 | +M: Michal Simek <michal.simek@xilinx.com> | ||
| 321 | +S: Maintained | ||
| 322 | +F: board/xilinx/zynqmp/ | ||
| 323 | +F: include/configs/xilinx_zynqmp.h | ||
| 324 | +F: configs/xilinx_zynqmp_defconfig | ||
| 325 | diff --git a/board/xilinx/zynqmp/Makefile b/board/xilinx/zynqmp/Makefile | ||
| 326 | new file mode 100644 | ||
| 327 | index 0000000..2ab3f19 | ||
| 328 | --- /dev/null | ||
| 329 | +++ b/board/xilinx/zynqmp/Makefile | ||
| 330 | @@ -0,0 +1,8 @@ | ||
| 331 | +# | ||
| 332 | +# (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 333 | +# Michal Simek <michal.simek@xilinx.com> | ||
| 334 | +# | ||
| 335 | +# SPDX-License-Identifier: GPL-2.0+ | ||
| 336 | +# | ||
| 337 | + | ||
| 338 | +obj-y := zynqmp.o | ||
| 339 | diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c | ||
| 340 | new file mode 100644 | ||
| 341 | index 0000000..1325bca | ||
| 342 | --- /dev/null | ||
| 343 | +++ b/board/xilinx/zynqmp/zynqmp.c | ||
| 344 | @@ -0,0 +1,90 @@ | ||
| 345 | +/* | ||
| 346 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 347 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 348 | + * | ||
| 349 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 350 | + */ | ||
| 351 | + | ||
| 352 | +#include <common.h> | ||
| 353 | +#include <netdev.h> | ||
| 354 | +#include <asm/arch/hardware.h> | ||
| 355 | +#include <asm/arch/sys_proto.h> | ||
| 356 | +#include <asm/io.h> | ||
| 357 | + | ||
| 358 | +DECLARE_GLOBAL_DATA_PTR; | ||
| 359 | + | ||
| 360 | +int board_init(void) | ||
| 361 | +{ | ||
| 362 | + return 0; | ||
| 363 | +} | ||
| 364 | + | ||
| 365 | +int board_early_init_r(void) | ||
| 366 | +{ | ||
| 367 | + u32 val; | ||
| 368 | + | ||
| 369 | + val = readl(&crlapb_base->timestamp_ref_ctrl); | ||
| 370 | + val |= ZYNQMP_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT; | ||
| 371 | + writel(val, &crlapb_base->timestamp_ref_ctrl); | ||
| 372 | + | ||
| 373 | + /* Program freq register in System counter and enable system counter */ | ||
| 374 | + writel(gd->cpu_clk, &iou_scntr->base_frequency_id_register); | ||
| 375 | + writel(ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_HDBG | | ||
| 376 | + ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_EN, | ||
| 377 | + &iou_scntr->counter_control_register); | ||
| 378 | + | ||
| 379 | + return 0; | ||
| 380 | +} | ||
| 381 | + | ||
| 382 | +int dram_init(void) | ||
| 383 | +{ | ||
| 384 | + gd->ram_size = CONFIG_SYS_SDRAM_SIZE; | ||
| 385 | + | ||
| 386 | + return 0; | ||
| 387 | +} | ||
| 388 | + | ||
| 389 | +int timer_init(void) | ||
| 390 | +{ | ||
| 391 | + return 0; | ||
| 392 | +} | ||
| 393 | + | ||
| 394 | +void reset_cpu(ulong addr) | ||
| 395 | +{ | ||
| 396 | +} | ||
| 397 | + | ||
| 398 | +#ifdef CONFIG_CMD_MMC | ||
| 399 | +int board_mmc_init(bd_t *bd) | ||
| 400 | +{ | ||
| 401 | + int ret = 0; | ||
| 402 | + | ||
| 403 | +#if defined(CONFIG_ZYNQ_SDHCI) | ||
| 404 | +# if defined(CONFIG_ZYNQ_SDHCI0) | ||
| 405 | + ret = zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR0); | ||
| 406 | +# endif | ||
| 407 | +# if defined(CONFIG_ZYNQ_SDHCI1) | ||
| 408 | + ret |= zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR1); | ||
| 409 | +# endif | ||
| 410 | +#endif | ||
| 411 | + | ||
| 412 | + return ret; | ||
| 413 | +} | ||
| 414 | +#endif | ||
| 415 | + | ||
| 416 | +int board_late_init(void) | ||
| 417 | +{ | ||
| 418 | + u32 reg = 0; | ||
| 419 | + u8 bootmode; | ||
| 420 | + | ||
| 421 | + reg = readl(&crlapb_base->boot_mode); | ||
| 422 | + bootmode = reg & BOOT_MODES_MASK; | ||
| 423 | + | ||
| 424 | + switch (bootmode) { | ||
| 425 | + case SD_MODE: | ||
| 426 | + setenv("modeboot", "sdboot"); | ||
| 427 | + break; | ||
| 428 | + default: | ||
| 429 | + printf("Invalid Boot Mode:0x%x\n", bootmode); | ||
| 430 | + break; | ||
| 431 | + } | ||
| 432 | + | ||
| 433 | + return 0; | ||
| 434 | +} | ||
| 435 | diff --git a/configs/xilinx_zynqmp_defconfig b/configs/xilinx_zynqmp_defconfig | ||
| 436 | new file mode 100644 | ||
| 437 | index 0000000..8b6aa70 | ||
| 438 | --- /dev/null | ||
| 439 | +++ b/configs/xilinx_zynqmp_defconfig | ||
| 440 | @@ -0,0 +1,14 @@ | ||
| 441 | +CONFIG_ARM=y | ||
| 442 | +CONFIG_TARGET_XILINX_ZYNQMP=y | ||
| 443 | +CONFIG_CMD_BDI=y | ||
| 444 | +CONFIG_CMD_BOOTD=y | ||
| 445 | +CONFIG_CMD_RUN=y | ||
| 446 | +CONFIG_CMD_IMI=y | ||
| 447 | +CONFIG_CMD_SAVEENV=y | ||
| 448 | +CONFIG_CMD_FLASH=y | ||
| 449 | +CONFIG_CMD_ECHO=y | ||
| 450 | +CONFIG_CMD_SOURCE=y | ||
| 451 | +CONFIG_CMD_TIME=y | ||
| 452 | +CONFIG_CMD_MISC=y | ||
| 453 | +CONFIG_CMD_TIMER=y | ||
| 454 | +CONFIG_DEFAULT_DEVICE_TREE="zynqmp" | ||
| 455 | diff --git a/include/configs/xilinx_zynqmp.h b/include/configs/xilinx_zynqmp.h | ||
| 456 | new file mode 100644 | ||
| 457 | index 0000000..d503b89 | ||
| 458 | --- /dev/null | ||
| 459 | +++ b/include/configs/xilinx_zynqmp.h | ||
| 460 | @@ -0,0 +1,134 @@ | ||
| 461 | +/* | ||
| 462 | + * Configuration for Xilinx ZynqMP | ||
| 463 | + * (C) Copyright 2014 - 2015 Xilinx, Inc. | ||
| 464 | + * Michal Simek <michal.simek@xilinx.com> | ||
| 465 | + * | ||
| 466 | + * Based on Configuration for Versatile Express | ||
| 467 | + * | ||
| 468 | + * SPDX-License-Identifier: GPL-2.0+ | ||
| 469 | + */ | ||
| 470 | + | ||
| 471 | +#ifndef __XILINX_ZYNQMP_H | ||
| 472 | +#define __XILINX_ZYNQMP_H | ||
| 473 | + | ||
| 474 | +#define CONFIG_REMAKE_ELF | ||
| 475 | + | ||
| 476 | +/* #define CONFIG_ARMV8_SWITCH_TO_EL1 */ | ||
| 477 | + | ||
| 478 | +#define CONFIG_SYS_NO_FLASH | ||
| 479 | + | ||
| 480 | +#define CONFIG_SYS_GENERIC_BOARD | ||
| 481 | + | ||
| 482 | +/* Generic Interrupt Controller Definitions */ | ||
| 483 | +#define CONFIG_GICV2 | ||
| 484 | +#define GICD_BASE 0xF9010000 | ||
| 485 | +#define GICC_BASE 0xF9020000 | ||
| 486 | + | ||
| 487 | +/* Physical Memory Map */ | ||
| 488 | +#define CONFIG_NR_DRAM_BANKS 1 | ||
| 489 | +#define CONFIG_SYS_SDRAM_BASE 0 | ||
| 490 | +#define CONFIG_SYS_SDRAM_SIZE 0x40000000 | ||
| 491 | + | ||
| 492 | +#define CONFIG_SYS_MEMTEST_START CONFIG_SYS_SDRAM_BASE | ||
| 493 | +#define CONFIG_SYS_MEMTEST_END CONFIG_SYS_SDRAM_SIZE | ||
| 494 | + | ||
| 495 | +/* Have release address at the end of 256MB for now */ | ||
| 496 | +#define CPU_RELEASE_ADDR 0xFFFFFF0 | ||
| 497 | + | ||
| 498 | +/* Cache Definitions */ | ||
| 499 | +#define CONFIG_SYS_DCACHE_OFF | ||
| 500 | + | ||
| 501 | +#define CONFIG_IDENT_STRING " Xilinx ZynqMP" | ||
| 502 | + | ||
| 503 | +#define CONFIG_SYS_TEXT_BASE 0x8000000 | ||
| 504 | +#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + 0x7fff0) | ||
| 505 | + | ||
| 506 | +/* Flat Device Tree Definitions */ | ||
| 507 | +#define CONFIG_OF_LIBFDT | ||
| 508 | + | ||
| 509 | +/* Generic Timer Definitions - setup in EL3. Setup by ATF for other cases */ | ||
| 510 | +#define COUNTER_FREQUENCY 4000000 | ||
| 511 | + | ||
| 512 | +/* Size of malloc() pool */ | ||
| 513 | +#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 0x400000) | ||
| 514 | + | ||
| 515 | +/* Serial setup */ | ||
| 516 | +#define CONFIG_ZYNQ_SERIAL_UART0 | ||
| 517 | +#define CONFIG_ZYNQ_SERIAL | ||
| 518 | + | ||
| 519 | +#define CONFIG_CONS_INDEX 0 | ||
| 520 | +#define CONFIG_BAUDRATE 115200 | ||
| 521 | +#define CONFIG_SYS_BAUDRATE_TABLE \ | ||
| 522 | + { 4800, 9600, 19200, 38400, 57600, 115200 } | ||
| 523 | + | ||
| 524 | +/* Command line configuration */ | ||
| 525 | +#define CONFIG_CMD_ENV | ||
| 526 | +#define CONFIG_CMD_EXT2 | ||
| 527 | +#define CONFIG_CMD_EXT4 | ||
| 528 | +#define CONFIG_CMD_FAT | ||
| 529 | +#define CONFIG_CMD_MEMORY | ||
| 530 | +#define CONFIG_DOS_PARTITION | ||
| 531 | + | ||
| 532 | +#if defined(CONFIG_ZYNQ_SDHCI0) || defined(CONFIG_ZYNQ_SDHCI1) | ||
| 533 | +# define CONFIG_MMC | ||
| 534 | +# define CONFIG_GENERIC_MMC | ||
| 535 | +# define CONFIG_SDHCI | ||
| 536 | +# define CONFIG_ZYNQ_SDHCI | ||
| 537 | +# define CONFIG_CMD_MMC | ||
| 538 | +#endif | ||
| 539 | + | ||
| 540 | +#if defined(CONFIG_ZYNQ_SDHCI) | ||
| 541 | +# define CONFIG_FAT_WRITE | ||
| 542 | +# define CONFIG_CMD_EXT4_WRITE | ||
| 543 | +#endif | ||
| 544 | + | ||
| 545 | +/* Miscellaneous configurable options */ | ||
| 546 | +#define CONFIG_SYS_LOAD_ADDR 0x8000000 | ||
| 547 | + | ||
| 548 | +/* Initial environment variables */ | ||
| 549 | +#define CONFIG_EXTRA_ENV_SETTINGS \ | ||
| 550 | + "ethaddr=00:0a:35:00:01:22\0" \ | ||
| 551 | + "kernel_addr=0x200000\0" \ | ||
| 552 | + "initrd_addr=0xa00000\0" \ | ||
| 553 | + "initrd_size=0x2000000\0" \ | ||
| 554 | + "fdt_addr=0x100000\0" \ | ||
| 555 | + "fdt_high=0x10000000\0" \ | ||
| 556 | + "sdboot=mmcinfo && fatload mmc 0:0 f000000 system.dtb && " \ | ||
| 557 | + "fatload mmc 0:0 f000000 Image && booti 80000 - f000000\0" | ||
| 558 | + | ||
| 559 | +#define CONFIG_BOOTARGS "setenv bootargs console=ttyPS0,${baudrate} " \ | ||
| 560 | + "earlycon=cdns,mmio,0xff000000,${baudrate}n8" | ||
| 561 | +#define CONFIG_PREBOOT "run bootargs" | ||
| 562 | +#define CONFIG_BOOTCOMMAND "run $modeboot" | ||
| 563 | +#define CONFIG_BOOTDELAY 5 | ||
| 564 | + | ||
| 565 | +#define CONFIG_BOARD_LATE_INIT | ||
| 566 | + | ||
| 567 | +/* Do not preserve environment */ | ||
| 568 | +#define CONFIG_ENV_IS_NOWHERE 1 | ||
| 569 | +#define CONFIG_ENV_SIZE 0x1000 | ||
| 570 | + | ||
| 571 | +/* Monitor Command Prompt */ | ||
| 572 | +/* Console I/O Buffer Size */ | ||
| 573 | +#define CONFIG_SYS_CBSIZE 2048 | ||
| 574 | +#define CONFIG_SYS_PROMPT "ZynqMP> " | ||
| 575 | +#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ | ||
| 576 | + sizeof(CONFIG_SYS_PROMPT) + 16) | ||
| 577 | +#define CONFIG_SYS_HUSH_PARSER | ||
| 578 | +#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE | ||
| 579 | +#define CONFIG_SYS_LONGHELP | ||
| 580 | +#define CONFIG_CMDLINE_EDITING | ||
| 581 | +#define CONFIG_SYS_MAXARGS 64 | ||
| 582 | + | ||
| 583 | +#define CONFIG_FIT | ||
| 584 | +#define CONFIG_FIT_VERBOSE /* enable fit_format_{error,warning}() */ | ||
| 585 | + | ||
| 586 | +#define CONFIG_SYS_BOOTM_LEN (60 * 1024 * 1024) | ||
| 587 | + | ||
| 588 | +#define CONFIG_CMD_BOOTI | ||
| 589 | +#define CONFIG_CMD_UNZIP | ||
| 590 | + | ||
| 591 | +#define CONFIG_BOARD_EARLY_INIT_R | ||
| 592 | +#define CONFIG_CLOCKS | ||
| 593 | + | ||
| 594 | +#endif /* __XILINX_ZYNQMP_H */ | ||
| 595 | -- | ||
| 596 | 2.1.1 | ||
| 597 | |||
diff --git a/recipes-bsp/u-boot/u-boot-zynqmp-mainline_2015.04.bb b/recipes-bsp/u-boot/u-boot-zynqmp-mainline_2015.04.bb index 5c3bcfce..43f6b03f 100644 --- a/recipes-bsp/u-boot/u-boot-zynqmp-mainline_2015.04.bb +++ b/recipes-bsp/u-boot/u-boot-zynqmp-mainline_2015.04.bb | |||
| @@ -3,13 +3,8 @@ require u-boot-elf.inc | |||
| 3 | 3 | ||
| 4 | DEPENDS += "dtc-native" | 4 | DEPENDS += "dtc-native" |
| 5 | 5 | ||
| 6 | # This revision corresponds to the tag "v2015.04-rc1" | 6 | # This revision corresponds to the tag "v2015.04" |
| 7 | SRCREV = "112db9407dd338f71200beb0fc99dffa8dcb57a8" | 7 | SRCREV = "f33cdaa4c3da4a8fd35aa2f9a3172f31cc887b35" |
| 8 | 8 | ||
| 9 | PV = "v2015.04-rc1+git${SRCPV}" | 9 | PV = "v2015.04+git${SRCPV}" |
| 10 | |||
| 11 | FILESEXTRAPATHS_prepend := "${THISDIR}/u-boot-zynqmp-mainline:" | ||
| 12 | SRC_URI_append += " \ | ||
| 13 | file://0001-arm64-Add-Xilinx-ZynqMP-support.patch \ | ||
| 14 | " | ||
| 15 | 10 | ||
