summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaptor Engineering Development Team <support@raptorengineering.com>2018-09-30 18:12:09 -0500
committerRaptor Engineering Development Team <support@raptorengineering.com>2018-09-30 20:21:21 -0500
commit3eaf409774c94b92781bd5814da419070ca257af (patch)
tree528a4dc1c2083aff2b2394a819600ef1070cd4dc
parent474752cf9bd797aa8f58249b4bee33b729aad5b5 (diff)
downloadblackbird-system-fpga-3eaf409774c94b92781bd5814da419070ca257af.tar.gz
blackbird-system-fpga-3eaf409774c94b92781bd5814da419070ca257af.zip
Enable power and SATA LEDs
Rename audio disable for clarity, and enable audio by default
-rw-r--r--main.v65
-rw-r--r--system_fpga.pcf10
2 files changed, 60 insertions, 15 deletions
diff --git a/main.v b/main.v
index 8d9a410..54b7875 100644
--- a/main.v
+++ b/main.v
@@ -60,10 +60,13 @@ module system_fpga_top
// Component disable lines
input wire ast_video_disable_n,
- output reg audio_disable_n,
+ output reg audio_disable,
input wire mode_set_n,
// System status lines
+ input wire bmc_power_led_req,
+ input wire bmc_uid_led_req,
+ input wire sata_hdd_act_req,
inout nic1_act_led_n,
inout nic2_act_led_n,
inout nic3_act_led_n,
@@ -73,13 +76,14 @@ module system_fpga_top
input wire nic1_green_led_n,
input wire nic2_green_led_n,
input wire nic3_green_led_n,
- input wire bmc_uid_led_req,
// Front panel indicators
+ output reg panel_power_led,
+ output reg panel_uid_led,
+ output reg panel_hdd_led,
output reg panel_nic1_led_cathode,
output reg panel_nic2_led_cathode,
output reg panel_nic3_led_cathode,
- output reg panel_uid_led,
// Front panel switches
input wire panel_reset_in_l,
@@ -288,7 +292,9 @@ module system_fpga_top
wire panel_nic1_led_cathode_std;
wire panel_nic2_led_cathode_std;
wire panel_nic3_led_cathode_std;
+ wire panel_power_led_std;
wire panel_uid_led_std;
+ wire panel_hdd_led_std;
reg [2:0] bmc_startup_kr = 3'b000;
reg [2:0] bmc_startup_fader = 3'b000;
reg [2:0] bmc_startup_staggered_fader = 3'b000;
@@ -819,7 +825,7 @@ module system_fpga_top
// Enable audio
always @(posedge clk_in) begin
- audio_disable_n = 1'b1;
+ audio_disable = 1'b0;
end
// Not used
@@ -834,50 +840,73 @@ module system_fpga_top
panel_nic3_led_cathode_std = ~(nic3_act_led_n_in & ~nic3_green_led_n);
end
- // Wire up UID request to front panel
+ // Wire up power and UID requests to front panel
always @(posedge clk_in) begin
+ panel_power_led_std = bmc_power_led_req;
panel_uid_led_std = bmc_uid_led_req;
+ panel_hdd_led_std = ~sata_hdd_act_req;
end
// Assign front panel indicators according to BMC status
+ reg panel_power_led_req = 1'b0;
reg panel_uid_led_req = 1'b0;
+ reg panel_hdd_led_req = 1'b0;
+ reg bmc_startup_indicators_active = 1'b0;
always @(posedge clk_in) begin
if (bmc_boot_phase == 0) begin
// U-Boot phase
panel_nic1_led_cathode = ~bmc_startup_staggered_fader[0];
panel_nic2_led_cathode = ~bmc_startup_staggered_fader[1];
- panel_nic3_led_cathode = 1'b1;
- panel_uid_led_req = ~bmc_startup_staggered_fader[2];
+ panel_nic3_led_cathode = ~bmc_startup_staggered_fader[2];
+ panel_power_led_req = ~bmc_startup_staggered_fader[2];
+ panel_uid_led_req = bmc_startup_staggered_fader[2];
+ panel_hdd_led_req = ~bmc_startup_staggered_fader[0];
+ bmc_startup_indicators_active = 1'b1;
end else if (bmc_boot_phase == 1) begin
// Kernel phase
panel_nic1_led_cathode = ~bmc_startup_fader[0];
panel_nic2_led_cathode = ~bmc_startup_fader[1];
- panel_nic3_led_cathode = 1'b1;
- panel_uid_led_req = ~bmc_startup_fader[2];
+ panel_nic3_led_cathode = ~bmc_startup_fader[2];
+ panel_power_led_req = ~bmc_startup_fader[2];
+ panel_uid_led_req = bmc_startup_fader[2];
+ panel_hdd_led_req = ~bmc_startup_fader[0];
+ bmc_startup_indicators_active = 1'b1;
end else if (bmc_boot_phase == 2) begin
if (led_override_request != 0) begin
- if (led_override_request[4]) begin
+ if (led_override_request[5]) begin
panel_nic1_led_cathode = ~(led_override_request[0] & hostboot_startup_fader_common_high);
panel_nic2_led_cathode = ~(led_override_request[1] & hostboot_startup_fader_common_high);
- panel_nic3_led_cathode = ~(led_override_request[2] & hostboot_startup_fader_common_high);
+ panel_nic3_led_cathode = ~(led_override_request[4] & hostboot_startup_fader_common_high);
+ panel_power_led_req = panel_power_led_std;
panel_uid_led_req = ~(led_override_request[3] & hostboot_startup_fader_common_high);
+ panel_hdd_led_req = ~(led_override_request[2] & hostboot_startup_fader_common_high);
+ bmc_startup_indicators_active = 1'b1;
end else begin
panel_nic1_led_cathode = ~(led_override_request[0] & hostboot_startup_fader_common_low);
panel_nic2_led_cathode = ~(led_override_request[1] & hostboot_startup_fader_common_low);
- panel_nic3_led_cathode = ~(led_override_request[2] & hostboot_startup_fader_common_low);
+ panel_nic3_led_cathode = ~(led_override_request[4] & hostboot_startup_fader_common_low);
+ panel_power_led_req = panel_power_led_std;
panel_uid_led_req = ~(led_override_request[3] & hostboot_startup_fader_common_low);
+ panel_hdd_led_req = ~(led_override_request[2] & hostboot_startup_fader_common_low);
+ bmc_startup_indicators_active = 1'b1;
end
end else begin
panel_nic1_led_cathode = panel_nic1_led_cathode_std;
panel_nic2_led_cathode = panel_nic2_led_cathode_std;
panel_nic3_led_cathode = panel_nic3_led_cathode_std;
+ panel_power_led_req = panel_power_led_std;
panel_uid_led_req = panel_uid_led_std;
+ panel_hdd_led_req = panel_hdd_led_std;
+ bmc_startup_indicators_active = 1'b0;
end
end else begin
panel_nic1_led_cathode = 1'b1;
panel_nic2_led_cathode = 1'b1;
panel_nic3_led_cathode = 1'b1;
+ panel_power_led_req = panel_power_led_std;
panel_uid_led_req = panel_uid_led_std;
+ panel_hdd_led_req = panel_hdd_led_std;
+ bmc_startup_indicators_active = 1'b0;
end
// The SuperMicro chassis front panel has some interesting quirks
@@ -893,6 +922,18 @@ module system_fpga_top
end else begin
panel_uid_led = ~panel_uid_led_req;
end
+
+ // Front panel power LED
+ panel_power_led = panel_power_led_req;
+
+ // Front panel disk activity LED
+ // Keep LED off if system power is off and BMC has booted, otherwise
+ // pass through the SATA controller activity LED signal.
+ if ((atx_pg == 1'b1) || (bmc_startup_indicators_active == 1'b1)) begin
+ panel_hdd_led = panel_hdd_led_req;
+ end else begin
+ panel_hdd_led = 1'b1;
+ end
end
// Generate master reset request signals
diff --git a/system_fpga.pcf b/system_fpga.pcf
index 1e3d007..8beb403 100644
--- a/system_fpga.pcf
+++ b/system_fpga.pcf
@@ -80,12 +80,15 @@ set_io bmc_system_reset_request_n 12
# Component disable lines
set_io ast_video_disable_n 16
-set_io audio_disable_n 1
+set_io audio_disable 1
# Mode set lines
set_io mode_set_n 25
# System status lines
+set_io bmc_power_led_req 60
+set_io bmc_uid_led_req 90
+set_io sata_hdd_act_req 51
set_io nic1_act_led_n 93
set_io nic2_act_led_n 96
set_io nic3_act_led_n 78
@@ -95,13 +98,14 @@ set_io nic3_link_led_n 79
set_io nic1_green_led_n 2
set_io nic2_green_led_n 3
set_io nic3_green_led_n 4
-set_io bmc_uid_led_req 90
# Front panel indicators
+set_io panel_power_led 64
+set_io panel_hdd_led 69
+set_io panel_uid_led 89
set_io panel_nic1_led_cathode 91
set_io panel_nic2_led_cathode 95
set_io panel_nic3_led_cathode 100
-set_io panel_uid_led 89
# Front panel switches
set_io panel_reset_in_l 73
OpenPOWER on IntegriCloud