From 67423523a9462e052847f004984e2bc76c6f631a Mon Sep 17 00:00:00 2001 From: Sean Cross Date: Tue, 26 Nov 2019 07:43:05 +0800 Subject: [PATCH] initial commit Signed-off-by: Sean Cross --- betrusted-soc | Bin 0 -> 329856 bytes fb.cs | 94 ++ soc.svd | 2883 +++++++++++++++++++++++++++++++++++++++++++++++++ test.repl | 17 + test.resc | 7 + 5 files changed, 3001 insertions(+) create mode 100644 betrusted-soc create mode 100644 fb.cs create mode 100644 soc.svd create mode 100644 test.repl create mode 100644 test.resc diff --git a/betrusted-soc b/betrusted-soc new file mode 100644 index 0000000000000000000000000000000000000000..354564d24c2299d42db9efc4966995c17c44061b GIT binary patch literal 329856 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 #Pw+eZ)rJ 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

>U^Y_}n{>(E0M8PsL$YIy=t>5yNx0q$+o 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 literal 0 HcmV?d00001 diff --git a/fb.cs b/fb.cs new file mode 100644 index 0000000..69732ae --- /dev/null +++ b/fb.cs @@ -0,0 +1,94 @@ +// +// Copyright (c) 2010 - 2019 Antmicro +// +// This file is licensed under the MIT License. +// Full license text is available in 'licenses/MIT.txt'. +// + +using System; +using System.Linq; +using Antmicro.Renode.Backends.Display; +using Antmicro.Renode.Core; +using Antmicro.Renode.Core.Structure.Registers; +using Antmicro.Renode.Logging; +using Antmicro.Renode.Peripherals.Bus; +using Antmicro.Renode.Peripherals.Memory; +using Antmicro.Renode.Utilities; + +namespace Antmicro.Renode.Peripherals.Video +{ + public class fb : AutoRepaintingVideo, IDoubleWordPeripheral, IProvidesRegisterCollection, IKnownSize + { + public fb(Machine machine) : base(machine) + { + this.machine = machine; + + RegistersCollection = new DoubleWordRegisterCollection(this); + Reconfigure(336, 536, PixelFormat.RGB565, false); + for (int i = 0; i < buffer.Length; i++) buffer[i] = 0; + DoRepaint(); + DefineRegisters(); + Reset(); + } + + public void WriteDoubleWord(long address, uint value) + { + RegistersCollection.Write(address, value); + } + + public uint ReadDoubleWord(long offset) + { + return RegistersCollection.Read(offset); + } + + public override void Reset() + { + RegistersCollection.Reset(); + } + + public long Size => 0x800; + public DoubleWordRegisterCollection RegistersCollection { get; private set; } + + protected override void Repaint() + { + var newbuf = new Byte[44*Height]; + machine.SystemBus.ReadBytes(bufferAddress, newbuf.Length, newbuf, 0); + for (int y = 0; y < Height; y++) { + if (!updateDirty || updateAll || ((newbuf[y*44+0x2a] & 0x1) == 0x1)) for (int x = 0; x < Width; x++) { + if (((newbuf[((x+y*44*8))/8] >> (x%8))&1) > 0) { + buffer[2*(x+y*Width)] = 0xFF; + buffer[2*(x+y*Width)+1] = 0xFF; + } else { + buffer[2*(x+y*Width)] = 0x0; + buffer[2*(x+y*Width)+1] = 0x0; + } + } + } + } + + private void DefineRegisters() + { + Registers.COMMAND.Define(this) + .WithValueField(0, 32, writeCallback: (_, val) => + { + updateDirty = (val & 0x1) == 0x1; + updateAll = (val & 0x10) == 0x10; + DoRepaint(); + }) + ; + } + + private bool updateDirty = false; + private bool updateAll = false; + + private uint bufferAddress = 0xB0000000; + + private readonly Machine machine; + + private enum Registers + { + COMMAND = 0x0, + BUSY = 0x04 + } + } +} diff --git a/soc.svd b/soc.svd new file mode 100644 index 0000000..697bebe --- /dev/null +++ b/soc.svd @@ -0,0 +1,2883 @@ + + + + litex + SOC + + 8 + 32 + 32 + read-write + 0x00000000 + 0xFFFFFFFF + + + + COM + 0xF0005800 + COM + + + TX1 + Bits 8-15 of `COM_TX`. Tx data, for MOSI. + 0x0000 + 0x00 + + + tx + 7 + [7:0] + 0 + + + + + TX0 + Bits 0-7 of `COM_TX`. + 0x0004 + 0x00 + + + tx + 7 + [7:0] + 0 + + + + + RX1 + Bits 8-15 of `COM_RX`. Rx data, from MISO + 0x0008 + 0x00 + + + rx + 7 + [7:0] + 0 + + + + + RX0 + Bits 0-7 of `COM_RX`. + 0x000c + 0x00 + + + rx + 7 + [7:0] + 0 + + + + + CONTROL + 0x0010 + 0x00 + + + clrdone + 0 + [0:0] + 0 + + + + go + 1 + [1:1] + 1 + + + + intena + 2 + [2:2] + 2 + + + + + + STATUS + 0x0014 + 0x00 + + + tip + 0 + [0:0] + 0 + + + + done + 1 + [1:1] + 1 + + + + + + EV_STATUS + 0x0018 + 0x00 + + + status + 0 + [0:0] + 0 + + + + + EV_PENDING + 0x001c + 0x00 + + + pending + 0 + [0:0] + 0 + + + + + EV_ENABLE + 0x0020 + 0x00 + + + enable + 0 + [0:0] + 0 + + + + + + 0 + 0x24 + registers + + + + I2C + 0xF0006000 + I2C + + + PRESCALE1 + Bits 8-15 of `I2C_PRESCALE`. Prescaler value. Set to (module clock / (5 * I2C +freq) - 1). Example: if module clock is equal to sysclk; syclk is 100MHz; and +I2C freq is 100kHz, then prescaler is (100MHz / (5 * 100kHz) - 1) = 199. Reset +value: 0xFFFF + 0x0000 + 0x7f + + + prescale + 7 + [7:0] + 0 + + + + + PRESCALE0 + Bits 0-7 of `I2C_PRESCALE`. + 0x0004 + 0x7f + + + prescale + 7 + [7:0] + 0 + + + + + CONTROL + 0x0008 + 0x00 + + + Resvd + 5 + [5:0] + 0 + + + + IEN + 6 + [6:6] + 6 + + + + EN + 7 + [7:7] + 7 + + + + + + TXR + Next byte to transmit to slave devices. LSB indicates R/W during address phases, +`1` for reading from slaves, `0` for writing to slaves + 0x000c + 0x00 + + + txr + 7 + [7:0] + 0 + + + + + RXR + Data being read from slaved devices + 0x0010 + 0x00 + + + rxr + 7 + [7:0] + 0 + + + + + COMMAND + 0x0014 + 0x00 + + + IACK + 0 + [0:0] + 0 + + + + Resvd + 2 + [2:1] + 1 + + + + ACK + 3 + [3:3] + 3 + + + + WR + 4 + [4:4] + 4 + + + + RD + 5 + [5:5] + 5 + + + + STO + 6 + [6:6] + 6 + + + + STA + 7 + [7:7] + 7 + + + + + + STATUS + 0x0018 + 0x00 + + + IF + 0 + [0:0] + 0 + + + + TIP + 1 + [1:1] + 1 + + + + Resvd + 4 + [4:2] + 2 + + + + ArbLost + 5 + [5:5] + 5 + + + + Busy + 6 + [6:6] + 6 + + + + RxACK + 7 + [7:7] + 7 + + + + + + EV_STATUS + 0x001c + 0x00 + + + status + 0 + [0:0] + 0 + + + + + EV_PENDING + 0x0020 + 0x00 + + + pending + 0 + [0:0] + 0 + + + + + EV_ENABLE + 0x0024 + 0x00 + + + enable + 0 + [0:0] + 0 + + + + + + 0 + 0x28 + registers + + + i2c + 2 + + + + TICKTIMER + 0xF0007800 + TICKTIMER + + + CONTROL + 0x0000 + 0x00 + + + reset + 0 + [0:0] + 0 + + + + pause + 1 + [1:1] + 1 + + + + + + TIME5 + Bits 40-47 of `TICKTIMER_TIME`. Elapsed time in systicks + 0x0004 + 0x00 + + + time + 7 + [7:0] + 0 + + + + + TIME4 + Bits 32-39 of `TICKTIMER_TIME`. + 0x0008 + 0x00 + + + time + 7 + [7:0] + 0 + + + + + TIME3 + Bits 24-31 of `TICKTIMER_TIME`. + 0x000c + 0x00 + + + time + 7 + [7:0] + 0 + + + + + TIME2 + Bits 16-23 of `TICKTIMER_TIME`. + 0x0010 + 0x00 + + + time + 7 + [7:0] + 0 + + + + + TIME1 + Bits 8-15 of `TICKTIMER_TIME`. + 0x0014 + 0x00 + + + time + 7 + [7:0] + 0 + + + + + TIME0 + Bits 0-7 of `TICKTIMER_TIME`. + 0x0018 + 0x00 + + + time + 7 + [7:0] + 0 + + + + + + 0 + 0x1c + registers + + + + INFO + 0xF0004000 + INFO + + + DNA_ID7 + Bits 56-56 of `INFO_DNA_ID`. + 0x0000 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID6 + Bits 48-55 of `INFO_DNA_ID`. + 0x0004 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID5 + Bits 40-47 of `INFO_DNA_ID`. + 0x0008 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID4 + Bits 32-39 of `INFO_DNA_ID`. + 0x000c + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID3 + Bits 24-31 of `INFO_DNA_ID`. + 0x0010 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID2 + Bits 16-23 of `INFO_DNA_ID`. + 0x0014 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID1 + Bits 8-15 of `INFO_DNA_ID`. + 0x0018 + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + DNA_ID0 + Bits 0-7 of `INFO_DNA_ID`. + 0x001c + 0x00 + + + dna_id + 7 + [7:0] + 0 + + + + + GIT_COMMIT19 + Bits 152-159 of `INFO_GIT_COMMIT`. + 0x0020 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT18 + Bits 144-151 of `INFO_GIT_COMMIT`. + 0x0024 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT17 + Bits 136-143 of `INFO_GIT_COMMIT`. + 0x0028 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT16 + Bits 128-135 of `INFO_GIT_COMMIT`. + 0x002c + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT15 + Bits 120-127 of `INFO_GIT_COMMIT`. + 0x0030 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT14 + Bits 112-119 of `INFO_GIT_COMMIT`. + 0x0034 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT13 + Bits 104-111 of `INFO_GIT_COMMIT`. + 0x0038 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT12 + Bits 96-103 of `INFO_GIT_COMMIT`. + 0x003c + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT11 + Bits 88-95 of `INFO_GIT_COMMIT`. + 0x0040 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT10 + Bits 80-87 of `INFO_GIT_COMMIT`. + 0x0044 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT9 + Bits 72-79 of `INFO_GIT_COMMIT`. + 0x0048 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT8 + Bits 64-71 of `INFO_GIT_COMMIT`. + 0x004c + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT7 + Bits 56-63 of `INFO_GIT_COMMIT`. + 0x0050 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT6 + Bits 48-55 of `INFO_GIT_COMMIT`. + 0x0054 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT5 + Bits 40-47 of `INFO_GIT_COMMIT`. + 0x0058 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT4 + Bits 32-39 of `INFO_GIT_COMMIT`. + 0x005c + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT3 + Bits 24-31 of `INFO_GIT_COMMIT`. + 0x0060 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT2 + Bits 16-23 of `INFO_GIT_COMMIT`. + 0x0064 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT1 + Bits 8-15 of `INFO_GIT_COMMIT`. + 0x0068 + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + GIT_COMMIT0 + Bits 0-7 of `INFO_GIT_COMMIT`. + 0x006c + 0x00 + + + git_commit + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM7 + Bits 56-63 of `INFO_PLATFORM_PLATFORM`. + 0x0070 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM6 + Bits 48-55 of `INFO_PLATFORM_PLATFORM`. + 0x0074 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM5 + Bits 40-47 of `INFO_PLATFORM_PLATFORM`. + 0x0078 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM4 + Bits 32-39 of `INFO_PLATFORM_PLATFORM`. + 0x007c + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM3 + Bits 24-31 of `INFO_PLATFORM_PLATFORM`. + 0x0080 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM2 + Bits 16-23 of `INFO_PLATFORM_PLATFORM`. + 0x0084 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM1 + Bits 8-15 of `INFO_PLATFORM_PLATFORM`. + 0x0088 + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_PLATFORM0 + Bits 0-7 of `INFO_PLATFORM_PLATFORM`. + 0x008c + 0x00 + + + platform_platform + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET7 + Bits 56-63 of `INFO_PLATFORM_TARGET`. + 0x0090 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET6 + Bits 48-55 of `INFO_PLATFORM_TARGET`. + 0x0094 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET5 + Bits 40-47 of `INFO_PLATFORM_TARGET`. + 0x0098 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET4 + Bits 32-39 of `INFO_PLATFORM_TARGET`. + 0x009c + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET3 + Bits 24-31 of `INFO_PLATFORM_TARGET`. + 0x00a0 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET2 + Bits 16-23 of `INFO_PLATFORM_TARGET`. + 0x00a4 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET1 + Bits 8-15 of `INFO_PLATFORM_TARGET`. + 0x00a8 + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + PLATFORM_TARGET0 + Bits 0-7 of `INFO_PLATFORM_TARGET`. + 0x00ac + 0x00 + + + platform_target + 7 + [7:0] + 0 + + + + + XADC_TEMPERATURE1 + Bits 8-11 of `INFO_XADC_TEMPERATURE`. + 0x00b0 + 0x00 + + + xadc_temperature + 7 + [7:0] + 0 + + + + + XADC_TEMPERATURE0 + Bits 0-7 of `INFO_XADC_TEMPERATURE`. + 0x00b4 + 0x00 + + + xadc_temperature + 7 + [7:0] + 0 + + + + + XADC_VCCINT1 + Bits 8-11 of `INFO_XADC_VCCINT`. + 0x00b8 + 0x00 + + + xadc_vccint + 7 + [7:0] + 0 + + + + + XADC_VCCINT0 + Bits 0-7 of `INFO_XADC_VCCINT`. + 0x00bc + 0x00 + + + xadc_vccint + 7 + [7:0] + 0 + + + + + XADC_VCCAUX1 + Bits 8-11 of `INFO_XADC_VCCAUX`. + 0x00c0 + 0x00 + + + xadc_vccaux + 7 + [7:0] + 0 + + + + + XADC_VCCAUX0 + Bits 0-7 of `INFO_XADC_VCCAUX`. + 0x00c4 + 0x00 + + + xadc_vccaux + 7 + [7:0] + 0 + + + + + XADC_VCCBRAM1 + Bits 8-11 of `INFO_XADC_VCCBRAM`. + 0x00c8 + 0x00 + + + xadc_vccbram + 7 + [7:0] + 0 + + + + + XADC_VCCBRAM0 + Bits 0-7 of `INFO_XADC_VCCBRAM`. + 0x00cc + 0x00 + + + xadc_vccbram + 7 + [7:0] + 0 + + + + + + 0 + 0xd0 + registers + + + + CRG + 0xF0003800 + CRG + + + MMCM_READ + 0x0000 + 0x00 + + + mmcm_read + 0 + [0:0] + 0 + + + + + MMCM_WRITE + 0x0004 + 0x00 + + + mmcm_write + 0 + [0:0] + 0 + + + + + MMCM_DRDY + 0x0008 + 0x00 + + + mmcm_drdy + 0 + [0:0] + 0 + + + + + MMCM_ADR + 0x000c + 0x00 + + + mmcm_adr + 6 + [6:0] + 0 + + + + + MMCM_DAT_W1 + Bits 8-15 of `CRG_MMCM_DAT_W`. + 0x0010 + 0x00 + + + mmcm_dat_w + 7 + [7:0] + 0 + + + + + MMCM_DAT_W0 + Bits 0-7 of `CRG_MMCM_DAT_W`. + 0x0014 + 0x00 + + + mmcm_dat_w + 7 + [7:0] + 0 + + + + + MMCM_DAT_R1 + Bits 8-15 of `CRG_MMCM_DAT_R`. + 0x0018 + 0x00 + + + mmcm_dat_r + 7 + [7:0] + 0 + + + + + MMCM_DAT_R0 + Bits 0-7 of `CRG_MMCM_DAT_R`. + 0x001c + 0x00 + + + mmcm_dat_r + 7 + [7:0] + 0 + + + + + + 0 + 0x20 + registers + + + + KEYBOARD + 0xF0009000 + KEYBOARD + + + ROW0DAT1 + Bits 8-9 of `KEYBOARD_ROW0DAT`. Column data for the given row + 0x0000 + 0x00 + + + row0dat + 7 + [7:0] + 0 + + + + + ROW0DAT0 + Bits 0-7 of `KEYBOARD_ROW0DAT`. + 0x0004 + 0x00 + + + row0dat + 7 + [7:0] + 0 + + + + + ROW1DAT1 + Bits 8-9 of `KEYBOARD_ROW1DAT`. Column data for the given row + 0x0008 + 0x00 + + + row1dat + 7 + [7:0] + 0 + + + + + ROW1DAT0 + Bits 0-7 of `KEYBOARD_ROW1DAT`. + 0x000c + 0x00 + + + row1dat + 7 + [7:0] + 0 + + + + + ROW2DAT1 + Bits 8-9 of `KEYBOARD_ROW2DAT`. Column data for the given row + 0x0010 + 0x00 + + + row2dat + 7 + [7:0] + 0 + + + + + ROW2DAT0 + Bits 0-7 of `KEYBOARD_ROW2DAT`. + 0x0014 + 0x00 + + + row2dat + 7 + [7:0] + 0 + + + + + ROW3DAT1 + Bits 8-9 of `KEYBOARD_ROW3DAT`. Column data for the given row + 0x0018 + 0x00 + + + row3dat + 7 + [7:0] + 0 + + + + + ROW3DAT0 + Bits 0-7 of `KEYBOARD_ROW3DAT`. + 0x001c + 0x00 + + + row3dat + 7 + [7:0] + 0 + + + + + ROW4DAT1 + Bits 8-9 of `KEYBOARD_ROW4DAT`. Column data for the given row + 0x0020 + 0x00 + + + row4dat + 7 + [7:0] + 0 + + + + + ROW4DAT0 + Bits 0-7 of `KEYBOARD_ROW4DAT`. + 0x0024 + 0x00 + + + row4dat + 7 + [7:0] + 0 + + + + + ROW5DAT1 + Bits 8-9 of `KEYBOARD_ROW5DAT`. Column data for the given row + 0x0028 + 0x00 + + + row5dat + 7 + [7:0] + 0 + + + + + ROW5DAT0 + Bits 0-7 of `KEYBOARD_ROW5DAT`. + 0x002c + 0x00 + + + row5dat + 7 + [7:0] + 0 + + + + + ROW6DAT1 + Bits 8-9 of `KEYBOARD_ROW6DAT`. Column data for the given row + 0x0030 + 0x00 + + + row6dat + 7 + [7:0] + 0 + + + + + ROW6DAT0 + Bits 0-7 of `KEYBOARD_ROW6DAT`. + 0x0034 + 0x00 + + + row6dat + 7 + [7:0] + 0 + + + + + ROW7DAT1 + Bits 8-9 of `KEYBOARD_ROW7DAT`. Column data for the given row + 0x0038 + 0x00 + + + row7dat + 7 + [7:0] + 0 + + + + + ROW7DAT0 + Bits 0-7 of `KEYBOARD_ROW7DAT`. + 0x003c + 0x00 + + + row7dat + 7 + [7:0] + 0 + + + + + ROW8DAT1 + Bits 8-9 of `KEYBOARD_ROW8DAT`. Column data for the given row + 0x0040 + 0x00 + + + row8dat + 7 + [7:0] + 0 + + + + + ROW8DAT0 + Bits 0-7 of `KEYBOARD_ROW8DAT`. + 0x0044 + 0x00 + + + row8dat + 7 + [7:0] + 0 + + + + + EV_STATUS + 0x0048 + 0x00 + + + status + 0 + [0:0] + 0 + + + + + EV_PENDING + 0x004c + 0x00 + + + pending + 0 + [0:0] + 0 + + + + + EV_ENABLE + 0x0050 + 0x00 + + + enable + 0 + [0:0] + 0 + + + + + ROWCHANGE1 + Bits 8-8 of `KEYBOARD_ROWCHANGE`. The rows that changed since the last scan + 0x0054 + 0x00 + + + rowchange + 7 + [7:0] + 0 + + + + + ROWCHANGE0 + Bits 0-7 of `KEYBOARD_ROWCHANGE`. + 0x0058 + 0x00 + + + rowchange + 7 + [7:0] + 0 + + + + + + 0 + 0x5c + registers + + + keyboard + 4 + + + + MESSIBLE + 0xF0007000 + MESSIBLE + + + IN + Write half of the FIFO to send data out the Messible. Writing to this register +advances the write pointer automatically. + 0x0000 + 0x00 + + + in + 7 + [7:0] + 0 + + + + + OUT + Read half of the FIFO to receive data on the Messible. Reading from this +register advances the read pointer automatically. + 0x0004 + 0x00 + + + out + 7 + [7:0] + 0 + + + + + STATUS + 0x0008 + 0x00 + + + full + 0 + [0:0] + 0 + + + + have + 1 + [1:1] + 1 + + + + + + + 0 + 0xc + registers + + + + POWER + 0xF0008000 + POWER + + + POWER + 0x0000 + 0x0a + + + audio + 0 + [0:0] + 0 + + + + self + 1 + [1:1] + 1 + + + + ec_snoop + 2 + [2:2] + 2 + + + + state + 4 + [4:3] + 3 + + + + noisebias + 5 + [5:5] + 5 + + + + noise + 7 + [7:6] + 6 + + + + + + + 0 + 0x4 + registers + + + + UART + 0xF0001800 + UART + + + RXTX + 0x0000 + 0x00 + + + rxtx + 7 + [7:0] + 0 + + + + + TXFULL + 0x0004 + 0x00 + + + txfull + 0 + [0:0] + 0 + + + + + RXEMPTY + 0x0008 + 0x00 + + + rxempty + 0 + [0:0] + 0 + + + + + EV_STATUS + 0x000c + 0x00 + + + status + 1 + [1:0] + 0 + + + + + EV_PENDING + 0x0010 + 0x00 + + + pending + 1 + [1:0] + 0 + + + + + EV_ENABLE + 0x0014 + 0x00 + + + enable + 1 + [1:0] + 0 + + + + + + 0 + 0x18 + registers + + + uart + 0 + + + + SPINOR + 0xF0008800 + SPINOR + + + CFG1 + 0x0000 + 0x00 + + + cfg1 + 7 + [7:0] + 0 + + + + + CFG2 + 0x0004 + 0x00 + + + cfg2 + 7 + [7:0] + 0 + + + + + CFG3 + 0x0008 + 0x00 + + + cfg3 + 7 + [7:0] + 0 + + + + + CFG4 + 0x000c + 0x00 + + + cfg4 + 7 + [7:0] + 0 + + + + + STAT1 + 0x0010 + 0x00 + + + stat1 + 7 + [7:0] + 0 + + + + + STAT2 + 0x0014 + 0x00 + + + stat2 + 7 + [7:0] + 0 + + + + + STAT3 + 0x0018 + 0x00 + + + stat3 + 7 + [7:0] + 0 + + + + + STAT4 + 0x001c + 0x00 + + + stat4 + 7 + [7:0] + 0 + + + + + + 0 + 0x20 + registers + + + + SRAM_EXT + 0xF0004800 + SRAM_EXT + + + CONFIG_STATUS3 + Bits 24-31 of `SRAM_EXT_CONFIG_STATUS`. + 0x0000 + 0x00 + + + mode + 7 + [7:0] + 0 + + + + + + CONFIG_STATUS2 + Bits 16-23 of `SRAM_EXT_CONFIG_STATUS`. + 0x0004 + 0x00 + + + mode + 7 + [7:0] + 0 + + + + + + CONFIG_STATUS1 + Bits 8-15 of `SRAM_EXT_CONFIG_STATUS`. + 0x0008 + 0x00 + + + mode + 7 + [7:0] + 0 + + + + + + CONFIG_STATUS0 + Bits 0-7 of `SRAM_EXT_CONFIG_STATUS`. + 0x000c + 0x00 + + + mode + 7 + [7:0] + 0 + + + + + + READ_CONFIG + 0x0010 + 0x00 + + + trigger + 0 + [0:0] + 0 + + + + + + + 0 + 0x14 + registers + + + + MEMLCD + 0xF0005000 + MEMLCD + + + COMMAND + 0x0000 + 0x00 + + + UpdateDirty + 0 + [0:0] + 0 + + + + UpdateAll + 1 + [1:1] + 1 + + + + + + BUSY + A ``1`` indicates that the block is currently updating the LCD + 0x0004 + 0x00 + + + busy + 0 + [0:0] + 0 + + + + + PRESCALER + Prescaler value. LCD clock is module (clock / (prescaler+1)). Reset value: 99, +so for a default sysclk of 100MHz this yields an LCD SCLK of 1MHz + 0x0008 + 0x63 + + + prescaler + 7 + [7:0] + 0 + + + + + EV_STATUS + 0x000c + 0x00 + + + status + 0 + [0:0] + 0 + + + + + EV_PENDING + 0x0010 + 0x00 + + + pending + 0 + [0:0] + 0 + + + + + EV_ENABLE + 0x0014 + 0x00 + + + enable + 0 + [0:0] + 0 + + + + + + 0 + 0x18 + registers + + + + BTEVENTS + 0xF0006800 + BTEVENTS + + + EV_STATUS + 0x0000 + 0x00 + + + status + 1 + [1:0] + 0 + + + + + EV_PENDING + 0x0004 + 0x00 + + + pending + 1 + [1:0] + 0 + + + + + EV_ENABLE + 0x0008 + 0x00 + + + enable + 1 + [1:0] + 0 + + + + + + 0 + 0xc + registers + + + btevents + 3 + + + + CTRL + 0xF0000000 + CTRL + + + RESET + 0x0000 + 0x00 + + + reset + 0 + [0:0] + 0 + + + + + SCRATCH3 + Bits 24-31 of `CTRL_SCRATCH`. + 0x0004 + 0x12 + + + scratch + 7 + [7:0] + 0 + + + + + SCRATCH2 + Bits 16-23 of `CTRL_SCRATCH`. + 0x0008 + 0x34 + + + scratch + 7 + [7:0] + 0 + + + + + SCRATCH1 + Bits 8-15 of `CTRL_SCRATCH`. + 0x000c + 0x56 + + + scratch + 7 + [7:0] + 0 + + + + + SCRATCH0 + Bits 0-7 of `CTRL_SCRATCH`. + 0x0010 + 0x78 + + + scratch + 7 + [7:0] + 0 + + + + + BUS_ERRORS3 + Bits 24-31 of `CTRL_BUS_ERRORS`. + 0x0014 + 0x00 + + + bus_errors + 7 + [7:0] + 0 + + + + + BUS_ERRORS2 + Bits 16-23 of `CTRL_BUS_ERRORS`. + 0x0018 + 0x00 + + + bus_errors + 7 + [7:0] + 0 + + + + + BUS_ERRORS1 + Bits 8-15 of `CTRL_BUS_ERRORS`. + 0x001c + 0x00 + + + bus_errors + 7 + [7:0] + 0 + + + + + BUS_ERRORS0 + Bits 0-7 of `CTRL_BUS_ERRORS`. + 0x0020 + 0x00 + + + bus_errors + 7 + [7:0] + 0 + + + + + + 0 + 0x24 + registers + + + + TIMER0 + 0xF0002800 + TIMER0 + + + LOAD3 + Bits 24-31 of `TIMER0_LOAD`. Load value when Timer is (re-)enabled.In One-Shot +mode, the value written to this register specify the Timer's duration in +clock cycles. + 0x0000 + 0x00 + + + load + 7 + [7:0] + 0 + + + + + LOAD2 + Bits 16-23 of `TIMER0_LOAD`. + 0x0004 + 0x00 + + + load + 7 + [7:0] + 0 + + + + + LOAD1 + Bits 8-15 of `TIMER0_LOAD`. + 0x0008 + 0x00 + + + load + 7 + [7:0] + 0 + + + + + LOAD0 + Bits 0-7 of `TIMER0_LOAD`. + 0x000c + 0x00 + + + load + 7 + [7:0] + 0 + + + + + RELOAD3 + Bits 24-31 of `TIMER0_RELOAD`. Reload value when Timer reaches 0.In Periodic +mode, the value written to this register specify the Timer's period in +clock cycles. + 0x0010 + 0x00 + + + reload + 7 + [7:0] + 0 + + + + + RELOAD2 + Bits 16-23 of `TIMER0_RELOAD`. + 0x0014 + 0x00 + + + reload + 7 + [7:0] + 0 + + + + + RELOAD1 + Bits 8-15 of `TIMER0_RELOAD`. + 0x0018 + 0x00 + + + reload + 7 + [7:0] + 0 + + + + + RELOAD0 + Bits 0-7 of `TIMER0_RELOAD`. + 0x001c + 0x00 + + + reload + 7 + [7:0] + 0 + + + + + EN + Enable of the Timer.Set if to 1 to enable/start the Timer and 0 to disable the +Timer + 0x0020 + 0x00 + + + en + 0 + [0:0] + 0 + + + + + UPDATE_VALUE + Update of the current countdown value.A write to this register latches the +current countdown value to `value` register. + 0x0024 + 0x00 + + + update_value + 0 + [0:0] + 0 + + + + + VALUE3 + Bits 24-31 of `TIMER0_VALUE`. Latched countdown value + 0x0028 + 0x00 + + + value + 7 + [7:0] + 0 + + + + + VALUE2 + Bits 16-23 of `TIMER0_VALUE`. + 0x002c + 0x00 + + + value + 7 + [7:0] + 0 + + + + + VALUE1 + Bits 8-15 of `TIMER0_VALUE`. + 0x0030 + 0x00 + + + value + 7 + [7:0] + 0 + + + + + VALUE0 + Bits 0-7 of `TIMER0_VALUE`. + 0x0034 + 0x00 + + + value + 7 + [7:0] + 0 + + + + + EV_STATUS + 0x0038 + 0x00 + + + status + 0 + [0:0] + 0 + + + + + EV_PENDING + 0x003c + 0x00 + + + pending + 0 + [0:0] + 0 + + + + + EV_ENABLE + 0x0040 + 0x00 + + + enable + 0 + [0:0] + 0 + + + + + + 0 + 0x44 + registers + + + timer0 + 1 + + + + REBOOT + 0xF0003000 + REBOOT + + + CTRL + 0x0000 + 0x00 + + + ctrl + 7 + [7:0] + 0 + + + + + ADDR3 + Bits 24-31 of `REBOOT_ADDR`. + 0x0004 + 0x20 + + + addr + 7 + [7:0] + 0 + + + + + ADDR2 + Bits 16-23 of `REBOOT_ADDR`. + 0x0008 + 0x50 + + + addr + 7 + [7:0] + 0 + + + + + ADDR1 + Bits 8-15 of `REBOOT_ADDR`. + 0x000c + 0x00 + + + addr + 7 + [7:0] + 0 + + + + + ADDR0 + Bits 0-7 of `REBOOT_ADDR`. + 0x0010 + 0x00 + + + addr + 7 + [7:0] + 0 + + + + + + 0 + 0x14 + registers + + + + UART_PHY + 0xF0001000 + UART_PHY + + + TUNING_WORD3 + Bits 24-31 of `UART_PHY_TUNING_WORD`. + 0x0000 + 0x00 + + + tuning_word + 7 + [7:0] + 0 + + + + + TUNING_WORD2 + Bits 16-23 of `UART_PHY_TUNING_WORD`. + 0x0004 + 0x4b + + + tuning_word + 7 + [7:0] + 0 + + + + + TUNING_WORD1 + Bits 8-15 of `UART_PHY_TUNING_WORD`. + 0x0008 + 0x7f + + + tuning_word + 7 + [7:0] + 0 + + + + + TUNING_WORD0 + Bits 0-7 of `UART_PHY_TUNING_WORD`. + 0x000c + 0x5a + + + tuning_word + 7 + [7:0] + 0 + + + + + + 0 + 0x10 + registers + + + + IDENTIFIER_MEM + 0xF0002000 + IDENTIFIER_MEM + + + IDENTIFIER_MEM + 8 x 28-bit memory + 0x0000 + 0x00 + + + identifier_mem + 7 + [7:0] + 0 + + + + + + 0 + 0x4 + registers + + + + diff --git a/test.repl b/test.repl new file mode 100644 index 0000000..7cd2e3c --- /dev/null +++ b/test.repl @@ -0,0 +1,17 @@ +cpu: CPU.VexRiscv @ sysbus + cpuType: "rv32gc" + +mem: Memory.MappedMemory @ sysbus 0x20500000 + size: 0x10000 + +mem2: Memory.MappedMemory @ sysbus 0x00001000 + size: 0x40000 + +mem3: Memory.MappedMemory @ sysbus 0x40000000 + size: 0x10000000 + +fbmem: Memory.MappedMemory @ sysbus 0xB0000000 + size: 0x6000 + +fb: Video.fb @ sysbus 0xF0005000 + diff --git a/test.resc b/test.resc new file mode 100644 index 0000000..c702548 --- /dev/null +++ b/test.resc @@ -0,0 +1,7 @@ +mach create +i @fb.cs +using sysbus +machine LoadPlatformDescription "test.repl" +sysbus ApplySVD @soc.svd +sysbus LoadELF @betrusted-soc +showAnalyzer sysbus.fb