[BUG] Custom Bootloader in Projektfolder is no longer considered ? Release V3.3, v3.2..

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

[BUG] Custom Bootloader in Projektfolder is no longer considered ? Release V3.3, v3.2..

Postby rudi ;-) » Tue Sep 03, 2019 6:30 pm

Hi Guys

i work just in time with a test environment ( v3.2-beta1-15-g12b2268ee )
at other place and for a simply test, i copied the base ESP-IDF components bootloader and bootloader_support
into the user project components, edit few lines in the user project component bootloader and bootloader_support folder,
i noticed then the code change in the custom code is no longer considered and the bootloader code is used from
the Base ESP-IDF-PATH components in ESP-IDF Path.

Was there are change ? Have not look into makefiles deeper yet, ( this i will do in next step, perhabs order mistake cmake/make ? )
perhabs we have a menuconfig switch for choice of src using ( my future request if we not have )
ESP-IDF-PATH bootloader src / or / Project bootloader src
i use just in time ESP-IDF version (v3.2-beta1-15-g12b2268ee)

I testet shortly then the code edit in the Base ESP-IDF-PATH Boorloader SRC, my custom code works, so i am happy that we can further customize our own bootloader code, ( no bootloader blob / lib )
for next test projects i have to edit it again in the base ESP-IDF-PATH Component,
so my question: was there a change ? i missing something? my eyes did not follow the last update comment's in ESP-IDF -
i must look deeper - so perhabs i registrate not the important change? can you point me to the change?

was the (use of components) order changed (order of success)?
is the art of custom code in the project folder no longer supported and only the Base ESP-IDF-Components are considered,
and if we want cutsomized, we must edit the components in the Base-ESP-IDF-Components ?
i am something info missing?

best wishes
rudi ;-)
Last edited by rudi ;-) on Thu Sep 05, 2019 3:24 pm, edited 2 times in total.
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

ESP_Angus
Posts: 1873
Joined: Sun May 08, 2016 4:11 am

Re: [Q] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby ESP_Angus » Wed Sep 04, 2019 12:31 am

Hi Rudi,

Are you using CMake or the GNU Make build system?

There was a bug with custom bootloader when using CMake, that was fixed in release v3.2.1:
https://github.com/espressif/esp-idf/co ... cdce772ec6

The prerelease commit v3.2-beta1-15-g12b2268ee is from November 2018 and ESP-IDF v3.2 is now at stable release v3.2.2, recommend updating to the stable release if you have the opportunity.

Angus

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [Q] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby rudi ;-) » Wed Sep 04, 2019 3:31 am

ESP_Angus wrote:
Wed Sep 04, 2019 12:31 am
Hi Rudi,

Are you using CMake or the GNU Make build system?

There was a bug with custom bootloader when using CMake, that was fixed in release v3.2.1:
https://github.com/espressif/esp-idf/co ... cdce772ec6

The prerelease commit v3.2-beta1-15-g12b2268ee is from November 2018 and ESP-IDF v3.2 is now at stable release v3.2.2, recommend updating to the stable release if you have the opportunity.

Angus
Hi Angus

thank you, i use GNU Make in this example.
i am honest, this git version i changed not since near 1/2 year i think on this pc,
cause i was happy with this - but ok, i will check and change asap to the stable v3.2.2 on this pc,
thank you Angus.

best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [Q] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby rudi ;-) » Wed Sep 04, 2019 1:42 pm

Hi Angus,

i tested just in time but custom bootloader does not override original.

[bootloader_init.c]

Code: Select all

...
static esp_err_t bootloader_main()
{
    vddsdio_configure();
    /* Read and keep flash ID, for further use. */
    g_rom_flashchip.device_id = bootloader_read_flash_id();


// Break me down From where i boot: 
      rtc_wdt_disable();
      REG_SET_FIELD(TIMG_WDTWPROTECT_REG(0), TIMG_WDT_WKEY,  TIMG_WDT_WKEY_VALUE);
      REG_CLR_BIT( TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN );
      ets_printf("ESP-IDF %s\n 2nd stage bootloader", IDF_VER);
      ets_printf("Bootloader used from USER\n");
      ets_printf("This is line %d\n of file\n \"%s\".\n", __LINE__, __FILE__);
      while(1);
// **********************************************************
...
v3.2.2.png
custom bootloader does not override original 3.2.2 GNU Make WINDOWS 7 / 10
v3.2.2.png (90.87 KiB) Viewed 831 times
i will try to check makefiles and include paths on time,
if you find faster or know, would be help to update the Release V3.2.2
perhabs missings include / set for GNU Make buildsystem?

OS: Windows 7

best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [Q] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby rudi ;-) » Wed Sep 04, 2019 3:42 pm

hi angus

Code: Select all

make list-components
  • $ make list-components
    Toolchain path: /opt/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
    Toolchain version: crosstool-ng-1.22.0-80-g6c4433a5
    Compiler version: 5.2.0
    *******************************************************************************
    COMPONENT_DIRS (components searched for here)
    /h/db/hello_world_3_2_2/components
    /h/Releases/esp-idf-v3.2.2/components
    /h/db/hello_world_3_2_2/main
    *******************************************************************************
    TEST_COMPONENTS (list of test component names)

    *******************************************************************************
    TEST_EXCLUDE_COMPONENTS (list of test excluded names)

    *******************************************************************************
    COMPONENT_PATHS (paths to all components):
    /h/Releases/esp-idf-v3.2.2/components/app_trace
    /h/Releases/esp-idf-v3.2.2/components/app_update
    /h/Releases/esp-idf-v3.2.2/components/asio
    /h/Releases/esp-idf-v3.2.2/components/aws_iot
    /h/db/hello_world_3_2_2/components/bootloader
    /h/db/hello_world_3_2_2/components/bootloader_support
    /h/Releases/esp-idf-v3.2.2/components/bt
    /h/Releases/esp-idf-v3.2.2/components/coap
    /h/Releases/esp-idf-v3.2.2/components/console
    /h/Releases/esp-idf-v3.2.2/components/cxx
    /h/Releases/esp-idf-v3.2.2/components/driver
    /h/Releases/esp-idf-v3.2.2/components/esp-tls
    /h/Releases/esp-idf-v3.2.2/components/esp32
    /h/Releases/esp-idf-v3.2.2/components/esp_adc_cal
    /h/Releases/esp-idf-v3.2.2/components/esp_event
    /h/Releases/esp-idf-v3.2.2/components/esp_http_client
    /h/Releases/esp-idf-v3.2.2/components/esp_http_server
    /h/Releases/esp-idf-v3.2.2/components/esp_https_ota
    /h/Releases/esp-idf-v3.2.2/components/esp_ringbuf
    /h/Releases/esp-idf-v3.2.2/components/esptool_py
    /h/Releases/esp-idf-v3.2.2/components/ethernet
    /h/Releases/esp-idf-v3.2.2/components/expat
    /h/Releases/esp-idf-v3.2.2/components/fatfs
    /h/Releases/esp-idf-v3.2.2/components/freemodbus
    /h/Releases/esp-idf-v3.2.2/components/freertos
    /h/Releases/esp-idf-v3.2.2/components/heap
    /h/Releases/esp-idf-v3.2.2/components/idf_test
    /h/Releases/esp-idf-v3.2.2/components/jsmn
    /h/Releases/esp-idf-v3.2.2/components/json
    /h/Releases/esp-idf-v3.2.2/components/libsodium
    /h/Releases/esp-idf-v3.2.2/components/log
    /h/Releases/esp-idf-v3.2.2/components/lwip
    /h/db/hello_world_3_2_2/main
    /h/Releases/esp-idf-v3.2.2/components/mbedtls
    /h/Releases/esp-idf-v3.2.2/components/mdns
    /h/Releases/esp-idf-v3.2.2/components/micro-ecc
    /h/Releases/esp-idf-v3.2.2/components/mqtt
    /h/Releases/esp-idf-v3.2.2/components/newlib
    /h/Releases/esp-idf-v3.2.2/components/nghttp
    /h/Releases/esp-idf-v3.2.2/components/nvs_flash
    /h/Releases/esp-idf-v3.2.2/components/openssl
    /h/Releases/esp-idf-v3.2.2/components/partition_table
    /h/Releases/esp-idf-v3.2.2/components/protobuf-c
    /h/Releases/esp-idf-v3.2.2/components/protocomm
    /h/Releases/esp-idf-v3.2.2/components/pthread
    /h/Releases/esp-idf-v3.2.2/components/sdmmc
    /h/Releases/esp-idf-v3.2.2/components/smartconfig_ack
    /h/Releases/esp-idf-v3.2.2/components/soc
    /h/Releases/esp-idf-v3.2.2/components/spi_flash
    /h/Releases/esp-idf-v3.2.2/components/spiffs
    /h/Releases/esp-idf-v3.2.2/components/tcp_transport
    /h/Releases/esp-idf-v3.2.2/components/tcpip_adapter
    /h/Releases/esp-idf-v3.2.2/components/ulp
    /h/Releases/esp-idf-v3.2.2/components/vfs
    /h/Releases/esp-idf-v3.2.2/components/wear_levelling
    /h/Releases/esp-idf-v3.2.2/components/wifi_provisioning
    /h/Releases/esp-idf-v3.2.2/components/wpa_supplicant
    /h/Releases/esp-idf-v3.2.2/components/xtensa-debug-module
strange

next step, i will check the toolchain version to the 3.2.2,

best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [BUG] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby rudi ;-) » Thu Sep 05, 2019 2:25 pm

Hi Guys

ok, i tested it now with several ways and i think, we have a BUG in this.

Custom Bootloader in Projektfolder is no longer considered


the problem is the same with Ubuntu and GNU Make:

the strange is, that the make command: list-components

point out the right but in the compile not considered.

BUG? i think, yes.
open an issue at git for this ?


btw.
i did not noticed this, cause i allways did edit in the base ESP-IDF last times
cause i am working generell with a custom bootloader,
for a test i did moved the components to the project folder
but this components are no longer considered.


best wishes
rudi ;-)

  • enve19@enve19-S3210SH:~/esp/bootltest/hello_world$ make list-components
    Toolchain path: /home/enve19/esp/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
    Toolchain version: crosstool-ng-1.22.0-80-g6c4433a
    Compiler version: 5.2.0
    *******************************************************************************
    COMPONENT_DIRS (components searched for here)
    /home/enve19/esp/bootltest/hello_world/components
    /home/enve19/esp/esp-idf/components
    /home/enve19/esp/bootltest/hello_world/main
    *******************************************************************************
    TEST_COMPONENTS (list of test component names)

    *******************************************************************************
    TEST_EXCLUDE_COMPONENTS (list of test excluded names)

    *******************************************************************************
    COMPONENT_PATHS (paths to all components):
    /home/enve19/esp/esp-idf/components/app_trace
    /home/enve19/esp/esp-idf/components/app_update
    /home/enve19/esp/esp-idf/components/asio
    /home/enve19/esp/esp-idf/components/aws_iot
    /home/enve19/esp/bootltest/hello_world/components/bootloader
    /home/enve19/esp/bootltest/hello_world/components/bootloader_support
    /home/enve19/esp/esp-idf/components/bt
    /home/enve19/esp/esp-idf/components/coap
    /home/enve19/esp/esp-idf/components/console
    /home/enve19/esp/esp-idf/components/cxx
    /home/enve19/esp/esp-idf/components/driver
    /home/enve19/esp/esp-idf/components/esp-tls
    /home/enve19/esp/esp-idf/components/esp32
    /home/enve19/esp/esp-idf/components/esp_adc_cal
    /home/enve19/esp/esp-idf/components/esp_event
    /home/enve19/esp/esp-idf/components/esp_http_client
    /home/enve19/esp/esp-idf/components/esp_http_server
    /home/enve19/esp/esp-idf/components/esp_https_ota
    /home/enve19/esp/esp-idf/components/esp_ringbuf
    /home/enve19/esp/esp-idf/components/esptool_py
    /home/enve19/esp/esp-idf/components/ethernet
    /home/enve19/esp/esp-idf/components/expat
    /home/enve19/esp/esp-idf/components/fatfs
    /home/enve19/esp/esp-idf/components/freemodbus
    /home/enve19/esp/esp-idf/components/freertos
    /home/enve19/esp/esp-idf/components/heap
    /home/enve19/esp/esp-idf/components/idf_test
    /home/enve19/esp/esp-idf/components/jsmn
    /home/enve19/esp/esp-idf/components/json
    /home/enve19/esp/esp-idf/components/libsodium
    /home/enve19/esp/esp-idf/components/log
    /home/enve19/esp/esp-idf/components/lwip
    /home/enve19/esp/bootltest/hello_world/main
    /home/enve19/esp/esp-idf/components/mbedtls
    /home/enve19/esp/esp-idf/components/mdns
    /home/enve19/esp/esp-idf/components/micro-ecc
    /home/enve19/esp/esp-idf/components/mqtt
    /home/enve19/esp/esp-idf/components/newlib
    /home/enve19/esp/esp-idf/components/nghttp
    /home/enve19/esp/esp-idf/components/nvs_flash
    /home/enve19/esp/esp-idf/components/openssl
    /home/enve19/esp/esp-idf/components/partition_table
    /home/enve19/esp/esp-idf/components/protobuf-c
    /home/enve19/esp/esp-idf/components/protocomm
    /home/enve19/esp/esp-idf/components/pthread
    /home/enve19/esp/esp-idf/components/sdmmc
    /home/enve19/esp/esp-idf/components/smartconfig_ack
    /home/enve19/esp/esp-idf/components/soc
    /home/enve19/esp/esp-idf/components/spi_flash
    /home/enve19/esp/esp-idf/components/spiffs
    /home/enve19/esp/esp-idf/components/tcp_transport
    /home/enve19/esp/esp-idf/components/tcpip_adapter
    /home/enve19/esp/esp-idf/components/ulp
    /home/enve19/esp/esp-idf/components/vfs
    /home/enve19/esp/esp-idf/components/wear_levelling
    /home/enve19/esp/esp-idf/components/wifi_provisioning
    /home/enve19/esp/esp-idf/components/wpa_supplicant
    /home/enve19/esp/esp-idf/components/xtensa-debug-module
    ...
    ...
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [BUG] Custom Bootloader in Projektfolder is no longer considered ? (v3.2-beta1-15-g12b2268ee)

Postby rudi ;-) » Thu Sep 05, 2019 3:24 pm

Hi Guys

also the released V3.3


feel free to check it out, use example the hello_world

Steps:
a) copy the hello world example to your test folder
b) create in the hello world the folder "components"
c) copy from orgin used ESP-IDF ( example V3.3 ) the components bootloader and bootloader_support to your project components
d) edit the bootloader_init.c file in (yourproject)/components/bootloader_support/src/bootloader_init.c
e) jump to static esp_err_t bootloader_main(void)
f) edit the func and add this 6 lines code between the lines

Code: Select all

..
static esp_err_t bootloader_main()
{
    bootloader_common_vddsdio_configure();
    /* Read and keep flash ID, for further use. */
    g_rom_flashchip.device_id = bootloader_read_flash_id();
/*1*/	// break me down
/*2*/	rtc_wdt_disable();
/*3*/    REG_SET_FIELD(TIMG_WDTWPROTECT_REG(0), TIMG_WDT_WKEY,  TIMG_WDT_WKEY_VALUE);
/*4*/    REG_CLR_BIT( TIMG_WDTCONFIG0_REG(0), TIMG_WDT_FLASHBOOT_MOD_EN );
/*5*/	ets_printf("here we are in custom project\n");
/*6*/	while(1);
    esp_image_header_t fhdr;
    if (bootloader_flash_read(ESP_BOOTLOADER_OFFSET, &fhdr, sizeof(esp_image_header_t), true) != ESP_OK) {
..
g) save it,
h) check and controll with

Code: Select all

make list-components
that your component is used for the compile
compile and flash your project

and`?
is the project component used or the esp-idf path component?
..

thank you
best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [BUG] Custom Bootloader in Projektfolder is no longer considered ? Release V3.3, v3.2..

Postby rudi ;-) » Thu Sep 05, 2019 4:00 pm

Hi guys

i opened an issues now.
i can not spend to much time in the make jumbo-mambo doing in ESP-IDF :P so
it becomes more and more neural connections that are no longer traceable. :D

please, have a try at your R&D desktop at espressif
please confirm if you found the same problem so we know that we have in the meantime to use
custom things from Base IDF.

thank you

best wishes
rudi ;-)

btw:
i noticed, that the target point will be using cmake in future, i think.
i hope we get parallel support with GNU Make longer time, CMake is not allways the best choice for these things.
but ok.
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

ESP_Angus
Posts: 1873
Joined: Sun May 08, 2016 4:11 am

Re: [BUG] Custom Bootloader in Projektfolder is no longer considered ? Release V3.3, v3.2..

Postby ESP_Angus » Fri Sep 06, 2019 2:05 am

Hi rudi,

I've replied to you on the GitHub issue: https://github.com/espressif/esp-idf/is ... -528676784
i noticed, that the target point will be using cmake in future, i think.
i hope we get parallel support with GNU Make longer time, CMake is not allways the best choice for these things.
GNU Make will continue to be supported for ESP-IDF v3.x (as default build system) and v4.x (as legacy build system).

Angus

User avatar
rudi ;-)
Posts: 1443
Joined: Fri Nov 13, 2015 3:25 pm

Re: [BUG] Custom Bootloader in Projektfolder is no longer considered ? Release V3.3, v3.2..

Postby rudi ;-) » Mon Sep 16, 2019 8:07 pm

ESP_Angus wrote:
Fri Sep 06, 2019 2:05 am
i noticed, that the target point will be using cmake in future, i think.
i hope we get parallel support with GNU Make longer time, CMake is not allways the best choice for these things.
GNU Make will continue to be supported for ESP-IDF v3.x (as default build system) and v4.x (as legacy build system).
Hi Angus
thank you,the github help helped.

GNU Make/CMAKE/64bit WIindows
ok i noted in few postings, that more the more cmake is used and GNU Make is supported only do v4.x.
i read, the existing GNU Make based build system will be deprecated in ESP-IDF V5.0.

no_GNU_Make_sup_5.0.png
no_GNU_Make_sup_5.0.png (9.79 KiB) Viewed 338 times

also i read the CMake-based build system is only supported on 64-bit versions of Windows.

64bitWinsupportOnly.png
64bitWinsupportOnly.png (6.13 KiB) Viewed 338 times

it is getting close :)
i understand the cmake practice and trouble and now
(only cmake) eclipse plugin - I hope espressif does not hide ways and possibilities. Many (many) still use these and the "switch" to CMake does not accomplish some.
(just because of the 64bit need of Windows)
Many are on the move with VM and 32Bit versions,
Considering, WIN10 has been mainly delivered as a 32-bit,
certainly 64Bit. that will be tight - many possibilities do not have old veranen then. to stay as with the predecessor.

Will it be an ESP32S2, ESP32S3, ESP32S4 GNU Make Version
32bit Windows version then no longer give? Not at all?
So I understood it now, it must necessarily be installed on 64bit Windows because CMAKE demands 64bit?
And CMAKE gets the base for future ESP-IDF from 5.0.

I myself have no problem, as long as I do not have to use only CMAKE, it's something new, old system is running, why change. Also, the older GNU Make SDK must be deleted as I understood then. Better then from ESP32S2 then a new PC for compatible old Projects :)? I have been practicing this since ESP8266, and use a different PC for every major circumstance. But now to meet two requirements, 64Bit and only CMAKE, that's a lot of incision, my opinion (but what do you do not do anything).

best wishes
rudi ;-)
-------------------------------------
love it, change it or leave it.
-------------------------------------
問候飛出去的朋友遍全球魯迪

Who is online

Users browsing this forum: Majestic-12 [Bot], woofy! and 38 guests