fpga: e31x/e320/n3xx/x400: Rework device tree file generation

... to support custom image core name, example:

    rfnoc_image_builder -y n310_rfnoc_image_core.yml -n my_custom_name

The device tree source files were renamed to match the target
name used in the Makefile.

    example:
        old: dts/usrp_n310_fpga_hg.dts
        new: dts/N310_HG.dts

The source file is used to compile the final .dts file in the BUILD_DIR.

    example: build-my_custom_name/N310_HG.dts

The final .dts file is copied to the BUILD_OUTPUT_DIR as part of the
post build steps and renamed to the custom image core name.

    example: build/my_custom_name.dts

This completes the change that was introduced with commit 2afc66f132.


Original-commit: d40db57f2e03c322ac6b0001e0a59d4a14a5a3b9
This commit is contained in:
Joerg Hofrichter authored and Wade Fife committed 2024-09-13 08:44:30 -05:00
1 parent 264b33a416
commit e01ce08634
29 files changed
+57 -53

No files matched your search

+11 -10
View File
@@ -57,6 +57,8 @@ ifeq ($(TARGET),bin)
cp $(BUILD_DIR)/e31x.bit $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).bit; \
echo "Exporting build report..."; \
cp $(BUILD_DIR)/build.rpt $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).rpt; \
echo "Exporting devicetree file..."; \
cp $(BUILD_DIR)/$(1).dts $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts; \
echo "Build DONE ... $(1)";
else
post_build = @echo "Skipping bitfile export."
@@ -91,27 +93,26 @@ ifndef BUILD_DIR
endif
##E310_SG1_IDLE: Build USRP E3XX idle design (Speed Grade 1).
E310_SG1_IDLE E3XX_idle: check-variables E310_SG1_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E310_SG1_IDLE E3XX_idle: check-variables E310_SG1_IP $(BUILD_DIR)/E310_SG1_IDLE.dts
$(call vivado_build,E310_SG1,$(DEFS) E310_IDLE_IMAGE=1 E310_SG1=1)
$(call post_build,$@)
$(call post_build,E310_SG1_IDLE)
##E310_SG3_IDLE: Build USRP E3XX idle design (Speed Grade 3).
E310_SG3_IDLE E3XX_idle_sg3: check-variables E310_SG3_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E310_SG3_IDLE E3XX_idle_sg3: check-variables E310_SG3_IP $(BUILD_DIR)/E310_SG3_IDLE.dts
$(call vivado_build,E310_SG3,$(DEFS) E310_IDLE_IMAGE=1 E310_SG3=1)
$(call post_build,$@)
$(call post_build,E310_SG3_IDLE)
##E310_SG1: Build USRP E3XX (Speed Grade 1).
E310_SG1 E310: check-variables E310_SG1_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E310_SG1 E310: check-variables E310_SG1_IP $(BUILD_DIR)/E310_SG1.dts
$(call vivado_build,E310_SG1,$(DEFS) E310_SG1=1 $(if $(DRAM),ENABLE_DRAM=1,))
$(call post_build,$@)
$(call post_build,E310_SG1)
##E310_SG3: Build USRP E3XX (Speed Grade 3).
E310_SG3 E310_sg3: check-variables E310_SG3_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E310_SG3 E310_sg3: check-variables E310_SG3_IP $(BUILD_DIR)/E310_SG3.dts
$(call vivado_build,E310_SG3,$(DEFS) E310_SG3=1 $(if $(DRAM),ENABLE_DRAM=1,))
$(call post_build,$@)
$(call post_build,E310_SG3)
$(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts: dts/*.dts dts/*.dtsi
-mkdir -p $(BUILD_OUTPUT_DIR)
$(BUILD_DIR)/%.dts: dts/%.dts dts/*.dtsi
${CC} -o $@ -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ $<
##
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+6 -5
View File
@@ -60,6 +60,8 @@ ifeq ($(TARGET),bin)
cp $(BUILD_DIR)/e320.bit $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).bit; \
echo "Exporting build report..."; \
cp $(BUILD_DIR)/build.rpt $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).rpt; \
echo "Exporting devicetree file..."; \
cp $(BUILD_DIR)/$(1).dts $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts; \
echo "Build DONE ... $(1)";
else
post_build = @echo "Skipping bitfile export."
@@ -91,22 +93,21 @@ ifndef BUILD_DIR
endif
##E320_1G: 1GigE on SFP+ Port.
E320_1G: check-variables E320_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E320_1G: check-variables E320_IP $(BUILD_DIR)/E320_1G.dts
$(call vivado_build,E320,$(1G_DEFS) E320=1)
$(call post_build,E320_1G)
##E320_XG: 10GigE on SFP+ Port.
E320_XG: check-variables E320_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E320_XG: check-variables E320_IP $(BUILD_DIR)/E320_XG.dts
$(call vivado_build,E320,$(XG_DEFS) E320=1)
$(call post_build,E320_XG)
##E320_AA: Aurora on SFP+ Port.
E320_AA: check-variables E320_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
E320_AA: check-variables E320_IP $(BUILD_DIR)/E320_AA.dts
$(call vivado_build,E320,$(AA_DEFS) E320=1)
$(call post_build,E320_AA)
$(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts: dts/*.dts dts/*.dtsi
-mkdir -p $(BUILD_OUTPUT_DIR)
$(BUILD_DIR)/%.dts: dts/%.dts dts/*.dtsi
${CC} -o $@ -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ $<
##
File renamed without changes.
File renamed without changes.
File renamed without changes.
+21 -20
View File
@@ -86,6 +86,8 @@ ifeq ($(TARGET),bin)
cp $(BUILD_DIR)/n3xx.bit $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).bit; \
echo "Exporting build report..."; \
cp $(BUILD_DIR)/build.rpt $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).rpt; \
echo "Exporting devicetree file..."; \
cp $(BUILD_DIR)/$(1)_$(2).dts $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts; \
echo "Build DONE ... $(1)_$(2)";
else
post_build = @echo "Skipping bitfile export."
@@ -122,97 +124,96 @@ ifndef BUILD_DIR
endif
##N310_WX: 1GigE White Rabbit on SFP+ Port0, 10Gig on SFP+ Port1.
N310_WX: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_WX: check-variables N3X0_IP $(BUILD_DIR)/N310_WX.dts
$(call vivado_build,N310,$(WX_DEFS) N310=1,$(N310_DEFAULTS))
$(call post_build,N310,WX)
##N310_HG: 1GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N310_HG: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_HG: check-variables N3X0_IP $(BUILD_DIR)/N310_HG.dts
$(call vivado_build,N310,$(HG_DEFS) N310=1,$(N310_DEFAULTS))
$(call post_build,N310,HG)
##N310_XG: 10GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N310_XG: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_XG: check-variables N3X0_IP $(BUILD_DIR)/N310_XG.dts
$(call vivado_build,N310,$(XG_DEFS) N310=1,$(N310_DEFAULTS))
$(call post_build,N310,XG)
##N310_HA: 1Gig on SFP+ Port0, Aurora on SFP+ Port1.
N310_HA: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_HA: check-variables N3X0_IP $(BUILD_DIR)/N310_HA.dts
$(call vivado_build,N310,$(HA_DEFS) N310=1,$(N310_DEFAULTS))
$(call post_build,N310,HA)
##N310_XA: 10Gig on SFP+ Port0, Aurora on SFP+ Port1.
N310_XA: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_XA: check-variables N3X0_IP $(BUILD_DIR)/N310_XA.dts
$(call vivado_build,N310,$(XA_DEFS) N310=1,$(N310_DEFAULTS))
$(call post_build,N310,XA)
##N310_AA: Aurora on SFP+ Port0, Aurora on SFP+ Port1.
N310_AA: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N310_AA: check-variables N3X0_IP $(BUILD_DIR)/N310_AA.dts
$(call vivado_build,N310,$(AA_DEFS) N310=1,$(N310AA_DEFAULTS))
$(call post_build,N310,AA)
##N300_WX: 1GigE White Rabbit on SFP+ Port0, 10Gig on SFP+ Port1.
N300_WX: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_WX: check-variables N300_IP $(BUILD_DIR)/N300_WX.dts
$(call vivado_build,N300,$(WX_DEFS) N300=1,$(N300_DEFAULTS))
$(call post_build,N300,WX)
##N300_HG: 1GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N300_HG: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_HG: check-variables N300_IP $(BUILD_DIR)/N300_HG.dts
$(call vivado_build,N300,$(HG_DEFS) N300=1,$(N300_DEFAULTS))
$(call post_build,N300,HG)
##N300_XG: 10GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N300_XG: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_XG: check-variables N300_IP $(BUILD_DIR)/N300_XG.dts
$(call vivado_build,N300,$(XG_DEFS) N300=1,$(N300_DEFAULTS))
$(call post_build,N300,XG)
##N300_HA: 1Gig on SFP+ Port0, Aurora on SFP+ Port1.
N300_HA: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_HA: check-variables N300_IP $(BUILD_DIR)/N300_HA.dts
$(call vivado_build,N300,$(HA_DEFS) N300=1,$(N300_DEFAULTS))
$(call post_build,N300,HA)
##N300_XA: 10Gig on SFP+ Port0, Aurora on SFP+ Port1.
N300_XA: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_XA: check-variables N300_IP $(BUILD_DIR)/N300_XA.dts
$(call vivado_build,N300,$(XA_DEFS) N300=1,$(N300_DEFAULTS))
$(call post_build,N300,XA)
##N300_AA: Aurora on SFP+ Port0, Aurora on SFP+ Port1.
N300_AA: check-variables N300_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N300_AA: check-variables N300_IP $(BUILD_DIR)/N300_AA.dts
$(call vivado_build,N300,$(AA_DEFS) N300=1,$(N300AA_DEFAULTS))
$(call post_build,N300,AA)
##N320_WX: 1GigE White Rabbit on SFP+ Port0, 10Gig on SFP+ Port1.
N320_WX: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_WX: check-variables N3X0_IP $(BUILD_DIR)/N320_WX.dts
$(call vivado_build,N320,$(WX_DEFS) N320=1,$(N320_DEFAULTS))
$(call post_build,N320,WX)
##N320_HG: 1GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N320_HG: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_HG: check-variables N3X0_IP $(BUILD_DIR)/N320_HG.dts
$(call vivado_build,N320,$(HG_DEFS) N320=1,$(N320_DEFAULTS))
$(call post_build,N320,HG)
##N320_XG: 10GigE on SFP+ Port0, 10Gig on SFP+ Port1.
N320_XG: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_XG: check-variables N3X0_IP $(BUILD_DIR)/N320_XG.dts
$(call vivado_build,N320,$(XG_DEFS) N320=1,$(N320_DEFAULTS))
$(call post_build,N320,XG)
##N320_XQ: WR on SFP+ Port0, 10Gig on QSFP+ Port0,1.
N320_XQ: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_XQ: check-variables N3X0_IP $(BUILD_DIR)/N320_XQ.dts
$(call vivado_build,N320,$(XQ_DEFS) N320=1,$(N320_DEFAULTS))
$(call post_build,N320,XQ)
##N320_AQ: 10Gig on SFP+ Port0,1 Aurora on QSFP+ Port0,1,2,3.
N320_AQ: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_AQ: check-variables N3X0_IP $(BUILD_DIR)/N320_AQ.dts
$(call vivado_build,N320,$(AQ_DEFS) N320=1,$(N320_DEFAULTS))
$(call post_build,N320,AQ)
##N320_AA: Aurora on SFP+ Port0, Aurora on SFP+ Port1.
N320_AA: check-variables N3X0_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
N320_AA: check-variables N3X0_IP $(BUILD_DIR)/N320_AA.dts
$(call vivado_build,N320,$(AA_DEFS) N320=1,$(N320AA_DEFAULTS))
$(call post_build,N320,AA)
$(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts: dts/*.dts dts/*.dtsi
-mkdir -p $(BUILD_OUTPUT_DIR)
$(BUILD_DIR)/%.dts: dts/%.dts dts/*.dtsi
${CC} -o $@ -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ $<
##
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+19 -18
View File
@@ -75,6 +75,8 @@ ifeq ($(TARGET),bin)
cp $(BUILD_DIR)/x4xx.bit $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).bit; \
echo "Exporting build report..."; \
cp $(BUILD_DIR)/build.rpt $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).rpt; \
echo "Exporting devicetree file..."; \
cp $(BUILD_DIR)/$(1).dts $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts; \
echo "Build DONE ... $(IMAGE_CORE_NAME)";
else
post_build = @echo "Skipping bitfile export."
@@ -112,10 +114,10 @@ ifndef BUILD_DIR
$(error BUILD_DIR is not set! Use rfnoc_image_builder to create valid make commands)
endif
X410: check-variables X410_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
X410: check-variables X410_IP $(BUILD_DIR)/X410.dts
$(call vivado_build,X410,$(DEFS) X410=1)
$(call post_build,X410)
X440: check-variables X440_IP $(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts
X440: check-variables X440_IP $(BUILD_DIR)/X440.dts
$(call vivado_build,X440,$(DEFS) X440=1)
$(call post_build,X440)
@@ -132,26 +134,25 @@ X410_IP: ##Build X410 IP only. Use the -j option to build multiple IP block
X440_IP: ##Build X440 IP only. Use the -j option to build multiple IP blocks simultaneously.
+$(call vivado_ip,X440,$(DEFS) X440=1)
ifeq ($(MAKECMDGOALS),X410)
$(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts: dts/*.dts dts/*.dtsi $(BUILD_DIR)/device_tree.dts
-mkdir -p $(BUILD_OUTPUT_DIR)
dts/x410-version-info.dtsi: regmap/x410/versioning_regs_regmap_utils.vh
tools/parse_versions_for_dts.py \
--input regmap/x410/versioning_regs_regmap_utils.vh \
--output dts/x410-version-info.dtsi \
--input $< --output $@ \
--components fpga,cpld_ifc,db_gpio_ifc,rf_core_100m,rf_core_400m
${CC} -o $@ -C -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ \
$(BUILD_DIR)/device_tree.dts
endif
ifeq ($(MAKECMDGOALS),X440)
$(BUILD_OUTPUT_DIR)/$(IMAGE_CORE_NAME).dts: dts/*.dts dts/*.dtsi $(BUILD_DIR)/device_tree.dts
-mkdir -p $(BUILD_OUTPUT_DIR)
dts/x440-version-info.dtsi: regmap/x440/versioning_regs_regmap_utils.vh
tools/parse_versions_for_dts.py \
--input regmap/x440/versioning_regs_regmap_utils.vh \
--output dts/x440-version-info.dtsi \
--input $< --output $@ \
--components fpga,cpld_ifc,db_gpio_ifc,rf_core_full
${CC} -o $@ -C -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ \
$(BUILD_DIR)/device_tree.dts
endif
# The device tree source file $(BUILD_DIR)/device_tree.dts is generated by the
# RFNoC image builder.
$(BUILD_DIR)/X410.dts: $(BUILD_DIR)/device_tree.dts dts/x410-version-info.dtsi dts/*.dtsi
${CC} -o $@ -C -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ $<
# The device tree source file $(BUILD_DIR)/device_tree.dts is generated by the
# RFNoC image builder.
$(BUILD_DIR)/X440.dts: $(BUILD_DIR)/device_tree.dts dts/x440-version-info.dtsi dts/*.dtsi
${CC} -o $@ -C -E -I dts -nostdinc -undef -x assembler-with-cpp -D__DTS__ $<
clean: ##Clean up all target build outputs.
@echo "Cleaning targets..."