name: SAM3U
manufacturer:
  id: 0x1f
  cc: 0x0
variants:
- name: ATSAM3U1C
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0x90000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20002000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_gpnvm
- name: ATSAM3U1E
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0x90000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20002000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_gpnvm
- name: ATSAM3U2C
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0xa0000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20004000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_gpnvm
- name: ATSAM3U2E
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0xa0000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20004000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_gpnvm
- name: ATSAM3U4C
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0xa0000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20008000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_128_b1
  - atsam3u_gpnvm
- name: ATSAM3U4E
  cores:
  - name: main
    type: armv7m
    core_access_options: !Arm
      ap: !v1 0
  memory_map:
  - !Nvm
    range:
      start: 0x80000
      end: 0xa0000
    cores:
    - main
    access:
      boot: true
  - !Ram
    range:
      start: 0x20000000
      end: 0x20008000
    cores:
    - main
  flash_algorithms:
  - atsam3u_128
  - atsam3u_128_b1
  - atsam3u_gpnvm
flash_algorithms:
- name: atsam3u_128
  description: ATSAM3U 128kB Flash
  default: true
  instructions: OklJRAhgDyA5SQACCGA5SQhgASA4ScADSGE5SzdIWGI3SjhIwDoQYjVIgDiBaskH/NARa4kIiQBJHBFjgWoJB/zVASERY4FqCQf81StIQBxYYgAgcEcCKBXRJUgqSUFggWjJB/zQwmiRBwfUJkn+MUFggWjJB/zQkQcE1SNJQWCBaMkH/NAAIHBHH0kYSAg5QWCBaMkH/NAAIHBHACBwRzC1EkwYTUxEJGgRSwQbJAIkDCQCLR8lQ11gnWjtB/zQyRyJCIkAAuAgygkfIMAAKfrRDUgKOARDXGCYaMAH/NCYaEAHgA8A0AEgML0EAAAAAAgOQAAKDkBAEg5AAENNUMAEDkABDzcBDQAAWgwCAFoAAAAAAAAAAA==
  pc_init: 0x1
  pc_uninit: 0x57
  pc_program_page: 0xa1
  pc_erase_sector: 0x9d
  pc_erase_all: 0x8b
  data_section_offset: 0x110
  flash_properties:
    address_range:
      start: 0x80000
      end: 0xa0000
    page_size: 0x100
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x100
      address: 0x0
  cores:
  - main
- name: atsam3u_128_b1
  description: ATSAM3U 128kB Flash Bank 1
  default: true
  instructions: OklJRAhgDyA5SQACCGA5SQhgASA4ScADSGE5SzdIWGI3SjhIwDoQYjVIgDiBaskH/NARa4kIiQBJHBFjgWoJB/zVASERY4FqCQf81StIQBxYYgAgcEcCKBXRJUgqSUFggWjJB/zQwmiRBwfUJkn+MUFggWjJB/zQkQcE1SNJQWCBaMkH/NAAIHBHH0kZSAg5QWCBaMkH/NAAIHBHACBwRzC1EkwYTUxEJGgSSwQbJAIkDCQCLR8lQ11gnWjtB/zQyRyJCIkAAuAgygkfIMAAKfrRDUgKOARDXGCYaMAH/NCYaEAHgA8A0AEgML0EAAAAAAgOQAAKDkBAEg5AAENNUMAEDkABDzcBDQAAWgwCAFoAAAAAAAAAAA==
  pc_init: 0x1
  pc_uninit: 0x57
  pc_program_page: 0xa1
  pc_erase_sector: 0x9d
  pc_erase_all: 0x8b
  data_section_offset: 0x110
  flash_properties:
    address_range:
      start: 0x100000
      end: 0x120000
    page_size: 0x100
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x100
      address: 0x0
  cores:
  - main
- name: atsam3u_gpnvm
  description: ATSAM3U GPNVM bits
  instructions: UUlJRAhgDyBQSQACCGBQSQhgASBPScADSGFQS05IWGJOSk9IwDoQYkxIgDiBaskH/NARa4kIiQBJHBFjgWoJB/zVASERY4FqCQf81UJIQBxYYgAgcEcAIHBHACBwRwAgcEcAIHBHELUQeDhJPUpKYIpo0gf80MpowwfUB9sP5A+jQgrQwwcC0DZLmx4B4DVLWx5LYIto2wf80AIjBEYcQBNAnEIK0IMHAtUuS/4zAeAsS/8zS2CLaNsH/NAEIwRGHEAaQJRCCdBABwHVJkgB4CVIQBxIYIhowAf80AAgEL0wtRN4GUofTFRglGjkB/zQ0mjcB9UH5A/tD6xCBtECJB1GJUAUQKVCAdBAHDC9BCQjQCJAk0IB0IAcML1AGDC9ELUAIgJgCmAISg5MVGCTaNsH/NDSaAJgBUhEYIJo0gf80MBoCGAQvQQAAAAACA5AAAoOQEASDkAAQ01QwAQOQAEPNwENAABaCwIAWgAAAAAAAAAA
  pc_init: 0x1
  pc_uninit: 0x57
  pc_program_page: 0x67
  pc_erase_sector: 0x63
  pc_erase_all: 0x5f
  data_section_offset: 0x16c
  flash_properties:
    address_range:
      start: 0x1ffffff0
      end: 0x20000000
    page_size: 0x10
    erased_byte_value: 0xff
    program_page_timeout: 100
    erase_sector_timeout: 1000
    sectors:
    - size: 0x10
      address: 0x0
  cores:
  - main
