44 lines
1.2 KiB
Lua
44 lines
1.2 KiB
Lua
|
----------
|
||
|
-- MISC --
|
||
|
----------
|
||
|
|
||
|
JZ.misc = {}
|
||
|
|
||
|
function JZ.misc.enable_sram()
|
||
|
HW.CPM.CLKGATE1.SRAM.clr()
|
||
|
HW.CPM.CLKGATE1.AHB1.clr()
|
||
|
end
|
||
|
|
||
|
function JZ.misc.test_sram()
|
||
|
DEV.write32(0xb32d0000, 0xaaaa5555)
|
||
|
if DEV.read32(0xb32d0000) ~= 0xaaaa5555 then
|
||
|
error("SRAM is not working")
|
||
|
end
|
||
|
DEV.write32(0xb32d0000, 0xdeadbeef)
|
||
|
if DEV.read32(0xb32d0000) ~= 0xdeadbeef then
|
||
|
error("SRAM is not working")
|
||
|
end
|
||
|
print("SRAM seems to be working")
|
||
|
size = 0
|
||
|
for i=4,64*1024,4 do
|
||
|
DEV.write32(0xb32d0000, 0xdeadbeef)
|
||
|
DEV.write32(0xb32d0000 + i, 0xcafebabe)
|
||
|
if DEV.read32(0xb32d0000 + i) ~= 0xcafebabe or DEV.read32(0xb32d0000) == 0xcafebabe then
|
||
|
size = i
|
||
|
break
|
||
|
end
|
||
|
end
|
||
|
print(string.format("SRAM size: 0x%x (%d KiB)", size, size / 1024))
|
||
|
-- double check
|
||
|
for i=0,size-1,2 do
|
||
|
DEV.write16(0xb32d0000 + i, i)
|
||
|
end
|
||
|
for i=0,size-1,2 do
|
||
|
if DEV.read16(0xb32d0000 + i) ~= i then
|
||
|
error(string.format("SRAM size is not confirmed: read @%x gives %d instead of %d",
|
||
|
0xb32d0000 + i, DEV.read16(0xb32d0000 + i), i))
|
||
|
end
|
||
|
end
|
||
|
print("SRAM size confirmed and working")
|
||
|
end
|