Skip to content

Commit

Permalink
doc: board: phytec: Add phyCORE-AM64x
Browse files Browse the repository at this point in the history
Add documentation for PHYTEC phyCORE-AM64x SoM.

Signed-off-by: Wadim Egorov <[email protected]>
Reviewed-by: Dhruva Gole <[email protected]>
  • Loading branch information
wdmegrv authored and trini committed Mar 7, 2024
1 parent 46b3ff8 commit 9e43475
Show file tree
Hide file tree
Showing 2 changed files with 160 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/board/phytec/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ PHYTEC
imx8mm-phygate-tauri-l
imx93-phyboard-segin
phycore-am62x
phycore-am64x
phycore-imx8mm
phycore-imx8mp
159 changes: 159 additions & 0 deletions doc/board/phytec/phycore-am64x.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
.. SPDX-License-Identifier: GPL-2.0+
.. sectionauthor:: Wadim Egorov <[email protected]>

phyCORE-AM64x
=============

The `phyCORE-AM64x <https://www.phytec.com/product/phycore-am64x>`_ is a
SoM (System on Module) featuring TI's AM64x SoC. It can be used in combination
with different carrier boards. This module can come with different sizes and
models for DDR, eMMC, SPI NOR Flash and various SoCs from the AM64x family.

A development Kit, called `phyBOARD-Lyra <https://www.phytec.com/product/phyboard-am64x>`_
is used as a carrier board reference design around the AM64x SoM.

Quickstart
----------

* Download sources and TI firmware blobs
* Build Trusted Firmware-A
* Build OP-TEE
* Build U-Boot for the R5
* Build U-Boot for the A53
* Create bootable uSD Card
* Boot

Sources
-------

.. include:: ../ti/k3.rst
:start-after: .. k3_rst_include_start_boot_sources
:end-before: .. k3_rst_include_end_boot_sources

Build procedure
---------------

Setup the environment variables:

.. include:: ../ti/k3.rst
:start-after: .. k3_rst_include_start_common_env_vars_desc
:end-before: .. k3_rst_include_end_common_env_vars_desc

.. include:: ../ti/k3.rst
:start-after: .. k3_rst_include_start_board_env_vars_desc
:end-before: .. k3_rst_include_end_board_env_vars_desc

Set the variables corresponding to this platform:

.. include:: ../ti/k3.rst
:start-after: .. k3_rst_include_start_common_env_vars_defn
:end-before: .. k3_rst_include_end_common_env_vars_defn
.. code-block:: bash
$ export UBOOT_CFG_CORTEXR=phycore_am64x_r5_defconfig
$ export UBOOT_CFG_CORTEXA=phycore_am64x_a53_defconfig
$ export TFA_BOARD=lite
$ # we don't use any extra TFA parameters
$ unset TFA_EXTRA_ARGS
$ export OPTEE_PLATFORM=k3-am64x
# we don't use any extra OPTEE parameters
unset OPTEE_EXTRA_ARGS
.. include:: ../ti/am62x_sk.rst
:start-after: .. am62x_evm_rst_include_start_build_steps
:end-before: .. am62x_evm_rst_include_end_build_steps

uSD Card creation
-----------------

Use fdisk to partition the uSD card. The layout should look similar to:

.. code-block:: bash
$ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7.56 GiB, 8120172544 bytes, 15859712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6583d9a3
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 * 2048 264191 262144 128M c W95 FAT32 (LBA)
/dev/mmcblk0p2 264192 1934953 1670762 815.8M 83 Linux
Once partitioned, the boot partition has to be formatted with a FAT filesystem.
Assuming the uSD card is `/dev/mmcblk0`:

.. code-block:: bash
$ mkfs.vfat /dev/mmcblk0p1
To boot from a micro SD card on a HSFS device simply copy the following
artifacts to the FAT partition:

* tiboot3.bin from R5 build
* tispl.bin from Cortex-A build
* u-boot.img from Cortex-A build

Boot
----

Put the uSD card in the slot on the board and apply power. Check the serial
console for output.

Flash to SPI NOR
----------------

Below commands can be used to flash the SPI NOR flash; assuming
tiboot3.bin, tispl.bin and u-boot.img are stored on the uSD card.

.. code-block:: bash
sf probe
fatload mmc 1 ${loadaddr} tiboot3.bin
sf update $loadaddr 0x0 $filesize
fatload mmc 1 ${loadaddr} tispl.bin
sf update $loadaddr 0x80000 $filesize
fatload mmc 1 ${loadaddr} u-boot.img
sf update $loadaddr 0x280000 $filesize
Boot Modes
----------

The phyCORE-AM64x development kit supports booting from many different
interfaces. By default, the development kit is set to boot from the micro-SD
card. To change the boot device, DIP switches S5 and S6 can be used.
Boot switches should be changed with power off.

.. list-table:: Boot Modes
:widths: 16 16 16
:header-rows: 1

* - Switch Label
- SW3: 12345678
- SW4: 12345678

* - uSD
- 11000010
- 01000000

* - eMMC
- 11010010
- 00000000

* - OSPI
- 11010000
- 10000000

* - UART
- 11011100
- 00000000

Further Information
-------------------

Please see :doc:`../ti/am64x_evm` chapter for further AM64 SoC related documentation
and https://docs.phytec.com/phycore-am64x for vendor documentation.

0 comments on commit 9e43475

Please sign in to comment.