static int32_t Flash_norOspiRegWrite(Flash_Config *config, uint8_t cmd, uint32_t addr, uint8_t data) { int32_t status = SystemP_SUCCESS; uint8_t regData = data; Flash_DevConfig *devCfg = config->devConfig; Flash_NorOspiObject *obj = (Flash_NorOspiObject *)(config->object); status = Flash_norOspiCmdWrite(config, devCfg->cmdWren, OSPI_CMD_INVALID_ADDR, 0, NULL, 0); /* Wait a finite interval after WREN */ // if(status == SystemP_SUCCESS) // { // status = Flash_norOspiWaitReady(config, devCfg->flashBusyTimeout); // } ClockP_sleep(1); if(status == SystemP_SUCCESS) { status = Flash_norOspiCmdWrite(config, cmd, addr, obj->numAddrBytes, ®Data, 1); } return status; } static int32_t Flash_norOspiOpen(Flash_Config *config, Flash_Params *params) { int32_t status = SystemP_SUCCESS; Flash_NorOspiObject *obj = (Flash_NorOspiObject *)(config->object); Flash_Attrs *attrs = config->attrs; int32_t attackVectorStatus = SystemP_FAILURE; obj->ospiHandle = OSPI_getHandle(attrs->driverInstance); if(obj->ospiHandle == NULL) { status = SystemP_FAILURE; } if(SystemP_SUCCESS == status) { // perform reg write obj->numAddrBytes = 3; Flash_norOspiRegWrite(config, 0x71, 0x0, 0); ClockP_sleep(1); Flash_norOspiRegWrite(config, 0x71, 0x2, 0); ClockP_sleep(1); Flash_norOspiRegWrite(config, 0x71, 0x3, 8); ClockP_sleep(1); Flash_norOspiRegWrite(config, 0x71, 0x4, 8); ClockP_sleep(1); Flash_norOspiRegWrite(config, 0x71, 0x5, 0xA8); ClockP_sleep(1); Flash_norOspiRegWrite(config, 0x71, 0x6, 64); ClockP_sleep(1); uint8_t regData = 0x0; // /* Set current protocol as 1s1s1s */ obj->currentProtocol = FLASH_CFG_PROTO_1S_1S_1S; for(int loop = 0; loop < 7; loop++) { if(loop == 1){ continue; } regData = 0x0; status = Flash_norOspiRegRead(config, 0x65, 0x800000 + loop, ®Data); DebugP_log("After Write: Register %u: 0x%x \r\n", (loop + 1), regData); } while(1); OSPI_configResetPin(obj->ospiHandle, OSPI_RESETPIN_DEDICATED); /* Set device size and addressing bytes */ OSPI_setDeviceSize(obj->ospiHandle, attrs->pageSize, attrs->blockSize); /* Set command opcode extension type */ OSPI_setCmdExtType(obj->ospiHandle, config->devConfig->cmdExtType);