# SPDX-License-Identifier: GPL-2.0-or-later

# board config file for AcTux3/XBA IXP42x board
# Date:   2010-12-16
# Author: Michael Schwingen <michael@schwingen.org>

reset_config trst_and_srst separate

adapter srst delay 100
jtag_ntrst_delay 100

source [find target/ixp42x.cfg]

$_TARGETNAME configure -work-area-phys 0x20000000 -work-area-size 0x10000 -work-area-backup 0

$_TARGETNAME configure -event reset-init { init_actux3 }

proc init_actux3 { } {
    ##########################################################################
    # setup expansion bus CS
    ##########################################################################
    mww 0xc4000000  0xbd113842  ;#CS0  : Flash, write enabled @0x50000000
    mww 0xc4000004  0x94d10013  ;#CS1
    mww 0xc4000008  0x95960003  ;#CS2
    mww 0xc400000c  0x00000000  ;#CS3
    mww 0xc4000010  0x80900003  ;#CS4
    mww 0xc4000014  0x9d520003  ;#CS5
    mww 0xc4000018  0x81860001  ;#CS6
    mww 0xc400001c  0x80900003  ;#CS7

    ixp42x_init_sdram $::IXP42x_SDRAM_16MB_4Mx16_1BANK 2100 3

    #mww 0xc4000020  0xffffee ;# CFG0: remove expansion bus boot flash mirror at 0x00000000

    ixp42x_set_bigendian

    flash probe 0
}

proc flash_boot { {FILE "/tftpboot/actux3/u-boot.bin"} } {
    echo "writing bootloader: $FILE"
    flash write_image erase $FILE 0x50000000 bin
}

set _FLASHNAME $_CHIPNAME.flash
flash bank $_FLASHNAME cfi 0x50000000 0x400000 2 2 $_TARGETNAME

init
reset init

# setup to debug u-boot in flash
proc uboot_debug {} {
    gdb_breakpoint_override hard
    xscale vector_catch 0xFF

    xscale vector_table low  1 0xe59ff018
    xscale vector_table low  2 0xe59ff018
    xscale vector_table low  3 0xe59ff018
    xscale vector_table low  4 0xe59ff018
    xscale vector_table low  5 0xe59ff018
    xscale vector_table low  6 0xe59ff018
    xscale vector_table low  7 0xe59ff018

    xscale vector_table high 1 0xe59ff018
    xscale vector_table high 2 0xe59ff018
    xscale vector_table high 3 0xe59ff018
    xscale vector_table high 4 0xe59ff018
    xscale vector_table high 5 0xe59ff018
    xscale vector_table high 6 0xe59ff018
    xscale vector_table high 7 0xe59ff018
}
