blob: 22391d1578603edd6bd49e08e11f0db84b301ea4 [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>
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -03008#include <bootutil/bootutil_log.h>
9#include <bootutil/fault_injection_hardening.h>
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053010#include <bootutil/image.h>
11
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -030012#include "bootloader_init.h"
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053013
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -030014#include "esp_loader.h"
15#include "os/os_malloc.h"
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053016
17void do_boot(struct boot_rsp *rsp)
18{
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -030019 BOOT_LOG_INF("br_image_off = 0x%x", rsp->br_image_off);
20 BOOT_LOG_INF("ih_hdr_size = 0x%x", rsp->br_hdr->ih_hdr_size);
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053021 int slot = (rsp->br_image_off == CONFIG_ESP_APPLICATION_PRIMARY_START_ADDRESS) ? 0 : 1;
22 esp_app_image_load(slot, rsp->br_hdr->ih_hdr_size);
23}
Shubham Kulkarni052561d2021-07-20 11:42:44 +053024
25int main()
26{
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053027 bootloader_init();
Shubham Kulkarni052561d2021-07-20 11:42:44 +053028 struct boot_rsp rsp;
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053029#ifdef MCUBOOT_VER
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -030030 BOOT_LOG_INF("*** Booting MCUBoot build %s ***", MCUBOOT_VER);
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053031#endif
Shubham Kulkarni052561d2021-07-20 11:42:44 +053032
Almir Okatoeb6b7bf2021-09-07 17:06:35 -030033 os_heap_init();
34
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053035 fih_int fih_rc = FIH_FAILURE;
36 FIH_CALL(boot_go, fih_rc, &rsp);
37 if (fih_not_eq(fih_rc, FIH_SUCCESS)) {
Gustavo Henrique Niheid985d222021-11-12 14:21:12 -030038 BOOT_LOG_ERR("Unable to find bootable image");
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053039 FIH_PANIC;
Shubham Kulkarni052561d2021-07-20 11:42:44 +053040 }
Shubham Kulkarni8787bb02021-07-20 11:46:03 +053041 do_boot(&rsp);
Shubham Kulkarni052561d2021-07-20 11:42:44 +053042 while(1);
43}