addrmap MesonUart {

addrmap {
    desc = "Generated by RenodeModelsAnalyzer";
    reg {
        name="WriteFifo";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Write.";
                sw = w;
            } WFIFO[6:0];
    } WriteFifo @ 0x0;
    reg {
        name="ReadFifo";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } RFIFO[6:0];
    } ReadFifo @ 0x4;
    reg {
        name="Control";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } BaudRate[11:0];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } TX_Enabled[12:12];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = rw;
            } RX_Enabled[13:13];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Two_Wire_mode[15:15];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Stop_bit_length[17:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_type[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_enable[19:19];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Character_length[21:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TX_Reset[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Reset[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Clear_Error[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Invert_RX[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Invert_TX[26:26];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } RX_Byte_Interrupt[27:27];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } TX_Byte_Interrupt[28:28];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Invert_CTS[29:29];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Mask_Error[30:30];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Invert_RTS[31:31];
    } Control @ 0x8;
    reg {
        name="Status";
        regwidth=0x20;
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_count[7:0];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_FIFO_count[14:8];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Parity_error[16:16];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Frame_error[17:17];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Write_error[18:18];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_FIFO_full[19:19];
            field {
                desc = "This field has the following custom Renode callbacks: Provider.";
                sw = r;
            } Receive_FIFO_empty[20:20];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_FIFO_full[21:21];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_FIFO_empty[22:22];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } CTS_Level[23:23];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_FIFO_overflow[24:24];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Transmit_busy[25:25];
            field {
                desc = "The field is a Tag.";
                sw = rw;
            } Receive_busy[26:26];
    } Status @ 0xc;
    reg {
        name="Misc";
        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];
    } Misc @ 0x10;
    reg {
        name="Reg5";
        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];
    } Reg5 @ 0x14;
} Registers_addrmap;


};