boards/nxp/ls1046ardb/doc/index.html · boards/nxp/ls1046ardb/doc/index.rst 공식 원문 ↗

Zephyr 3.7.0 · Boards · NXP · Layerscape LS1046A

NXP LS1046A RDB

Cortex-A72 4개와 DDR4, 10 Gb Ethernet, PCIe·SATA·USB·QSPI를 갖춘 고성능 Layerscape 네트워크 플랫폼입니다.

Official pathboards/nxp/ls1046ardb/doc/index.html
Source fileboards/nxp/ls1046ardb/doc/index.rst
Source versionZephyr 3.7.0
TranslationFull · reviewed

본문 기준: Zephyr 3.7.0 LTS3 · 이후 유지보수 패치는 별도입니다.

Part 1

요약·해설

Non-SMP, 4-core SMP, Core2/3 SMP target과 U-Boot core release, Jailhouse inmate Cell, DDR image 로드와 CodeWarrior TAP을 설명합니다.

CPU

4× Cortex-A72 · 1.6 GHz

Memory

8 GB DDR4 · NAND · QSPI

Boot

U-Boot · SMP · Jailhouse

Part 2

접을 수 있는 영어 원문 전체

영어 원문 전체 펼치기
원문 SHA-256 B679C5E0468056D062D3A6FE9F75B28FA8A05AD14F2EFCF9F69A2AB553C9DA01
.. _nxp_ls1046ardb:

NXP LS1046A RDB
#################################

Overview
********

The LS1046A reference design board (RDB) is a high-performance computing,
evaluation, and development platform that supports the Layerscape LS1046A
architecture processor. The LS1046ARDB board supports the Layerscape LS1046A
processor and is optimized to support the DDR4 memory and a full complement
of high-speed SerDes ports.

The Layerscape LS1046A processor integrates four 64-bit Arm(R) Cortex(R) A72
cores with packet processing acceleration and high-speed peripherals. The
impressive performance of more than 32,000 CoreMarks, paired with 10 Gb
Ethernet, PCIe Gen. 3, SATA 3.0, USB 3.0 and QSPI interfaces provides an
excellent combination for a range of enterprise and service provider
networking, storage, security and industrial applications.

Hardware
********

LS1046A RDB boards supports the following features:


- Four 32/64-bit Arm(R) Cortex(R)V8 A72 CPUs, up to 1.6 GHz core speed
- Supports 8 GB DDR4 SDRAM memory
- SDHC port connects directly to an adapter card slot, featuring 4 GB eMMCi
  memory device
- One 512 MB SLC NAND flash with ECC support (1.8 V)
- CPLD connection: 8-bit registers in CPLD to configure mux/demux selections
- Support two 64 MB onboard QSPI NOR flash memories
- USB:
  - Two USB 3.0 controllers with integrated PHYs.
  - One USB1 3.0 port is connected to a Type A host connector.
  - One USB1 3.0 port is configured as On-The-Go (OTG) with a Micro-AB connector.
  - One USB2.0 is connected to miniPCIe connector .
- Ethernet:
  - Supports SGMII 1G PHYs at Lane 2 and Lane 3
  - Supports SFP+module with XFI retimers
  - Supports AQR106/107 10G PHY with XFI/2.5G SGMII
- PCIe and SATA:
  - Mini PCIe express x1 (Gen1/2/3)card
  - Standard PCIe x1 (Gen1/2/3) card
  - Standard PCIe x1 (Gen1/2/3) card
  - One SATA 3.0 connector

Supported Features
==================

NXP LS1046A RDB board default configuration supports the following
hardware features:

+-----------+------------+--------------------------------------+
| Interface | Controller | Driver/Component                     |
+===========+============+======================================+
| GIC-400   | on-chip    | GICv2 interrupt controller           |
+-----------+------------+--------------------------------------+
| ARM TIMER | on-chip    | System Clock                         |
+-----------+------------+--------------------------------------+
| UART      | on-chip    | NS16550 compatible serial port       |
+-----------+------------+--------------------------------------+

Other hardware features have not been enabled yet for this board.

The default configuration can be found in the defconfig file for NON-SMP:

    :zephyr_file:`boards/nxp/ls1046ardb/ls1046ardb_ls1046a_defconfig`

Or for SMP running on all four CPU Cores:

	:zephyr_file:`boards/nxp/ls1046ardb/ls1046ardb_ls1046a_smp_4cores_defconfig`

Or for SMP running on 2 CPU Cores (Core2 and Core3):

	:zephyr_file:`boards/nxp/ls1046ardb/ls1046ardb_ls1046a_smp_defconfig`

There are two serial port on the board: uart1 and uart2, Zephyr is using
uart2 as serial console.

Programming and Debugging
*************************

Use the following configuration to run basic Zephyr applications and
kernel tests on LS1046A RDB board. For example, with the :zephyr:code-sample:`synchronization` sample:

1. Non-SMP mode

.. zephyr-app-commands::
   :zephyr-app: samples/synchronization
   :host-os: unix
   :board: ls1046ardb
   :goals: build

This will build an image with the synchronization sample app.

Use u-boot to load and kick Zephyr.bin to CPU Core0:

.. code-block:: console

	tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; go  0xc0000000;

Or kick Zephyr.bin to any other CPU Cores, for example run Zephyr on Core3:

.. code-block:: console

	tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; cpu 3 release 0xc0000000;


It will display the following console output:

.. code-block:: console

	*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
	thread_b: Hello World from cpu 0 on nxp_ls1046ardb!
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

2. SMP mode running on 4 CPU Cores

.. zephyr-app-commands::
   :zephyr-app: samples/synchronization
   :host-os: unix
   :board: ls1046ardb/ls1046a/smp/4cores
   :goals: build

This will build an image with the synchronization sample app.

Use u-boot to load and kick Zephyr.bin to CPU Core0:

.. code-block:: console

	tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; go  0xc0000000;

It will display the following console output:

.. code-block:: console

	*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
	Secondary CPU core 1 (MPID:0x1) is up
	Secondary CPU core 2 (MPID:0x2) is up
	Secondary CPU core 3 (MPID:0x3) is up
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
	thread_b: Hello World from cpu 1 on nxp_ls1046ardb!
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

3. SMP mode running on 2 CPU Cores: Core2 and Core3

.. zephyr-app-commands::
   :zephyr-app: samples/synchronization
   :host-os: unix
   :board: ls1046ardb/ls1046a/smp
   :goals: build

This will build an image with the synchronization sample app.

Use u-boot to load and kick Zephyr.bin to CPU Core2:

.. code-block:: console

	tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; cpu 2 release 0xc0000000;

It will display the following console output:

.. code-block:: console

	*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
	Secondary CPU core 1 (MPID:0x3) is up
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
	thread_b: Hello World from cpu 1 on nxp_ls1046ardb!
	thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

4. Running Zephyr on Jailhouse inmate Cell

Use the following to run Zephyr in Jailhouse inmate, need to configure Jailhouse
inmate Cell to use a single Core for Zephyr non-SMP mode, or use Core2 and Core3
for Zephyr SMP 2cores image.

1) Use root Cell dts to boot root Cell Linux.

2) Install Jailhouse module:

.. code-block:: console

	modprobe jailhouse

3) Run Zephyr demo in inmate Cell:

.. code-block:: console

	jailhouse enable ls1046a-rdb.cell
	jailhouse cell create ls1046a-rdb-inmate-demo.cell
	jailhouse cell load 1 zephyr.bin --address 0xc0000000
	jailhouse cell start 1

Flashing
========

Zephyr image can be loaded in DDR memory at address 0xc0000000 from SD Card,
EMMC, QSPI Flash or downloaded from network in uboot.

Debugging
=========

LS1046A RDB board includes one JTAG connector on board, connect it to
CodeWarrior TAP for debugging.

References
==========

`Layerscape LS1046A Reference Design Board <https://www.nxp.com/design/qoriq-developer-resources/layerscape-ls1046a-reference-design-board:LS1046A-RDB>`_

`LS1046A Reference Manual <https://www.nxp.com/webapp/Download?colCode=LS1046ARM>`_

Part 3

한국어 전문 번역

개요

LS1046A Reference Design Board(RDB)는 Layerscape LS1046A 아키텍처 프로세서를 지원하는 고성능 컴퓨팅·평가·개발 플랫폼입니다. DDR4 메모리와 고속 SerDes 포트 전체 구성을 지원하도록 최적화되었습니다.

Layerscape LS1046A는 64-bit Arm Cortex-A72 코어 4개, packet processing 가속기와 고속 주변장치를 통합합니다. 32,000 CoreMarks 이상의 성능과 10 Gb Ethernet, PCIe Gen.3, SATA 3.0, USB 3.0, QSPI 조합으로 기업·서비스 제공자 네트워크, storage, security, industrial application에 적합합니다.

하드웨어

  • 최대 1.6 GHz의 32/64-bit Arm Cortex-v8 A72 CPU 4개
  • 8 GB DDR4 SDRAM
  • 어댑터 카드 슬롯에 직접 연결된 SDHC와 4 GB eMMCi
  • ECC 지원 512 MB SLC NAND flash(1.8 V)
  • mux/demux 선택을 구성하는 CPLD 8-bit register
  • 온보드 64 MB QSPI NOR flash 2개
  • 통합 PHY USB 3.0 controller 2개: Type-A host, Micro-AB OTG, miniPCIe 연결 USB 2.0
  • Lane 2/3 SGMII 1G PHY, XFI retimer SFP+, XFI/2.5G SGMII AQR106/107 10G PHY
  • Mini PCIe x1과 standard PCIe x1 Gen1/2/3, SATA 3.0 connector

지원 기능

인터페이스컨트롤러드라이버/컴포넌트
GIC-400on-chipGICv2 interrupt controller
ARM TIMERon-chipSystem Clock
UARTon-chipNS16550 compatible serial port

그 밖의 하드웨어 기능은 아직 활성화되지 않았습니다.

구성

  • Non-SMP: boards/nxp/ls1046ardb/ls1046ardb_ls1046a_defconfig
  • 4개 CPU 전체 SMP: ls1046ardb_ls1046a_smp_4cores_defconfig
  • Core2·Core3 2개 SMP: ls1046ardb_ls1046a_smp_defconfig

보드에는 uart1과 uart2가 있으며 Zephyr serial console은 uart2를 사용합니다.

프로그래밍과 디버깅

1. Non-SMP 모드

synchronization 샘플을 빌드합니다.

west build -b ls1046ardb samples/synchronization

U-Boot에서 CPU Core0에 로드합니다.

tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; go  0xc0000000;

다른 코어도 선택할 수 있습니다. Core3 예:

tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; cpu 3 release 0xc0000000;
*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
thread_b: Hello World from cpu 0 on nxp_ls1046ardb!
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

2. CPU 4개 SMP 모드

west build -b ls1046ardb/ls1046a/smp/4cores samples/synchronization

U-Boot에서 CPU Core0에 로드합니다.

tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; go  0xc0000000;
*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
Secondary CPU core 1 (MPID:0x1) is up
Secondary CPU core 2 (MPID:0x2) is up
Secondary CPU core 3 (MPID:0x3) is up
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
thread_b: Hello World from cpu 1 on nxp_ls1046ardb!
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

3. Core2·Core3의 2코어 SMP 모드

west build -b ls1046ardb/ls1046a/smp samples/synchronization

U-Boot에서 CPU Core2에 로드합니다.

tftp c0000000 zephyr.bin; dcache off; dcache flush; icache flush; icache off; cpu 2 release 0xc0000000;
*** Booting Zephyr OS build zephyr-v2.5.0-1922-g3265b69d47e7  ***
Secondary CPU core 1 (MPID:0x3) is up
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!
thread_b: Hello World from cpu 1 on nxp_ls1046ardb!
thread_a: Hello World from cpu 0 on nxp_ls1046ardb!

4. Jailhouse inmate Cell에서 실행

Non-SMP는 Zephyr용 단일 core, 2-core SMP image는 Core2와 Core3을 사용하도록 Jailhouse inmate Cell을 구성합니다.

  1. root Cell DTS로 root Cell Linux를 부팅합니다.
  2. Jailhouse module을 설치합니다.
modprobe jailhouse

inmate Cell에서 Zephyr demo를 시작합니다.

jailhouse enable ls1046a-rdb.cell
jailhouse cell create ls1046a-rdb-inmate-demo.cell
jailhouse cell load 1 zephyr.bin --address 0xc0000000
jailhouse cell start 1

플래시

Zephyr image는 SD card, eMMC, QSPI flash 또는 U-Boot network download를 통해 DDR 주소 0xc0000000에 로드할 수 있습니다.

디버깅

보드의 JTAG connector를 CodeWarrior TAP에 연결해 디버깅합니다.

참고 자료

Source

출처

영어 원문에는 문단, 문서 지시문, 표, 코드, 코드 심벌, 경로를 그대로 보존했습니다.