From c16f1c45fe521210fcac32f467bb6aabece67564 Mon Sep 17 00:00:00 2001 From: ARUL DEVARAJAN <arulkumaran.devarajan@huawei.com> Date: Tue, 23 Feb 2021 06:31:36 +0000 Subject: [PATCH] Supported board: Index Toc Tree Update * Index.rst is updated to include seco-intel-b68 and seco-imx8mm-c61 in Toctree. --- .../source/supported-boards/96b-Avenger.rst | 211 ++++++++---------- .../source/supported-boards/96b-nitrogen.rst | 49 ++-- .../source/supported-boards/Readme.rst | 4 +- .../supported-boards/seco-intel-b68.rst | 200 +++++++++++++++++ 4 files changed, 318 insertions(+), 146 deletions(-) create mode 100644 documentation/source/supported-boards/seco-intel-b68.rst diff --git a/documentation/source/supported-boards/96b-Avenger.rst b/documentation/source/supported-boards/96b-Avenger.rst index 1e4bc37..3d321eb 100644 --- a/documentation/source/supported-boards/96b-Avenger.rst +++ b/documentation/source/supported-boards/96b-Avenger.rst @@ -5,117 +5,90 @@ 96Boards Avenger96 ################## + +.. contents:: + :depth: 3 + Overview ******** -Avenger96 is a STM32MP157xx (Cortex-A7 + Cortex-M4) development board -designed by the 96Boards initiative. Due to presence of the application -processors and the microcontroller, Avenger96 can simultaneously run -Linux and Zephyr kernels. The application processor is responsible for -powering up and programming the microcontroller with the appropriate -image. Linux provides interfaces to communicate with the program running -on the microcontroller. +Avenger96 is a STM32MP157xx (Cortex-A7 + Cortex-M4) development board designed by the 96Boards initiative. Due to presence of the application +processors and the microcontroller, Avenger96 can simultaneously run Linux and Zephyr kernels. The application processor is responsible for +powering up and programming the microcontroller with the appropriate image. Linux provides interfaces to communicate with the program running on the microcontroller. Hardware ======== -Detailed specification can be found on the `Avenger96 product page on -the 96Boards website <https://www.96boards.org/product/avenger96/>`__. - -Hardware user manual can be found in the `96Boards GitHub documentation -repository <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-hardware-user-manual.pdf>`__. - -Hardware schematics can be found in the `96Boards GitHub documentation -repository <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-schematics.pdf>`__. - -+-----------------------+-----------------------------------------------+ -| Component | Description | -+=======================+===============================================+ -| SoC | STM32MP157AAC: 2x Cortex-A7 @ 650 MHZ + 2x | -| | Cortex-M4 @ 200 MHz | -+-----------------------+-----------------------------------------------+ -| GPU | Vivante @ 533 MHz, OpenGL ES 2.0 | -+-----------------------+-----------------------------------------------+ -| RAM | 1024 MB @ 533 MHz | -+-----------------------+-----------------------------------------------+ -| Storage | 8 GB eMMC, QSPI flash 2 MB, EEPROM 128 B, | -| | microSD socket UHS-1 | -+-----------------------+-----------------------------------------------+ -| Ethernet | 10/100/1000 Mbit/s IEEE 802.3 Compliant | -+-----------------------+-----------------------------------------------+ -| Radio | Murata 1MW 802.11a/b/g/n/ac 2.4GHz + 5GHz + | -| | Bluetooth v4.2 BR/EDR/BLE | -+-----------------------+-----------------------------------------------+ - -See more on the `Avenger96 product page <https://www.96boards.org/product/avenger96/>`__. +* For detailed specification, see `Avenger96 product page on the 96Boards website <https://www.96boards.org/product/avenger96/>`__. + +* For hardware user manual, see `96Boards GitHub documentation repository <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-hardware-user-manual.pdf>`__. + +* For hardware schematics, see `96Boards GitHub documentation repository <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-schematics.pdf>`__. + +For more details on Avenger96 board, see `Avenger96 product page <https://www.96boards.org/product/avenger96/>`__. Working with the board ********************** +Supported images +================ + +* openharmony-image-base +* openharmony-image-extra + Building OHOS image =================== -Clone the source code following the `general instruction <https://git.ostc-eu.org/OSTC/OHOS/meta-ohos#getting-started>`__. +To clone the source code, perform the procedure in `Getting started <https://git.ostc-eu.org/OSTC/OHOS/docs/developer-guide/-/blob/master/documentation/source/quick-start/build-open-harmony.rst>`__. Linux image ----------- -1. Source the environment with proper template settings: flavour being - ``linux`` and target machine being ``stm32mp1-av96``. Pay attention - to how relative paths are constructed. The value of ``TEMPLATECONF`` - is relative to the location of the build directory - ``./build-linux-stm32mp1-av96``, that is going to be created after +1. Source the environment with proper template settings, flavour being *linux* and target machine being *stm32mp1-av96*. Pay attention + to how relative paths are constructed. The value of *TEMPLATECONF* is relative to the location of the build directory *./build-linux-stm32mp1-av96*, that is going to be created after this step: - -:: + +.. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/linux . ./sources/poky/oe-init-build-env build-ohos-linux-stm32mp1-av96 -2. You will find yourself in the newly created build directory. Call - ``bitbake`` to build the image. The only supported image for now is - ``core-image-base``. +2. You will find yourself in the newly created build directory. Call *bitbake* to build the image. For example, if you are using *openharmony-image-base* run the following command: -:: +.. code-block:: console - $ MACHINE=stm32mp1-av96 bitbake core-image-base + $ MACHINE=stm32mp1-av96 bitbake openharmony-image-base -Images for eMMC on SD card need to be generated in one more step. Please -refer to the flashing section below. +To generate images for eMMC on SD card, refer to the following flashing procedure. Zephyr image ------------ -1. Source the environment with proper template settings: flavour being - ``zephyr`` and target machine being ``96b-avenger96``: +1. Source the environment with proper template settings, flavour being *zephyr* and target machine being *96b-avenger96*: -:: +.. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavours/zephyr . ./sources/poky/oe-init-build-env build-ohos-zephyr-96b-avenger96 -2. You will find yourself in the newly created build directory. Call - ``bitbake`` to build the image. The image name is the name of the - Zephyr application. +2. You will find yourself in the newly created build directory. Call *bitbake* to build the image. The image name is the name of the Zephyr application. -:: +.. code-block:: console $ MACHINE=96b-avenger96 bitbake zephyr-philosophers -3. The output file will be located in the build directory, in - ``./tmp-newlib/deploy/images/96b-avenger96/``. +3. The output file will be located in the build directory *./tmp-newlib/deploy/images/96b-avenger96/*. Flashing OHOS image ******************* -For Linux, STM meta-layer provide a convenient shell script that helps -you to create a SD card image. You can also use the `STM32 Cube +For Linux, STM meta-layer provide a convenient shell script that helps you to create a SD card image. You can also use the `STM32 Cube Programmer <https://wiki.dh-electronics.com/index.php/Avenger96_Image_Programming>`__. -For Zephyr, there is no automation as for now. You need to copy the -image manually to the filesystem using a method of your choice: include -it in the image before flashing the card/eMMC, copy the file manually to -the card or just ``scp`` it to the board after you set up networking. -The goal is to have the ELF file in the filesystem. +For Zephyr, there is no automation as for now. To have the ELF file in the filesystem: + +* Copy the image manually to the filesystem using a method of your choice +* Include it in the image before flashing the card/eMMC +* Copy the file manually to the card or just *scp* it to the board after you set up networking. .. _linux-image-1: @@ -125,25 +98,29 @@ Linux image SD card ------- -1. After the image is build, run the following script with flash layout - TSV file provided as an argument. From the build directory created - during the environment source: +The Avenger96 board supports multiple boot options which are selected by the DIP-switch S3. Make sure the boot switch is set to boot from the SD-Card. -:: +To set the boot option from the SD card using DIP-switch S3, set the BOOT 0 (Switch 1) and BOOT 2 (Switch 3) to 1 and set BOOT 1 (Switch 2) to 0 on the circuit board. + +For more information on Avenger96 boot options, see `Getting Started with the Avenger96 <https://www.96boards.org/documentation/consumer/avenger96/getting-started/#starting-the-board-for-the-first-time>`__. + +1. After the image is build, run the following script with flash layout TSV file provided as an argument. From the build directory created + during the environment source. For example, if you are using openharmony-image-base run the following command: + +.. code-block:: console $ cd tmp/deploy/images/stm32mp1-av96 - $ ./scripts/create_sdcard_from_flashlayout.sh ./flashlayout_core-image-base/extensible/FlashLayout_sdcard_stm32mp157a-av96-extensible.tsv + $ ./scripts/create_sdcard_from_flashlayout.sh ./flashlayout_openharmony-image-base/extensible/FlashLayout_sdcard_stm32mp157a-av96-extensible.tsv -2. You will see the following output, providing commands ready to copy - and paste in the terminal for the image to be flashed to the card: +2. The following output is displayed. For the image to be flashed to the card, copy and paste the commands to the terminal to flash the image onto the card. :: [WARNING]: A previous raw image are present on this directory - [WARNING]: ./flashlayout_core-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw + [WARNING]: ./flashlayout_openharmony-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw [WARNING]: would you like to erase it: [Y/n] - Create Raw empty image: ./flashlayout_core-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw of 2368MB + Create Raw empty image: ./flashlayout_openharmony-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw of 2368MB Create partition table: [CREATED] part 1: fsbl1 [partition size 256.0 KiB] [CREATED] part 2: fsbl2 [partition size 256.0 KiB] @@ -152,7 +129,7 @@ SD card [CREATED] part 5: vendorfs [partition size 16.0 MiB] [CREATED] part 6: rootfs [partition size 2.2 GiB] - Partition table from ./flashlayout_core-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw + Partition table from ./flashlayout_openharmony-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw Populate raw image with image content: [ FILLED ] part 1: fsbl1, image: arm-trusted-firmware/tf-a-stm32mp157a-av96-trusted.stm32 @@ -160,19 +137,19 @@ SD card [ FILLED ] part 3: ssbl, image: bootloader/u-boot-stm32mp157a-av96-trusted.stm32 [ FILLED ] part 4: boot, image: st-image-bootfs-poky-stm32mp1-av96.ext4 [ FILLED ] part 5: vendorfs, image: st-image-vendorfs-poky-stm32mp1-av96.ext4 - [ FILLED ] part 6: rootfs, image: core-image-base-stm32mp1-av96.ext4 + [ FILLED ] part 6: rootfs, image: openharmony-image-base-stm32mp1-av96.ext4 ########################################################################### ########################################################################### - RAW IMAGE generated: ./flashlayout_core-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw + RAW IMAGE generated: ./flashlayout_openharmony-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw WARNING: before to use the command dd, please umount all the partitions associated to SDCARD. sudo umount `lsblk --list | grep mmcblk0 | grep part | gawk '{ print $7 }' | tr '\n' ' '` To put this raw image on sdcard: - sudo dd if=./flashlayout_core-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw of=/dev/mmcblk0 bs=8M conv=fdatasync status=progress + sudo dd if=./flashlayout_openharmony-image-base/extensible/../../FlashLayout_sdcard_stm32mp157a-av96-extensible.raw of=/dev/mmcblk0 bs=8M conv=fdatasync status=progress (mmcblk0 can be replaced by: sdX if it's a device dedicated to receive the raw image @@ -181,38 +158,36 @@ SD card ########################################################################### ########################################################################### -1. Call the ``umount`` command printed by the - ``create_sdcard_from_flashlayout.sh`` script, to unmount the card. -2. Call the ``dd`` command printed by the - ``create_sdcard_from_flashlayout.sh`` script, to flash the image - card. -3. Put the card to the board and turn it on. Happy hacking! +3. To unmount the card, call the ``umount`` command printed by the ``create_sdcard_from_flashlayout.sh`` script. + +4. To flash the image card, call the ``dd`` command printed by the ``create_sdcard_from_flashlayout.sh`` script. + +5. Put the card to the board and turn it on. STM32 Cube Programmer --------------------- -After you build the image just `follow the -instructions <https://wiki.dh-electronics.com/index.php/Avenger96_Image_Programming>`__, -pointing the program to the -``./tmp/deploy/images/stm32mp1-av96/flashlayout_core-image-base/trusted/FlashLayout_emmc_stm32mp157a-av96-trusted.tsv`` -flash layout file. +After you build the image, follow the instructions in `Avenger96 Image Programming <https://wiki.dh-electronics.com/index.php/Avenger96_Image_Programming>`__, +pointing the program to the *./tmp/deploy/images/stm32mp1-av96/flashlayout_openharmony-image-base/trusted/FlashLayout_emmc_stm32mp157a-av96-trusted.tsv* flash layout file. .. _zephyr-image-1: Zephyr image ============ -Prerequisites: - have Linux running on the board - make sure Linux is -built with ``remoteproc`` support: +**Prerequisites** -:: +* Linux is running on the board. +* Make sure that Linux is built with *remoteproc* support. To check status of remoteproc do: + +.. code-block:: console root@stm32mp1-av96:~# dmesg | grep remoteproc [ 2.336231] remoteproc remoteproc0: m4 is available 1. Copy the Zephyr image to the board using a method of your choice. -2. Check what the ``remoteproc`` framework knows about the name and - location of the firmware file. The default values are presented at + +2. Check what the ``remoteproc`` framework knows about the name and location of the firmware file. The default values are presented as follows. Empty path defaults to ``/lib/firmware``: :: @@ -223,8 +198,8 @@ built with ``remoteproc`` support: root@stm32mp1-av96:~# cat /sys/class/remoteproc/remoteproc0/firmware rproc-m4-fw -3. Configure the name and the location to suite your needs. E.g. for the - firmware located in ``/root/zephyr.elf``: +3. Configure the name and the location to suit your needs. For example, the + firmware is located in ``/root/zephyr.elf``: :: @@ -259,8 +234,7 @@ built with ``remoteproc`` support: Philosopher 2 [P: 1] THINKING [ 725 ms ] Philosopher 1 [P: 2] EATING [ 225 ms ] -There is no fully-featured console available in Linux yet, so typing -commands to Zephyr application is not possible. +There is no fully-featured console available in Linux yet, so typing commands to the Zephyr application is not possible. Testing the board ***************** @@ -268,25 +242,23 @@ Testing the board Serial port =========== -See the `hardware user -manual <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-hardware-user-manual.pdf>`__ -to see how to connect the serial port to USB converter to the low speed -connector. Please note that the connector is 1.8V tolerant, therefore -the the converter needs to be 1.8V tolerant as well. Specifically, -please don’t connect 5V or 3.3V tolerant devices to avoid SoC damage. +To connect the USB converter serial port to the low-speed connector, see `Hardware User Manual <https://github.com/96boards/documentation/blob/master/consumer/avenger96/hardware-docs/files/avenger96-hardware-user-manual.pdf>`__. + +.. warning:: + + * The low speed connector is 1.8V tolerant, therefore the converter must be 1.8V tolerant. + * Do not connect 5V or 3.3V tolerant devices to the connector to avoid SoC damage. Ethernet ======== -Wired connection works out of the box. You can use standard tools like -``ip``, ``ifconfig`` to configure the connection. The connection seems +Wired connection works out of the box. You can use standard tools like ``ip``, ``ifconfig`` to configure the connection. The connection seems to have stable 1Gb/s bandwidth. USB Host ======== -Just plug something to the USB port. The board seems to work fine with -an external 500GB USB 3.0 HDD. +Just plug something to the USB port. The board seems to work fine with an external 500GB USB 3.0 HDD. :: @@ -306,15 +278,13 @@ an external 500GB USB 3.0 HDD. USB OTG ======= -The board supports that feature. For now it only works in DFU mode with -STM32 Cube Programmer. Using the board as USB Gadget is currently under +The board supports that feature. For now it only works in DFU mode with STM32 Cube Programmer. Using the board as USB Gadget is currently under development. eMMC ==== -It can be used to store the firmware with STM32 Cube Programmer. It can -also be mounted under Linux booted from another medium: +It can be used to store the firmware with STM32 Cube Programmer. It can also be mounted under Linux booted from another medium: :: @@ -348,8 +318,9 @@ Radio relies on proprietary BRCM firmware. It is already included in the image. WiFi ---- -WiFi WiFi can be controlled with ``wpa_supplicant``, which is a standard Linux tool. Please refer to the tool manual for the -details. Example ``wpa_suppliant`` configs look like below. Assuming the config is saved in a file named ``wpa.conf`` and the interface is named +WiFi can be controlled with ``wpa_supplicant``, which is a standard Linux tool. Please refer to the tool manual for the details. + +Example ``wpa_suppliant`` configs look like below. Assuming the config is saved in a file named ``wpa.conf`` and the interface is named ``wlan0``, WiFi can be brought up with ``wpa_supplicant -i wlan0 -c ./wpa.conf``: :: @@ -380,9 +351,7 @@ details. Example ``wpa_suppliant`` configs look like below. Assuming the config Bluetooth --------- -Bluetooth is currently not stable. It can be controlled with -``bluetoothctl``, which is a standard Linux tool. Please refer to the -tool manual for the details. Devices scanning can be enabled as follows: +Bluetooth is currently not stable. It can be controlled with ``bluetoothctl``, which is a standard Linux tool. Please refer to the tool manual for the details. Devices scanning can be enabled as follows: :: @@ -403,9 +372,7 @@ tool manual for the details. Devices scanning can be enabled as follows: [NEW] Device E4:04:39:65:9C:2A TomTom GPS Watch [NEW] Device C0:28:8D:49:67:7E C0-28-8D-49-67-7E -Pairing and establishing connection is possible with ``pair`` and -``connect`` commands, but the connection is dropped instantly. This -issue is under investigation. +Pairing and establishing connection is possible with ``pair`` and ``connect`` commands, but the connection is dropped instantly. This issue is under investigation. HDMI ==== diff --git a/documentation/source/supported-boards/96b-nitrogen.rst b/documentation/source/supported-boards/96b-nitrogen.rst index 27e2b70..eb66951 100644 --- a/documentation/source/supported-boards/96b-nitrogen.rst +++ b/documentation/source/supported-boards/96b-nitrogen.rst @@ -5,6 +5,9 @@ 96Boards Nitrogen ################# +.. contents:: + :depth: 3 + Nitrogen, a compliant IoT Edition board provides economical and compact BLE solutions for various IoT projects. This board includes the below features: * Nordic nRF52832 microcontroller @@ -13,49 +16,51 @@ Nitrogen, a compliant IoT Edition board provides economical and compact BLE solu Nitrogen hardware supports the Nordic Semiconductor nRF52832 ARM Cortex-M4F CPU. -See more on the `Nitrogen product page <https://www.96boards.org/product/nitrogen/>`_. Hardware ******** -Detailed specification can be found on the `Nitrogen product page on the 96Boards website <https://www.96boards.org/product/nitrogen/>`_. +* For detailed specifications, see `Nitrogen product page on the 96Boards website <https://www.96boards.org/product/nitrogen/>`_. -Hardware user manual can be found in the `Seeed wiki <https://wiki.seeedstudio.com/BLE_Nitrogen/>`_. +* For hardware user manual, see `Seeed wiki <https://wiki.seeedstudio.com/BLE_Nitrogen/>`_. -Hardware schematics can be found in the `Seeed Document <https://github.com/SeeedDocument/BLE-Nitrogen/tree/master/res>`_. +* For hardware schematics, see `Seeed Document <https://github.com/SeeedDocument/BLE-Nitrogen/tree/master/res>`_. +For more details on 96Boards Nitrogen, see `Nitrogen product page <https://www.96boards.org/product/nitrogen/>`_. Working with the board ********************** -Building an Application +Supported image +=============== + +* zephyr-philosophers + +Building an application ======================= Open HarmonyOS Zephyr flavour is based on Zephyr kernel. -* Source the environment with proper template settings: flavour being zephyr and target machine being 96b-nitrogen: +* Source the environment with proper template settings, flavour being zephyr and target machine being 96b-nitrogen: .. code-block:: console $ TEMPLATECONF=../sources/meta-ohos/flavour/zephyr. ./sources/poky/oe-init-build-env build-zephyr-96b-nitrogen -* You will find yourself in the newly created build directory. Call *bitbake* to build the image. The image name is the name of the Zephyr application. +* You will find yourself in the newly created build directory. Call bitbake to build the image. The supported image name is zephyr-philosophers. .. code-block:: console $ MACHINE=96b-nitrogen bitbake zephyr-philosophers -* MACHINE variable can be set up in conf/local.conf file under build directory or via command line. +MACHINE variable can be set up in conf/local.conf file under build directory or via command line. -Flashing an Application +Flashing an application ======================= -Prerequisites -------------- - Installing pyOCD -^^^^^^^^^^^^^^^^ +---------------- pyOCD is an open source Python package for programming and debugging Arm Cortex-M microcontrollers using multiple supported types of USB debug probes. It is fully cross-platform, with support for Linux. @@ -65,36 +70,34 @@ pyOCD is an open source Python package for programming and debugging Arm Cortex- $ pip install --pre -U pyOCD -* To install the latest prerelease version from the HEAD of the master branch, do the following: +* To install the latest pre-release version from the HEAD of the master branch, do the following: .. code-block:: console $ pip install --pre -U git+https://github.com/mbedmicro/pyOCD.git -* You can also install directly from the source by cloning the git repository and running: +* To install directly from the source by cloning the git repository, do the following: .. code-block:: console $ python setup.py install -* You can then verify that your board is detected by pyOCD by running: +* Verify that the board is detected by pyOCD by executing the command: .. code-block:: console $ pyOCD-flashtool -l .. note:: - Lack of permission gets reported as *ValueError: The device has no langid*, perform the instructions as suggested in - https://github.com/pyocd/pyOCD/tree/master/udev. + + When *ValueError: The device has no langid* error is displayed due to lack of permission, perform the instructions as suggested in https://github.com/pyocd/pyOCD/tree/master/udev. How to flash -^^^^^^^^^^^^ +------------ -* To flash the image, call the command used to build the image with -c flash_usb appended. +* To flash the image, execute the command used to build the image with -c flash_usb appended. For example, to flash the already built zephyr-philosophers image, do: .. code-block:: console - $ MACHINE=96b-nitrogen bitbake zephyr-philosophers -c flash_usb - - + $ MACHINE=96b-nitrogen bitbake zephyr-philosophers -c flash_usb \ No newline at end of file diff --git a/documentation/source/supported-boards/Readme.rst b/documentation/source/supported-boards/Readme.rst index 8a10592..75bf101 100644 --- a/documentation/source/supported-boards/Readme.rst +++ b/documentation/source/supported-boards/Readme.rst @@ -12,7 +12,9 @@ Harmony OS supports the following boards: 96b-Avenger 96b-nitrogen + seco-intel-b68 + seco-imx8mm-c61 -For more information on supported boards and instructions to use them, see https://git.ostc-eu.org/OSTC/OHOS/docs/supported-boards. +For more information on supported boards and instructions to use them, see https://git.ostc-eu.org/OSTC/OHOS/docs/developer-guide/-/tree/master/documentation/source/supported-boards. diff --git a/documentation/source/supported-boards/seco-intel-b68.rst b/documentation/source/supported-boards/seco-intel-b68.rst new file mode 100644 index 0000000..6959a0d --- /dev/null +++ b/documentation/source/supported-boards/seco-intel-b68.rst @@ -0,0 +1,200 @@ +.. include:: ../definitions.rst + +SBC-B68-eNUC SECO +################# + + +.. contents:: + :depth: 3 + + +Overview +******** + +The SBC-B68-eNUC is a flexible and expandable full industrial x86 embedded NUC™ SBC with the Intel® Atom X Series, Intel® Celeron® J / N +Series and Intel® Pentium® N Series (formerly code name Apollo Lake) Processors. Also available in industrial temperature version, the board +offers wide range of connectivity options through WLAN and WWAN M.2 slots as well as wide input voltage range. Featuring Quad Channel +soldered down LPDDR4-2400 memory, up to 8GB, thanks to its versatile expansion capabilities it is particularly suitable for embedded +applications like HMI, multimedia devices, industrial IoT and industrial automation. + +Hardware +******** + +For more detailed specifications of SBC-B68-eNUC SECO board, see `SBC-B68-eNUC Specification <https://www.seco.com/en/products/sbc-b68-enuc>`__. + + +Working with the board +********************** + +Supported images +================ + +* openharmony-image-base +* openharmony-image-extra + +Building OHOS image +=================== + +To clone the source code, perform the procedure in `Getting started <https://git.ostc-eu.org/OSTC/OHOS/docs/developer-guide/-/blob/master/documentation/source/quick-start/build-open-harmony.rst>`__. + +Linux image +----------- + +1. Source the environment with proper template settings, flavour being *linux* and target machine being *seco-intel-b68*. + +.. code-block:: console + + $ TEMPLATECONF=../sources/meta-ohos/flavours/linux . ./sources/poky/oe-init-build-env build-linux-seco-intel-b68 + +2. You will find yourself in the newly created build directory. Call *bitbake* to build the image. For example, if you are using *openharmony-image-base* run the following command: + +.. code-block:: console + + $ MACHINE=seco-intel-b68 bitbake openharmony-image-base + +To generate images for SSD Disk, refer to the following flashing OHOS image section. + +Flashing OHOS image +******************* + +.. _linux-image-1: + +Linux image +=========== + +USB Storage +----------- + +**Prerequisites** + +* Mini DisplayPort to HDMI converter cable +* HDMI Monitor +* USB Storage +* Linux Host + +To flash OHOS using USB storage, perform the following steps: + +**Prepare OHOS bootable USB** + +#. Connect USB storage to your host PC. + +#. Run the following command in your local host: + +.. code-block:: console + + $ dd if=tmp/deploy/images/seco-intel-b68/openharmony-image-base-seco-intel-b68.wic of=/dev/sdbX + +**Run OHOS** + +#. Connect bootable USB to target + +#. Connect mini DP++ to HDMI adapter to HDMI monitor + +#. Power on B68 and press **Esc** to enter **BIOS** mode. + +#. Go to Save and Exit submenu + +#. Select the bootable USB device under **Boot Override** and press Enter. + + +Testing the board +***************** + +Ethernet +======== + +Wired connection works out of the box. You can use standard tools like ``ip``, ``ifconfig`` to configure the connection. + +USB Host +======== + +:: + + root@seco-intel-b68:~# lsusb + /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M + /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M + +eMMC +==== + +:: + + root@seco-intel-b68:~# fdisk -l /dev/mmcblk1 + Disk /dev/mmcblk1: 29 GB, 31268536320 bytes, 61071360 sectors + 954240 cylinders, 4 heads, 16 sectors/track + Units: sectors of 1 * 512 = 512 bytes + +PCI buses +========= + +:: + + root@seco-intel-b68:~# lspci + 00:00.0 Host bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge (rev 0b) + 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 500 (rev 0b) + 00:0e.0 Audio device: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster (rev 0b) + 00:0f.0 Communication controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine (rev 0b) + 00:12.0 SATA controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller (rev 0b) + 00:13.0 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #3 (rev fb) + 00:13.3 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port A #4 (rev fb) + 00:15.0 USB controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI (rev 0b) + 00:16.0 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #1 (rev 0b) + 00:16.3 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #4 (rev 0b) + 00:17.0 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #5 (rev 0b) + 00:17.1 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #6 (rev 0b) + 00:18.0 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #1 (rev 0b) + 00:18.2 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series HSUART Controller #3 (rev 0b) + 00:1b.0 SD Host controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SDXC/MMC Host Controller (rev 0b) + 00:1c.0 SD Host controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller (rev 0b) + 00:1f.0 ISA bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface (rev 0b) + 00:1f.1 SMBus: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller (rev 0b) + 01:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) + 02:00.0 Ethernet controller: Intel Corporation I210 Gigabit Network Connection (rev 03) + +Loaded Modules +============== + +:: + + root@seco-intel-b68:~# lsmod + Module Size Used by + nfc 73728 0 + bnep 20480 2 + uio 20480 0 + snd_hda_codec_hdmi 53248 1 + iwlwifi 299008 0 + cfg80211 688128 1 iwlwifi + snd_hda_codec_cirrus 20480 1 + snd_hda_codec_generic 65536 1 snd_hda_codec_cirrus + ledtrig_audio 16384 1 snd_hda_codec_generic + intel_rapl_msr 16384 0 + snd_soc_skl 114688 0 + snd_soc_sst_ipc 16384 1 snd_soc_skl + snd_soc_sst_dsp 24576 1 snd_soc_skl + snd_hda_ext_core 20480 1 snd_soc_skl + snd_soc_acpi_intel_match 36864 1 snd_soc_skl + snd_soc_acpi 16384 2 snd_soc_acpi_intel_match,snd_soc_skl + snd_soc_core 200704 1 snd_soc_skl + intel_rapl_common 20480 1 intel_rapl_msr + snd_compress 20480 1 snd_soc_core + ac97_bus 16384 1 snd_soc_core + intel_pmc_bxt 16384 0 + intel_telemetry_pltdrv 20480 0 + intel_telemetry_core 16384 1 intel_telemetry_pltdrv + snd_hda_intel 32768 0 + x86_pkg_temp_thermal 16384 0 + snd_intel_dspcfg 16384 2 snd_hda_intel,snd_soc_skl + snd_hda_codec 98304 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_cirrus + coretemp 16384 0 + snd_hda_core 65536 7 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_cirrus,snd_soc_skl + snd_pcm 86016 7 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_compress,snd_soc_core,snd_soc_skl,snd_hda_core + snd_timer 32768 1 snd_pcm + i915 1888256 5 + mei_me 32768 0 + video 40960 1 i915 + mei 81920 1 mei_me + +Video +===== + +Output video tested with *DP++* to *HDMI* adapter. -- GitLab