Should we use External Memory Manager or the official Flash/SRAM driver?
I'm currently developing with the STM32N6570-DK, using STM32N6 1.4.0 firmware, and using AI Studio and CubeMX to generate projects.
However, I've encountered a very confusing problem. In the program generated by AI Studio, after calling MX_EXTMEM_MANAGER_Init() in the FSBL, it calls functions like BSP_XSPI_NOR_Init() and BSP_XSPI_RAM_Init(). This seems to be an additional Flash and SRAM driver written separately by the official documentation.
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_XSPI1_Init();
MX_XSPI2_Init();
MX_EXTMEM_MANAGER_Init();
/* USER CODE BEGIN 2 */
__HAL_RCC_AXISRAM2_MEM_CLK_ENABLE();
__HAL_RCC_AXISRAM3_MEM_CLK_ENABLE();
__HAL_RCC_AXISRAM4_MEM_CLK_ENABLE();
__HAL_RCC_AXISRAM5_MEM_CLK_ENABLE();
__HAL_RCC_AXISRAM6_MEM_CLK_ENABLE();
/** Workaround for an issue generated in STM32CubeN6 FW 1.4.0 **/
extern XSPI_NOR_Ctx_t XSPI_Nor_Ctx[XSPI_NOR_INSTANCES_NUMBER];
XSPI_Nor_Ctx[0].InterfaceMode = BSP_XSPI_NOR_OPI_MODE;
XSPI_Nor_Ctx[0].TransferRate = BSP_XSPI_NOR_STR_TRANSFER;
/** end of workaround **/
BSP_XSPI_NOR_Init_t xspiInit;
xspiInit.InterfaceMode = MX66UW1G45G_OPI_MODE;
xspiInit.TransferRate = MX66UW1G45G_DTR_TRANSFER;
BSP_XSPI_NOR_Init(0,&xspiInit);
BSP_XSPI_NOR_EnableMemoryMappedMode(0);
MODIFY_REG(XSPI2->CR, XSPI_CR_NOPREF, HAL_XSPI_AUTOMATIC_PREFETCH_DISABLE);
BSP_XSPI_RAM_Init(0);
BSP_XSPI_RAM_EnableMemoryMappedMode(0);
MODIFY_REG(XSPI1->CR, XSPI_CR_NOPREF, HAL_XSPI_AUTOMATIC_PREFETCH_DISABLE);
BSP_XSPI_RAM_Init(0);
BSP_XSPI_RAM_EnableMemoryMappedMode(0);
MODIFY_REG(XSPI1->CR, XSPI_CR_NOPREF, HAL_XSPI_AUTOMATIC_PREFETCH_DISABLE);
/* USER CODE END 2 */
But my understanding is that External Memory Manager officially states it already supports APS256XXN-OBR-BG and MX66UW1G45GXDI00, which are the Flash and SRAM used on the N6570-DK. Shouldn't it directly use the EMM without needing to import a separate driver?

Furthermore, the FSBL generated by AI Studio also implements some workarounds that appear to be problematic in version 1.4.0
Because the information online is so mixed, I really can't understand what the official recommended implementation method is now.
