aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xilinx-core/conf/machine/microblaze-generic.conf
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xilinx-core/conf/machine/microblaze-generic.conf')
-rw-r--r--meta-xilinx-core/conf/machine/microblaze-generic.conf111
1 files changed, 111 insertions, 0 deletions
diff --git a/meta-xilinx-core/conf/machine/microblaze-generic.conf b/meta-xilinx-core/conf/machine/microblaze-generic.conf
new file mode 100644
index 00000000..8fb40070
--- /dev/null
+++ b/meta-xilinx-core/conf/machine/microblaze-generic.conf
@@ -0,0 +1,111 @@
+#@TYPE: Machine
+#@NAME: microblaze-generic
+#@DESCRIPTION: Machine configuration for the microblaze-generic devices
+
+# Deprecated board config
+USE_BOARD = "${@"conf/machine/include/xilinx-board-pre.inc" if d.getVar("BOARD") or d.getVar("BOARD_VARIANT") else ""}"
+require ${USE_BOARD}
+unset USE_BOARD
+
+#### Preamble
+MACHINEOVERRIDES =. "${@['', 'microblaze-generic:']['microblaze-generic' != '${MACHINE}']}"
+#### Regular settings follow
+
+# Set the default for a modern full feature microblaze...
+TUNE_FEATURES:tune-microblaze ?= "microblaze v11.0 pattern-compare barrel-shift divide-hard multiply-high fpu-hard reorder"
+DEFAULTTUNE ?= "microblaze"
+
+# Variables that changes based on hw design or board specific requirement must be
+# defined before calling the required inclusion file else pre-expansion value
+# defined in local.conf without machine override will not be reflected.
+
+# Yocto Microblaze device-tree variables
+YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "axi_uartlite_0"
+YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "DDR4_0"
+DT_PADDING_SIZE:pn-device-tree ?= "0x1000"
+DTC_FLAGS:pn-device-tree ?= ""
+XSCTH_PROC:pn-device-tree ?= "microblaze_0"
+YAML_DT_BOARD_FLAGS ?= "{BOARD kcu105}"
+
+# Yocto Microblaze FS-Boot variables
+YAML_SERIAL_CONSOLE_STDIN:pn-fs-boot ?= "axi_uartlite_0"
+YAML_SERIAL_CONSOLE_STDOUT:pn-fs-boot ?= "axi_uartlite_0"
+YAML_MAIN_MEMORY_CONFIG:pn-fs-boot ?= "DDR4_0"
+YAML_FLASH_MEMORY_CONFIG:pn-fs-boot ?= "axi_quad_spi_0"
+XSCTH_PROC:pn-fs-boot ?= "microblaze_0"
+
+# Yocto Microblaze u-boot-xlnx variables
+UBOOT_MACHINE ?= "microblaze-generic_defconfig"
+UBOOT_INITIAL_ENV = ""
+BOOTMODE ?= "generic.root"
+
+# Yocto Microblaze KERNEL Variables
+UBOOT_ENTRYPOINT ?= "0x80000000"
+UBOOT_LOADADDRESS ?= "0x80000000"
+KERNEL_EXTRA_ARGS += "UIMAGE_LOADADDR=${UBOOT_ENTRYPOINT}"
+
+# Microblaze Serial Console settings
+SERIAL_CONSOLES ?= "115200;ttyUL0"
+YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200"
+
+require conf/machine/include/soc-tune-include.inc
+require conf/machine/include/machine-xilinx-default.inc
+require conf/machine/include/machine-xilinx-qemu.inc
+
+# The default MACHINE_ARCH is dynmic for microblaze, since the architecture is not fixed
+# Based on core bitbake.conf
+DEF_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('MACHINE')][bool(d.getVar('MACHINE'))].replace('-', '_')}"
+# Enable a dynamic machine_arch
+MB_MACHINE_ARCH = "${@[d.getVar('TUNE_PKGARCH'), d.getVar('TUNE_PKGARCH') + '-generic'][bool(d.getVar('MACHINE'))].replace('-', '_')}"
+
+MACHINE_ARCH = "${@['${MB_MACHINE_ARCH}', '${DEF_MACHINE_ARCH}']['microblaze-generic' != "${MACHINE}"]}"
+
+# microblaze-generic.conf uses kcu105-microblazeel xsa as reference input.
+# User can override with custom xsa using HDF_BASE and HDF_PATH variables from
+# local.conf.
+HDF_MACHINE = "kcu105-microblazeel"
+
+MACHINE_FEATURES = ""
+
+KERNEL_IMAGETYPE ?= "linux.bin.ub"
+KERNEL_IMAGETYPES = ""
+
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "${PREFERRED_PROVIDER_virtual/dtb}"
+
+IMAGE_BOOT_FILES += " \
+ ${@bb.utils.contains('PREFERRED_PROVIDER_virtual/dtb', 'device-tree', 'system.dtb', '', d)} \
+ "
+
+EXTRA_IMAGEDEPENDS += " \
+ libyaml-native \
+ python3-cython-native \
+ python3-pyyaml-native \
+ virtual/bitstream \
+ virtual/bootloader \
+ virtual/elfrealloc \
+ u-boot-xlnx-scr \
+ "
+
+IMAGE_FSTYPES += "cpio.gz"
+
+# Microblaze QEMU Configurations
+QB_MEM = "-m 2G"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyUL0,115200 root=/dev/ram0 rw"
+QB_NETWORK_DEVICE = "-net nic,netdev=net0,macaddr=@MAC@"
+
+# This will work with the default runqemu, as the first serial port is the
+# correct console
+#
+# One total serial port defined in this model (according to the generated dts)
+#
+# hw serial0 axi_uartlite_0 (40600000) - linux serial0 (ttyUL0)
+QB_XILINX_SERIAL = ""
+
+#### No additional settings should be after the Postamble
+#### Postamble
+PACKAGE_EXTRA_ARCHS:append = "${@['', ' ${MB_MACHINE_ARCH}']['microblaze-generic' != "${MACHINE}"]}"
+
+# Deprecated board config
+USE_BOARD = "${@"conf/machine/include/xilinx-board-post.inc" if d.getVar("BOARD") or d.getVar("BOARD_VARIANT") else ""}"
+require ${USE_BOARD}
+unset USE_BOARD