blob: c5bb3e0c3a16c6528b45bd1c137da6f17a7993f8 [file] [log] [blame]
Shubham Kulkarni052561d2021-07-20 11:42:44 +05301/*
2 * Copyright (c) 2021 Espressif Systems (Shanghai) Co., Ltd.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#include <bootutil/bootutil.h>
Shubham Kulkarni8787bb02021-07-20 11:46:03 +05308#include <bootutil/image.h>
9
10#include <mcuboot_config/mcuboot_logging.h>
11
12#include <bootloader_init.h>
13#include <esp_loader.h>
14
15void do_boot(struct boot_rsp *rsp)
16{
17 MCUBOOT_LOG_INF("br_image_off = 0x%x", rsp->br_image_off);
18 MCUBOOT_LOG_INF("ih_hdr_size = 0x%x", rsp->br_hdr->ih_hdr_size);
19 int slot = (rsp->br_image_off == CONFIG_ESP_APPLICATION_PRIMARY_START_ADDRESS) ? 0 : 1;
20 esp_app_image_load(slot, rsp->br_hdr->ih_hdr_size);
21}
Shubham Kulkarni052561d2021-07-20 11:42:44 +053022
23int main()
24{
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053025 bootloader_init();
Shubham Kulkarni052561d2021-07-20 11:42:44 +053026 struct boot_rsp rsp;
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053027#ifdef MCUBOOT_VER
28 MCUBOOT_LOG_INF("*** Booting MCUBoot build %s ***", MCUBOOT_VER);
29#endif
Shubham Kulkarni052561d2021-07-20 11:42:44 +053030
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053031 fih_int fih_rc = FIH_FAILURE;
32 FIH_CALL(boot_go, fih_rc, &rsp);
33 if (fih_not_eq(fih_rc, FIH_SUCCESS)) {
34 MCUBOOT_LOG_ERR("Unable to find bootable image");
35 FIH_PANIC;
Shubham Kulkarni052561d2021-07-20 11:42:44 +053036 }
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053037 do_boot(&rsp);
Shubham Kulkarni052561d2021-07-20 11:42:44 +053038 while(1);
39}