summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaptor Engineering Development Team <support@raptorengineering.com>2017-12-31 05:33:50 -0600
committerRaptor Engineering Development Team <support@raptorengineering.com>2017-12-31 05:36:30 -0600
commit6300fb5a2bc0a441dedc2260065bc3aab0dfeaeb (patch)
treeb9155e508e5055003d4dc550130f7da26b5518f5
parent17b5d502ad82602118755bc375eaca7bfca03ae8 (diff)
downloadtalos-system-fpga-6300fb5a2bc0a441dedc2260065bc3aab0dfeaeb.tar.gz
talos-system-fpga-6300fb5a2bc0a441dedc2260065bc3aab0dfeaeb.zip
Add vendor ID registers
Add CPU1 presence detect to response field
-rw-r--r--main.v25
1 files changed, 22 insertions, 3 deletions
diff --git a/main.v b/main.v
index 2cae787..81ac5e3 100644
--- a/main.v
+++ b/main.v
@@ -133,6 +133,10 @@ module system_fpga_top
// TODO update version
parameter fpga_version = 8'b00000110;
+ parameter vendor_id1 = 8'h52;
+ parameter vendor_id2 = 8'h43;
+ parameter vendor_id3 = 8'h53;
+ parameter vendor_id4 = 8'h20;
parameter rail_size = 15;
wire [rail_size - 1:0] en_buf = 1'b0;
wire [rail_size - 1:0] pg_buf;
@@ -171,6 +175,10 @@ module system_fpga_top
parameter i2c_pg_reg_addr2 = i2c_pg_reg_addr1 + 1;
parameter i2c_status_reg_addr = i2c_pg_reg_addr2 + 1;
parameter i2c_version_reg_addr = 8'b00000000;
+ parameter i2c_vendor_id_reg_addr1 = 8'b00001100;
+ parameter i2c_vendor_id_reg_addr2 = i2c_vendor_id_reg_addr1 + 1;
+ parameter i2c_vendor_id_reg_addr3 = i2c_vendor_id_reg_addr1 + 2;
+ parameter i2c_vendor_id_reg_addr4 = i2c_vendor_id_reg_addr1 + 3;
reg [15:0] i2c_pg_reg = 1'b0;
reg i2c_clr_err = 1'b0;
@@ -251,7 +259,7 @@ module system_fpga_top
// data from master is register to be read
i2c_reg_cur <= i2c_data_from_master;
- //pulse clear err signal if i2c master reads register 0x03
+ // pulse clear err signal if i2c master reads register 0x03
if (((i2c_data_from_master) == i2c_clr_err_addr)) begin
i2c_clr_err <= 1'b1;
end
@@ -270,8 +278,19 @@ module system_fpga_top
i2c_data_to_master <= i2c_pg_reg[7:0];
end
i2c_status_reg_addr: begin
- // TODO add CPU1 presence detect
- i2c_data_to_master <= {3'b000, wait_err, operation_err, err_found, sysen_buf, sysgood_buf};
+ i2c_data_to_master <= {2'b00, ~cpub_present_n, wait_err, operation_err, err_found, sysen_buf, sysgood_buf};
+ end
+ i2c_vendor_id_reg_addr1: begin
+ i2c_data_to_master <= vendor_id1;
+ end
+ i2c_vendor_id_reg_addr2: begin
+ i2c_data_to_master <= vendor_id2;
+ end
+ i2c_vendor_id_reg_addr3: begin
+ i2c_data_to_master <= vendor_id3;
+ end
+ i2c_vendor_id_reg_addr4: begin
+ i2c_data_to_master <= vendor_id4;
end
i2c_version_reg_addr: begin
i2c_data_to_master <= fpga_version;
OpenPOWER on IntegriCloud