addrmap Gaisler_GPTimer {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="ScalerValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Read, Write. This field has reset value calculated at runtime.";
                sw = rw;
            } scalerValue[0:0];
    } ScalerValue @ 0x0;
    reg {
        name="ScalerReloadValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider. This field has reset value calculated at runtime.";
                sw = rw;
            } scalerReloadValue[0:0];
    } ScalerReloadValue @ 0x4;
    reg {
        name="Configuration";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } timers[2:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } firstIrq[7:3];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } separateInterrupts[8:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } disableFreeze[9:9];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } enableLatching[11:11];
    } Configuration @ 0x8;
    reg {
        name="LatchConfiguration";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } latchSelect[31:0];
    } LatchConfiguration @ 0xc;
    reg {
        name="Timer1CounterValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write, Provider.";
                sw = rw;
            } counterValue[31:0];
    } Timer1CounterValue @ 0x10;
    reg {
        name="Timer1ReloadValue";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } reloadValue[31:0];
    } Timer1ReloadValue @ 0x14;
    reg {
        name="Timer1Control";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } enable[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Change, Provider.";
                sw = rw;
            } restart[1:1];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
                onwrite = woclr;
            } load[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
            } interruptEnable[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Change.";
                sw = rw;
                onwrite = woclr;
            } interruptPending[4:4];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } chain[5:5];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } debugHalt[6:6];
    } Timer1Control @ 0x18;
    reg {
        name="Timer1Latch";
        regwidth=0x20;
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } latchedTimerCounterValue[31:0];
    } Timer1Latch @ 0x1c;
    reg {
        name="Timer2CounterValue";
        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];
    } Timer2CounterValue @ 0x20;
    reg {
        name="Timer2ReloadValue";
        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];
    } Timer2ReloadValue @ 0x24;
    reg {
        name="Timer2Control";
        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];
    } Timer2Control @ 0x28;
    reg {
        name="Timer2Latch";
        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];
    } Timer2Latch @ 0x2c;
    reg {
        name="Timer3CounterValue";
        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];
    } Timer3CounterValue @ 0x30;
    reg {
        name="Timer3ReloadValue";
        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];
    } Timer3ReloadValue @ 0x34;
    reg {
        name="Timer3Control";
        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];
    } Timer3Control @ 0x38;
    reg {
        name="Timer3Latch";
        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];
    } Timer3Latch @ 0x3c;
    reg {
        name="Timer4CounterValue";
        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];
    } Timer4CounterValue @ 0x40;
    reg {
        name="Timer4ReloadValue";
        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];
    } Timer4ReloadValue @ 0x44;
    reg {
        name="Timer4Control";
        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];
    } Timer4Control @ 0x48;
    reg {
        name="Timer4Latch";
        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];
    } Timer4Latch @ 0x4c;
    reg {
        name="Timer5CounterValue";
        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];
    } Timer5CounterValue @ 0x50;
    reg {
        name="Timer5ReloadValue";
        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];
    } Timer5ReloadValue @ 0x54;
    reg {
        name="Timer5Control";
        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];
    } Timer5Control @ 0x58;
    reg {
        name="Timer5Latch";
        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];
    } Timer5Latch @ 0x5c;
    reg {
        name="Timer6CounterValue";
        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];
    } Timer6CounterValue @ 0x60;
    reg {
        name="Timer6ReloadValue";
        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];
    } Timer6ReloadValue @ 0x64;
    reg {
        name="Timer6Control";
        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];
    } Timer6Control @ 0x68;
    reg {
        name="Timer6Latch";
        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];
    } Timer6Latch @ 0x6c;
    reg {
        name="Timer7CounterValue";
        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];
    } Timer7CounterValue @ 0x70;
    reg {
        name="Timer7ReloadValue";
        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];
    } Timer7ReloadValue @ 0x74;
    reg {
        name="Timer7Control";
        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];
    } Timer7Control @ 0x78;
    reg {
        name="Timer7Latch";
        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];
    } Timer7Latch @ 0x7c;
} Registers_addrmap;


};