name: SAMDA1
manufacturer:
  id: 0x1f
  cc: 0x0
chip_detection:
- !AtsamDsu
  processor: 1
  family: 0
  series: 1
  variants:
    0x31: ATSAMDA1E14A
    0x30: ATSAMDA1E15A
    0x2f: ATSAMDA1E16A
    0x2e: ATSAMDA1G14A
    0x2d: ATSAMDA1G15A
    0x2c: ATSAMDA1G16A
    0x2b: ATSAMDA1J14A
    0x2a: ATSAMDA1J15A
    0x29: ATSAMDA1J16A
    0x6c: ATSAMDA1E14B
    0x6b: ATSAMDA1E15B
    0x6a: ATSAMDA1E16B
    0x69: ATSAMDA1G14B
    0x68: ATSAMDA1G15B
    0x67: ATSAMDA1G16B
    0x66: ATSAMDA1J14B
    0x65: ATSAMDA1J15B
    0x64: ATSAMDA1J16B
variants:
- name: ATSAMDA1E14B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x4000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_16
- name: ATSAMDA1E15B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x8000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_32
- name: ATSAMDA1E16B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x10000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20002000
    cores:
    - main
  flash_algorithms:
  - atsamda1_64
- name: ATSAMDA1G14B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x4000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_16
- name: ATSAMDA1G15B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x8000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_32
- name: ATSAMDA1G16B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x10000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20002000
    cores:
    - main
  flash_algorithms:
  - atsamda1_64
- name: ATSAMDA1J14B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x4000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_16
- name: ATSAMDA1J15B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x8000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20001000
    cores:
    - main
  flash_algorithms:
  - atsamda1_32
- name: ATSAMDA1J16B
  cores:
  - name: main
    type: armv6m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x0
      end: 0x10000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20002000
    cores:
    - main
  flash_algorithms:
  - atsamda1_64
flash_algorithms:
- name: atsamda1_16
  description: ATSAMDA1 16kB Flash
  default: true
  instructions: QSEJBgpoUgcB1QQiCmAoSiZJUWAnSUlECGAAIHBHACBwRw8hiQIBQEIIDyBAAgJAELUfSMJhIEoCgAJ90gf80B1MASI/PJICixgM4EoIwmEEgAJ90gf80AJ9kgcB1QEgEL3/MQExmULw0wAgEL0QtRFMD0vkHByAHH3kB/zQyRyJCIkAAuAQygkfEMAAKfrRCUg9OBiAGH3AB/zQGH2ABwHVASAQvQAgEL0AAJ4ABAAAQABBBAAAAEGlAAAAAAAAAAAAAA==
  pc_init: 0x1
  pc_uninit: 0x1f
  pc_program_page: 0x6f
  pc_erase_sector: 0x23
  data_section_offset: 0xbc
  flash_properties:
    address_range:
      start: 0x0
      end: 0x4000
    page_size: 0x40
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x400
      address: 0x0
  cores:
  - main
- name: atsamda1_32
  description: ATSAMDA1 32kB Flash
  default: true
  instructions: QSEJBgpoUgcB1QQiCmAoSiZJUWAnSUlECGAAIHBHACBwRw8hyQIBQEIIDyCAAgJAELUfSMJhIEoCgAJ90gf80B1MASI/PNICixgM4EoIwmEEgAJ90gf80AJ9kgcB1QEgEL3/MQExmULw0wAgEL0QtRFMD0vkHByAHH3kB/zQyRyJCIkAAuAQygkfEMAAKfrRCUg9OBiAGH3AB/zQGH2ABwHVASAQvQAgEL0AAJ4ABAAAQABBBAAAAEGlAAAAAAAAAAAAAA==
  pc_init: 0x1
  pc_uninit: 0x1f
  pc_program_page: 0x6f
  pc_erase_sector: 0x23
  data_section_offset: 0xbc
  flash_properties:
    address_range:
      start: 0x0
      end: 0x8000
    page_size: 0x40
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x800
      address: 0x0
  cores:
  - main
- name: atsamda1_64
  description: ATSAMDA1 64kB Flash
  default: true
  instructions: QSEJBgpoUgcB1QQiCmAoSiZJUWAnSUlECGAAIHBHACBwRw8hCQMBQEIIDyDAAgJAELUfSMJhIEoCgAJ90gf80B1MASI/PBIDixgM4EoIwmEEgAJ90gf80AJ9kgcB1QEgEL3/MQExmULw0wAgEL0QtRFMD0vkHByAHH3kB/zQyRyJCIkAAuAQygkfEMAAKfrRCUg9OBiAGH3AB/zQGH2ABwHVASAQvQAgEL0AAJ4ABAAAQABBBAAAAEGlAAAAAAAAAAAAAA==
  pc_init: 0x1
  pc_uninit: 0x1f
  pc_program_page: 0x6f
  pc_erase_sector: 0x23
  data_section_offset: 0xbc
  flash_properties:
    address_range:
      start: 0x0
      end: 0x10000
    page_size: 0x40
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x1000
      address: 0x0
  cores:
  - main
