switch (ver) {
case ZYNQMP_CSU_VERSION_VELOCE:
- return 400000;
+ return 96000;
case ZYNQMP_CSU_VERSION_EP108:
return 25000000;
}
{
gd->cpu_clk = get_tbclk();
- gd->bd->bi_arm_freq = gd->cpu_clk / 1000000;
+ /* Support Veloce to show at least 1MHz via bdi */
+ if (gd->cpu_clk > 1000000)
+ gd->bd->bi_arm_freq = gd->cpu_clk / 1000000;
+ else
+ gd->bd->bi_arm_freq = 1;
+
gd->bd->bi_dsp_freq = 0;
return 0;
unsigned int zynqmp_get_silicon_version(void)
{
+ gd->cpu_clk = get_tbclk();
+
switch (gd->cpu_clk) {
- case 400000:
+ case 0 ... 1000000:
return ZYNQMP_CSU_VERSION_VELOCE;
case 50000000:
return ZYNQMP_CSU_VERSION_QEMU;
int board_mmc_init(bd_t *bd)
{
int ret = 0;
+ u32 ver = zynqmp_get_silicon_version();
+ if (ver != ZYNQMP_CSU_VERSION_VELOCE) {
#if defined(CONFIG_ZYNQ_SDHCI)
# if defined(CONFIG_ZYNQ_SDHCI0)
- ret = zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR0);
+ ret = zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR0);
# endif
# if defined(CONFIG_ZYNQ_SDHCI1)
- ret |= zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR1);
+ ret |= zynq_sdhci_init(ZYNQ_SDHCI_BASEADDR1);
# endif
#endif
+ }
+
return ret;
}
#endif
switch (ver) {
case ZYNQMP_CSU_VERSION_VELOCE:
+ setenv("baudrate", "9600");
+ setenv("bootcmd", "run veloce");
case ZYNQMP_CSU_VERSION_EP108:
setenv("serverip", "10.10.70.101");
setenv("ipaddr", "10.10.71.100");
/* Calculation results. */
unsigned int calc_bauderror, bdiv, bgen;
unsigned long calc_baud = 0;
- unsigned long baud = gd->baudrate;
+ unsigned long baud;
unsigned long clock = get_uart_clk(port);
struct uart_zynq *regs = uart_zynq_ports[port];
+ /* Covering case where input clock is so slow */
+ if (clock < 1000000 && gd->baudrate > 9600) {
+ gd->baudrate = 9600;
+ }
+ baud = gd->baudrate;
+
/* master clock
* Baud rate = ------------------
* bgen * (bdiv + 1)
"initrd_size=0x2000000\0" \
"fdt_addr=0x100000\0" \
"fdt_high=0x10000000\0" \
+ "veloce=fdt addr f000000 && fdt set /amba/misc_clk clock-frequency <96000> && "\
+ "fdt set /amba_apu/timer clock-frequency <480000> && " \
+ "fdt set /amba/i2c_clk clock-frequency <480000> && " \
+ "booti 80000 - f000000\0" \
"netboot=tftpboot 80000 Image && tftpboot f000000 system.dtb && booti 80000 - f000000\0" \
"qspiboot=sf probe 0 && sf read f000000 100000 40000 && " \
"sf read 80000 140000 1800000 && booti 80000 - f000000\0" \
"fatload mmc 0:0 f000000 Image && booti 80000 - f000000\0" \
"jtagboot=tftpboot 10000000 image.ub && bootm\0"
-#define CONFIG_BOOTARGS "console=ttyPS0,115200 earlycon=cdns,mmio,0xff000000,115200n8"
-#define CONFIG_BOOTCOMMAND "echo Hello Xilinx ZynqMP; run $modeboot"
+#define CONFIG_BOOTARGS "setenv bootargs console=ttyPS0,${baudrate} earlycon=cdns,mmio,0xff000000,${baudrate}n8"
+#define CONFIG_PREBOOT "echo Hello Xilinx ZynqMP; run bootargs"
+#define CONFIG_BOOTCOMMAND "run $modeboot"
#define CONFIG_BOOTDELAY 5
#define CONFIG_BOARD_LATE_INIT