Hi,
If the HSM exclusive access is not configured, the blocks can be used. I used this piece of code for test and I can see that it works as expected:
//unlock blocks 0x00F8_0000 - 0x00F8_7FFF
C55FMC.LOCK1.R &= 0xFFFC;
//erase the blocks
C55FMC.MCR.B.ERS = 1;
C55FMC.SEL1.R = 0x0003; //select the blocks
*(unsigned int*)0x00F80000 = 0xFFFFFFFF; //interlock write
C55FMC.MCR.B.EHV = 1;
while(C55FMC.MCR.B.DONE == 0);
C55FMC.MCR.B.EHV = 0;
C55FMC.MCR.B.ERS = 0;
//program one page in the block 0xF8_0000-0xF8_3FFF
C55FMC.MCR.B.PGM = 1;
*(unsigned int*)0x00F80000 = 0x11111111;
*(unsigned int*)0x00F80004 = 0x22222222;
*(unsigned int*)0x00F80008 = 0x33333333;
*(unsigned int*)0x00F8000C = 0x44444444;
*(unsigned int*)0x00F80010 = 0x55555555;
*(unsigned int*)0x00F80014 = 0x66666666;
*(unsigned int*)0x00F80018 = 0x77777777;
*(unsigned int*)0x00F8001C = 0x88888888;
C55FMC.MCR.B.EHV = 1;
while(C55FMC.MCR.B.DONE == 0);
C55FMC.MCR.B.EHV = 0;
C55FMC.MCR.B.PGM = 0;
//program one page in the block 0xF8_4000-0xF8_7FFF
C55FMC.MCR.B.PGM = 1;
*(unsigned int*)0x00F84000 = 0x11111111;
*(unsigned int*)0x00F84004 = 0x22222222;
*(unsigned int*)0x00F84008 = 0x33333333;
*(unsigned int*)0x00F8400C = 0x44444444;
*(unsigned int*)0x00F84010 = 0x55555555;
*(unsigned int*)0x00F84014 = 0x66666666;
*(unsigned int*)0x00F84018 = 0x77777777;
*(unsigned int*)0x00F8401C = 0x88888888;
C55FMC.MCR.B.EHV = 1;
while(C55FMC.MCR.B.DONE == 0);
C55FMC.MCR.B.EHV = 0;
C55FMC.MCR.B.PGM = 0;
Regards,
Lukas