summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaptor Engineering Development Team <support@raptorengineering.com>2018-03-07 18:26:22 -0600
committerRaptor Engineering Development Team <support@raptorengineering.com>2018-03-07 18:26:22 -0600
commite90ca898402a250e9d2f6e303e25ddaceb0cf8d6 (patch)
tree912ea1d065517c65eb4c18e0da4bfc55b41f5b1a
parentb71047c82c9cf80afa248b20588898c3c966611f (diff)
downloadtalos-system-fpga-e90ca898402a250e9d2f6e303e25ddaceb0cf8d6.tar.gz
talos-system-fpga-e90ca898402a250e9d2f6e303e25ddaceb0cf8d6.zip
Add BMC startup watchdogv1.03
This works around ASpeed fast blink boot hang errata (app note #3)
-rw-r--r--main.v24
1 files changed, 23 insertions, 1 deletions
diff --git a/main.v b/main.v
index bf66e80..5de277f 100644
--- a/main.v
+++ b/main.v
@@ -473,6 +473,28 @@ module system_fpga_top
end
end
+ // BMC initial startup watchdog
+ wire bmc_watchdog_clk;
+ reg [12:0] bmc_watchdog_clk_counter;
+ always @(posedge clk_in) begin
+ bmc_watchdog_clk_counter <= bmc_watchdog_clk_counter + 1;
+ end
+ assign bmc_watchdog_clk = bmc_watchdog_clk_counter[12];
+
+ reg [5:0] bmc_watchdog_counter = 0;
+ reg bmc_watchdog_reset = 1'b0;
+ always @(posedge bmc_watchdog_clk) begin
+ if (bmc_rst && (bmc_boot_phase == 0)) begin
+ bmc_watchdog_counter <= bmc_watchdog_clk + 1;
+ end else begin
+ bmc_watchdog_counter <= 0;
+ end
+
+ if (bmc_watchdog_clk > 60) begin
+ bmc_watchdog_reset = 1'b1;
+ end
+ end
+
assign i2c_rst = 1'b0;
// Handle I2C
always @(posedge clk_in) begin
@@ -904,7 +926,7 @@ module system_fpga_top
// BMC RESETs
always @(posedge clk_in) begin
- bmc_rst = bmc_vr_pg;
+ bmc_rst = bmc_vr_pg & (!bmc_watchdog_reset);
usbhub_rst = sysgood_buf & ~bmc_boot_complete_n;
fan_rst = bmc_vr_pg;
end
OpenPOWER on IntegriCloud