cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 Cube Programmer 2.13 handling of hybrid sector sizing tables

I have an external loader that needs to describe

32 x 4K Erase Blocks

1 x 128KB Erase Block @ 0x90020000

511 x 256KB Erase Blocks @ 0x90040000

The decoding of the base address resets to 0x90000000 for some inexplicable reason

0693W00000aJSy1QAG.jpg@Nawres GHARBI​ @Sara BEN HADJ YAHYA​ 

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
1 ACCEPTED SOLUTION

Accepted Solutions
Sara BEN HADJ YAHYA
ST Employee

Hello @Tesla DeLorean ,

This issue is fixed in STM32CubeProgrammer latest release.

V2.14.0 is now available under this Link.

Thanks for your contribution 

Sara

View solution in original post

8 REPLIES 8
Sara BEN HADJ YAHYA
ST Employee

Hello @Community member​ ,

Thanks for your feedback,

Could you please send me the external loader's source code for further check?

Thanks in advance,

Sara.

I'm not sure that's necessary to debug a static decode failure on the application side.

T​he index and address should keep advancing, the order and sequence of the sizing looks correct. So it's reading the table of counts / sizes.

O​ther aspects of the loader are working properly. And if passed a memory range the Erase function in the loader decomposes it appropriately.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Ok, when check boxing the 128KB sector, the one that lives at 0x90020000, the tools pass the loader an EraseSector(0x90000000), so the address computation code is some how broken.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Sara BEN HADJ YAHYA
ST Employee

Hello @Community member​ ,

Sorry for the late reply,

Could you please send me the dev_inf.c file ?

Thanks in advance,

Sara.

It's an enumerated list of counts and sizes, should be apparent from table in binary

See also trailing comment here

STM32CubeProgrammer_v2.10\bin\ExternalLoader\IS61WV51216BLL_STM3210E-EVAL\Sources\Loader_Files\Dev_Inf.c

Related defines for attached file

#ifdef USE_S25HL01GT // 128MB
#define PART_NAME "S25HL01GT"
#define QSPI_FLASH_SIZE (128 * 1024 * 1024)
#define QSPI_FLASH_SHIFT 27
#define END_BLOCK 0x07FC0000 // 128MB-256KB-1
#define USE_SPANSION
#define USE_ADR32
//#define ERASE_BLOCK_SIZE (256 * 1024)
#define ERASE_BLOCK_SIZE (4 * 1024)
 
#define COMPLEX1_BLOCK_SIZE (4 * 1024)
#define COMPLEX1_BLOCK_COUNT 32
#define COMPLEX2_BLOCK_SIZE (128 * 1024)
#define COMPLEX2_BLOCK_COUNT 1
#define COMPLEX3_BLOCK_SIZE (256 * 1024)
#define COMPLEX3_BLOCK_COUNT 511
 
#endif

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
Sara BEN HADJ YAHYA
ST Employee

Hello @Community member​ ,

First I apologize for the late reply,

The issue is confirmed and it is raised to the development team to fix it. I will keep you posted with updates.

Internal ticket number: 150017 (This is an internal tracking number and is not accessible or usable by customers).

Thank you for your contribution,

Sara

Sara BEN HADJ YAHYA
ST Employee

Hello @Tesla DeLorean ,

This issue is fixed in STM32CubeProgrammer latest release.

V2.14.0 is now available under this Link.

Thanks for your contribution 

Sara