요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
=============================
ARM Microchip SoCs (aka AT91)
=============================
Introduction
------------
This document gives useful information about the ARM Microchip SoCs that are
currently supported in Linux Mainline (you know, the one on kernel.org).
It is important to note that the Microchip (previously Atmel) ARM-based MPU
product line is historically named "AT91" or "at91" throughout the Linux kernel
development process even if this product prefix has completely disappeared from
the official Microchip product name. Anyway, files, directories, git trees,
git branches/tags and email subject always contain this "at91" sub-string.
AT91 SoCs
---------
Documentation and detailed datasheet for each product are available on
the Microchip website: http://www.microchip.com.
Flavors:
* ARM 920 based SoC
- at91rm9200
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-1768-32-bit-ARM920T-Embedded-Microprocessor-AT91RM9200_Datasheet.pdf
* ARM 926 based SoCs
- at91sam9260
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf
- at91sam9xe
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf
- at91sam9261
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf
- at91sam9263
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf
- at91sam9rl
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf
- at91sam9g20
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf
- at91sam9g45 family
- at91sam9g45
- at91sam9g46
- at91sam9m10
- at91sam9m11 (device superset)
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf
- at91sam9x5 family (aka "The 5 series")
- at91sam9g15
- at91sam9g25
- at91sam9g35
- at91sam9x25
- at91sam9x35
* Datasheet (can be considered as covering the whole family)
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf
- at91sam9n12
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf
- sam9x60
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/SAM9X60-Data-Sheet-DS60001579A.pdf
* ARM Cortex-A5 based SoCs
- sama5d3 family
- sama5d31
- sama5d33
- sama5d34
- sama5d35
- sama5d36 (device superset)
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet_B.pdf
* ARM Cortex-A5 + NEON based SoCs
- sama5d4 family
- sama5d41
- sama5d42
- sama5d43
- sama5d44 (device superset)
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf
- sama5d2 family
- sama5d21
- sama5d22
- sama5d23
- sama5d24
- sama5d26
- sama5d27 (device superset)
- sama5d28 (device superset + environmental monitors)
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
* ARM Cortex-A7 based SoCs
- sama7g5 family
- sama7g51
- sama7g52
- sama7g53
- sama7g54 (device superset)
* Datasheet
Coming soon
- lan966 family
- lan9662
- lan9668
* Datasheet
Coming soon
* ARM Cortex-M7 MCUs
- sams70 family
- sams70j19
- sams70j20
- sams70j21
- sams70n19
- sams70n20
- sams70n21
- sams70q19
- sams70q20
- sams70q21
- samv70 family
- samv70j19
- samv70j20
- samv70n19
- samv70n20
- samv70q19
- samv70q20
- samv71 family
- samv71j19
- samv71j20
- samv71j21
- samv71n19
- samv71n20
- samv71n21
- samv71q19
- samv71q20
- samv71q21
* Datasheet
http://ww1.microchip.com/downloads/en/DeviceDoc/SAM-E70-S70-V70-V71-Family-Data-Sheet-DS60001527D.pdf
Linux kernel information
------------------------
Linux kernel mach directory: arch/arm/mach-at91
MAINTAINERS entry is: "ARM/Microchip (AT91) SoC support"
Device Tree for AT91 SoCs and boards
------------------------------------
All AT91 SoCs are converted to Device Tree. Since Linux 3.19, these products
must use this method to boot the Linux kernel.
Work In Progress statement:
Device Tree files and Device Tree bindings that apply to AT91 SoCs and boards are
considered as "Unstable". To be completely clear, any at91 binding can change at
any time. So, be sure to use a Device Tree Binary and a Kernel Image generated from
the same source tree.
Please refer to the Documentation/devicetree/bindings/ABI.rst file for a
definition of a "Stable" binding/ABI.
This statement will be removed by AT91 MAINTAINERS when appropriate.
Naming conventions and best practice:
- SoCs Device Tree Source Include files are named after the official name of
the product (at91sam9g20.dtsi or sama5d33.dtsi for instance).
- Device Tree Source Include files (.dtsi) are used to collect common nodes that can be
shared across SoCs or boards (sama5d3.dtsi or at91sam9x5cm.dtsi for instance).
When collecting nodes for a particular peripheral or topic, the identifier have to
be placed at the end of the file name, separated with a "_" (at91sam9x5_can.dtsi
or sama5d3_gmac.dtsi for example).
- board Device Tree Source files (.dts) are prefixed by the string "at91-" so
that they can be identified easily. Note that some files are historical exceptions
to this rule (sama5d3[13456]ek.dts, usb_a9g20.dts or animeo_ip.dts for example).
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
ARM Microchip SoCs (aka AT91)
1-5Linux에서 역사적으로 AT91이라 부르는 Microchip ARM SoC family 문서입니다.
Introduction
6-17이 문서는 kernel.org의 Linux mainline이 현재 지원하는 ARM Microchip SoC에 유용한 정보를 제공합니다.
Microchip, 이전 Atmel의 ARM 기반 MPU product line은 공식 제품명에서 해당 prefix가 완전히 사라졌어도 Linux kernel 개발 과정에서는 역사적으로 `AT91` 또는 `at91`이라 불립니다. 그래서 file, directory, git tree, branch와 tag, email subject에는 계속 `at91` substring이 들어갑니다.
AT91 SoCs: ARM 920
18-30각 제품의 상세 문서와 datasheet는 Microchip web site에서 제공합니다. ARM 920 기반 SoC는 `at91rm9200`입니다.
AT91 SoCs: ARM 926
31-100| family·flavor | 구성·비고 |
|---|---|
| `at91sam9260` | ARM926EJ-S embedded microprocessor |
| `at91sam9xe` | ARM926EJ-S embedded microprocessor |
| `at91sam9261` | ARM926EJ-S microprocessor |
| `at91sam9263` | ARM926EJ-S embedded microprocessor |
| `at91sam9rl` | ARM926 기반 SoC |
| `at91sam9g20` | ARM926 기반 SoC |
| `at91sam9g45` family | `at91sam9g45`, `at91sam9g46`, `at91sam9m10`, `at91sam9m11`(device superset) |
| `at91sam9x5` family, The 5 series | `at91sam9g15`, `at91sam9g25`, `at91sam9g35`, `at91sam9x25`, `at91sam9x35`; X35 datasheet가 전체 family를 포괄 |
| `at91sam9n12` | ARM926 기반 SoC |
| `sam9x60` | ARM926 기반 SoC |
각 flavor와 family에 연결된 원문 datasheet URL을 아래에 그대로 보존합니다.
- http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6221-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9260_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6254-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9XE_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6062-ARM926EJ-S-Microprocessor-SAM9261_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6249-32-bit-ARM926EJ-S-Embedded-Microprocessor-SAM9263_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/doc6289.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001516A.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-6437-32-bit-ARM926-Embedded-Microprocessor-SAM9M11_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11055-32-bit-ARM926EJ-S-Microcontroller-SAM9X35_Datasheet.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001517A.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/SAM9X60-Data-Sheet-DS60001579A.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/SAM9X60-Data-Sheet-DS60001579A.pdf
AT91 SoCs: Cortex-A5 and NEON
101-139| family | flavor | 특성 |
|---|---|---|
| `sama5d3` | `sama5d31`, `sama5d33`, `sama5d34`, `sama5d35`, `sama5d36` | ARM Cortex-A5; `sama5d36`은 device superset |
| `sama5d4` | `sama5d41`, `sama5d42`, `sama5d43`, `sama5d44` | ARM Cortex-A5 + NEON; `sama5d44`는 device superset |
| `sama5d2` | `sama5d21`, `sama5d22`, `sama5d23`, `sama5d24`, `sama5d26`, `sama5d27`, `sama5d28` | `sama5d27`은 device superset, `sama5d28`은 environmental monitor도 포함한 superset |
- http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet_B.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-11121-32-bit-Cortex-A5-Microcontroller-SAMA5D3_Datasheet_B.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/60001525A.pdf - http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/DS60001476B.pdf
AT91 SoCs: Cortex-A7
140-159| family | flavor | datasheet 상태 |
|---|---|---|
| `sama7g5` | `sama7g51`, `sama7g52`, `sama7g53`, `sama7g54`(device superset) | Coming soon |
| `lan966` | `lan9662`, `lan9668` | Coming soon |
AT91 SoCs: Cortex-M7 MCUs
160-198| family | flavor |
|---|---|
| `sams70` | `sams70j19`, `sams70j20`, `sams70j21`, `sams70n19`, `sams70n20`, `sams70n21`, `sams70q19`, `sams70q20`, `sams70q21` |
| `samv70` | `samv70j19`, `samv70j20`, `samv70n19`, `samv70n20`, `samv70q19`, `samv70q20` |
| `samv71` | `samv71j19`, `samv71j20`, `samv71j21`, `samv71n19`, `samv71n20`, `samv71n21`, `samv71q19`, `samv71q20`, `samv71q21` |
세 Cortex-M7 MCU family는 공통 E70/S70/V70/V71 datasheet를 참조합니다.
Linux kernel information
199-204Linux kernel machine directory는 `arch/arm/mach-at91`입니다. `MAINTAINERS` entry 이름은 `ARM/Microchip (AT91) SoC support`입니다.
Device Tree for AT91 SoCs and boards
205-230모든 AT91 SoC는 Device Tree로 전환되었습니다. Linux 3.19부터 이 제품들은 Device Tree 방식으로 kernel을 boot해야 합니다.
AT91 SoC와 board에 적용되는 Device Tree file과 binding은 이 문서 시점에 `Unstable`입니다. `at91` binding은 언제든 바뀔 수 있으므로 DTB와 kernel image를 반드시 같은 source tree에서 생성해야 합니다.
`Stable` binding/ABI의 정의는 `Documentation/devicetree/bindings/ABI.rst`를 참고합니다. 적절한 시점에 AT91 maintainer가 이 work-in-progress 문구를 제거합니다.
- SoC `.dtsi`는 `at91sam9g20.dtsi`, `sama5d33.dtsi`처럼 공식 제품명으로 이름 붙입니다.
- 공통 node는 `sama5d3.dtsi`, `at91sam9x5cm.dtsi` 같은 `.dtsi`에 모읍니다. 특정 peripheral이나 topic을 모으면 `_` 뒤에 식별자를 붙여 `at91sam9x5_can.dtsi`, `sama5d3_gmac.dtsi`처럼 만듭니다.
- board `.dts`는 쉽게 식별하도록 `at91-` prefix를 붙입니다.
- 역사적 예외는 `sama5d3[13456]ek.dts`, `usb_a9g20.dts`, `animeo_ip.dts`입니다.
요약과 해설
microchip.rst:1-230공식 제품명은 바뀌었지만 Linux의 유지보수 단위는 여전히 `at91`입니다. ARM920·ARM926에서 Cortex-A5/A7와 Cortex-M7까지 이어지는 제품군이 `arch/arm/mach-at91`과 공통 Device Tree 규칙 아래 묶입니다.
Linux에서 같은 AT91 유지보수 계보로 다루는 CPU 세대입니다.
파일이 나타내는 범위에 따라 이름 규칙이 달라집니다.