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

# NXP LPC2478 ARM7TDMI-S with 512kB flash (8kB used by bootloader) and 98kB SRAM (16kB for ETH, 16kB for DMA, 2kB for RTC), clocked with 4MHz internal oscillator

source [find target/lpc2xxx.cfg]

# parameters:
# - core_freq_khz - frequency of core in kHz during flashing, usually equal to connected crystal or internal oscillator, e.g. 12000
# - adapter_freq_khz - frequency of debug adapter in kHz, should be 8x slower than core_freq_khz, e.g. 1000

proc setup_lpc2478 {core_freq_khz adapter_freq_khz} {
	# 504kB flash and 64kB SRAM
	# setup_lpc2xxx <chip_name> <cputapid> <flash_size> <flash_variant> <workarea_size> <core_freq_khz> <adapter_freq_khz>
	setup_lpc2xxx lpc2478 0x4f1f0f0f 0x7e000 lpc2000_v2 0x10000 $core_freq_khz $adapter_freq_khz
}

proc init_targets {} {
	# default to core clocked with 4MHz internal oscillator
	echo "Warning - assuming default core clock 4MHz! Flashing may fail if actual core clock is different."

	# setup_lpc2478 <core_freq_khz> <adapter_freq_khz>
	setup_lpc2478 4000 500
}
