I have a K8x and need to place large const data on external (QSPI XiP) flash. I am using an external linker script.

Here are the relevant excerpts:
k81_memory.ld
MEMORY
{
PROGRAM_FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x040000
EXT_PGM_FLASH (rx) : ORIGIN = 0x04020000, LENGTH = 0x100000
/* 0x04020000-0x0405FFFF is XiP alias for 0x68020000-0x6805FFFF */
SRAM_LOWER (rwx) : ORIGIN = 0x1fff0000, LENGTH = 0x010000
SRAM_UPPER (rwx) : ORIGIN = 0x20000000, LENGTH = 0x030000
/* First 128K infineon has 4K erase, use for Configs */
TERM_SETTINGS (rx) : ORIGIN = 0x68000000, LENGTH = 0x018000 /* 96K */
MODULE_CONFIG (rx) : ORIGIN = 0x68018000, LENGTH = 0x008000 /* 32K */
XIP_RESERVED (rx) : ORIGIN = 0x68020000, LENGTH = 0x100000 /* 1M */
OTA_UPDATE (rx) : ORIGIN = 0x68120000, LENGTH = 0x100000 /* 1M */
}
k81.ld
INCLUDE "k81_memory.ld"
STACK_SIZE = 0x1000;
ENTRY(ResetISR)
SECTIONS
{
/* EXTERNAL QSPI XiP FLASH */
.text_Flash2 : ALIGN(4)
{
FILL(0xff)
*(.text_Flash2*)
*(.text_EXT_PGM_FLASH*)
*(.text.$Flash2*)
*(.text.$EXT_PGM_FLASH*)
} > EXT_PGM_FLASH
.data_Flash2 : ALIGN(4)
{
FILL(0xff)
*(.rodata_Flash2*)
*(.rodata_EXT_PGM_FLASH*)
*(.rodata.$Flash2*)
*(.rodata.$EXT_PGM_FLASH*)
}> EXT_PGM_FLASH
If I place code in external flash, e.g.
void __attribute__((section (".text_Flash2"))) delay_ms(uint16_t ms)
{
volatile uint32_t i = 0U;
for (i = 0U; i < (10000U*ms); ++i)
{
__asm("NOP"); /* delay */
}
}
... and build:

...then the function is correctly placed on the external flash.
However, if I instead place const data in external flash
const TsBigBitMap __attribute__((section (".data_Flash2"))) Logo_bmp =
{
3, // BitMapType
512, // width_pixels
384, // height_pixels
192, // width_bytes
73728, // byte_count
{
// Line 0
0xFF, 0xFF, 0xF0, 0x0A, ... 0xFF, 0xFF 0xFF, 0xFF,
}
};
.. and build:

... then it appears to NOT be placed in external flash.
What am I not seeing?