[7/8] ipmi: Allow BMC device properties to be set

Message ID 1512682213-4354-8-git-send-email-minyard@acm.org
State New
Headers show
Series
  • Small IPMI (and other) fixes
Related show

Commit Message

Corey Minyard Dec. 7, 2017, 9:30 p.m.
From: Corey Minyard <cminyard@mvista.com>

Signed-off-by: Corey Minyard <cminyard@mvista.com>
---
 hw/ipmi/ipmi_bmc_sim.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

Comments

Marc-André Lureau Jan. 12, 2018, 5:10 p.m. | #1
On Thu, Dec 7, 2017 at 10:30 PM,  <minyard@acm.org> wrote:
> From: Corey Minyard <cminyard@mvista.com>
>
> Signed-off-by: Corey Minyard <cminyard@mvista.com>

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>

> ---
>  hw/ipmi/ipmi_bmc_sim.c | 21 ++++++++++++++-------
>  1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
> index e84d710..9b509f8 100644
> --- a/hw/ipmi/ipmi_bmc_sim.c
> +++ b/hw/ipmi/ipmi_bmc_sim.c
> @@ -214,8 +214,8 @@ struct IPMIBmcSim {
>      uint8_t device_rev;
>      uint8_t fwrev1;
>      uint8_t fwrev2;
> -    uint8_t mfg_id[3];
> -    uint8_t product_id[2];
> +    uint32_t mfg_id;
> +    uint16_t product_id;
>
>      uint8_t restart_cause;
>
> @@ -867,11 +867,11 @@ static void get_device_id(IPMIBmcSim *ibs,
>      rsp_buffer_push(rsp, ibs->fwrev2);
>      rsp_buffer_push(rsp, ibs->ipmi_version);
>      rsp_buffer_push(rsp, 0x07); /* sensor, SDR, and SEL. */
> -    rsp_buffer_push(rsp, ibs->mfg_id[0]);
> -    rsp_buffer_push(rsp, ibs->mfg_id[1]);
> -    rsp_buffer_push(rsp, ibs->mfg_id[2]);
> -    rsp_buffer_push(rsp, ibs->product_id[0]);
> -    rsp_buffer_push(rsp, ibs->product_id[1]);
> +    rsp_buffer_push(rsp, ibs->mfg_id & 0xff);
> +    rsp_buffer_push(rsp, (ibs->mfg_id >> 8) & 0xff);
> +    rsp_buffer_push(rsp, (ibs->mfg_id >> 16) & 0xff);
> +    rsp_buffer_push(rsp, ibs->product_id & 0xff);
> +    rsp_buffer_push(rsp, (ibs->product_id >> 8) & 0xff);
>  }
>
>  static void set_global_enables(IPMIBmcSim *ibs, uint8_t val)
> @@ -1997,6 +1997,13 @@ static Property ipmi_sim_properties[] = {
>      DEFINE_PROP_UINT16("fruareasize", IPMIBmcSim, fru.areasize, 1024),
>      DEFINE_PROP_STRING("frudatafile", IPMIBmcSim, fru.filename),
>      DEFINE_PROP_STRING("sdrfile", IPMIBmcSim, sdr_filename),
> +    DEFINE_PROP_UINT8("device_id", IPMIBmcSim, device_id, 0x20),
> +    DEFINE_PROP_UINT8("ipmi_version", IPMIBmcSim, ipmi_version, 0x02),
> +    DEFINE_PROP_UINT8("device_rev", IPMIBmcSim, device_rev, 0),
> +    DEFINE_PROP_UINT8("fwrev1", IPMIBmcSim, fwrev1, 0),
> +    DEFINE_PROP_UINT8("fwrev2", IPMIBmcSim, fwrev2, 0),
> +    DEFINE_PROP_UINT32("mfg_id", IPMIBmcSim, mfg_id, 0),
> +    DEFINE_PROP_UINT16("product_id", IPMIBmcSim, product_id, 0),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>
> --
> 2.7.4
>
>

Patch

diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
index e84d710..9b509f8 100644
--- a/hw/ipmi/ipmi_bmc_sim.c
+++ b/hw/ipmi/ipmi_bmc_sim.c
@@ -214,8 +214,8 @@  struct IPMIBmcSim {
     uint8_t device_rev;
     uint8_t fwrev1;
     uint8_t fwrev2;
-    uint8_t mfg_id[3];
-    uint8_t product_id[2];
+    uint32_t mfg_id;
+    uint16_t product_id;
 
     uint8_t restart_cause;
 
@@ -867,11 +867,11 @@  static void get_device_id(IPMIBmcSim *ibs,
     rsp_buffer_push(rsp, ibs->fwrev2);
     rsp_buffer_push(rsp, ibs->ipmi_version);
     rsp_buffer_push(rsp, 0x07); /* sensor, SDR, and SEL. */
-    rsp_buffer_push(rsp, ibs->mfg_id[0]);
-    rsp_buffer_push(rsp, ibs->mfg_id[1]);
-    rsp_buffer_push(rsp, ibs->mfg_id[2]);
-    rsp_buffer_push(rsp, ibs->product_id[0]);
-    rsp_buffer_push(rsp, ibs->product_id[1]);
+    rsp_buffer_push(rsp, ibs->mfg_id & 0xff);
+    rsp_buffer_push(rsp, (ibs->mfg_id >> 8) & 0xff);
+    rsp_buffer_push(rsp, (ibs->mfg_id >> 16) & 0xff);
+    rsp_buffer_push(rsp, ibs->product_id & 0xff);
+    rsp_buffer_push(rsp, (ibs->product_id >> 8) & 0xff);
 }
 
 static void set_global_enables(IPMIBmcSim *ibs, uint8_t val)
@@ -1997,6 +1997,13 @@  static Property ipmi_sim_properties[] = {
     DEFINE_PROP_UINT16("fruareasize", IPMIBmcSim, fru.areasize, 1024),
     DEFINE_PROP_STRING("frudatafile", IPMIBmcSim, fru.filename),
     DEFINE_PROP_STRING("sdrfile", IPMIBmcSim, sdr_filename),
+    DEFINE_PROP_UINT8("device_id", IPMIBmcSim, device_id, 0x20),
+    DEFINE_PROP_UINT8("ipmi_version", IPMIBmcSim, ipmi_version, 0x02),
+    DEFINE_PROP_UINT8("device_rev", IPMIBmcSim, device_rev, 0),
+    DEFINE_PROP_UINT8("fwrev1", IPMIBmcSim, fwrev1, 0),
+    DEFINE_PROP_UINT8("fwrev2", IPMIBmcSim, fwrev2, 0),
+    DEFINE_PROP_UINT32("mfg_id", IPMIBmcSim, mfg_id, 0),
+    DEFINE_PROP_UINT16("product_id", IPMIBmcSim, product_id, 0),
     DEFINE_PROP_END_OF_LIST(),
 };