Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

H750 bootloader cannot jump to the firmware. #5951

Open
1 task done
Xlio5 opened this issue Feb 27, 2025 · 2 comments
Open
1 task done

H750 bootloader cannot jump to the firmware. #5951

Xlio5 opened this issue Feb 27, 2025 · 2 comments
Labels
bug 🪲 Something isn't working triage Bug report awaiting review / sorting

Comments

@Xlio5
Copy link

Xlio5 commented Feb 27, 2025

Is there an existing issue for this problem?

  • I have searched the existing issues

What part of EdgeTX is the focus of this bug?

Build system

Current Behavior

Referring to the stm32h7s78-dk version, it was ported to the h750, with the main modifications being the change from XSPI Flash to QSPI Flash, and the starting address set to 0x90000000.
After testing the bootloader's jump to the firmware, the firmware did not execute anything.
However, when using Cube MX to generate a program with an offset of 0x90000000, it was able to jump and function properly.
Environment: Chip stm32h750xbh6, Flash w25q256, SDRAM IS42S32400F
code: https://github.com/Xlio5/edgetx/tree/h750_test

Expected Behavior

Using Cube to generate the app, the normal execution at offset 0x90000000 indicates that the bootloader jump is functioning correctly. With the same bootloader, the firmware should execute normally, but it does not.

Steps To Reproduce

download boot and firmware

Version

2.11.0-rc

Transmitter

Other (Please specify below)

Operating System (OS)

No response

OS Version

No response

Anything else?

NORFLASH_START = 0x90000000;
NORFLASH_SIZE = 32M;

MEMORY
{
FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 128K
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
RAM_D1 (xrw) : ORIGIN = 0x24000000, LENGTH = 512K
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 288K
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 64K
SDRAM (rwx) : ORIGIN = SDRAM_START, LENGTH = SDRAM_SIZE
NORFLASH (rx) : ORIGIN = NORFLASH_START, LENGTH = NORFLASH_SIZE
}

REGION_ALIAS("REGION_BOOTLOADER", FLASH);
REGION_ALIAS("REGION_TEXT_STORAGE", NORFLASH);
REGION_ALIAS("REGION_TEXT", SDRAM);
REGION_ALIAS("REGION_ISR_VECT", DTCMRAM);
REGION_ALIAS("REGION_DATA", DTCMRAM);
REGION_ALIAS("REGION_BSS", RAM_D1);
REGION_ALIAS("REGION_RAM", RAM_D1);

@Xlio5 Xlio5 added bug 🪲 Something isn't working triage Bug report awaiting review / sorting labels Feb 27, 2025
@gagarinlg
Copy link
Member

Since we have a couple of different boards with h750 that can boot successfully, I suspect an issue on your side.
How did you program the external flash?

@Xlio5
Copy link
Author

Xlio5 commented Feb 27, 2025

Okay, during the bootloader phase, I used the following function to enable the NOR flash

  stm32_qspi_nor_init();
  stm32_qspi_nor_memory_mapped();

After completing this initialization process, I executed

jumpTo(0x90000000);

download firmware, when reading the content of the flash, the offset appears to be normal.

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug 🪲 Something isn't working triage Bug report awaiting review / sorting
Projects
None yet
Development

No branches or pull requests

2 participants