Perform the following steps to use board
file linter:
- Board developers are required to add document type declaration (DOCTYPE) in
the XML files when checking validity. This can be done manually or by using the
-doctype_inject
switch of thevalidate_board_file
command. For more details, refer to the long help snippet of the command in step 5 below. The following is an example DOCTYPE declaration:<!DOCTYPE board SYSTEM "/proj/xbuilds/<2020.2>_daily_latest/installs/lin64/Vivado/2020.2/data/boards/board_schemas/current/board.dtd">
- The DOCTYPE declaration must be removed before the XML files are actually published. This is because the DOCTYPE refers a path (Vivado installation) that is not valid for users.
- If the board developer fails to include a DOCTYPE, Vivado triggers a
warning:
Warning: [Board 49-117] Board file '/home/mccrohan/tmp/board.xml' did not contain a DOCTYPE declaration or the DOCTYPE declaration did not reference a valid DTD so XML validation is ignored for this file.
- Launch Vivado and run
validate_board_files
in the Tcl console. -
validate_board_files
is a new Tcl command to invoke linter. It currently takes one parameter, which is the name of a directory containing the board XML files (board.xml, preset.xml, part0_pins.xml).Description: Check whether the XML files describing a board in the given directory are valid. Only supported for board XML files with schema_version>=2.0. The XML files must contain an appropriate DOCTYPE declaration to be fully validated. Examples: <!DOCTYPE board SYSTEM "board.dtd"> <!-- for board.xml --> <!DOCTYPE ip_presets SYSTEM "preset.dtd"> <!-- for preset.xml --> <!DOCTYPE part_info SYSTEM "part0_pins.dtd"> <!-- for part0_pins.xml --> Note that if a project is open and an IP repository loaded, this command will also validate certain IP and Interface attributes used in the board definition against the current IP repository. Syntax: validate_board_files [-doctype_inject <arg>] [-quiet] [-verbose] [<dir>] Returns: ok if all board files are valid Usage: Name Description ------------------------------ [-doctype_inject] The name of a directory containing the dtd files (board.dtd, part0_pins.dtd, preset.dtd) for DOCTYPE injection in board files. If the path is invalid (or does not contain the dtd files), then the injection will not happen. Use "" to inject the default dtd files from the vivado install data path. [-quiet] Ignore command errors [-verbose] Suspend message limits during command execution [<dir>] The name of a directory containing the board files (board.xml, part0_pins.xml, preset.xml) to be checked Categories: Object, Project, XPS, Board