Files
kunlun/tools/kl3_gdbinit
2024-09-28 14:37:24 +08:00

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