• Stars
    star
    462
  • Rank 94,818 (Top 2 %)
  • Language
  • License
    Apache License 2.0
  • Created almost 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Patches & Script for AOSP to run on Xuantie RISC-V CPU

T-HEAD Android

This repository is maintained by T-Head Semiconductor for the support of the Android Open Source Project (AOSP) on XuanTie CPU based development boards. It mainly includes BSP configuration, peripheral HAL layer, kernel, u-boot, and pre-compiled component support for the development boards. Other components can be directly pulled from the upstream AOSP repository. Currently, the repository maintains the relevant support for BeagleV Ahead and Lichee Pi 4A development boards based on the TH1520 SoC prototype.

Chinese page:

https://gitee.com/thead-android/thead-android/blob/master/README.md

The historical versions (RVB-ICE support) of this repository have been backed up to the branch:

https://github.com/T-head-Semi/riscv-aosp/tree/back_up

Development boards

BeagleV Ahead

BeagleV Ahead is a development board product launched by Beagle board, which supports multiple operating systems such as Android, Debian, Ubuntu, etc. The development board integrates TH1520 SoC, which includes a quad-core Xuan Tie C910 processor running at 1.85G and an NPU with 4TOPS computing power. It has a built-in GPU that supports OpenGL ES, OpenCL, and Vulkan, and features various device interfaces such as USB, Wi-Fi/BT, Ethernet, HDMI, MIPI CSI/DSI, etc. It can be used in AI edge computing applications such as video conferencing all-in-one machines, face recognition attendance access control, medical imaging, etc. beaglev

Figure 1. BeagleV Ahead

For more information, please visit the Beagleboard documentation page:

https://beaglev-ahead.beagleboard.io/docs/latest/boards/beaglev/ahead/index.html

Lichee Pi 4A EVB

Lichee Pi 4A is a development board product launched by Sipeed, which supports multiple operating systems such as Android, Debian, OpenWrt, etc. The development board integrates TH1520 SoC, which includes a quad-core Xuan Tie C910 processor running at 1.85G and an NPU with 4TOPS computing power. It has a built-in GPU that supports OpenGL ES, OpenCL, and Vulkan, and features various device interfaces such as USB, Wi-Fi/BT, Ethernet, HDMI, MIPI CSI/DSI, etc. It can be used in AI edge computing applications such as video conferencing all-in-one machines, face recognition attendance access control, medical imaging, etc. licheepi4a

Figure 2. Lichee Pi 4A EVB

For more information, please visit the Sipeed Wiki page: https://wiki.sipeed.com/licheepi4a

Quick start

Before downloading the Android Open Source Project source code, please check your working environment. It is recommended to use a Linux system with at least 250G disk space and 16GB+ memory (Ubuntu 20.04 or above is recommended). The compilation time is related to the number of processor cores on the host, so it is recommended to use a host with more cores.

Download the Android Open Source Project (mainline version) and the development board support source code to your working directory.

mkdir riscv-android-src && cd riscv-android-src
repo init -u https://android.googlesource.com/platform/manifest -b master
git clone https://gitee.com/thead-android/local_manifests.git .repo/local_manifests -b thead-android_dev
repo sync

BeagleV Ahead

After downloading, you can build the system using the following commands:

source build/envsetup.sh
lunch beaglev_ahead-userdebug
m -j

The compiled files are shown below, and the required files can be copied for use with Fastboot:

$ ls out/target/product/beaglev_ahead/*img
out/target/product/beaglev_ahead/boot.img           out/target/product/beaglev_ahead/super_empty.img        out/target/product/beaglev_ahead/vendor_boot-debug.img
out/target/product/beaglev_ahead/cache.img          out/target/product/beaglev_ahead/system.img             out/target/product/beaglev_ahead/vendor_boot-test-harness.img
out/target/product/beaglev_ahead/dtb.img            out/target/product/beaglev_ahead/system_ext.img         out/target/product/beaglev_ahead/vendor_boot.img
out/target/product/beaglev_ahead/dtbo-unsigned.img  out/target/product/beaglev_ahead/userdata.img           out/target/product/beaglev_ahead/vendor_ramdisk-debug.img
out/target/product/beaglev_ahead/dtbo.img           out/target/product/beaglev_ahead/vbmeta.img             out/target/product/beaglev_ahead/vendor_ramdisk-test-harness.img
out/target/product/beaglev_ahead/product.img        out/target/product/beaglev_ahead/vbmeta_system.img      out/target/product/beaglev_ahead/vendor_ramdisk.img
out/target/product/beaglev_ahead/ramdisk.img        out/target/product/beaglev_ahead/vendor-bootconfig.img
out/target/product/beaglev_ahead/super.img          out/target/product/beaglev_ahead/vendor.img

$ mkdir fastboot
$ cd out/target/product/beaglev_ahead/
$ cp u-boot-with-spl.bin bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img ../../../../../fastboot/

beaglev_connect

Figure 3. BeagleV Ahead Connection.

The main connections required to use the development board include power, serial port, USB, and display:

  • The serial port is mainly used for command interaction in U-boot and the kernel, and can be connected through the Debug RX and TX on the bottom of the board, with a baud rate of 115200.
  • The USB Device interface is mainly used for the connection of fastboot and adb tools.
  • The MIPI DSI/HDMI interface can be used to connect the screen to display the UI interface.

To perform a full system write, press the USB button on the development board and simultaneously press the reset button to enter the boot write mode.

Then use fastboot to write the system image. ADB and fastboot tools can be downloaded from the Android developer website: https://developer.android.com/tools/releases/platform-tools

#Program U-boot and initialize boot environment variables
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin

#Program various partitions
#In non-boot write mode, you can enter the command fastboot usb 0 on the uboot command line to write individual partitions separately.
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img 
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img

#Initialize metadata and misc partitions
fastboot erase metadata 
fastboot erase misc

After writing, reset and power on the board to enter the system boot mode. You can access the system command line through the serial port/ADB and interact with the system image interface through the touch screen or external HDMI display.

beaglev_aosp

Figure 4. Running AOSP main branch on BeagleV Ahead.

Lichee Pi 4A EVB

After downloading, you can build the system using the following commands:

source build/envsetup.sh
lunch lichee_pi_4a-userdebug
m -j

The compiled files are shown below, and the required files can be copied for use with Fastboot:

$ ls out/target/product/lichee_pi_4a/*img
out/target/product/lichee_pi_4a/boot.img           out/target/product/lichee_pi_4a/super_empty.img        out/target/product/lichee_pi_4a/vendor_boot-debug.img
out/target/product/lichee_pi_4a/cache.img          out/target/product/lichee_pi_4a/system.img             out/target/product/lichee_pi_4a/vendor_boot-test-harness.img
out/target/product/lichee_pi_4a/dtb.img            out/target/product/lichee_pi_4a/system_ext.img         out/target/product/lichee_pi_4a/vendor_boot.img
out/target/product/lichee_pi_4a/dtbo-unsigned.img  out/target/product/lichee_pi_4a/userdata.img           out/target/product/lichee_pi_4a/vendor_ramdisk-debug.img
out/target/product/lichee_pi_4a/dtbo.img           out/target/product/lichee_pi_4a/vbmeta.img             out/target/product/lichee_pi_4a/vendor_ramdisk-test-harness.img
out/target/product/lichee_pi_4a/product.img        out/target/product/lichee_pi_4a/vbmeta_system.img      out/target/product/lichee_pi_4a/vendor_ramdisk.img
out/target/product/lichee_pi_4a/ramdisk.img        out/target/product/lichee_pi_4a/vendor-bootconfig.img
out/target/product/lichee_pi_4a/super.img          out/target/product/lichee_pi_4a/vendor.img

$ mkdir fastboot
$ cd out/target/product/lichee_pi_4a/
$ mkdir fastboot
$ cp bootpart.ext4 boot.img super.img userdata.img vbmeta.img vbmeta_system.img vendor_boot.img ../../../../../fastboot/

licheepi4a_connect

Figure 5. Lichee Pi 4A EVB connect

The main connections required to use the development board include power, serial port, USB, and display:

  • The serial port is mainly used for command interaction in U-boot and the kernel, and can be connected through the U0-RX and U0-TX GPIO on the bottom of the board, with a baud rate of 115200.
  • The USB Device interface is mainly used for the connection of fastboot and adb tools.
  • The MIPI DSI/HDMI interface can be used to connect the screen to display the UI interface.

To perform a full system write, press the boot button on the development board and simultaneously press the reset button to enter the boot write mode.

Then use fastboot to write the system image. ADB and fastboot tools can be downloaded from the Android developer website: https://developer.android.com/tools/releases/platform-tools

#Program U-boot and initialize boot environment variables
fastboot flash ram u-boot-with-spl.bin
fastboot reboot
fastboot flash uboot u-boot-with-spl.bin

#Program various partitions
#In non-boot write mode, you can enter the command fastboot usb 0 on the uboot command line to write individual partitions separately.
fastboot flash bootpart bootpart.ext4
fastboot flash boot boot.img
fastboot flash vendor_boot vendor_boot.img
fastboot flash super super.img
fastboot flash userdata userdata.img
fastboot flash vbmeta vbmeta.img
fastboot flash vbmeta_system vbmeta_system.img

#Initialize metadata and misc partitions
fastboot erase metadata
fastboot erase misc

After writing, reset and power on the board to enter the system boot mode. You can access the system command line through the serial port/ADB and interact with the system image interface through the touch screen or external HDMI display.

licheepi4a_aosp

Figure 6. Running AOSP Mainline on Lichee Pi 4A

(If you need more optimized and stable system support, please contact us to obtain Android 12 version support. This version has a more complete system components and peripheral HAL support, adapted for GPU, VPU, Camera, Audio, NPU and other peripheral hardware, and has undergone more comprehensive XTS testing and stress testing. You can obtain relevant support through the "work order system" in the "About Us" section.)

Change list

2023/07/06

  • Release BeagleV Ahead development board Alpha support
  • Release Lichee Pi 4A EVB Alpha support

Contribute

This project accepts external contributions through Pull Requests. The following process can be referred to:

  1. Fork the modified repository into a personal account.
  2. Create a development branch named suitably for your work.
  3. Replace the project remote and revision with your own repository:
- <project path="device/thead/common" name="device-thead-common" revision="alpha_0_2_0" remote="thead" />
+ <project path="device/thead/common" name="device-thead-common" revision="alpha_0_2_0_xxx_support" remote="your_personal_remote" />
  1. All new work should be based on the corresponding development branch.
  2. When creating a submission, ensure that the changes are as independent and complete as possible, and provide appropriate submission messages.
  3. It is recommended to include relevant unit test results when making changes.
  4. Push the development branch to your personal repository fork on Github.
  5. Create a Github Pull Request for the corresponding development branch. If the submission is for a bug fix, link it to the issue in the issue tracker.

Releated link

The issue tracker for this project (for Android related issues on the Development Board, please submit to this tracker):

https://gitee.com/thead-android/thead-android/issues

Other open source software projects by Flathead Brother can be accessed through the following links:

T-HEAD Yocto Linux: https://gitee.com/thead-yocto

YoC Open: https://gitee.com/yocop

If you want to learn more about TH1520 and Wujian 600 platform, please visit:

https://xuantie.t-head.cn/product/wujian/4080405462988689408

If you want to learn more about the dynamic support of RISC-V architecture on Android, you can subscribe to the RISC-V Android SIG mailing list and participate in community discussions:

https://lists.riscv.org/g/sig-android

If you have any questions about Android support for RISC-V architecture, you can submit them to the generic issue tracker for Android-riscv64:

https://github.com/google/android-riscv64/issues

License

We do not require any formal copyright assignment or contributor license agreement. Any contributions intentionally sent upstream are presumed to be offered under terms of the OSI-approved Apache License 2.0. See LICENSE file for details.

About Us

This repository is maintained by Alibaba T-Head.

If you need technical support, you can submit a work order through OCC: https://occ.t-head.cn/people/workorder-submit.

You can also contact us through the following ways: E-mail: [email protected]

More Repositories

1

wujian100_open

IC design and development should be faster,simpler and more reliable
Verilog
1,799
star
2

openc910

OpenXuantie - OpenC910 Core
Verilog
1,045
star
3

openc906

OpenXuantie - OpenC906 Core
Verilog
284
star
4

opene902

OpenXuantie - OpenE902 Core
Verilog
123
star
5

opene906

OpenXuantie - OpenE906 Core
Verilog
120
star
6

csi-nn2

An optimized neural network operator library for chips base on Xuantie CPU.
C
74
star
7

riscv-matrix-extension-spec

A matrix extension proposal for AI applications under RISC-V architecture
TeX
63
star
8

open-yoc

"Yun", aka cloud, On Chip (YoC) is based on AliOS Things for Xuantie RISC-V CPU with components optimized for bluetooth, WiFi, voice, vision applications and etc.
C
40
star
9

xuantie-yocto

Yocto project for Xuantie RISC-V CPU
C
37
star
10

linux

Linux kernel source tree
C
37
star
11

buildroot

Buildroot customized for Xuantieâ„¢ RISC-V CPU
Roff
37
star
12

open_source_ISP

C++
37
star
13

thead-extension-spec

T-head vendor extension Instruction Set spec
Makefile
27
star
14

opensbi

C
14
star
15

binutils-gdb

Binutils/GDB for Xuantie RISC-V CPU, a collection of binary tools.
9
star
16

newlib

Newlib for Xuantie RISC-V CPU, a lightweight C library for embedded systems.
C
8
star
17

hgai-open

hgai-open
8
star
18

riscv-art

C++
8
star
19

u-boot

C
8
star
20

glibc

GNU project's implementation of the standard C library(with Xuantie RISC-V CPU support).
C
7
star
21

riscv-bionic

Objective-C
5
star
22

zero_stage_boot

C
4
star
23

xuantie-secure-system-image-release

C
2
star
24

npu-ax3386-kernel

C
2
star
25

fota

C
1
star
26

d1_adbd

C
1
star
27

baremetal-drivers

C
1
star
28

vi-kernel

C
1
star
29

xtensa_dsp

C
1
star
30

vpu-vc8000e-kernel

C
1
star
31

csi_hal

C
1
star
32

light-images-proprietary

C
1
star
33

gpu_bxm_4_64-kernel

C++
1
star