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
. . .