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
# Create a software design
hsi::create_sw_design swdesign -proc ps7_cortexa9_0 -os standalone
# Check if the custom drivers are assigned to respective IP cores or not
join [hsi::get_drivers ] \n
# 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
					ls ./bsp_out/ps7_cortexa9_0/libsrc/
					. . .
					. . .