]> Git Repo - u-boot.git/blame - board/xilinx/zynqmp/zynqmp.c
ARM: zynq: drop "optional" from board select in favor of ZC702
[u-boot.git] / board / xilinx / zynqmp / zynqmp.c
CommitLineData
84c7204b
MS
1/*
2 * (C) Copyright 2014 - 2015 Xilinx, Inc.
3 * Michal Simek <[email protected]>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 */
7
8#include <common.h>
9#include <netdev.h>
6fe6f135
MS
10#include <ahci.h>
11#include <scsi.h>
84c7204b
MS
12#include <asm/arch/hardware.h>
13#include <asm/arch/sys_proto.h>
14#include <asm/io.h>
15
16DECLARE_GLOBAL_DATA_PTR;
17
18int board_init(void)
19{
a0736efb
MS
20 printf("EL Level:\tEL%d\n", current_el());
21
84c7204b
MS
22 return 0;
23}
24
25int board_early_init_r(void)
26{
27 u32 val;
28
29 val = readl(&crlapb_base->timestamp_ref_ctrl);
30 val |= ZYNQMP_CRL_APB_TIMESTAMP_REF_CTRL_CLKACT;
31 writel(val, &crlapb_base->timestamp_ref_ctrl);
32
33 /* Program freq register in System counter and enable system counter */
34 writel(gd->cpu_clk, &iou_scntr->base_frequency_id_register);
35 writel(ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_HDBG |
36 ZYNQMP_IOU_SCNTR_COUNTER_CONTROL_REGISTER_EN,
37 &iou_scntr->counter_control_register);
38
39 return 0;
40}
41
42int dram_init(void)
43{
44 gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
45
46 return 0;
47}
48
49int timer_init(void)
50{
51 return 0;
52}
53
54void reset_cpu(ulong addr)
55{
56}
57
6fe6f135
MS
58#ifdef CONFIG_SCSI_AHCI_PLAT
59void scsi_init(void)
60{
61 ahci_init((void __iomem *)ZYNQMP_SATA_BASEADDR);
62 scsi_scan(1);
63}
64#endif
65
cb7ea820
MS
66int board_eth_init(bd_t *bis)
67{
68 u32 ret = 0;
69
70#if defined(CONFIG_ZYNQ_GEM)
71# if defined(CONFIG_ZYNQ_GEM0)
72 ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR0,
73 CONFIG_ZYNQ_GEM_PHY_ADDR0, 0);
74# endif
75# if defined(CONFIG_ZYNQ_GEM1)
76 ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR1,
77 CONFIG_ZYNQ_GEM_PHY_ADDR1, 0);
78# endif
79# if defined(CONFIG_ZYNQ_GEM2)
80 ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR2,
81 CONFIG_ZYNQ_GEM_PHY_ADDR2, 0);
82# endif
83# if defined(CONFIG_ZYNQ_GEM3)
84 ret |= zynq_gem_initialize(bis, ZYNQ_GEM_BASEADDR3,
85 CONFIG_ZYNQ_GEM_PHY_ADDR3, 0);
86# endif
87#endif
88 return ret;
89}
90
84c7204b
MS
91#ifdef CONFIG_CMD_MMC
92int board_mmc_init(bd_t *bd)
93{
94 int ret = 0;
95
16247d28
MS
96 u32 ver = zynqmp_get_silicon_version();
97
98 if (ver != ZYNQMP_CSU_VERSION_VELOCE) {
84c7204b
MS
99#if defined(CONFIG_ZYNQ_SDHCI)
100# if defined(CONFIG_ZYNQ_SDHCI0)
16247d28 101 ret = zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR0);
84c7204b
MS
102# endif
103# if defined(CONFIG_ZYNQ_SDHCI1)
16247d28 104 ret |= zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR1);
84c7204b
MS
105# endif
106#endif
16247d28 107 }
84c7204b
MS
108
109 return ret;
110}
111#endif
112
113int board_late_init(void)
114{
115 u32 reg = 0;
116 u8 bootmode;
117
118 reg = readl(&crlapb_base->boot_mode);
119 bootmode = reg & BOOT_MODES_MASK;
120
121 switch (bootmode) {
122 case SD_MODE:
39c56f55 123 case EMMC_MODE:
84c7204b
MS
124 setenv("modeboot", "sdboot");
125 break;
126 default:
127 printf("Invalid Boot Mode:0x%x\n", bootmode);
128 break;
129 }
130
131 return 0;
132}
84696ff5
SDPP
133
134int checkboard(void)
135{
136 puts("Board:\tXilinx ZynqMP\n");
137 return 0;
138}
This page took 0.108017 seconds and 4 git commands to generate.