target remote | m68k-bdm-gdbserver pipe -B -m cf5249 /dev/tblcf1

set $mbar = 0x40000001
set $mbar2 = 0x80000001
set $mbar = 0x40000001
set $mbar2 = 0x80000001


####################
# define addresses #
####################

# MBAR address space
set $rsr   = $mbar - 1 + 0x00
set $sypcr = $mbar - 1 + 0x01
set $swivr = $mbar - 1 + 0x02
set $swsr  = $mbar - 1 + 0x03
set $mpark = $mbar - 1 + 0x0C

set $ipr   = $mbar - 1 + 0x40
set $imr   = $mbar - 1 + 0x44
set $icr0  = $mbar - 1 + 0x4C
set $icr1  = $mbar - 1 + 0x4D
set $icr2  = $mbar - 1 + 0x4E
set $icr3  = $mbar - 1 + 0x4F
set $icr4  = $mbar - 1 + 0x50
set $icr5  = $mbar - 1 + 0x51
set $icr6  = $mbar - 1 + 0x52
set $icr7  = $mbar - 1 + 0x53
set $icr8  = $mbar - 1 + 0x54
set $icr9  = $mbar - 1 + 0x55
set $icr10 = $mbar - 1 + 0x56
set $icr11 = $mbar - 1 + 0x57

set $csar0 = $mbar - 1 + 0x80
set $csmr0 = $mbar - 1 + 0x84
set $cscr0 = $mbar - 1 + 0x8A
set $csar1 = $mbar - 1 + 0x8C
set $csmr1 = $mbar - 1 + 0x90
set $cscr1 = $mbar - 1 + 0x96
set $csar2 = $mbar - 1 + 0x98
set $csmr2 = $mbar - 1 + 0x9C
set $cscr2 = $mbar - 1 + 0xA2
set $csar3 = $mbar - 1 + 0xA4
set $csmr3 = $mbar - 1 + 0xA8
set $cscr3 = $mbar - 1 + 0xAC

set $dcr   = $mbar - 1 + 0x100
set $dacr0 = $mbar - 1 + 0x108
set $dmr0  = $mbar - 1 + 0x10C
set $dacr1 = $mbar - 1 + 0x110
set $dmr1  = $mbar - 1 + 0x114

set $tmr0  = $mbar - 1 + 0x140
set $trr0  = $mbar - 1 + 0x144
set $tcr0  = $mbar - 1 + 0x148
set $tcn0  = $mbar - 1 + 0x14C
set $ter0  = $mbar - 1 + 0x150

set $tmr1  = $mbar - 1 + 0x180
set $trr1  = $mbar - 1 + 0x184
set $tcr1  = $mbar - 1 + 0x188
set $tcn1  = $mbar - 1 + 0x18C
set $ter1  = $mbar - 1 + 0x190

set $umr10  = $mbar - 1 + 0x1C0
set $umr20  = $umr10
set $usr0   = $mbar - 1 + 0x1C4
set $ucsr0  = $usr0
set $ucr0   = $mbar - 1 + 0x1C8
set $urb0   = $mbar - 1 + 0x1CC
set $utb0   = $urb0
set $uipcr0 = $mbar - 1 + 0x1D0
set $uacr0  = $uipcr0
set $uisr0  = $mbar - 1 + 0x1D4
set $uimr0  = $uisr0
set $ubg10  = $mbar - 1 + 0x1D8
set $ubg20  = $mbar - 1 + 0x1DC
set $uivr0  = $mbar - 1 + 0x1F0
set $uip0   = $mbar - 1 + 0x1F4
set $uop10  = $mbar - 1 + 0x1F8
set $uop00  = $mbar - 1 + 0x1FC

set $umr11  = $mbar - 1 + 0x200
set $umr21  = $umr11
set $usr1   = $mbar - 1 + 0x204
set $ucsr1  = $usr1
set $ucr1   = $mbar - 1 + 0x208
set $urb1   = $mbar - 1 + 0x20C
set $utb1   = $urb1
set $uipcr1 = $mbar - 1 + 0x210
set $uacr1  = $uipcr1
set $uisr1  = $mbar - 1 + 0x214
set $uimr1  = $uisr1
set $ubg11  = $mbar - 1 + 0x218
set $ubg21  = $mbar - 1 + 0x21C
set $uivr1  = $mbar - 1 + 0x230
set $uip1   = $mbar - 1 + 0x234
set $uop11  = $mbar - 1 + 0x238
set $uop01  = $mbar - 1 + 0x23C

set $madr   = $mbar - 1 + 0x280
set $mfdr   = $mbar - 1 + 0x284
set $mbcr   = $mbar - 1 + 0x288
set $mbsr   = $mbar - 1 + 0x28C
set $mbdr   = $mbar - 1 + 0x290

set $sar0   = $mbar - 1 + 0x300
set $dar0   = $mbar - 1 + 0x304
set $dcr0   = $mbar - 1 + 0x308
set $bcr0   = $mbar - 1 + 0x30C
set $dsr0   = $mbar - 1 + 0x310
set $divr0  = $mbar - 1 + 0x314

set $sar1   = $mbar - 1 + 0x340
set $dar1   = $mbar - 1 + 0x344
set $dcr1   = $mbar - 1 + 0x348
set $bcr1   = $mbar - 1 + 0x34C
set $dsr1   = $mbar - 1 + 0x350
set $divr1  = $mbar - 1 + 0x354

set $sar2   = $mbar - 1 + 0x380
set $dar2   = $mbar - 1 + 0x384
set $dcr2   = $mbar - 1 + 0x388
set $bcr2   = $mbar - 1 + 0x38C
set $dsr2   = $mbar - 1 + 0x390
set $divr2  = $mbar - 1 + 0x394

set $sar3   = $mbar - 1 + 0x3C0
set $dar3   = $mbar - 1 + 0x3C4
set $dcr3   = $mbar - 1 + 0x3C8
set $bcr3   = $mbar - 1 + 0x3CC
set $dsr3   = $mbar - 1 + 0x3D0
set $divr3  = $mbar - 1 + 0x3D4

set $qspiqmr   = $mbar - 1 + 0x400
set $qspiqdlyr = $mbar - 1 + 0x404
set $qspiqwr   = $mbar - 1 + 0x408
set $qspiqir   = $mbar - 1 + 0x40C
set $qspiqar   = $mbar - 1 + 0x410
set $qspiqdr   = $mbar - 1 + 0x414

# MBAR2 address space
set $gpioread        = $mbar2 - 1 + 0x00
set $gpioout         = $mbar2 - 1 + 0x04
set $gpioenable      = $mbar2 - 1 + 0x08
set $gpiofunction    = $mbar2 - 1 + 0x0C
set $iis1config       = $mbar2 - 1 + 0x10
set $iis2config       = $mbar2 - 1 + 0x14
set $iis3config       = $mbar2 - 1 + 0x18
set $iis4config       = $mbar2 - 1 + 0x1C
set $ebu1config       = $mbar2 - 1 + 0x20
set $ebu1rcvcchannel1 = $mbar2 - 1 + 0x24
set $ebutxcchannel1   = $mbar2 - 1 + 0x28
set $ebutxcchannel2   = $mbar2 - 1 + 0x2C
set $dataincontrol    = $mbar2 - 1 + 0x30
set $pdir1l          = $mbar2 - 1 + 0x34
set $pdor1l          = $pdir1l
set $pdir3l          = $mbar2 - 1 + 0x44
set $pdor1r          = $pdir3l
set $pdir1r          = $mbar2 - 1 + 0x54
set $pdor2l          = $pdir1r
set $pdir3r          = $mbar2 - 1 + 0x64
set $pdor2r          = $pdir3r
set $pdir2            = $mbar2 - 1 + 0x74
set $pdor3            = $pdir2
set $uchanneltransmit = $mbar2 - 1 + 0x84
set $u1channelreceive = $mbar2 - 1 + 0x88
set $q1channelreceive = $mbar2 - 1 + 0x8C
set $cdtextcontrol    = $mbar2 - 1 + 0x92
set $interrupten      = $mbar2 - 1 + 0x94
set $interruptclear   = $mbar2 - 1 + 0x98
set $interruptstat    = $interruptclear
set $dmaconfig        = $mbar2 - 1 + 0x9F
set $phaseconfig      = $mbar2 - 1 + 0xA3
set $xtrim            = $mbar2 - 1 + 0xA6
set $freqmeas         = $mbar2 - 1 + 0xA8

set $gpio1read        = $mbar2 - 1 + 0xB0
set $gpio1out         = $mbar2 - 1 + 0xB4
set $gpio1enable      = $mbar2 - 1 + 0xB8
set $gpio1function    = $mbar2 - 1 + 0xBC

set $gpiointstat    = $mbar2 - 1 + 0xC0
set $gpiointclear   = $gpiointstat
set $gpiointenable  = $mbar2 - 1 + 0xC4

set $blockcontrol     = $mbar2 - 1 + 0xCA
set $audioglob        = $mbar2 - 1 + 0xCE
set $ebu2config       = $mbar2 - 1 + 0xD0
set $ebu2rcvcchannel1 = $mbar2 - 1 + 0xD4
set $u2channelreceive = $mbar2 - 1 + 0xD8
set $q2channelreceive = $mbar2 - 1 + 0xDC

set $interruptstat3   = $mbar2 - 1 + 0xE0
set $interruptclear3  = $interruptstat3
set $interrupten3     = $mbar2 - 1 + 0xE4

set $intpri1          = $mbar2 - 1 + 0x140
set $intpri2          = $mbar2 - 1 + 0x144
set $intpri3          = $mbar2 - 1 + 0x148
set $intpri4          = $mbar2 - 1 + 0x14C
set $intpri5          = $mbar2 - 1 + 0x150
set $intpri6          = $mbar2 - 1 + 0x154
set $intpri7          = $mbar2 - 1 + 0x158
set $intpri8          = $mbar2 - 1 + 0x15C

set $spurvec          = $mbar2 - 1 + 0x167
set $intbase          = $mbar2 - 1 + 0x16B

set $pllcontrol       = $mbar2 - 1 + 0x180

set $dmaroute         = $mbar2 - 1 + 0x188
set $ideconfig1       = $mbar2 - 1 + 0x18C
set $ideconfig2       = $mbar2 - 1 + 0x190
set $iperroradr       = $mbar2 - 1 + 0x194
set $extraint         = $mbar2 - 1 + 0x198

set $adconfig         = $mbar2 - 1 + 0x402
set $advalue          = $mbar2 - 1 + 0x406

set $madr2            = $mbar2 - 1 + 0x440
set $mfdr2            = $mbar2 - 1 + 0x444
set $mbcr2            = $mbar2 - 1 + 0x448
set $mbsr2            = $mbar2 - 1 + 0x44C
set $mbdr2            = $mbar2 - 1 + 0x450

set $flashmediaconfig = $mbar2 - 1 + 0x460
set $flashmediacmd1   = $mbar2 - 1 + 0x464
set $flashmediacmd2   = $mbar2 - 1 + 0x468
set $flashmediadata1  = $mbar2 - 1 + 0x46C
set $flashmediadata2  = $mbar2 - 1 + 0x470
set $flashmediastatus = $mbar2 - 1 + 0x474
set $flashmediainten  = $mbar2 - 1 + 0x478
set $flashmediaintstat= $mbar2 - 1 + 0x47C
set $flashmediaintclear = $flashmediaintstat

#rambar0 rambar1
monitor bdm-ctl-set 0xc05 0x10000e01
monitor bdm-ctl-set 0xc04 0x10010001

#load files
load /home/wodz/rockbox-git/build/bootloader.elf
symbol-file /home/wodz/rockbox-git/build/bootloader.elf

# disable interrupts
set $sr = 0x2700
# clear rockbox cookie
set {unsigned int*}0x10017ffc = 0

# set stack pointer
set $sp = *0x10000000
set $pc = *0x10000004

# print some info
echo
printf "READY to debug rockbox bootloader\n"
printf "SP = %08x\n", $sp
printf "PC = %08x\n", $pc