diff options
Diffstat (limited to 'utils/hwstub/tools/lua/jz/misc.lua')
-rw-r--r-- | utils/hwstub/tools/lua/jz/misc.lua | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/utils/hwstub/tools/lua/jz/misc.lua b/utils/hwstub/tools/lua/jz/misc.lua new file mode 100644 index 0000000000..fb4185de33 --- /dev/null +++ b/utils/hwstub/tools/lua/jz/misc.lua | |||
@@ -0,0 +1,43 @@ | |||
1 | ---------- | ||
2 | -- MISC -- | ||
3 | ---------- | ||
4 | |||
5 | JZ.misc = {} | ||
6 | |||
7 | function JZ.misc.enable_sram() | ||
8 | HW.CPM.CLKGATE1.SRAM.clr() | ||
9 | HW.CPM.CLKGATE1.AHB1.clr() | ||
10 | end | ||
11 | |||
12 | function JZ.misc.test_sram() | ||
13 | DEV.write32(0xb32d0000, 0xaaaa5555) | ||
14 | if DEV.read32(0xb32d0000) ~= 0xaaaa5555 then | ||
15 | error("SRAM is not working") | ||
16 | end | ||
17 | DEV.write32(0xb32d0000, 0xdeadbeef) | ||
18 | if DEV.read32(0xb32d0000) ~= 0xdeadbeef then | ||
19 | error("SRAM is not working") | ||
20 | end | ||
21 | print("SRAM seems to be working") | ||
22 | size = 0 | ||
23 | for i=4,64*1024,4 do | ||
24 | DEV.write32(0xb32d0000, 0xdeadbeef) | ||
25 | DEV.write32(0xb32d0000 + i, 0xcafebabe) | ||
26 | if DEV.read32(0xb32d0000 + i) ~= 0xcafebabe or DEV.read32(0xb32d0000) == 0xcafebabe then | ||
27 | size = i | ||
28 | break | ||
29 | end | ||
30 | end | ||
31 | print(string.format("SRAM size: 0x%x (%d KiB)", size, size / 1024)) | ||
32 | -- double check | ||
33 | for i=0,size-1,2 do | ||
34 | DEV.write16(0xb32d0000 + i, i) | ||
35 | end | ||
36 | for i=0,size-1,2 do | ||
37 | if DEV.read16(0xb32d0000 + i) ~= i then | ||
38 | error(string.format("SRAM size is not confirmed: read @%x gives %d instead of %d", | ||
39 | 0xb32d0000 + i, DEV.read16(0xb32d0000 + i), i)) | ||
40 | end | ||
41 | end | ||
42 | print("SRAM size confirmed and working") | ||
43 | end | ||