addrmap HiFive_SPI {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="SerialClockDivisor";
        regwidth=0x20;
            field {
                sw = rw;
                reset=12'b11;
            } div[11:0];
    } SerialClockDivisor @ 0x0;
    reg {
        name="SerialClockMode";
        regwidth=0x20;
            field {
                sw = rw;
            } pha[0:0];
            field {
                sw = rw;
            } pol[1:1];
    } SerialClockMode @ 0x4;
    reg {
        name="ChipSelectId";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } csid[31:0];
    } ChipSelectId @ 0x10;
    reg {
        name="ChipSelectDefault";
        regwidth=0x20;
            field {
                desc = "This field has reset value calculated at runtime.";
                sw = rw;
            } csdef[0:0];
    } ChipSelectDefault @ 0x14;
    reg {
        name="ChipSelectMode";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } csmode[1:0];
    } ChipSelectMode @ 0x18;
    reg {
        name="DelayControl0";
        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];
    } DelayControl0 @ 0x28;
    reg {
        name="DelayControl1";
        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];
    } DelayControl1 @ 0x2c;
    reg {
        name="FrameFormat";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } proto[1:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } endian[2:2];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } dir[3:3];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
                reset=4'b1000;
            } len[19:16];
    } FrameFormat @ 0x40;
    reg {
        name="TxFifoData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } data[7:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } full[31:31];
    } TxFifoData @ 0x48;
    reg {
        name="RxFifoData";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } dataempty[31:0];
    } RxFifoData @ 0x4c;
    reg {
        name="TxFifoWatermark";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write. This field has reset value calculated at runtime.";
                sw = rw;
            } txmark[2:0];
    } TxFifoWatermark @ 0x50;
    reg {
        name="RxFifoWatermark";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } rxmark[2:0];
    } RxFifoWatermark @ 0x54;
    reg {
        name="FlashInterfaceControl";
        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];
    } FlashInterfaceControl @ 0x60;
    reg {
        name="FlashInstructionFormat";
        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];
    } FlashInstructionFormat @ 0x64;
    reg {
        name="InterruptEnable";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } txwm[0:0];
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = rw;
            } rxwm[1:1];
    } InterruptEnable @ 0x70;
    reg {
        name="InterruptPending";
        regwidth=0x20;
            field {
                sw = r;
            } txwm[0:0];
            field {
                sw = r;
            } rxwm[1:1];
    } InterruptPending @ 0x74;
} Registers_addrmap;


};