# This yaml is was generated and modified. The following are the modifications
# applied and the reasons for the mods:
#   * Comment out `generated_from_pack` and `pack_file_version` attributes.
#     This is to indicate that the pack is not fully generated by target-gen.
#   * Comment out the `access` block for the `SRAM` region on each variant. The
#     CMSIS pack has no memory regions marked as an RWX region. The flash
#     algorithms must be copied to ram and executed. The `SRAM` region covers
#     the region where the flash algorithms indicate they need to be loaded
#     and run from. Commenting out the access block indicates read, write,
#     and execute access in that region.
name: LPC55S16
manufacturer:
  id: 0x15
  cc: 0x0
# generated_from_pack: true
# pack_file_release: 25.09.00
variants:
- name: LPC55S16JBD100
  cores:
  - name: main
    type: armv8m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    name: PROGRAM_FLASH
    range:
      start: 0x0
      end: 0x3d000
    cores:
    - main
    access:
      write: false
      boot: true
  - !Generic
    name: BootROM
    range:
      start: 0x3000000
      end: 0x3020000
    cores:
    - main
    access:
      write: false
  - !Ram
    name: SRAMX
    range:
      start: 0x4000000
      end: 0x4004000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: PROGRAM_FLASH_alias
    range:
      start: 0x10000000
      end: 0x1003d000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: BootROM_alias
    range:
      start: 0x13000000
      end: 0x13020000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: SRAMX_alias
    range:
      start: 0x14000000
      end: 0x14004000
    cores:
    - main
    access:
      execute: false
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20010000
    cores:
    - main
#    access:
#      execute: false
  - !Ram
    name: USB_RAM
    range:
      start: 0x20010000
      end: 0x20014000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: SRAM_alias
    range:
      start: 0x30000000
      end: 0x30010000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: USB_RAM_alias
    range:
      start: 0x30010000
      end: 0x30014000
    cores:
    - main
    access:
      execute: false
  flash_algorithms:
  - lpc551xx_256
  - lpc551xx_s_256
- name: LPC55S16JBD64
  cores:
  - name: main
    type: armv8m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    name: PROGRAM_FLASH
    range:
      start: 0x0
      end: 0x3d000
    cores:
    - main
    access:
      write: false
      boot: true
  - !Generic
    name: BootROM
    range:
      start: 0x3000000
      end: 0x3020000
    cores:
    - main
    access:
      write: false
  - !Ram
    name: SRAMX
    range:
      start: 0x4000000
      end: 0x4004000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: PROGRAM_FLASH_alias
    range:
      start: 0x10000000
      end: 0x1003d000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: BootROM_alias
    range:
      start: 0x13000000
      end: 0x13020000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: SRAMX_alias
    range:
      start: 0x14000000
      end: 0x14004000
    cores:
    - main
    access:
      execute: false
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20010000
    cores:
    - main
#    access:
#      execute: false
  - !Ram
    name: USB_RAM
    range:
      start: 0x20010000
      end: 0x20014000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: SRAM_alias
    range:
      start: 0x30000000
      end: 0x30010000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: USB_RAM_alias
    range:
      start: 0x30010000
      end: 0x30014000
    cores:
    - main
    access:
      execute: false
  flash_algorithms:
  - lpc551xx_256
  - lpc551xx_s_256
- name: LPC55S16JEV59
  cores:
  - name: main
    type: armv8m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    name: PROGRAM_FLASH
    range:
      start: 0x0
      end: 0x3d000
    cores:
    - main
    access:
      write: false
      boot: true
  - !Generic
    name: BootROM
    range:
      start: 0x3000000
      end: 0x3020000
    cores:
    - main
    access:
      write: false
  - !Ram
    name: SRAMX
    range:
      start: 0x4000000
      end: 0x4004000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: PROGRAM_FLASH_alias
    range:
      start: 0x10000000
      end: 0x1003d000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: BootROM_alias
    range:
      start: 0x13000000
      end: 0x13020000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: SRAMX_alias
    range:
      start: 0x14000000
      end: 0x14004000
    cores:
    - main
    access:
      execute: false
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20010000
    cores:
    - main
#    access:
#      execute: false
  - !Ram
    name: USB_RAM
    range:
      start: 0x20010000
      end: 0x20014000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: SRAM_alias
    range:
      start: 0x30000000
      end: 0x30010000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: USB_RAM_alias
    range:
      start: 0x30010000
      end: 0x30014000
    cores:
    - main
    access:
      execute: false
  flash_algorithms:
  - lpc551xx_256
  - lpc551xx_s_256
- name: LPC55S16JEV98
  cores:
  - name: main
    type: armv8m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    name: PROGRAM_FLASH
    range:
      start: 0x0
      end: 0x3d000
    cores:
    - main
    access:
      write: false
      boot: true
  - !Generic
    name: BootROM
    range:
      start: 0x3000000
      end: 0x3020000
    cores:
    - main
    access:
      write: false
  - !Ram
    name: SRAMX
    range:
      start: 0x4000000
      end: 0x4004000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: PROGRAM_FLASH_alias
    range:
      start: 0x10000000
      end: 0x1003d000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: BootROM_alias
    range:
      start: 0x13000000
      end: 0x13020000
    cores:
    - main
    access:
      write: false
  - !Generic
    name: SRAMX_alias
    range:
      start: 0x14000000
      end: 0x14004000
    cores:
    - main
    access:
      execute: false
  - !Ram
    name: SRAM
    range:
      start: 0x20000000
      end: 0x20010000
    cores:
    - main
#    access:
#      execute: false
  - !Ram
    name: USB_RAM
    range:
      start: 0x20010000
      end: 0x20014000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: SRAM_alias
    range:
      start: 0x30000000
      end: 0x30010000
    cores:
    - main
    access:
      execute: false
  - !Generic
    name: USB_RAM_alias
    range:
      start: 0x30010000
      end: 0x30014000
    cores:
    - main
    access:
      execute: false
  flash_algorithms:
  - lpc551xx_256
  - lpc551xx_s_256
flash_algorithms:
- name: lpc551xx_256
  description: LPC551xx IAP 246kB Flash
  default: true
  instructions: gLVA8gQAwPIAAEL24GFJ+AAQQPIAIMXyAAAAIcD4gBDA+IQQwPiAEUf2+3EBYED2BGD/IcXyAADM8t4BAWBP8KBAAiEBcEDyCADA8gAASEQA8GD4ACgYvwEggL0AIHBHgLVA8ggAwPIAAEbybGNIRAAhxvZlM0/0dDIA8FH4ACgYvwEggL0Av4C1IPBwQUDyCADA8gAARvJsY0hExvZlM0/0AHIA8Dz4ACgYvwEggL2AtQtGIPBwQUDyCADA8gAASESz9QB/mL9P9ABzAPAu+AAoGL8BIIC9sLUMRgVGIPBwQBFGIkYA8Hr4ACgIvyVEKEawvYC1CkYg8HBBQPIIAMDyAABIRADwF/gAKBi/ASCAvQAARfKMAcHyADEJaAhHSvZPPMHyADxgRwC/Sva1PMHyADxgRwC/SvaBM8HyADMYRwC/gLXd6QLOzfgIwEr2pUzB8gA8zfgM4L3ogEBgR0XyoAPB8gAzG2gYR0XypAHB8gAxCWgIR0XyqAHB8gAxCWgIR0XyrAPB8gAzG2gYR0XytAzB8gA83PgAwGBHAL9F8rgCwfIAMhJoEEdF8rwCwfIAMhJoEEdF8sADwfIAMxtoGEdF8rACwfIAMhJoEEdF8sgMwfIAPNz4AMBgR0DqAQMQtZsHD9EEKg3TEMgIyRIfnEL40CC6GbqIQgHZASAQvU/w/zAQvRqx0wcD0FIcB+AAIBC9EPgBOxH4AUsbGwfREPgBOxH4AUsbGwHRkh7x0RhGEL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  load_address: 0x20000008
  pc_init: 0x1
  pc_uninit: 0x5d
  pc_program_page: 0xb1
  pc_erase_sector: 0x89
  pc_erase_all: 0x61
  pc_verify: 0xd9
  pc_blank_check: 0xf5
  data_section_offset: 0x238
  flash_properties:
    address_range:
      start: 0x0
      end: 0x3d000
    page_size: 0x200
    erased_byte_value: 0xff
    program_page_timeout: 300
    erase_sector_timeout: 3000
    sectors:
    - size: 0x200
      address: 0x0
- name: lpc551xx_s_256
  description: LPC551xx S IAP 246kB Flash
  default: true
  instructions: gLVA8gQAwPIAAEL24GFJ+AAQQPIAIMXyAAAAIcD4gBDA+IQQwPiAEUf2+3EBYED2BGD/IcXyAADM8t4BAWBP8KBAAiEBcEDyCADA8gAASEQA8GD4ACgYvwEggL0AIHBHgLVA8ggAwPIAAEbybGNIRAAhxvZlM0/0dDIA8FH4ACgYvwEggL0Av4C1IPBwQUDyCADA8gAARvJsY0hExvZlM0/0AHIA8Dz4ACgYvwEggL2AtQtGIPBwQUDyCADA8gAASESz9QB/mL9P9ABzAPAu+AAoGL8BIIC9sLUMRgVGIPBwQBFGIkYA8Hr4ACgIvyVEKEawvYC1CkYg8HBBQPIIAMDyAABIRADwF/gAKBi/ASCAvQAARfKMAcHyADEJaAhHSvZPPMHyADxgRwC/Sva1PMHyADxgRwC/SvaBM8HyADMYRwC/gLXd6QLOzfgIwEr2pUzB8gA8zfgM4L3ogEBgR0XyoAPB8gAzG2gYR0XypAHB8gAxCWgIR0XyqAHB8gAxCWgIR0XyrAPB8gAzG2gYR0XytAzB8gA83PgAwGBHAL9F8rgCwfIAMhJoEEdF8rwCwfIAMhJoEEdF8sADwfIAMxtoGEdF8rACwfIAMhJoEEdF8sgMwfIAPNz4AMBgR0DqAQMQtZsHD9EEKg3TEMgIyRIfnEL40CC6GbqIQgHZASAQvU/w/zAQvRqx0wcD0FIcB+AAIBC9EPgBOxH4AUsbGwfREPgBOxH4AUsbGwHRkh7x0RhGEL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  load_address: 0x20000008
  pc_init: 0x1
  pc_uninit: 0x5d
  pc_program_page: 0xb1
  pc_erase_sector: 0x89
  pc_erase_all: 0x61
  pc_verify: 0xd9
  pc_blank_check: 0xf5
  data_section_offset: 0x238
  flash_properties:
    address_range:
      start: 0x10000000
      end: 0x1003d000
    page_size: 0x200
    erased_byte_value: 0xff
    program_page_timeout: 300
    erase_sector_timeout: 3000
    sectors:
    - size: 0x200
      address: 0x0
