aboutsummaryrefslogtreecommitdiffstats
path: root/roms/u-boot/board/xilinx/microblaze-generic
diff options
context:
space:
mode:
Diffstat (limited to 'roms/u-boot/board/xilinx/microblaze-generic')
-rw-r--r--roms/u-boot/board/xilinx/microblaze-generic/Kconfig41
-rw-r--r--roms/u-boot/board/xilinx/microblaze-generic/MAINTAINERS7
-rw-r--r--roms/u-boot/board/xilinx/microblaze-generic/Makefile6
-rw-r--r--roms/u-boot/board/xilinx/microblaze-generic/config.mk18
-rw-r--r--roms/u-boot/board/xilinx/microblaze-generic/microblaze-generic.c79
5 files changed, 151 insertions, 0 deletions
diff --git a/roms/u-boot/board/xilinx/microblaze-generic/Kconfig b/roms/u-boot/board/xilinx/microblaze-generic/Kconfig
new file mode 100644
index 000000000..f2fa0f72b
--- /dev/null
+++ b/roms/u-boot/board/xilinx/microblaze-generic/Kconfig
@@ -0,0 +1,41 @@
+if TARGET_MICROBLAZE_GENERIC
+
+config SYS_BOARD
+ default "microblaze-generic"
+
+config SYS_VENDOR
+ default "xilinx"
+
+config SYS_CONFIG_NAME
+ string "Board configuration name"
+ default "microblaze-generic"
+ help
+ This option contains information about board configuration name.
+ Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
+ will be used for board configuration.
+
+config XILINX_MICROBLAZE0_USE_MSR_INSTR
+ int "USE_MSR_INSTR range (0:1)"
+ default 0
+
+config XILINX_MICROBLAZE0_USE_PCMP_INSTR
+ int "USE_PCMP_INSTR range (0:1)"
+ default 0
+
+config XILINX_MICROBLAZE0_USE_BARREL
+ int "USE_BARREL range (0:1)"
+ default 0
+
+config XILINX_MICROBLAZE0_USE_DIV
+ int "USE_DIV range (0:1)"
+ default 0
+
+config XILINX_MICROBLAZE0_USE_HW_MUL
+ int "USE_HW_MUL values (0=NONE, 1=MUL32, 2=MUL64)"
+ default 0
+
+config XILINX_MICROBLAZE0_HW_VER
+ string "Core version number"
+ default "7.10.d"
+
+endif
diff --git a/roms/u-boot/board/xilinx/microblaze-generic/MAINTAINERS b/roms/u-boot/board/xilinx/microblaze-generic/MAINTAINERS
new file mode 100644
index 000000000..29ed32f78
--- /dev/null
+++ b/roms/u-boot/board/xilinx/microblaze-generic/MAINTAINERS
@@ -0,0 +1,7 @@
+MICROBLAZE-GENERIC BOARD
+M: Michal Simek <monstr@monstr.eu>
+S: Maintained
+T: git https://source.denx.de/u-boot/custodians/u-boot-microblaze.git
+F: board/xilinx/microblaze-generic/
+F: include/configs/microblaze-generic.h
+F: configs/microblaze-generic_defconfig
diff --git a/roms/u-boot/board/xilinx/microblaze-generic/Makefile b/roms/u-boot/board/xilinx/microblaze-generic/Makefile
new file mode 100644
index 000000000..cfd833752
--- /dev/null
+++ b/roms/u-boot/board/xilinx/microblaze-generic/Makefile
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2000-2006
+# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
+
+obj-y = microblaze-generic.o
diff --git a/roms/u-boot/board/xilinx/microblaze-generic/config.mk b/roms/u-boot/board/xilinx/microblaze-generic/config.mk
new file mode 100644
index 000000000..a9539776d
--- /dev/null
+++ b/roms/u-boot/board/xilinx/microblaze-generic/config.mk
@@ -0,0 +1,18 @@
+# SPDX-License-Identifier: GPL-2.0+
+#
+# (C) Copyright 2007 - 2016 Michal Simek
+#
+# Michal SIMEK <monstr@monstr.eu>
+
+CPU_VER := $(shell echo $(CONFIG_XILINX_MICROBLAZE0_HW_VER))
+
+# USE_HW_MUL can be 0, 1, or 2, defining a hierarchy of HW Mul support.
+CPUFLAGS-$(subst 1,,$(CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL)) += -mxl-multiply-high
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_HW_MUL) += -mno-xl-soft-mul
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_DIV) += -mno-xl-soft-div
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_BARREL) += -mxl-barrel-shift
+CPUFLAGS-$(CONFIG_XILINX_MICROBLAZE0_USE_PCMP_INSTR) += -mxl-pattern-compare
+
+CPUFLAGS-1 += $(call cc-option,-mcpu=v$(CPU_VER))
+
+PLATFORM_CPPFLAGS += $(CPUFLAGS-1) $(CPUFLAGS-2)
diff --git a/roms/u-boot/board/xilinx/microblaze-generic/microblaze-generic.c b/roms/u-boot/board/xilinx/microblaze-generic/microblaze-generic.c
new file mode 100644
index 000000000..a427ac94a
--- /dev/null
+++ b/roms/u-boot/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2007-2018 Michal Simek
+ *
+ * Michal SIMEK <monstr@monstr.eu>
+ */
+
+/*
+ * This is a board specific file. It's OK to include board specific
+ * header files
+ */
+
+#include <common.h>
+#include <config.h>
+#include <env.h>
+#include <init.h>
+#include <log.h>
+#include <asm/global_data.h>
+#include <dm/lists.h>
+#include <fdtdec.h>
+#include <linux/sizes.h>
+#include "../common/board.h"
+
+DECLARE_GLOBAL_DATA_PTR;
+
+int dram_init_banksize(void)
+{
+ return fdtdec_setup_memory_banksize();
+}
+
+int dram_init(void)
+{
+ if (fdtdec_setup_mem_size_base() != 0)
+ return -EINVAL;
+
+ return 0;
+};
+
+int board_late_init(void)
+{
+ ulong max_size;
+ u32 status = 0;
+
+#if !defined(CONFIG_SPL_BUILD) && defined(CONFIG_SYSRESET_MICROBLAZE)
+ int ret;
+
+ ret = device_bind_driver(gd->dm_root, "mb_soft_reset",
+ "reset_soft", NULL);
+ if (ret)
+ printf("Warning: No reset driver: ret=%d\n", ret);
+#endif
+
+ if (!(gd->flags & GD_FLG_ENV_DEFAULT)) {
+ debug("Saved variables - Skipping\n");
+ return 0;
+ }
+
+ max_size = gd->start_addr_sp - CONFIG_STACK_SIZE;
+ max_size = round_down(max_size, SZ_16M);
+
+ status |= env_set_hex("scriptaddr", max_size + SZ_2M);
+
+ status |= env_set_hex("pxefile_addr_r", max_size + SZ_1M);
+
+ status |= env_set_hex("kernel_addr_r", gd->ram_base + SZ_32M);
+
+ status |= env_set_hex("fdt_addr_r", gd->ram_base + SZ_32M - SZ_1M);
+
+ status |= env_set_hex("ramdisk_addr_r",
+ gd->ram_base + SZ_32M + SZ_4M + SZ_2M);
+ if (IS_ENABLED(CONFIG_MTD_NOR_FLASH))
+ status |= env_set_hex("script_offset_nor",
+ gd->bd->bi_flashstart +
+ CONFIG_BOOT_SCRIPT_OFFSET);
+ if (status)
+ printf("%s: Saving run time variables FAILED\n", __func__);
+
+ return board_late_init_xilinx();
+}