addrmap EFR32xg13FlashController {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } ADDRFAULTEN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLKDISFAULTEN[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRUPONDEMAND[2:2];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IFCREADCLEAR[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TIMEOUTFAULTEN[4:4];
    } Control @ 0x0;
    reg {
        name="ReadControl";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IFCDIS[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } AIDIS[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ICCDIS[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=1'b1;
            } PREFETCH[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } USEHPROT[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
                reset=2'b1;
            } MODE[25:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } SCBTP[28:28];
    } ReadControl @ 0x4;
    reg {
        name="WriteControl";
        regwidth=0x20;
            field {
                sw = rw;
            } WREN[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } IRQERASEABORT[1:1];
    } WriteControl @ 0x8;
    reg {
        name="WriteCommand";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite =  wot;
            } LADDRIM[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite =  wot;
            } ERASEPAGE[1:1];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WRITEEND[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = w;
                onwrite =  wot;
            } WRITEONCE[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WRITETRIG[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERASEABORT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERASEMAIN0[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLEARWDATA[12:12];
    } WriteCommand @ 0xc;
    reg {
        name="AddressBuffer";
        regwidth=0x20;
            field {
                sw = rw;
            } ADDRB[31:0];
    } AddressBuffer @ 0x10;
    reg {
        name="WriteData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } WDATA[31:0];
    } WriteData @ 0x18;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } BUSY[0:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } LOCKED[1:1];
            field {
                sw = r;
            } INVADDR[2:2];
            field {
                sw = r;
                reset=1'b1;
            } WDATAREADY[3:3];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WORDTIMEOUT[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } ERASEABORT[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PCRUNNING[6:6];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } WDATAVALID[27:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CLEARWDATA[31:28];
    } Status @ 0x1c;
    reg {
        name="InterruptFlag";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptFlag @ 0x30;
    reg {
        name="InterruptFlagSet";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptFlagSet @ 0x34;
    reg {
        name="InterruptFlagClear";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptFlagClear @ 0x38;
    reg {
        name="InterruptEnable";
        regwidth=0x20;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[31:0];
    } InterruptEnable @ 0x3c;
    reg {
        name="ConfigurationLock";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } LOCKKEY[15:0];
    } ConfigurationLock @ 0x40;
    reg {
        name="FlashCacheCommand";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } FlashCacheCommand @ 0x44;
    reg {
        name="CacheHitsCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CacheHitsCounter @ 0x48;
    reg {
        name="CacheMissesCounter";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CacheMissesCounter @ 0x4c;
    reg {
        name="MassEraseLock";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } MassEraseLock @ 0x54;
    reg {
        name="StartupControl";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } StartupControl @ 0x5c;
    reg {
        name="Command";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } PWRUP[0:0];
    } Command @ 0x74;
    reg {
        name="BootloaderReadAndWriteEnable";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } BootloaderReadAndWriteEnable @ 0x90;
    reg {
        name="SoftwareUnlockAPPCommand";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } SoftwareUnlockAPPCommand @ 0x94;
    reg {
        name="CacheConfiguration0";
        desc = "Could not determine register's width, guessed 8 bits.";
        regwidth=0x8;
            field {
                desc = "This is a dummy r/w field, generated just to show the register in specs";
                sw = rw;
            } DUMMY[7:0];
    } CacheConfiguration0 @ 0x98;
} Registers_addrmap;


};