# Boot from Host (INT6000)

The Boot from Host operation downloads a firmware image and PIB image from the local host and starts firmware execution. The process is initiated by the INT6000 Bootloader following a device reset. The Bootloader passes control to the INT6000 Softloader to negotiate with the local host. The process therefore requires Softloader aware software running on the local host in order to complete.

The device does not have a unique hardware address until the firmware starts and assigns one. Until that time, the Softloader accepts messages addressed to 00:B0:52:00:00:01. In addition, the Softloader does not know the hardware address of the local host and so it addresses `VS_HST_ACTION` messages to FF:FF:FF:FF:FF:FF; however, these messages are not forwarded over powerline.

## Boot from Host (INT6000)

              INT6000                             LOCAL-HOST
            [01] |                                    |
            [02] |-------- VS_HST_ACTION.IND -------->| [03]
            [05] |<------- VS_HST_ACTION.RSP ---------| [04]
                 |                                    |
            [07] |<------- VS_WR_MOD.REQ -------------| [07]
            [07] |-------- VS_WR_MOD.CNF ------------>| [07]
            [07] |<-----------------------------------| [07]
            [07] |----------------------------------->| [07]
                 |                                    |
            [08] |<------- VS_WR_MOD.REQ -------------| [08]
            [08] |-------- VS_WR_MOD.CNF ------------>| [08]
            [08] |<-----------------------------------| [08]
            [08] |----------------------------------->| [08]
                 |                                    |
            [10] |<------- VS_ST_MAC.REQ -------------| [09]
            [11] |-------- VS_ST_MAC.CNF ------------>| [12]

1. The INT6000 Bootloader automatically starts after device reset. It reads the Softloader from NVRAM, writes it into SDRAM and starts execution. The Softloader then manages the Boot from Host process.

2. The Softloader broadcasts a `VS_HST_ACTION.IND` message every `500` milliseconds to request the download of runtime firmware and PIB. The `HOST_ACTION_REQ` field of the message is 0x00 in this case. The message source address if `00:B0:52:00:00:01` as explained above.

3. The local host receives the `VS_HST_ACTION.IND` message and inspects the HOST_ACTION_REQ field to determine action requested. It may then elect to service the request or ignore it. On a single-host system, the host must service the request or the device will not start. On a multi-host system, one of the hosts must elect to service the request or the device will not start.

4. The local host sends a `VS_HST_ACTION.RSP` message to the device to indicate the ability and willingness to service the request. The MSTATUS field is set to 0x00 for affirmative and 0x01 for negative.

5. The Softloader receives the `VS_HST_ACTION.RSP` from the host and inspects the MSTATUS field. On affirmative status, the Softloader stops sending `VS_HST_ACTION` messages and waits indefinitely for the firmware image and PIB.

6. The local host determines which firmware image and PIB to download. In some cases there may be no choice. In other cases, there may be a choice between default and custom software or between current and upgraded software. This is a principle design issue to consider.

7. The local host downloads a firmware image to the device by sending `VS_WR_MOD.REQ` messages to the device and waiting for a `VS_WR_MEM.CNF` messages from the device after each request. Each message contains an image segment, the memory offset, the segment length and the checksum used to monitor and manage download progress. If a single transaction fails, the local host should detect it and repeat it.

8. The local host downloads a PIB to the device by sending `VS_WR_MOD.REQ` messages to the device and waiting for a `VS_WR_MEM.CNF` message from the device after each request. Each message contains an image segement, the memory offset, the segment length and the checksum used to monitor and manage download progress. If a single transaction fails, the local host should detect it and repeat it.

9. The local host starts execution of the downloaded firmware by sending a `VS_ST_MAC.REQ` message to the device. The message contains the start address for the firmware.

10. The Softloader receives the `VS_ST_MAC.REQ` from the local host, validates the content.

11. The Softloader sends a `VS_ST_MAC.CNF` message to the local host to indicate an ability or willingness to start execution. Assuming an ability and willingness, the Softloader immediately starts firmware execution which relinquishes device control to the firmware.

12. The local host receives the `VS_ST_MAC.CNF` message from the device, inspects the MSTATUS field and acts accordingly. Assuming an affirmative status, this process terminates.