fpga/mpm: x4xx: Add device DNA read capability

- Bumps FPGA compat from 8.2 to 8.3
- Adds three global motherboard registers to read the 96-bit device DNA
- MPM is updated to read these registers and update the device_info if
  compat version 8.3 is available


Original-commit: ad5f97f8284057b85ca98f47365c2a321edf7ece
This commit is contained in:
Martin Braun
2024-06-11 10:20:07 +02:00
committed by Joerg Hofrichter
parent d006250dc1
commit ba5e431c5c
11 changed files with 558 additions and 20 deletions
+23 -1
View File
@@ -73,7 +73,10 @@ module x4xx_global_regs #(
input wire fpga_aux_ref,
// Device ID used by RFNoC, transports, etc. (Domain: rfnoc_chdr_clk)
output reg [15:0] device_id
output reg [15:0] device_id,
// Device DNA (SoC serial)
input wire [95:0] device_dna
);
`include "../../lib/rfnoc/core/ctrlport.vh"
@@ -360,6 +363,16 @@ module x4xx_global_regs #(
s_ctrlport_resp_data[MFG_TEST_FPGA_AUX_REF_FREQ_MSB:MFG_TEST_FPGA_AUX_REF_FREQ] <= fpga_aux_ref_freq;
end
REG_BASE + DEVICE_DNA0_REG: begin
s_ctrlport_resp_data[31:0] <= device_dna[31:0];
end
REG_BASE + DEVICE_DNA1_REG: begin
s_ctrlport_resp_data[31:0] <= device_dna[63:32];
end
REG_BASE + DEVICE_DNA2_REG: begin
s_ctrlport_resp_data[31:0] <= device_dna[95:64];
end
// No register implementation for provided address
default: begin
// Acknowledge and provide error status if address is in range
@@ -735,6 +748,15 @@ endmodule
// </info>
// </bitfield>
// </register>
// <register name="DEVICE_DNA0_REG" offset="0x100" size="32">
// <info>Least significant bytes of 12 byte device</info>
// </register>
// <register name="DEVICE_DNA1_REG" offset="0x104" size="32">
// <info>Second-least significant bytes of 12 byte device</info>
// </register>
// <register name="DEVICE_DNA2_REG" offset="0x108" size="32">
// <info>Most significant bytes of 12 byte device</info>
// </register>
// </group>
//</regmap>
//XmlParse xml_off