diff options
Diffstat (limited to 'roms/u-boot/board/xilinx/microblaze-generic')
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(); +} |