[PATCH arm/aspeed/ast2500 v3 1/2] ipmi: add a KCS IPMI BMC driver

Corey Minyard tcminyard at gmail.com
Fri Feb 2 11:25:24 AEDT 2018


On 02/01/2018 05:56 PM, Wang, Haiyue wrote:
>
>
> On 2018-02-02 04:32, Corey Minyard wrote:
>>> +static void kcs_bmc_handle_cmd(struct kcs_bmc *kcs_bmc)
>>> +{
>>> +    u8 cmd;
>>> +
>>> +    set_state(kcs_bmc, WRITE_STATE);
>>> +    write_data(kcs_bmc, KCS_ZERO_DATA);
>>> +
>>> +    cmd = read_data(kcs_bmc);
>>> +    switch (cmd) {
>>> +    case KCS_CMD_WRITE_START:
>>> +        if (kcs_bmc->phase != KCS_PHASE_IDLE &&
>>> +            kcs_bmc->phase != KCS_PHASE_ERROR) {
>>> +            kcs_force_abort(kcs_bmc);
>>> +            break;
>>> +        }
>>> +
>>
>> The spec says you can do a write start basically any time and the 
>> state machine starts over. I know I kind of went back and forth on 
>> this in my previous email, but what you had before is correct, I think.
>>
> So change it to the bellowing code is OK now? :-)
>
> +    case KCS_CMD_WRITE_START:
> +        kcs_bmc->data_in_avail = false;
> +        kcs_bmc->data_in_idx   = 0;
> +        kcs_bmc->phase         = KCS_PHASE_WRITE;
> +        kcs_bmc->error         = KCS_NO_ERROR;
> +        break;
>
Yes, that should be good.  Sorry about the confusion.


More information about the openbmc mailing list