addrmap STM32L0_FlashController {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="AccessControl";
        regwidth=0x20;
            field {
                sw = rw;
            } LATENCY[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } PRFTEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SLEEP_PD[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } RUN_PD[4:4];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } DISAB_BUF[5:5];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } PRE_READ[6:6];
    } AccessControl @ 0x0;
    reg {
        name="ProgramEraseControl";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
                reset=1'b1;
            } PE_LOCK[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
                reset=1'b1;
            } PRG_LOCK[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
                reset=1'b1;
            } OPT_LOCK[2:2];
            field {
                sw = rw;
            } PROG[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } DATA[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FIX[8:8];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } ERASE[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } FPRG[10:10];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PARALLELBANK[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } EOPIE[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERRIE[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } OBL_LAUNCH[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } NZDISABLE[23:23];
    } ProgramEraseControl @ 0x4;
    reg {
        name="PowerDownKey";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FLASH_PDKEYR[31:0];
    } PowerDownKey @ 0x8;
    reg {
        name="ProgramEraseControlKey";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FLASH_PEKEYR[31:0];
    } ProgramEraseControlKey @ 0xc;
    reg {
        name="ProgramAndEraseKey";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FLASH_PRGKEYR[31:0];
    } ProgramAndEraseKey @ 0x10;
    reg {
        name="OptionBytesUnlockKey";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } FLASH_OPTKEYR[31:0];
    } OptionBytesUnlockKey @ 0x14;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } BSY[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
                onwrite = woclr;
            } EOP[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } ENDHV[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
                reset=1'b1;
            } READY[3:3];
            field {
                sw = w;
                onwrite = woclr;
            } WRPERR[8:8];
            field {
                sw = w;
                onwrite = woclr;
            } PGAERR[9:9];
            field {
                sw = w;
                onwrite = woclr;
            } SIZERR[10:10];
            field {
                sw = w;
                onwrite = woclr;
            } OPTVERR[11:11];
            field {
                sw = w;
                onwrite = woclr;
            } RDERR[13:13];
            field {
                sw = w;
                onwrite = woclr;
            } NOTZEROERR[16:16];
            field {
                sw = w;
                onwrite = woclr;
            } FWWERR[17:17];
    } Status @ 0x18;
    reg {
        name="OptionBytes";
        regwidth=0x20;
            field {
                sw = r;
                reset=8'b10101010;
            } RDPROT[7:0];
            field {
                sw = r;
            } WPRMOD[8:8];
            field {
                sw = r;
            } BOR_LEV[19:16];
            field {
                sw = r;
                reset=1'b1;
            } WDG_SW[20:20];
            field {
                sw = r;
                reset=1'b1;
            } nRTS_STOP[21:21];
            field {
                sw = r;
                reset=1'b1;
            } nRTS_STDBY[22:22];
            field {
                sw = r;
            } BFB2[23:23];
            field {
                sw = r;
            } nBOOT_SEL[29:29];
            field {
                sw = r;
            } nBOOT0[30:30];
            field {
                sw = r;
                reset=1'b1;
            } nBOOT1[31:31];
    } OptionBytes @ 0x1c;
    reg {
        name="WriteProtection1";
        regwidth=0x20;
            field {
                sw = r;
            } WRPROT1[31:0];
    } WriteProtection1 @ 0x20;
    reg {
        name="WriteProtection2";
        regwidth=0x20;
            field {
                sw = r;
            } WRPROT2[15:0];
    } WriteProtection2 @ 0x80;
} Registers_addrmap;
addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="UniqueId1";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } WAF_NUM[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LOT_NUM55_32[31:8];
    } UniqueId1 @ 0x50;
    reg {
        name="UniqueId2";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } LOT_NUM31_0[31:0];
    } UniqueId2 @ 0x54;
    reg {
        name="UniqueId3";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } U_ID95_64[31:0];
    } UniqueId3 @ 0x64;
    reg {
        name="FlashSize";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } F_SIZE[15:0];
    } FlashSize @ 0x7c;
} SignatureRegisters_addrmap;


};