From 37e62ef4ea8eb68d1d589ce616f1dcfb3176570c Mon Sep 17 00:00:00 2001
From: Gururaj Shetty <gururaj.shetty@huawei.com>
Date: Tue, 23 Feb 2021 16:22:26 +0000
Subject: [PATCH] Add supported image, boards, and repository structure
 description

---
 .../source/quick-start/build-open-harmony.rst | 162 ++++++++++++++----
 1 file changed, 124 insertions(+), 38 deletions(-)

diff --git a/documentation/source/quick-start/build-open-harmony.rst b/documentation/source/quick-start/build-open-harmony.rst
index 1f315ad..ead5a5d 100644
--- a/documentation/source/quick-start/build-open-harmony.rst
+++ b/documentation/source/quick-start/build-open-harmony.rst
@@ -10,9 +10,8 @@ Getting Started
 This topic provides an overview of meta-ohos architecture, tools, and source code required to build your |main_project_name| image. The meta-ohos is an umbrella meta-layer containing all layers required to build
 |main_project_name| Image on existing kernel meta-layers.
 
-.. toctree:: 
-   :depth: 2 
-
+.. contents:: 
+    :depth: 3
 
 **Figure 1 meta-ohos overview**
 
@@ -38,16 +37,28 @@ To start with, you need to install git-repo by executing the following command.
 Downloading Source Code
 ********************************
 
-Once git-repo has been installed, clone the necessary repositories by executing the following commands:
+Once git-repo has been installed, you can clone the necessary repositories.
+
+**For OHOS User**
+If you are a user and wants to build your product on top of OHOS, then clone the ‘stable’ branch by executing the following commands:
 
  .. code-block:: console
  
       $ mkdir ohos; cd ohos
-      $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b develop
+      $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b stable
       $ repo sync
 
- Above commands creates the following directory structure: 
+**For OHOS Developer**
+If you are a developer and wants to contribute to OHOS, then clone the ‘develop’ branch by executing the following commands:
+
+ .. code-block:: console
  
+      $ mkdir ohos; cd ohos
+      $ repo init -u https://git.ostc-eu.org/OSTC/manifest.git -b develop
+      $ repo sync
+
+The preceding commands creates the following directory structure (layers): 
+
  .. code-block:: console
   
      ./ohos/
@@ -59,21 +70,41 @@ Once git-repo has been installed, clone the necessary repositories by executing
         ├── <various yocto layers>
         └── poky
 
+.. list-table:: meta-ohos
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Placeholder  Name
+    - Description
+  * - meta-freertos
+    - FreeRTOS distro layer compatible with OpenEmbedded.
+  * - meta-ohos
+    - A set of meta-layers for building Open Harmony OS.
+  * - meta-openembedded
+    - Layers, recipes, packages, and source material for developing a image.
+  * - meta-zephyr
+    - Layers required for building Zephyr images.
+  * - <various yocto layers>
+    - Layers required to build yacto images.		
+  * - poky
+    - Layers required to build customised embedded device images.
+
 .. _building-image:
 
 Building and Running |main_project_name| image
 ************************************************
 
-|main_project_name| can be hosted on top of variety of kernels. Currently supported kernels (a.k.a. OHOS flavours) are Linux, Zephyr, and FreeRTOS (experimental). 
+|main_project_name| can be hosted on top of a variety of kernels. Currently supported kernels (a.k.a. OHOS flavours) are Linux, Zephyr, and FreeRTOS (experimental). 
 
-To build OHOS flavour, use the following command syntax:
+You can use the following syntax to build the OHOS flavour of your choice.
 
 .. code-block:: console
 
      $ TEMPLATECONF=../sources/meta-ohos/flavours/<lower_case_flavour> . ./sources/poky/oe-init-build-env build-<flavour>-<target_machine>
      $ bitbake <image-name>
 
-MACHINE variable can be set up in *conf/local.conf* file under build directory or via command line:
+.. Note::
+   MACHINE variable can be set up in *conf/local.conf* file under build directory or via command line:
 
 **Example:** 
 
@@ -84,41 +115,68 @@ MACHINE variable can be set up in *conf/local.conf* file under build directory o
 OHOS Linux flavour
 ====================
 
-OHOS Linux flavour is based on poky distribution and supports following images or machines:
+OHOS Linux flavour is based on `poky` distribution. Current version supports the following images and machines:
 
 **Supported images:**
 
-* core-image-minimal
-* core-image-full-cmdline
+.. list-table:: Supported images
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Image  Name
+    - Size
+    - Description
+  * - openharmony-image-base
+    - Approximate 100-200 MB
+    - OpenHarmony image including the base OS software stack
+  * - openharmony-image-extra
+    - Approximate 100-200 MB
+    - OpenHarmony Wayland image including the base OS software stack
 
 **Supported machines:**
 
-* qemux86-64 (default)
-* qemux86
-* qemuarm
-* qemuarm64
-
-**Example:**
+.. list-table:: Supported machines
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Machine Name
+    - Details
+  * - qemux86-64 (default)	
+    - Emulator
+  * - qemux86
+    - Emulator
+  * - qemuarm
+    - Emulator
+  * - qemuarm64
+    - Emulator
+  * - seco-intel-b68 (SECO SBC-B68)
+    - `Details <https://www.seco.com/en/products/sbc-b68-enuc>`_
+  * - stm32mp1-av96 (96Boards Avenger96)
+    - `Details <https://www.96boards.org/product/avenger96/>`_
+  * - seco-imx8mm-c61 (SECO SBC-C61)
+    - `Details <https://www.seco.com/en/products/sbc-c61>`_
+
+
+**Step1:** You can select the preferred image and machine to build your image. For example, for **qemux86-64** machine and **openharmony-image-base** image, execute:
 
 .. code-block:: console
 
      $ TEMPLATECONF=../sources/meta-ohos/flavours/linux . ./sources/poky/oe-init-build-env build-ohos-linux-qemux86-64
-     $ bitbake core-image-minimal
+     $ bitbake openharmony-image-base
 
-You can test the image built for the qemux86-64 target by issuing:
+**Step2:** Test the image built by executing the following test command considering **qemux86-64** machine as an example:
 
 .. code-block:: console
 
      $ runqemu qemux86-64 qemuparams="-nographic"
 
-After successful bootup, you should see following:
+**Result:** After successful bootup, you should see the following:
 
 .. code-block:: console
 
-     Poky (Yocto Project Reference Distro) 3.1.4 qemux86-64 /dev/ttyS0
-     qemux86-64 login:
+    qemux86-64 login:
 
-Default login is root without a password. After login you should see following prompt:
+The default login as root without a password. After login you should see the following prompt:
 
 .. code-block:: console
 
@@ -137,31 +195,44 @@ or close qemu using key combination:
 OHOS Zephyr flavour
 ====================
 
-OHOS Zephyr flavour is based on zephyr distribution and supports following images or machines:
+OHOS Zephyr flavour is based on zephyr distribution and supports the following images or machines:
 
 **Supported images:** 
 
-* zephyr-philosophers
+* Zephyr comes with multiple sample applications, for more details on available recipes, see `sources/meta-zephyr/recipes-kernel/zephyr-kernel/`. You can add your own recipes to use sample applications provided with Zephyr. For more details, `Click <https://github.com/zephyrproject-rtos/zephyr/tree/master/samples>`_. 
 
 **Supported machines:** 
 
-* qemu-cortex-m3
-* qemu-x86 (default)
+.. list-table:: Supported machines
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Machine Name
+    - Details
+  * - qemux86 (default)
+    - Emulator
+  * - qemu-cortex-m3
+    - Emulator
+  * - 96b-nitrogen (96Boards Nitrogen)
+    - `Details <https://www.96boards.org/product/nitrogen/>`_
+  * - 96b-avenger96 (96Boards Avenger96)
+    - `Details <https://www.96boards.org/product/avenger96/>`_
+
 
-**Example:**
+**Step1:** You can select the preferred image and machine to build your image. For example, for **qemux86* machine and **zephyr-philosophers** image, execute:
 
 .. code-block:: console
 
      $ TEMPLATECONF=../sources/meta-ohos/flavours/zephyr . ./sources/poky/oe-init-build-env build-ohos-zephyr-qemu-x86
      $ bitbake zephyr-philosophers
 
-You can test the image built for the qemu-x86 target by issuing:
+**Step2:** Test the image built by executing the following test command considering **qemux86** machine as an example:
 
 .. code-block:: console
 
-    $ DEPLOY_DIR_IMAGE=tmp-newlib/deploy/images/qemu-x86 runqemu qemu-x86
+    $ runqemu qemu-x86
 
-After successful bootup, you should see following:
+**Result:** After successful bootup, you should see the following:
 
 .. code-block:: console
 
@@ -179,30 +250,45 @@ To exit qemu, use key combination:
 OHOS FreeRTOS flavour
 ======================
 
-OHOS FreeRTOS flavour is based on freertos distribution and supports following images or machines:
+OHOS FreeRTOS flavour is based on `freertos` distribution and supports the following images and smachines:
 
 **Supported images:**
 
-* freertos-demo
+.. list-table:: Supported machines
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Machine Name
+    - Details
+  * - freertos-demo
+    - Emulator
 
 **Supported machines:**
 
-* qemuarmv5
+.. list-table:: Supported machines
+  :widths: auto
+  :header-rows: 1
+ 
+  * - Machine Name
+    - Details
+  * - qemuarmv5
+    - Emulator
+
 
-**Example:**
+**Step1:** You can select the preferred image and machine to build your image. For example, for **qemuarmv5** machine and **freertos-demo** image, execute:
 
 .. code-block:: console
 
      $ TEMPLATECONF=../sources/meta-ohos/flavours/freertos . ./sources/poky/oe-init-build-env build-ohos-freertos-qemuarmv5
      $ bitbake freertos-demo
 
-You can test the image built for the qemuarmv5 target by issuing:
+**Step2:** Test the image built by executing the following test command considering qemuarmv5 machine as an example:
 
 .. code-block:: console
 
      $ runqemu qemuarmv5
 
-After successful bootup, you should see following:
+**Result:** After successful bootup, you should see the following:
 
 .. code-block:: console
 
-- 
GitLab