Skip to content

Board File Structure

ADubeyAMD edited this page Apr 20, 2026 · 2 revisions

This page defines the required structure and contents for platform board files contributed to the XilinxBoardStore repository.


Scope

This guide applies to:

  • Platform board files hosted in public GitHub repositories
  • Contributors adding new boards or updating existing ones
  • Pull requests that introduce or modify board file content

Required Files

A valid platform board directory must contain the following three files, all located in the same folder:

File Purpose
board.xml Primary board definition
part0_pins.xml Logical‑to‑physical pin mapping
preset.xml Predefined IP configuration values

All three files are required. If any file is missing or placed in a subdirectory, the board may not be recognized correctly.


Required Directory Layout

Board files must follow this directory structure:

boards/<vendor>/<board_name>/
├── board.xml
├── part0_pins.xml
└── preset.xml

All three files must reside in the same directory. Placing files in subdirectories is not supported.


File Responsibilities

board.xml

  • Declares board‑level components
  • Describes supported interfaces
  • Specifies preferred IP for implementing those interfaces
  • Maps logical interface ports to physical pins
  • Includes board identification metadata

Required Identification Fields

The root <board> element must define:

  • Vendor
  • Board name
  • Display name
  • File / schema version
  • Compatible board revisions

part0_pins.xml

  • Maps logical pin names referenced by the board definition
  • Resolves them to physical device package pins
  • Every pin referenced in board.xml must exist in this file

preset.xml

  • Defines default IP configuration values
  • Applied automatically when IP is instantiated from the catalog
  • Presets must correspond to interfaces declared in board.xml

Interface and Port Mapping Requirements

  • All declared interfaces must define logical ports
  • Every logical port must be mapped to a physical pin in part0_pins.xml
  • No unused or orphaned interfaces should remain

Pre‑Submission Structure Checklist

Before opening a pull request, verify the following:

File Presence and Location

  • board.xml is present
  • part0_pins.xml is present
  • preset.xml is present
  • All three files are in the same directory

Board Identification (board.xml)

  • Root <board> element is present
  • Vendor, board name, display name, and file version are defined
  • Compatible board revisions are explicitly listed

Interface and Port Mapping

  • All declared interfaces define logical ports
  • Every logical port is mapped to a physical pin
  • No orphaned or unused interfaces remain

Pin Mapping (part0_pins.xml)

  • Every pin referenced by board.xml exists in this file
  • Pin names resolve to valid physical package pins

Preset Alignment (preset.xml)

  • All presets correspond to interfaces declared in board.xml
  • No stale or unused preset entries remain

Recommended Pre‑Submission Practices

  • Run linter checks on all three XML files
  • Create a correct xitem.json using the provided Python utility script
  • Validate file structure before submission
  • Review port and pin mappings carefully after interface changes
  • Keep commits minimal and focused on board‑relevant content
  • Re‑check directory layout before pushing

Contribution Expectations

By submitting a pull request, contributors are expected to:

  • Ensure all required board files are complete and consistent
  • Validate basic structure and mappings locally before submission
  • Submit only board‑relevant content

Reference

Clone this wiki locally