VMWare Workstation: Installing Ubuntu on Physical Driver in Windows 10.

I recently tried to create VM with Ubuntu 20.04 using physical disk under Windows 10 and at first start, then it suppose to boot from ISO and start installation it displayed error that partition file system is unknown. So after a while I solved it. This is short summary of how.

First, need prepare physical drive. In Windows DiskManager delete all partitions and create new one with out formatting and dont assign "Drive Letter" either. In should be "Raw".

Disk Management screenshot. Disk 1 will be used for Guest VM.

Then create new VM and for a disk type select "Use a physical disk (for advanced users) and "Use entire disk".

Select Ubuntu ISO image in CD-ROM settings for install.

When new VM starts, keep pressing "F2" to get to VM BIOS menu. Once in BIOS go to "Boot" tab and using "-/+" buttons move "CD-ROM Driver" to top position and "Hard Drive"/"VMware Virtual SCSI Hard Drive" to second top. Save and restart VM. It will boot from ISO image. Complete installion.

Xilinx Vivado, XSDK and Petalinux 2016.2 on Ubuntu 16.04

Just a list of a few new steps required to install and run Vivado, XSDK and Petalinux 2016.2 on Ubuntu 64bit 16.04:

  1. In order to run XSDK which can't use default GTK v3 we have to export new environmental variable. I usually add them at the end of my ~/.bashrc:

    export SWT_GTK3=0

  2. Another problem I discovered is when I open the Xilinx License Configuration Manager (XLCM) in Vivado Design Suite 2016.2, the HOST ID Matches column is shown as No. However, the host ID in the license file is correct. Looks like problem lies in new Ubuntu ethernet interface names and changing it back to eth0 fixes the issue. In order to make a change we have to add next settings to grub config in /etc/default/grub".

    GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

    Dont forget to update grub:

    sudo grub-mkconfig -o /boot/grub/grub.cfg

    Generating grub configuration file ...
    Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
    Found linux image: /boot/vmlinuz-4.4.0-31-generic
    Found initrd image: /boot/initrd.img-4.4.0-31-generic
    Found linux image: /boot/vmlinuz-4.4.0-21-generic
    Found initrd image: /boot/initrd.img-4.4.0-21-generic
    Found memtest86+ image: /boot/memtest86+.elf
    Found memtest86+ image: /boot/memtest86+.bin
    done

    Make changes to /etc/networking/interfaces and reboot:

    auto eth0
    iface eth0 inet dhcp

  3. Yet another source of problems - Vivado's settings64.sh: it sets LD_LIBRARY_PATH to point to Vivado/2016.2/lib/lnx64.o, but because its global it affects all binaries run within the shell where we source settings64.sh. In my case, I noticed problems with starting gedit and failed compilation of U-boot with error "awk: undefined symbol: mpfr_z_sub".
    Anyway, we actually can remove setting LD_LIBRARY_PATH from settings64.sh if your hardware design doesn't include AXI-BFM IP.

    #############################################################
    # Copyright (c) 1986-2016 Xilinx, Inc. All rights reserved. #
    ##############################################################

    export XILINX_VIVADO=/opt/Xilinx/Vivado/2016.2
    if [ -n "${PATH}" ]; then
    export PATH=/opt/Xilinx/Vivado/2016.2/bin:$PATH
    else
    export PATH=/opt/Xilinx/Vivado/2016.2/bin
    fi

    #if [ -n "${LD_LIBRARY_PATH}" ]; then
    # export LD_LIBRARY_PATH=/opt/Xilinx/Vivado/2016.2/lib/lnx64.o:$LD_LIBRARY_PATH
    #else
    # export LD_LIBRARY_PATH=/opt/Xilinx/Vivado/2016.2/lib/lnx64.o
    #fi

Linux Kernel 4.4 DTS node for Xilinx AXI-DMA IP.

I recently switch to Linux Kernel 4.4 (from 4.0) for some of my projects and to my no surprise found Xilinx AXI-DMA not working again. This time it complained that it can't find DMA channel: "unable to read dma-channels property" and as result "Probing channels failed." So, looks like Xilinx added support for "multi-channel mode" for kernel driver and this is a big deal! And I waited for this forever!

But, as a result of this - DTS node were changed again, braking compatibility. Also, if you using the only one DMA-channel either MM2S or S2MM channel index in your custom DTS node must be 0 in either case, unlike before if you were using only s2mm index was 1 and if only mm2s index was 0.

So, below example of DTS node for AXI DMA and modified xilinx_dmatest(single channel) which works for me for Linux 4.4

axidma0: axidma@40400000 {
        compatible = "xlnx,axi-dma-1.00.a";
        #dma-cells = <1>;
        reg = <0x40400000 0x10000>;
        interrupt-parent = <&intc>;
        dma-channel@40400030 {
                compatible = "xlnx,axi-dma-s2mm-channel";
                dma-channels = <1>;
                interrupts = <0 29 4>;
                xlnx,datawidth = <32>;
                xlnx,include-dre = <0>;
        };
} ;

dmatest0: dmatest@0 {
	compatible ="xlnx,axi-dma-test-1.00.a";
	dmas = <&axidma0 0>;
	dma-names = "axidma1";
};

Xilinx Vivado HLx WebPACK edition.

Apparently, free version of Xilinx Vivado tools (WebPACK edition) now include Logic and Serial I/O Analyzer license! Basically, it now includes all features and an equivalent of old Vivado Design Edition + Vivado HLS, but limited for next devices: Artix-7 (7A35T-7A200T), Kintex-7(7K70T,7K160T) and Zynq-7000 (XC7Z7010,XC7Z7015,XC7Z7020,XC7Z7030).

I think this is a move in a right direction. How you can effectively debug hardware design without Logic Analyzer?
I don't saying we shall get everything for free, but tools must be more affordable. Current prices on full blown versions are too high.