Custom Driver

This section demonstrates how to hand-off a custom driver associated with an IP(driver files are specified in IPXACT file of the IP component) and access the driver information in HSI as well as associate the driver with IP during BSP generation. For more information on packaging IP with custom driver, refer to Vivado Design Suite User Guide: Creating and Packaging Custom IP (UG1118).

An example design of an IP with custom driver specified in its IPXACT definition.

Figure 1: Example Design with an IP with custom driver
Figure 2: Custom driver specified in IPXACT specification of an IP

Custom driver specified in IPXACT specification of an IP

Run Vivado hardware hand-off flow either in Pre-Synth or Post-Bitstream mode. The custom driver for each IP is packaged in an XSA.

# Open the hardware design with custom drivers.
hsi::open_hw_design ./base_zynq_design_wrapper.xsa
				base_zynq_design_wrapper
# Create a software design
hsi::create_sw_design swdesign -proc ps7_cortexa9_0 -os standalone
				Swdesign
# Check if the custom drivers are assigned to respective IP cores or not
join [hsi::get_drivers ] \n
					axi_bram_ctrl_0
					axi_gpio_0
					myip_0
# Check the custom driver properties
common::report_property [ hsi::get_drivers myip*]
Property Type Read-only Visible Value
CLASS string true true driver
HW_INSTANCE string true true myip_0
NAME string false true myip
VERSION string false true 1.0
# Generate BSP. BSP source code including custom driver sources will be dumped to the bsp_out #directory
hsi::generate_bsp -dir bsp_out
					base_zynq_design_wrapper
					ls ./bsp_out/ps7_cortexa9_0/libsrc/
					. . .
					myip_v1_0
					. . .