diff options
-rw-r--r-- | host/python/uhd/imgbuilder/image_builder.py | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/host/python/uhd/imgbuilder/image_builder.py b/host/python/uhd/imgbuilder/image_builder.py index 54a06a02c..67ceb6fa9 100644 --- a/host/python/uhd/imgbuilder/image_builder.py +++ b/host/python/uhd/imgbuilder/image_builder.py @@ -57,6 +57,38 @@ DEVICE_DEFAULTTARGET_MAP = { 'n320': 'N320_XG', } +# List of blocks that have been replaced (old name : new name) +deprecated_block_yml_map = { + "radio_1x64.yml" : "radio.yml", + "radio_2x64.yml" : "radio.yml", + "axi_ram_fifo_2x64.yml" : "axi_ram_fifo.yml", + "axi_ram_fifo_4x64.yml" : "axi_ram_fifo.yml", +} + +# List of port names that have been replaced (old name : new name) +deprecated_port_name_map = { + "x300_radio" : "radio", + "radio_iface" : "radio", + "x300_radio0" : "radio0", + "x300_radio1" : "radio1", + "radio_ch0" : "radio0", + "radio_ch1" : "radio1", + "ctrl_port" : "ctrlport", + "ctrlport_radio" : "ctrlport", + "timekeeper" : "time", + "time_keeper" : "time", +} + +# List of IO signature types that have been replaced (old name : new name) +deprecated_port_type_map = { + "ctrl_port" : "ctrlport", + "time_keeper" : "timekeeper", + "radio_1x32" : "radio", + "radio_2x32" : "radio", + "radio_8x32" : "radio", + "x300_radio" : "radio", +} + # Adapted from code found at # https://stackoverflow.com/questions/5121931/ @@ -112,6 +144,13 @@ def expand_io_port_desc(io_ports, signatures): """ for io_port in io_ports.values(): wires = [] + if io_port["type"] in deprecated_port_type_map: + logging.warning( + "The IO signature type '" + io_port["type"] + + "' has been deprecated. Please update your block YAML to use '" + + deprecated_port_type_map[io_port["type"]] + "'." + ) + io_port["type"] = deprecated_port_type_map[io_port["type"]] for signature in signatures[io_port["type"]]["ports"]: width = signature.get("width", 1) wire_type = signature.get("type", None) @@ -192,48 +231,28 @@ class ImageBuilderConfig: Check if the configuration uses deprecated IO signatures or block descriptions. """ - # List of blocks that have been replaced (old name : new name) - block_yml_map = { - "radio_1x64.yml" : "radio.yml", - "radio_2x64.yml" : "radio.yml", - "axi_ram_fifo_2x64.yml" : "axi_ram_fifo.yml", - "axi_ram_fifo_4x64.yml" : "axi_ram_fifo.yml", - } - # List of port names that have been replaced (old name : new name) - port_name_map = { - "x300_radio" : "radio", - "radio_iface" : "radio", - "x300_radio0" : "radio0", - "x300_radio1" : "radio1", - "radio_ch0" : "radio0", - "radio_ch1" : "radio1", - "ctrl_port" : "ctrlport", - "ctrlport_radio" : "ctrlport", - "timekeeper" : "time", - "time_keeper" : "time", - } # Go through blocks and look for any deprecated descriptions for name, block in self.noc_blocks.items(): desc = block['block_desc'] - if desc in block_yml_map: + if desc in deprecated_block_yml_map: logging.warning( "The block description '" + desc + "' has been deprecated. Please update your image to use '" + - block_yml_map[desc] + "'." + deprecated_block_yml_map[desc] + "'." ) # Override the block with the new version - block['block_desc'] = block_yml_map[desc] + block['block_desc'] = deprecated_block_yml_map[desc] # Go through port connections and look for deprecated names for con in self.connections: for port in ('srcport', 'dstport'): - if con[port] in port_name_map: + if con[port] in deprecated_port_name_map: logging.warning( "The port name '" + con[port] + "' has been deprecated. " "Please update your image to use '" + - port_name_map[con[port]] + "'." + deprecated_port_name_map[con[port]] + "'." ) # Override the name with the new version - con[port] = port_name_map[con[port]] + con[port] = deprecated_port_name_map[con[port]] def _check_configuration(self): """ @@ -668,7 +687,10 @@ def read_block_descriptions(signatures, *paths): if re.match(r".*\.yml$", filename): with open(os.path.join(root, filename)) as stream: block = ordered_load(stream) - if "schema" in block and \ + if filename in deprecated_block_yml_map: + logging.warning("Skipping deprecated block description " + "%s (%s).", filename, os.path.normpath(root)) + elif "schema" in block and \ block["schema"] == "rfnoc_modtool_args": logging.info("Adding block description from " "%s (%s).", filename, os.path.normpath(root)) |