User Tools

Site Tools


zed_machine_conf

Overview

Machine definition files for Zedboard.

zedboard-zynq7.conf

#@TYPE: Machine
#@NAME: zedboard-zynq7
#@DESCRIPTION: Machine support for ZedBoard. (http://www.zedboard.org/)
#
# For details on the Evaluation board:
#     http://www.zedboard.org/content/overview
# For design files (including 'zynq_fsbl_0.elf') for the ZedBoard:
#     http://www.zedboard.org/reference-designs-categories/zynq-concepts-tools-and-techniques-zedboard
#

SOC_VARIANT ?= "7z"

require conf/machine/include/tune-zynq.inc
require conf/machine/include/machine-xilinx-overrides.inc
require conf/machine/include/machine-xilinx-default.inc

# u-boot configuration
UBOOT_MACHINE = "zynq_zed_config"
SPL_BINARY ?= "spl/boot.bin"

EXTRA_IMAGEDEPENDS += " \
                u-boot-zynq-uenv \
                virtual/boot-bin \
                virtual/bootloader \
                "

SERIAL_CONSOLE = "115200 ttyPS0"

KERNEL_DEVICETREE = "zynq-zed.dtb"

IMAGE_BOOT_FILES += " \
                boot.bin \
                uEnv.txt \
                "

required files

tune-zynq.inc

DEFAULTTUNE ?= "cortexa9thf-neon"
SOC_FAMILY ?= "zynq"

# Available SOC_VARIANT's for zynq:
# 7zs - Zynq-7000 Single A9 Core
# 7z  - Zynq-7000 Dual A9 Core

SOC_VARIANT ?= "7z"

require conf/machine/include/tune-cortexa9.inc
require conf/machine/include/soc-family.inc

# Linux Configuration
KERNEL_IMAGETYPE ?= "uImage"

# Set default load address.
# Override with KERNEL_EXTRA_ARGS_<board> += "..." in machine file if required
KERNEL_EXTRA_ARGS_zynq += "UIMAGE_LOADADDR=0x8000"

machine-xilinx-overrides.inc

SOC_VARIANT ??= ""
MACHINEOVERRIDES =. "${@['', '${SOC_FAMILY}${SOC_VARIANT}:']['${SOC_VARIANT}' != '']}"

# Here we can extend overrides for the corresponding family and variant
def get_soc_overrides(fam, var, d):
  extender = ''
  if (fam == 'zynqmp'):
    if (var == 'eg'):
      extender = 'mali400:'
    elif (var == 'ev'):
      extender = 'mali400:vcu:'
  return extender

# Gets OVERRIDES extender depending on the board
SOC_OVERRIDES = "${@get_soc_overrides(d.getVar('SOC_FAMILY'),d.getVar('SOC_VARIANT'), d)}"

MACHINEOVERRIDES  =. "${SOC_OVERRIDES}"

PACKAGE_EXTRA_ARCHS_append = " ${SOC_FAMILY}"
PACKAGE_EXTRA_ARCHS_append = "${@['', ' ${SOC_FAMILY}${SOC_VARIANT}']['${SOC_VARIANT}' != '']}"

machine-xilinx-default.inc

# Default Xilinx BSP Machine settings

MACHINE_FEATURES_BACKFILL_CONSIDERED += "rtc"

# File System Configuration
IMAGE_FSTYPES ?= "tar.gz cpio cpio.gz.u-boot"

# Kernel Configuration
XILINX_DEFAULT_KERNEL := "linux-xlnx"
XILINX_DEFAULT_KERNEL_microblaze := "linux-yocto"
XILINX_DEFAULT_KERNEL_zynqmp := "linux-yocto"
PREFERRED_PROVIDER_virtual/kernel ??= "${XILINX_DEFAULT_KERNEL}"

# U-Boot Configuration
XILINX_DEFAULT_UBOOT := "u-boot-xlnx"
XILINX_DEFAULT_UBOOT_zynqmp := "u-boot"
PREFERRED_PROVIDER_virtual/bootloader ??= "${XILINX_DEFAULT_UBOOT}"
PREFERRED_PROVIDER_virtual/boot-bin ??= "${PREFERRED_PROVIDER_virtual/bootloader}"

UBOOT_SUFFIX ?= "img"
UBOOT_SUFFIX_zynqmp ?= "bin"
UBOOT_SUFFIX_microblaze ?= "bin"

UBOOT_BINARY ?= "u-boot.${UBOOT_SUFFIX}"
UBOOT_ELF ?= "u-boot"
UBOOT_ELF_aarch64 ?= "u-boot.elf"

#Hardware accelaration
PREFERRED_PROVIDER_virtual/libgles1_mali400 = "libmali-xlnx"
PREFERRED_PROVIDER_virtual/libgles2_mali400 = "libmali-xlnx"
PREFERRED_PROVIDER_virtual/egl_mali400 = "libmali-xlnx"
PREFERRED_PROVIDER_virtual/libgl_mali400 = "mesa-gl"
PREFERRED_PROVIDER_virtual/mesa_mali400 = "mesa-gl"


XSERVER ?= " \
        xserver-xorg \
        xf86-input-evdev \
        xf86-input-mouse \
        xf86-input-keyboard \
        xf86-video-fbdev \
        ${XSERVER_EXT} \
        "

IMAGE_BOOT_FILES ?= "${@get_default_image_boot_files(d)}"

def get_default_image_boot_files(d):
    files = []

    # kernel images
    kerneltypes = set((d.getVar("KERNEL_IMAGETYPE") or "").split())
    kerneltypes |= set((d.getVar("KERNEL_IMAGETYPES") or "").split())
    for i in kerneltypes:
        files.append(i)

    # u-boot image
    if d.getVar("UBOOT_BINARY"):
        files.append(d.getVar("UBOOT_BINARY"))

    # device trees (device-tree only), these are first as they are likely desired over the kernel ones
    if "device-tree" in (d.getVar("MACHINE_ESSENTIAL_EXTRA_RDEPENDS") or ""):
        files.append("devicetree/*.dtb")


    # device trees (kernel only)
    if d.getVar("KERNEL_DEVICETREE"):
        dtbs = d.getVar("KERNEL_DEVICETREE").split(" ")
        dtbs = [os.path.basename(d) for d in dtbs]
        for dtb in dtbs:
            files.append(dtb)

    return " ".join(files)

XSERVER_EXT ?= ""
XSERVER_EXT_zynqmp ?= "xf86-video-armsoc"

# For MicroBlaze default all microblaze machines to use GDB 7.7.1 (for gdbserver/gdb)
PREFERRED_VERSION_gdb_microblaze = "7.7.1"
zed_machine_conf.txt · Last modified: 2019/05/05 16:06 by rpjday