xref: /openbmc/phosphor-mboxd/vpnor/mboxd_lpc_reset.cpp (revision dda8e38202a51df98e1a6a934c3aeddea0b59ec1)
153c21aaaSAndrew Jeffery /*
253c21aaaSAndrew Jeffery  * Mailbox Daemon LPC Helpers
353c21aaaSAndrew Jeffery  *
453c21aaaSAndrew Jeffery  * Copyright 2017 IBM
553c21aaaSAndrew Jeffery  *
653c21aaaSAndrew Jeffery  * Licensed under the Apache License, Version 2.0 (the "License");
753c21aaaSAndrew Jeffery  * you may not use this file except in compliance with the License.
853c21aaaSAndrew Jeffery  * You may obtain a copy of the License at
953c21aaaSAndrew Jeffery  *
1053c21aaaSAndrew Jeffery  * http://www.apache.org/licenses/LICENSE-2.0
1153c21aaaSAndrew Jeffery  *
1253c21aaaSAndrew Jeffery  * Unless required by applicable law or agreed to in writing, software
1353c21aaaSAndrew Jeffery  * distributed under the License is distributed on an "AS IS" BASIS,
1453c21aaaSAndrew Jeffery  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1553c21aaaSAndrew Jeffery  * See the License for the specific language governing permissions and
1653c21aaaSAndrew Jeffery  * limitations under the License.
1753c21aaaSAndrew Jeffery  *
1853c21aaaSAndrew Jeffery  */
1953c21aaaSAndrew Jeffery 
2053c21aaaSAndrew Jeffery #include "mbox.h"
2153c21aaaSAndrew Jeffery #include "mboxd_lpc.h"
2253c21aaaSAndrew Jeffery #include "mboxd_pnor_partition_table.h"
2353c21aaaSAndrew Jeffery 
2453c21aaaSAndrew Jeffery /*
2553c21aaaSAndrew Jeffery  * reset_lpc() - Reset the lpc bus mapping
2653c21aaaSAndrew Jeffery  * @context:     The mbox context pointer
2753c21aaaSAndrew Jeffery  *
2853c21aaaSAndrew Jeffery  * Return        0 on success otherwise negative error code
2953c21aaaSAndrew Jeffery  */
reset_lpc(struct mbox_context * context)3053c21aaaSAndrew Jeffery int reset_lpc(struct mbox_context *context)
3153c21aaaSAndrew Jeffery {
32*dda8e382SAndrew Jeffery     int rc;
33*dda8e382SAndrew Jeffery 
3453c21aaaSAndrew Jeffery     destroy_vpnor(context);
35*dda8e382SAndrew Jeffery 
36*dda8e382SAndrew Jeffery     rc = init_vpnor(context);
37*dda8e382SAndrew Jeffery     if (rc < 0)
38*dda8e382SAndrew Jeffery         return rc;
39*dda8e382SAndrew Jeffery 
40*dda8e382SAndrew Jeffery     rc = vpnor_copy_bootloader_partition(context);
41*dda8e382SAndrew Jeffery     if (rc < 0)
42*dda8e382SAndrew Jeffery         return rc;
43*dda8e382SAndrew Jeffery 
4453c21aaaSAndrew Jeffery     return point_to_memory(context);
4553c21aaaSAndrew Jeffery }
46