;*******************************************************************************
;   Copyright 2023 NXP                                                         *
;   SPDX-License-Identifier: Apache-2.0                                        *
;                                                                              *
;   Lauterbach Trace32 start-up script for S32K146 / Cortex-M4F                *
;                                                                              *
;   Parameters:                                                                *
;   - command     operation to execute                                         *
;                 valid values: flash, debug                                   *
;   - elfFile     filepath of ELF to load                                      *
;   - loadTo      if "flash", the application will be downloaded to SoC        *
;                 program flash by a flash programming routine; if "sram" it   *
;                 will be downloaded to SoC SRAM.                              *
;                 valid values: flash, sram                                    *
;                 default: flash                                               *
;   - eraseFlash  if set to "yes", the whole content in Flash device will be   *
;                 erased before the application is downloaded to either Flash  *
;                 or SRAM. This routine takes time to execute                  *
;                 default: "no"                                                *
;   - verifyFlash if set to "yes", verify after program application to Flash   *
;                 default: "no"                                                *
;*******************************************************************************

ENTRY %LINE &args

&command=STRing.SCANAndExtract("&args","command=","")
&elfFile=STRing.SCANAndExtract("&args","elfFile=","")
&loadTo=STRing.SCANAndExtract("&args","loadTo=","flash")
&eraseFlash=STRing.SCANAndExtract("&args","eraseFlash=","no")
&verifyFlash=STRing.SCANAndExtract("&args","verifyFlash=","no")

IF ("&elfFile"=="")
(
  AREA.view
  PRINT %ERROR "Missing ELF file path"
  PLIST
  STOP
  ENDDO
)

; Initialize debugger
RESet
SYStem.RESet
SYStem.CPU S32K146
SYStem.CONFIG.DEBUGPORTTYPE SWD
SYStem.Option DUALPORT ON
SYStem.MemAccess DAP
SYStem.JtagClock CTCK 10MHz
Trace.DISable
SYStem.Up

GOSUB DisableBootrom

; Only declares flash, does not execute flash programming
DO ~~/demo/arm/flash/s32k.cmm PREPAREONLY

IF ("&eraseFlash"=="yes")
(
  FLASH.Erase ALL
)

IF ("&loadTo"=="flash")
(
  ; Switch target flash to reprogramming state, erase virtual flash programming memory,
  ; all target non-empty flash sectors are marked as pending, to be reprogrammed.
  FLASH.ReProgram ALL /Erase

  ; Write contents of the file to virtual Flash programming memory
  Data.LOAD.Elf &elfFile

  ; Program only changed sectors to target flash and erase obsolete code
  FLASH.ReProgram off

  IF ("&verifyFlash"=="yes")
  (
    Data.LOAD.Elf &elfFile /DIFF

    IF FOUND()
    (
      AREA.view
      PRINT %ERROR "Failed to download the code to flash"
      Data.LOAD.Elf &elfFile /ComPare
      ENDDO
    )
  )

  ; Reset the processor again
  SYStem.Up
  GOSUB DisableBootrom
)
ELSE
(
  ; Load program to SRAM
  Data.LOAD.Elf &elfFile
)

IF ("&command"=="flash")
(
  ; Execute the application and quit
  Go
  QUIT
)
ELSE IF ("&command"=="debug")
(
  ; Setup minimal debug environment
  WinCLEAR
  SETUP.Var.%SpotLight
  WinPOS 0. 0. 120. 30.
  List.auto
  WinPOS 125. 0. 80. 10.
  Frame.view
  WinPOS 125. 18.
  Register.view /SpotLight
)
ELSE
(
  AREA.view
  PRINT %ERROR "Invalid command: &command"
)

ENDDO

DisableBootrom:
(
  Data.Set SD:0x4007F010 %LE %Long 0x6
  Data.Set SD:0x4007F014 %LE %Long 0x0
  RETURN
)
