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 | ||
|  | 
 | ||
|  | 
 |