summaryrefslogtreecommitdiff
path: root/lib/ultralib/src/flash/flashreadstatus.c
blob: 6bb582b7381492cda6f8faeec2d448947c830671 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "PR/os_internal.h"

void osFlashReadStatus(u8* flash_status) {
    u32 status;

    osEPiWriteIo(&__osFlashHandler, __osFlashHandler.baseAddress | FLASH_CMD_REG, FLASH_CMD_STATUS);
    // read status
    osEPiReadIo(&__osFlashHandler, __osFlashHandler.baseAddress, &status);

    // why twice ?
    osEPiWriteIo(&__osFlashHandler, __osFlashHandler.baseAddress | FLASH_CMD_REG, FLASH_CMD_STATUS);
    osEPiReadIo(&__osFlashHandler, __osFlashHandler.baseAddress, &status);

    *flash_status = status & 0xFF;

    return;
}