173 lines
3.4 KiB
Plaintext
173 lines
3.4 KiB
Plaintext
|
# These are some useful functions to add to your ~/.xt-gdbinit file
|
||
|
# Standard gdb debug settings
|
||
|
|
||
|
set history filename ~/.gdb_history
|
||
|
set history save on
|
||
|
set print pretty on
|
||
|
set print object on
|
||
|
set print vtbl on
|
||
|
set pagination off
|
||
|
set output-radix 16
|
||
|
|
||
|
set $new=1
|
||
|
|
||
|
######## mtd function ########
|
||
|
define emc_enable
|
||
|
# disable emc
|
||
|
set *(0x50019000 + 0x08) &= ~(1 << 11)
|
||
|
# reset emc
|
||
|
set *(0x50019000 + 0x04) |= (1 << 11)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 11)
|
||
|
# enable emc
|
||
|
set *(0x50019000 + 0x08) |= (1 << 11)
|
||
|
end
|
||
|
|
||
|
define mtd_io_share_disable
|
||
|
end
|
||
|
|
||
|
define mtd_io_share_enable
|
||
|
end
|
||
|
|
||
|
define smc_init
|
||
|
# set qspi mode
|
||
|
set *(0x58080200 + 0x0c) = 0x01201102
|
||
|
set *(0x58080200 + 0x3c) |= 0x11
|
||
|
# enable smc and cfg clk
|
||
|
set *(0x58080200 + 0x10) |= 0x10
|
||
|
end
|
||
|
|
||
|
define psram_init
|
||
|
# enter qpi mode
|
||
|
set *(0x58080200 + 0x08) = (0x35 << 24) + 0x00
|
||
|
set *(0x58080200 + 0x04) &= 0xFE00FFFC
|
||
|
set *(0x58080200 + 0x0c) &= ~(1 << 12)
|
||
|
set *(0x58080200 + 0x04) |= (1 << 31)
|
||
|
end
|
||
|
|
||
|
define sfc_init
|
||
|
end
|
||
|
|
||
|
define flash_init
|
||
|
end
|
||
|
|
||
|
define cache_enable
|
||
|
# cache init step: disable, reset, enable, set space
|
||
|
# icache0
|
||
|
set *(0x50019000 + 0x04) |= (1 << 4)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 4)
|
||
|
set *(0x50019000 + 0x08) |= (1 << 4)
|
||
|
set *(0x58000000 + 0x44) = 0x0804
|
||
|
while !((*(0x58000000 + 0x00)) & (1 << 6))
|
||
|
end
|
||
|
# icache1
|
||
|
set *(0x50019000 + 0x04) |= (1 << 5)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 5)
|
||
|
set *(0x50019000 + 0x08) |= (1 << 5)
|
||
|
set *(0x58000000 + 0x44) = 0x0804
|
||
|
while !((*(0x58010000 + 0x00)) & (1 << 6))
|
||
|
end
|
||
|
# icache2
|
||
|
set *(0x50019000 + 0x04) |= (1 << 6)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 6)
|
||
|
set *(0x50019000 + 0x08) |= (1 << 6)
|
||
|
set *(0x58000000 + 0x44) = 0x0804
|
||
|
while !((*(0x58020000 + 0x00)) & (1 << 6))
|
||
|
end
|
||
|
# dcache0
|
||
|
set *(0x50019000 + 0x04) |= (1 << 7)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 7)
|
||
|
set *(0x50019000 + 0x08) |= (1 << 7)
|
||
|
set *(0x58030000 + 0x44) = 0x0804
|
||
|
while !((*(0x58030000 + 0x00)) & (1 << 6))
|
||
|
end
|
||
|
# dcache1
|
||
|
set *(0x50019000 + 0x04) |= (1 << 8)
|
||
|
set *(0x50019000 + 0x04) &= ~(1 << 8)
|
||
|
set *(0x50019000 + 0x08) |= (1 << 8)
|
||
|
set *(0x58030000 + 0x44) = 0x0804
|
||
|
while !((*(0x58040000 + 0x00)) & (1 << 6))
|
||
|
end
|
||
|
end
|
||
|
|
||
|
define mtd_init
|
||
|
emc_enable
|
||
|
psram_init
|
||
|
smc_init
|
||
|
cache_enable
|
||
|
sfc_init
|
||
|
flash_init
|
||
|
end
|
||
|
|
||
|
define disable_watchdog
|
||
|
set *0x40040080 = 0x57444750
|
||
|
set *0x40040008 = 0
|
||
|
set *0x40040080 = 0
|
||
|
set *0x40041080 = 0x57444750
|
||
|
set *0x40041008 = 0
|
||
|
set *0x40041080 = 0
|
||
|
set *0x40042080 = 0x57444750
|
||
|
set *0x40042008 = 0
|
||
|
set *0x40042080 = 0
|
||
|
end
|
||
|
|
||
|
define disable_tick_int
|
||
|
# disable tick int0
|
||
|
set *0x40030054 = 0x0
|
||
|
# clear tick int0
|
||
|
set *0x40030058 = 0x1
|
||
|
# disable tick int1
|
||
|
set *0x40031054 = 0x0
|
||
|
# clear tick int1
|
||
|
set *0x40031058 = 0x1
|
||
|
# disable tick int2
|
||
|
set *0x40032054 = 0x0
|
||
|
# clear tick int2
|
||
|
set *0x40032058 = 0x1
|
||
|
end
|
||
|
|
||
|
define reset_chip
|
||
|
set *0x4000003c = 0x125A3410
|
||
|
set *0x40000038 = 0x1
|
||
|
end
|
||
|
|
||
|
define ram_test
|
||
|
set $offset = 0
|
||
|
set $addr = 0
|
||
|
set $value = 0
|
||
|
set $value_r = 0
|
||
|
while $offset < 0x70000
|
||
|
set $addr = 0x10000000 + $offset * 4
|
||
|
#p $addr
|
||
|
set $value = ($offset << 8) | $offset
|
||
|
#p $value
|
||
|
set *$addr = $value
|
||
|
set $value_r = *(uint32_t *)$addr
|
||
|
#p *(uint32_t *)$addr
|
||
|
#p $value_r
|
||
|
if $value_r != $value
|
||
|
p $value
|
||
|
p $value_r
|
||
|
end
|
||
|
set $offset = $offset + 4
|
||
|
if $offset % 0x100 == 0
|
||
|
p $offset
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
######## system function ########
|
||
|
|
||
|
define vm
|
||
|
target remote localhost:3333
|
||
|
disable_tick_int
|
||
|
disable_watchdog
|
||
|
end
|
||
|
|
||
|
define vm1
|
||
|
target remote localhost:3334
|
||
|
disable_tick_int
|
||
|
disable_watchdog
|
||
|
end
|
||
|
|
||
|
|