image builder: Allow missing connections

The image builder will currently emit a warning if a NoC-block has
unconnected ports. This requires specifying `-W` to continue building,
which is the intended behaviour.

However, there are cases where there are legitimate reasons to not
connect a block, e.g., in the X310, where the radio block has 2x2 ports,
but we only connect 2 RX ports, and 1 TX port.

This adds a way to declare a "null" connection, which makes it explicit
in the image core YAML that a connection was deliberately omitted. Such
connections are created by connecting to a port called "_none_", e.g.:

```
connections:
  - { srcblk: _device_,  srcport: _none_, dstblk: radio0, dstport: in_1 }
```

The block name is irrelevant, but the schema requires providing a block
name.

This commit also amends the x3xx_radio_base.yml to avoid warnings when
building X3x0 bitfiles.


Original-commit: 6758966a5ac127a396e8b3b39f96aa484098e50f
This commit is contained in:
Martin Braun
2024-06-26 15:08:39 +02:00
committed by joergho
parent d696c160db
commit fba65c68f7
@@ -67,6 +67,10 @@ connections:
# RF A TX
- { srcblk: ep0, srcport: out0, dstblk: duc0, dstport: in_0 }
- { srcblk: duc0, srcport: out_0, dstblk: radio0, dstport: in_0 }
# This is a fake connection: It signals to the image builder that we are
# deliberately not connecting this port, so it doesn't have to print a warning
# about it.
- { srcblk: _device_, srcport: _none_, dstblk: radio0, dstport: in_1 }
# RF A RX
- { srcblk: radio0, srcport: out_0, dstblk: ddc0, dstport: in_0 }
- { srcblk: ddc0, srcport: out_0, dstblk: ep0, dstport: in0 }
@@ -77,6 +81,8 @@ connections:
# RF B TX
- { srcblk: ep2, srcport: out0, dstblk: duc1, dstport: in_0 }
- { srcblk: duc1, srcport: out_0, dstblk: radio1, dstport: in_0 }
# See comment above about fake connections.
- { srcblk: _device_, srcport: _none_, dstblk: radio1, dstport: in_1 }
# RF B RX
- { srcblk: radio1, srcport: out_0, dstblk: ddc1, dstport: in_0 }
- { srcblk: ddc1, srcport: out_0, dstblk: ep2, dstport: in0 }