blob: e0956afdfec95f06b521cd1499158ab67f082deb [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
Almir Okatoeb6b7bf2021-09-07 17:06:35 -030012#include <os/os_malloc.h>
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053013#include <bootloader_init.h>
14#include <esp_loader.h>
15
16void do_boot(struct boot_rsp *rsp)
17{
18 MCUBOOT_LOG_INF("br_image_off = 0x%x", rsp->br_image_off);
19 MCUBOOT_LOG_INF("ih_hdr_size = 0x%x", rsp->br_hdr->ih_hdr_size);
20 int slot = (rsp->br_image_off == CONFIG_ESP_APPLICATION_PRIMARY_START_ADDRESS) ? 0 : 1;
21 esp_app_image_load(slot, rsp->br_hdr->ih_hdr_size);
22}
Shubham Kulkarni052561d2021-07-20 11:42:44 +053023
24int main()
25{
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053026 bootloader_init();
Shubham Kulkarni052561d2021-07-20 11:42:44 +053027 struct boot_rsp rsp;
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053028#ifdef MCUBOOT_VER
29 MCUBOOT_LOG_INF("*** Booting MCUBoot build %s ***", MCUBOOT_VER);
30#endif
Shubham Kulkarni052561d2021-07-20 11:42:44 +053031
Almir Okatoeb6b7bf2021-09-07 17:06:35 -030032 os_heap_init();
33
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053034 fih_int fih_rc = FIH_FAILURE;
35 FIH_CALL(boot_go, fih_rc, &rsp);
36 if (fih_not_eq(fih_rc, FIH_SUCCESS)) {
37 MCUBOOT_LOG_ERR("Unable to find bootable image");
38 FIH_PANIC;
Shubham Kulkarni052561d2021-07-20 11:42:44 +053039 }
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053040 do_boot(&rsp);
Shubham Kulkarni052561d2021-07-20 11:42:44 +053041 while(1);
42}