Jump to content

Recommended Posts

Posted

Hello,

i just bought the H96 MAX V56 with android 12 and 8gb of ram.

I would like to put a fresh firmware but i would like to keep a similar handy interface and with google play installed.

Any easy way to do that?

Thanks!

Posted

@ArmeBian  Google play is an android feature.  Armbian is linux not android.  You are asking your question in the wrong place.  You should either be asking in an android forum somewhere, or ask the manufacturer for their plans to support the hardware you purchased with updates.

Posted (edited)

HI Everyone 😁

 

I am pretty interesting in the TV box powered by RK3566 at this moment. I would like to know whether if the Rockchip uints has the multiboot function, similar to what the Amlogic units have. Also would like to know about the current supports on media (such as 4K 60p playback) and 3D hardware acceleration in Armbian for the Rockchip TV boxes. Can the Chromium in the Armbian supports hardware decoding or even AV1 for now or in near future?

 

Thanks for answering my question in advance😁

Edited by wyim
Posted (edited)

Quick answer is NO to all your questions. This chip is pretty good in linux but a low performance one. Your goal is for an rk3588.

Edited by maka
Posted

@wyim go for an RK3588 in a Supported Board like orange pi

if you find a tv box that already has the application running linux,
android is easier to apply,
if the box does not run linux stay away, it doesn't matter if it is rk3588

Posted (edited)

can someone describe in a few steps how I can cook myself a flashable ROM for H96 Max v56?
I already realized that due to the lack of an SD slot, only the RK Dev tools can be used, but it can only handle images in android format (partitions).
Thanks.

Edited by paradigman
Posted

@hotnikq: thanks for the encouraging words, but this is too little information for a beginner. I would like to get involved in this project, I would test images and functions, but first I need the basic information. The "shaggy013" link is not accessible, even with registration. However, I found out that building a FIT image requires a .its file and a kernel file.

Posted (edited)

dear @paradigman welcome to Armbian comunity, here people from all around the world share knowleadge about armbian and only ARM BIAN.
So everythin that we do without the armbian standart wont get any help from comunity.

https://docs.gitlab.com/ee/ci/quick_start/

 

 

you can compile a Linux FIT Image using  GitLab CI/CD pipeline
this is an unofficial way and it doesn't have anything about armbian.


THIS IS AN EXAMPLE HOW YOU CAN BUILD IT:
https://gitlab.com/hotnikq/quartz64_ci/-/blob/main/.gitlab-ci.yml

THIS IS THE ORIGINAL VERSION:
https://gitlab.com/pgwipeout/quartz64_ci/-/blob/main/.gitlab-ci.yml
 

 

Quote
image: ubuntu:20.04

stages:
  - build
  - image
  - deploy

before_script:
    - apt update

kernel-job:
  stage: build
  script:
      - mkdir artifacts
      - mkdir modules
      - export INSTALL_MOD_PATH=$PWD/modules
      - apt install -y build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev wget time xz-utils device-tree-compiler kmod
      - md5sum --check gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc
      - tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
      - export ARCH=arm64
      - export CROSS_COMPILE=aarch64-none-linux-gnu-
      - export PATH="$PWD/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin":$PATH
      - export BRANCH="${UPSTREAM_BRANCH:-main}"
      - echo "Building branch - $BRANCH"

      - wget -q https://gitlab.com/hotnikq/linux-next/-/archive/$BRANCH/linux-next-$BRANCH.tar.gz
      - tar -xf linux-next-$BRANCH.tar.gz
      - cd linux-next-$BRANCH
      - cp ../quartz64_defconfig arch/arm64/configs/quartz64_defconfig
      - make quartz64_defconfig
      - make -j$(nproc)
      - cp arch/arm64/boot/Image ../artifacts/
      - cp arch/arm64/boot/dts/rockchip/rk356*.dtb ../artifacts/
      - make modules_install
      - cd ../modules
      - tar -czf kernel-modules.tar.gz lib
      - cp kernel-modules.tar.gz ../artifacts/
  artifacts:
    when: always
    expire_in: 4 hours
    paths:
      - artifacts/

u-boot-job:
  image: python
  stage: build
  script:
      - mkdir artifacts
      - apt install -y build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev wget time xz-utils device-tree-compiler kmod
      - python3 -m pip install pyelftools
      - md5sum --check gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc
      - tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
      - export CROSS_COMPILE=aarch64-none-linux-gnu-
      - export PATH="$PWD/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin":$PATH
      - export BRANCH="${UPSTREAM_BRANCH_UBOOT:-quartz64}"
      - echo "Building branch - $BRANCH"

      - wget -q https://gitlab.com/hotnikq/u-boot-rockchip/-/archive/$BRANCH/u-boot-rockchip-$BRANCH.tar.gz
      - wget -q https://github.com/JeffyCN/rockchip_mirrors/archive/refs/heads/rkbin.zip
      - tar xf u-boot-rockchip-$BRANCH.tar.gz
      - unzip -q rkbin.zip
      - mv rockchip_mirrors-rkbin rkbin
      - cd u-boot-rockchip-$BRANCH
      - make rk3566-quartz64_defconfig
      - ./make.sh
      - ./tools/resource_tool --pack arch/arm/dts/rk3566-quartz64.dtb
      - cp idblock.bin ../artifacts/
      - cp uboot.img ../artifacts/
      - cp resource.img ../artifacts/
      - cp rk356x_spl_loader_*bin ../artifacts/
  artifacts:
    when: always
    expire_in: 4 hours
    paths:
      - artifacts/

u-boot-mainline-job:
  image: python
  stage: build
  script:
      - mkdir -p artifacts/mainline-u-boot
      - apt install -y build-essential gcc bc bison flex libssl-dev libncurses5-dev libelf-dev wget time xz-utils device-tree-compiler kmod
      - python3 -m pip install pyelftools
      - md5sum --check gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc
      - tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
      - export CROSS_COMPILE=aarch64-none-linux-gnu-
      - export PATH="$PWD/gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu/bin":$PATH
      - export BRANCH="${UPSTREAM_BRANCH_UBOOT:-quartz64}"
      - echo "Building branch - $BRANCH"

      - wget -q https://gitlab.com/pgwipeout/u-boot-quartz64/-/archive/$BRANCH/u-boot-quartz64-$BRANCH.tar.gz
      - wget -q https://github.com/JeffyCN/rockchip_mirrors/blob/6186debcac95553f6b311cee10669e12c9c9963d/bin/rk35/rk3568_bl31_v1.28.elf?raw=true -O rk3568_bl31_v1.28.elf
      - wget -q https://github.com/JeffyCN/rockchip_mirrors/blob/47404a141a1acb7555906b5e3b097b5f1045cc21/bin/rk35/rk3568_ddr_324MHz_v1.11.bin?raw=true -O rk3568_ddr_324MHz_v1.11.bin
      - tar xf u-boot-quartz64-$BRANCH.tar.gz
      - mv rk3568_bl31_v1.28.elf u-boot-quartz64-$BRANCH/bl31.elf
      - mv rk3568_ddr_324MHz_v1.11.bin u-boot-quartz64-$BRANCH/ram_init.bin
      - cd u-boot-quartz64-$BRANCH

      - echo "Building Quartz64-A"
      - make quartz64-a-rk3566_defconfig
      - make
      - cp idbloader.img ../artifacts/mainline-u-boot/quartz64-a-idbloader.img
      - cp u-boot.itb ../artifacts/mainline-u-boot/quartz64-a-u-boot.itb

      - echo "Building Pinenote"
      - make pinenote-rk3566_defconfig
      - make
      - cp idbloader.img ../artifacts/mainline-u-boot/pinenote-idbloader.img
      - cp u-boot.itb ../artifacts/mainline-u-boot/pinenote-u-boot.itb

      - echo "Building evb-rk3568"
      - make evb-rk3568_defconfig
      - make
      - cp idbloader.img ../artifacts/mainline-u-boot/evb-rk3568-idbloader.img
      - cp u-boot.itb ../artifacts/mainline-u-boot/evb-rk3568-u-boot.itb

  artifacts:
    when: always
    expire_in: 4 hours
    paths:
      - artifacts/

buildroot-job:
  stage: build
  script:
    - mkdir artifacts
    - export WORK_DIR=$PWD
    - apt install -y build-essential wget file cpio git unzip bc rsync python3
    - md5sum --check gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz.asc
    - tar xf gcc-arm-10.2-2020.11-x86_64-aarch64-none-linux-gnu.tar.xz
    - wget -q https://buildroot.org/downloads/buildroot-2021.02.1.tar.gz
    - tar xf buildroot-2021.02.1.tar.gz
    - cp buildroot_config buildroot-2021.02.1/.config
    - cd buildroot-2021.02.1
    - |
        make > >(tee build.log |grep '>>>') 2>&1 || {
            echo 'Failed build last output'
            tail -200 build.log
            exit 1
        }
    - cp output/images/rootfs.cpio.zst ../artifacts/

  artifacts:
    when: always
    expire_in: 4 hours
    paths:
      - artifacts/

build-image-job:
  stage: image
  script:
    - mkdir tmp
    - mkdir -p artifacts/images
    - ls -al ./
    - find artifacts/
    - DEBIAN_FRONTEND="noninteractive" TZ="America/New_York" apt-get -y install tzdata
    - apt install -y build-essential dosfstools e2fsprogs util-linux coreutils parted libfdisk-dev libfuse-dev fusefat wget unzip pkg-config
    - wget -q https://github.com/phf/partfs/archive/refs/heads/develop.zip
    - unzip -q develop.zip
    - cd partfs-develop
    - make
    - cd ..
    - wget -q https://deb.debian.org/debian/dists/buster/main/installer-arm64/current/images/netboot/SD-card-images/partition.img.gz
    - gzip -d partition.img.gz
    - fusefat -o rw+ partition.img tmp

    - for IMAGE_NAME in $(ls artifacts/ | grep 'rk356.*dtb') ; do
        echo "Bulding image for $IMAGE_NAME" ;
        mkdir part efi ;
        fallocate -l 1G image.img ;
        parted -s image.img mklabel gpt ;
        parted -s image.img unit s mkpart loader 64 8MiB ;
        parted -s image.img unit s mkpart uboot 8MiB 16MiB ;
        parted -s image.img unit s mkpart env 16MiB 32MiB ;
        parted -s image.img unit s mkpart resource 32MiB 64MiB ;
        parted -s image.img unit s mkpart efi fat32  64MiB 256MiB ;
        parted -s image.img unit s mkpart boot ext4  256MiB 768MiB ;
        parted -s image.img unit s mkpart root ext4  768MiB 100% ;
        parted -s image.img set 5 esp on ;
        parted -s image.img set 6 legacy_boot on ;
        ./partfs-develop/partfs -o dev=image.img part ;
        mkfs.vfat -n "efi" part/p5 ;
        mkfs.ext4 -L "boot" part/p6 ;
        mkfs.ext4 -L "rootfs" part/p7 ;
        tune2fs -o journal_data_writeback part/p7 ;
        dd if=artifacts/idblock.bin of=part/p1 ;
        dd if=artifacts/uboot.img of=part/p2 ;
        fusefat -o rw+ part/p5 efi ;
        cp tmp/INITRD.GZ efi/ ;
        mkdir efi/extlinux ;
        cp extlinux/extlinux.conf efi/extlinux/extlinux.conf ;
        sed -i s/REPLACE_ME.DTB/$IMAGE_NAME/ efi/extlinux/extlinux.conf ;
        mkdir -p efi/dtbs/rockchip ;
        cp artifacts/Image efi/vmlinuz;
        cp artifacts/$IMAGE_NAME efi/dtbs/rockchip/ ;
        cp artifacts/kernel-modules.tar.gz efi/ ;
        cp artifacts/rootfs.cpio.zst efi/ ;
        cp efi/extlinux/extlinux.conf artifacts/$IMAGE_NAME-extlinux.conf ;
        fusermount -u efi ;
        fusermount -u part ;
        xz image.img ;
        cp image.img.xz artifacts/images/$IMAGE_NAME.img.xz ;
        rm -rf efi part image.img.xz ;
      done

    - echo "Building Quartz64-A Mainline Image"
    - xzcat artifacts/images/rk3566-quartz64-a.dtb.img.xz > artifacts/images/rk3566-quartz64-a-mainline-u-boot.img
    - dd if=artifacts/mainline-u-boot/quartz64-a-idbloader.img of=artifacts/images/rk3566-quartz64-a-mainline-u-boot.img conv=notrunc seek=64
    - dd if=artifacts/mainline-u-boot/quartz64-a-u-boot.itb of=artifacts/images/rk3566-quartz64-a-mainline-u-boot.img conv=notrunc seek=16384
    - xz artifacts/images/rk3566-quartz64-a-mainline-u-boot.img

#    - echo "Building Pinenote Mainline Image"
#    - xzcat artifacts/images/rk3566-pinenote.dtb.img.xz > artifacts/images/rk3566-pinenote-mainline-u-boot.img
#    - dd if=artifacts/mainline-u-boot/pinenote-idbloader.img of=artifacts/images/rk3566-pinenote-mainline-u-boot.img conv=notrunc seek=64
#    - dd if=artifacts/mainline-u-boot/pinenote-u-boot.itb of=artifacts/images/rk3566-pinenote-mainline-u-boot.img conv=notrunc seek=16384
#    - xz artifacts/images/rk3566-pinenote-mainline-u-boot.img

  artifacts:
    when: always
    expire_in: 4 hour
    paths:
      - artifacts/

merge-job:
  stage: deploy
  script:
    - df -h
    - ls -al ./
    - ls -al artifacts/

  artifacts:
    when: always
    expire_in: 30 days
    paths:
      - artifacts/

 

 

Edited by hotnikq
Posted (edited)
On 4/26/2023 at 1:11 AM, paradigman said:

The "shaggy013" link is not accessible


THIS IS THE SHAGGY013  Original Post:
and this is the method that i used to compile my image.

 

Quote

*** ADDED ***
Added buildconfigs for other pine boards with a rk356x  PineNote ,Quartz64-b and Soquartz
!!! DTS files not included only added a pinenote dts the soquartz and quartz64-b are just quartz64-a dts !!
so if you got a dts for dowmstream kernel bards you can add them

so instead of

quartz64-rk3566-buildroot-k4.mk
 you do
quartz64b-rk3566-buildroot-k4.mk        For building a Quartz64-B image
or
pinenote-rk3566-buildroot-k4.mk         For Building a Pinenote image
or
soquartz-rk3566-buildroot-k4.mk         For building a Soquartz image

and same for

quartz64-rk3566-raw-k4.mk

quartz64b-rk3566-raw-k4.mk        For building a Quartz64-B  SD-image
or
pinenote-rk3566-raw-k4.mk         For Building a Pinenote SD-image
or
soquartz-rk3566-raw-k4.mk         For building a Soquartz SD-image


*Needed*

Time
Ubuntu 18.04 or 20.04
at least 200+GB of free space (yeah it likes to grow maybey more)

*Building*

#Packages Needed on pc

sudo apt-get install repo git ssh make gcc libssl-dev liblz4-tool \
expect g++ patchelf chrpath gawk texinfo chrpath diffstat binfmt-support \
qemu-user-static live-build bison flex fakeroot cmake gcc-multilib g++-multilib \
unzip device-tree-compiler python-pip ncurses-dev python-pyelftools

*Download BSP*

#make bsp/sdk folder

mkdir Quartz64

#go to Quartz64 folder

cd Quartz64

# make .repo folder

mkdir .repo

#go to .repo folder

cd .repo

#download repo

git clone https://github.com/rockchip-linux/repo
or
git clone https://gerrit.googlesource.com/git-repo repo

#make repo executable

chmod a+rx repo/repo

#go back

cd ..

# Download repo manifest

.repo/repo/repo init -u https://github.com/Shaggy013/manifests -b master -m rk356x_linux_custom_v1.2.8_20220309.xml

# Dowload bsp/sdk

.repo/repo/repo sync --no-clone-bundle

***** trouble ****
if it gives trouble about github account
https://elinux.org/Buildroot_how_to_contribute
configure section
**** only by trouble ****

Now you see that your Quartz64 folder is full with new folders and files
your Download is finished

*Building*

There are 4 distros you can build Buildroot,Debian,Ubuntu and Yocto
You can choose to make the distro against the 4.19 or 5.10 kernel

First you choose wich kernel

#for 4.19

./build.sh quartz64-rk3566-buildroot-k4.mk

#or 5.10

./build.sh quartz64-rk3566-buildroot-k5.mk

For the first time you have to do it twice the first time can give a error

you see something like this

***** example ****
processing option: quartz64-rk3566-buildroot-k4.mk
link kernel to proper kernel-directory
renew kernel to proper kernel-directory
link kernel 4
link Debian to proper Debian-distro
renew Debian to proper Debian-Distro
link debian to bullseye or buster
link kernel 4
switching to board: /home/thc013/corner/Quartz64-release/device/rockchip/rk356x/quartz64-rk3566-buildroot-k4.mk

****** example ****

so now you bsp is set to the right options

You have multiple options but you have to make a uboot,kernel and recovery and a rootfs so the best start is just as a base for the later buiding of distros

# build all (uboot,kernel,recovery,rootfs"buildroot",rockchip image) / AKA BUILDROOT

./build.sh

**Info**
For the 4.19 kernel you get after a few minutes a blue screen where you have to give the right voltage for the io-domains
watch carefull some domains are not asked
the domain info comes from the schematic or the dts file

pmuio1-supply = <&vcc3v3_pmu>; not asked
pmuio2-supply = <&vcc_3v3>;
vccio1-supply = <&vccio_acodec>; 3,3
vccio2-supply = <&vcc_1v8>; not asked
vccio3-supply = <&vccio_sd>; 3,3
vccio4-supply = <&vcca1v8_pmu>;
vccio5-supply = <&vcc_3v3>;
vccio6-supply = <&vcc1v8_dvp>;
vccio7-supply = <&vcc_3v3>;
After that the buildroot will start the rest of the building
****

Depening on the speed of your pc it takes from a hour to ?
so after some coffee and some heat for the cold weather you get

Now it build a rockhip image DO NOT FLASH TO SD !!!!!!!!

Make buildroot image ok!
..../Quartz64/rockdev/pack/QUARTZ64-RK3566-BUILDROOT-K4-GPT-!DATE!-2137.img

Now it builds a rockhip image DO NOT FLASH TO SD !!!!!!!!

#change to the SD/EMMC IMAGE option

.#for 4.19

./build.sh quartz64-rk3566-raw-k4.mk

#or 5.10

./build.sh quartz64-rk3566-raw-k5.mk

#Build image

./build.sh rawimg

***Info ***
Make raw image ok!
..../Quartz64/rockdev/pack/QUARTZ64-RK3566-RAW-K4-GPT-!DATE!-2137.img

Now you can flash that image RAW to a sd or EMMC with your desired tool Etcher,dd etc

*****

Now you can build a Debian or a Yocto image

**** DEBIAN ******

#for 4.19

./build.sh quartz64-rk3566-buildroot-k4.mk

#or 5.10

./build.sh quartz64-rk3566-buildroot-k5.mk

!!
before building you have to install extra packages they differ from ubuntu and debian so you have to install or overwrite them first

sudo apt-get install binfmt-support qemu-user-static
sudo dpkg -i ubuntu-build-service/packages/*
sudo apt-get install -f


# build Debian rootfs

./build.sh debian

Now it build a rockhip image DO NOT FLASH TO SD !!!!!!!!

#change to the SD/EMMC IMAGE option

.#for 4.19

./build.sh quartz64-rk3566-raw-k4.mk

#or 5.10

./build.sh quartz64-rk3566-raw-k5.mk

#Build image

./build.sh rawimg

***Info ***
Make raw image ok!
..../Quartz64/rockdev/pack/QUARTZ64-RK3566-RAW-K4-GPT-!DATE!-2137.img

Now you can flash that image RAW to a sd or EMMC with your desired tool Etcher,dd etc

Same as rest /Quartz64/rockdev/pack/

**** Ubuntu ******

#for 4.19

./build.sh quartz64-rk3566-buildroot-k4.mk

#or 5.10

./build.sh quartz64-rk3566-buildroot-k5.mk

!!
before building you have to install extra packages they differ from ubuntu and debian so you have to install or overwrite them first

sudo apt-get install binfmt-support qemu-user-static
sudo dpkg -i ubuntu-build-service/packages/*
sudo apt-get install -f

# build Ubuntu rootfs

./build.sh ubuntu

*** This build option ask after a few minutes the keyboard and region settings ****

Now it build a rockhip image DO NOT FLASH TO SD !!!!!!!!

#change to the SD/EMMC IMAGE option

.#for 4.19

./build.sh quartz64-rk3566-raw-k4.mk

#or 5.10

./build.sh quartz64-rk3566-raw-k5.mk

#Build image

./build.sh rawimg

***Info ***
Make raw image ok!
..../Quartz64/rockdev/pack/QUARTZ64-RK3566-RAW-K4-GPT-!DATE!-2137.img

Now you can flash that image RAW to a sd or EMMC with your desired tool Etcher,dd etc

Same as rest /Quartz64/rockdev/pack/



***** YOCTO *****
!!! Yocto can take a time to build the toolchain has also clang etc included !!!

#for 4.19

./build.sh quartz64-rk3566-buildroot-k4.mk

#or 5.10

./build.sh quartz64-rk3566-buildroot-k5.mk

# build Debian rootfs

./build.sh yocto

Now it build a rockhip image DO NOT FLASH TO SD !!!!!!!!

#change to the SD/EMMC IMAGE option

.#for 4.19

./build.sh quartz64-rk3566-raw-k4.mk

#or 5.10

./build.sh quartz64-rk3566-raw-k5.mk

#Build image

./build.sh rawimg

***Info ***
Make raw image ok!
..../Quartz64/rockdev/pack/QUARTZ64-RK3566-RAW-K4-GPT-!DATE!-2137.img

Now you can flash that image RAW to a sd or EMMC with your desired tool Etcher,dd etc

Same as rest /Quartz64/rockdev/pack/

***** BUILD OPTIONS ****

Available options:

*.mk              -switch to specified board config
launch              -list current SDK boards and switch to specified board config
uboot              -build uboot
spl                -build spl
loader            -build loader
kernel            -build kernel"
modules            -build kernel modules
modules2          -build kernel modules to rockdev/pack/modules *added*
toolchain          -build toolchain
extboot            -build extlinux boot.img, boot from EFI partition
rootfs            -build default rootfs, currently build buildroot as default
buildroot          -build buildroot rootfs
ramboot            -build ramboot image
multi-npu_boot    -build boot image for multi-npu board
yocto              -build yocto rootfs
debian            -build debian 9 or 10 rootfs !! set in config !! !! only bullseye included
ubuntu            -build Ubuntu 20.04 rootfs !! set in config !! !! only focal included
pcba              -build pcba not tested
recovery          -build recovery
all                -build uboot, kernel, rootfs, recovery image
cleanall          -clean uboot, kernel, rootfs, recovery
firmware          -pack all the image we need to boot up system
updateimg          -pack update image not tested
rawimg            -pack raw image
otapackage        -pack ab update otapackage image (update_ota.img) not tested
sdpackage          -pack update sdcard package image (update_sdcard.img) not tested
save              -save images, patches, commands used to debug
allsave            -build all & firmware & updateimg & save
check              -check the environment of building
info              -see the current board building information
app/<pkg>          -build packages in the dir of app/*
external/<pkg>    -build packages in the dir of external/*

**** Examples ****

For if you made changes to uboot or the kernel
buildroot is another story

#u-boot

./build.sh uboot

#kernel

./build.sh kernel

#recovery

./build.sh recovery


***** Making modules from the kernel ****
it can be that you want to copy or have some kernel modules to copy to your image

./build.sh modules2

makes in the folder rockdev/pack/modules the kernel-modules

**********************************************************************************************************************

****** TESTS ******

the distros all contain a folder rockchip test with some simple demos and test even a benchmark

cd ~/rockchip_test

# some test options

./rockhip_test.sh

The npu video and gpu are most fun

********

ddr test :                  1 (memtester & stressapptest)
cpufreq test:              2 (cpufreq stresstest)
????flash stress test:          3
# not working # bluetooth test:      4 (bluetooth on&off test)
# not working # audio test:          5
recovery test:              6 (default wipe all)
suspend_resume test:        7 (suspend & resume)
wifi test:                  8
ethernet test:              9
auto reboot test:          10
ddr freq scaling test       11
#not working # npu test              12
npu2 test                  13 (rk356x or rk3588)
??? camera test                14 (use rkisp_demo)
video test                  15 (use gstreamer-wayland and app_demo)
gpu test                            16 (use glmark2)
# not working# chromium test          17 (chromium with video hardware acceleration)"
nand power lost test:       18

*****

************ Last Info ******

That is almost step for step i hope
it just started with a dts and boardconfig but got a little bigger
if i made any faults or i missed something please let me know
no debug program just plain doing diff,reading(there is a lot),copy paste and some simple adjustments to make it work for me
well it was something diffrent as making a custom limo os for the limo M1 360 from vodafone in 2009 (got first to root cdc_nand) gone glory
the sources and info you can all find them on google and github and gitlab

so no OFFICIAL ROCKCHIP or QUARTZ64 JUST !!CUSTOM!!


I will include download links with the images it compiles

and to make it work for another 3566 or 68 just make a boardconfig.mk in ?/Quartz64/device/rockchip/rk356x/
and make sure the defconfigs and dts are inthe right places
well at least it gets you on the way

SPECIAL THNX TO quartz64 chat , my free time ,a quartz64 too stay still alive ,ryzen 3700x+5700xt to keep me warm,20TB nas for the space,R.I.P sd (2),touchscreen,monitor and OPI4 (well the opi semi dead dont fuss with the fusb32 in uboot )

 

  

On 11/21/2022 at 11:04 PM, hotnikq said:

SDK Used into this Build:

SDK 4.19.219 LINUX to RK3566 H96 MAX

Please, Use a debug Tool TTL UART
Baud rate: 1500000

Data bit: 8

Stop bit: 1

Parity check: none

Flow control: none
☑️ CP2104 TTL Tested!
☑️ CP2102 TTL Tested!
☑️ CP210X TTL Tested!

 

  

On 11/21/2022 at 11:04 PM, hotnikq said:

 

 

 

Edited by hotnikq
Posted

@hotnikq: many thanks for sharing this content, many people will benefit from it!
Just so that even a beginner can have a sense of success, why not share the last image you compiled? I saw you had pretty good results with the last one. Just to make people want to go through the 219 steps described by shaggy013.

Posted (edited)
On 11/21/2022 at 11:04 PM, hotnikq said:

Release Version v0.3 BETA
 No Video out (device tree bad arg)
 No Virtualization (kernel config)
 No Docker (kernel capability)
H96 MAX RK3566 Board V56
Kernel 4.19.219
Linux FIT Image Rockchip EMMC
Ubuntu 20.04 LTS
This image has been compiled without any standardization and should be used for experimental purposes only,
there is no guarantee of compatibility with your device

Download Link: Removed due to kernel 4 deprecated 👈

Download Link: Removed due to kernel 4 deprecated 👈

 

 

@paradigman this is the last image i have ben done...
this device is used for storage propose, online since 11/21/2022 as a nextcloud and jellyfin provider.
i can access it by proxy tunnel from cloudflare with https SSL...
 

Edited by hotnikq
Posted
On 11/11/2022 at 1:06 PM, hotnikq said:

I already spent 30 days and more than 3240,00$ dollars man machine running this debug system, I will visit this topic only sometimes, I want another user to continue this project.

a Bad thing is that The kernel supplied by Rockchip 4.19 for the RK3566 is too crippled to run Docker.

here a screenshot of the USB HUB 3.0 on port 3.0

Ugreen 4 in 1 USB 3.0 Hub
2x SATA TO USB 3.0 CONVERTER


/dev/sda:
 Timing cached reads:   1816 MB in  2.00 seconds = 907.91 MB/sec
 Timing buffered disk reads: 576 MB in  3.00 seconds = 191.75 MB/sec
ubuntu@localhost:~$ sudo hdparm -tT /dev/sdb

/dev/sdb:
 Timing cached reads:   1840 MB in  2.00 seconds = 920.41 MB/sec
 Timing buffered disk reads: 532 MB in  3.01 seconds = 176.97 MB/sec

 



USBHUB-SATA.jpg886eb958-7588-4809-a7b3-f8f71e5f04fa.jpgWhats-App-Image-2022-11-11-at-13-11-29.j

 

 

@paradigman

I believe that your engagement in this Chinese device will bring us a new compilation with kernel 6 and docker support
 

Posted
On 1/31/2023 at 8:48 PM, thc013 said:

@maka if you think every box is the same your complete wrong !!! only the t95 ,tr43 and x96 have box-demo as base dts  so and it is not fully supported there is still no npu in mainline and video decoding is nah it works thats it

 

@mmie4jbcu the x88 is based on the rk3566-evb5-lp4x-v10 so a board with a io-domain from a rk809 will do such as indeed a m2 from firefly but for making a proper dts compare it downstream with a rk3566-evb5-lp4x-v10. and the factory dtb has 2 dts files use the second

 

@hotnikq  some people as @tmm1 give you a very good hint wich is the base dts ;) 

and a decompiled dts is not a proper dts it is a start , and what you now got is nothing

and if you looked around you see there is also a android 12 image for your box with a little updated dts and is easy to compare to the armbian legacy build just decompile the dtb of rk3566-evb3-ddr3-v10 and compare it against the decompiled of the android 12 image .

ow and the h96 factory dtb has 2 dts files one with a tcs4525 config and the other has a sti8070 so check your pcb wich it has .

wonder what the dmesg says about the included dtb :)

 

ow btw it is thc013 aka shaggy013 🤗

 

 

 

@paradigman that's the path indicated by the proper  shaggy013  for you to follow

Posted (edited)
On 11/11/2022 at 1:06 PM, hotnikq said:

886eb958-7588-4809-a7b3-f8f71e5f04fa.jpg

 

@mvpwar

@Kenneth Hidalgo

 

I will retire my tv box in August 2023,

my H96 V56 HDD USB3 kernel 4.19 system will be replaced,

I will be using my Jellyfin and nextcloud on an SBC NVME Pci-e,

with kernel 6, docker and everything else, inside my RADXA Rock 3A,

I have Rock 3A at hand as an Manjaro multimedia "yes it works" for a year but has been fully replaced by samsung tizen.

so, in august 2023, I'll solder the debug TTL again on H96 V56. 

hope to have time to resume development within armbian standards

can you provide me the Device Tree of your android 12 devices?

@paradigman

with a dts and is easy to compare to the armbian legacy build

just decompile the dtb of rk3566-evb3-ddr3-v10 and compare it against the decompiled of the android 12 image

@thc013 did you know how to extract DTS from android 12? 

I believe I haven't made this comparison yet because I couldn't access it from android 12 

https://drive.google.com/file/d/1Dtz8gbyx7sCCFPp1YKkXQav6ZA9POWTx/view?usp=sharing
can someone post here so i can start work sooner.....

https://github.com/armbian/linux-rockchip/blob/rockchip-5.10/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10.dtsi

https://github.com/armbian/linux-rockchip/blob/rockchip-5.10/arch/arm64/boot/dts/rockchip/rk3566-evb3-ddr3-v10-linux.dts
https://github.com/armbian/linux-rockchip/blob/rockchip-5.10/arch/arm64/boot/dts/rockchip/rk3566-rk817-eink-w103.dts
https://github.com/armbian/linux-rockchip/blob/rockchip-5.10/arch/arm64/boot/dts/rockchip/rk3566-rk817-eink-w6.dts

https://github.com/armbian/linux-rockchip/blob/rockchip-5.10/arch/arm64/boot/dts/rockchip/rk3566-rk817-eink.dts


maybe a 5.1 kernel for this board is already too good


 @Piotr @Andyshrk
https://lkml.org/lkml/2022/11/4/454

 

https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts

 

or kernel 6.....

 

 

 

Edited by hotnikq
Posted (edited)

Here we are...
Downloaded the Android 12 ROM
and applyed the Magisc Patched boot.img
With RKDevTool_Release_v2.86

android 12 use a different Header  @thc013

no DTB files on  /dev/dtb

just an dtbo.img
That dtbo has three DTBs in it, preceeded by that new 128 byte header.
It appears to all be overlays. I don't know much about that.
that says:
androidboot.boot_devices=fe310000.sdhci,fe330000.nandc 

https://source.android.com/docs/core/architecture/bootloader/boot-image-header?hl=pt-br#header-v4

 

 

Let's try dtbview.exe "from Renate Teamblast"

 

C:\>dtbview dtbo.img > big.txt

 

Result:

 

Quote

000000  Android header
000040  Header
000078  / {
000080     fragment@0 {
000090        target = < 0xffffffff >;
0000a0        __overlay__ {
0000b0           bootargs_ext = "androidboot.boot_devices=fe310000.sdhci,fe330000.nandc";
0000f4        }
0000f8     }
0000fc     fragment@1 {
00010c        target = < 0xffffffff >;
00011c        __overlay__ {
00012c           mode-bootloader = < 0x5242c309 >;
00013c           mode-charge = < 0x5242c30b >;
00014c           mode-fastboot = < 0x5242c303 >;
00015c           mode-loader = < 0x5242c301 >;
00016c           mode-normal = < 0x5242c300 >;
00017c           mode-recovery = < 0x5242c303 >;
00018c        }
000190     }
000194     __fixups__ {
0001a4        chosen = "/fragment@0:target:0";
0001c8        reboot_mode = "/fragment@1:target:0";
0001ec     }
0001f0  }
0001f4  End
0001f8  Strings

 

so, i try the imgutil:

 

Result: Brute DTB
dtb

 

Quote

imgutil /x boot.img dtb

Header2:        1,660 (0000067c)
Kernel:    32,425,992 (01eec808) 00000800
Ramdisk:    1,344,493 (001483ed) 01eed800
Second:     6,543,360 (0063d800) 02036000
DTB:          268,304 (00041810) 02673800
Command: console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 androidboot.console=ttyFIQ0 androidboot.wificountrycode=XS androidboot.hardware=rk30board androidboot.boot_devices=fe310000.sdhci,fe330000.nandc androidboot.selinux=permissive buildvariant=userdebug
Read ramdisk, 13 files

 

Extracted Kernel:
Android 12 Kernel
 

Quote

imgutil /x boot.img /V kernel
Header2:        1,660 (0000067c)
Kernel:    32,425,992 (01eec808) 00000800
Ramdisk:    1,344,493 (001483ed) 01eed800
Second:     6,543,360 (0063d800) 02036000
DTB:          268,304 (00041810) 02673800
Command: console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 androidboot.console=ttyFIQ0 androidboot.wificountrycode=XS androidboot.hardware=rk30board androidboot.boot_devices=fe310000.sdhci,fe330000.nandc androidboot.selinux=permissive buildvariant=userdebug
Extracted kernel

 

Extracted Ramdisk:
Android 12 Ramdisk

 

Quote

Image>imgutil /x boot.img /V ramdisk
Header2:        1,660 (0000067c)
Kernel:    32,425,992 (01eec808) 00000800
Ramdisk:    1,344,493 (001483ed) 01eed800
Second:     6,543,360 (0063d800) 02036000
DTB:          268,304 (00041810) 02673800
Command: console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 androidboot.console=ttyFIQ0 androidboot.wificountrycode=XS androidboot.hardware=rk30board androidboot.boot_devices=fe310000.sdhci,fe330000.nandc androidboot.selinux=permissive buildvariant=userdebug
Extracted ramdisk

 

i'm here:

Quote

Whats-App-Image-2023-05-29-at-19-23-55.j



 

Edited by hotnikq
Posted (edited)

today, after work, I'm messing with the dtb.

 

On Linux,android12.dtsandroid12.dtb
 

dtc -I dtb -O dts -o android12.dts android12.dtb

 

Quote

arquivo.dts: Warning (unit_address_vs_reg): /reserved-memory/cma: node has a reg or ranges property, but no unit name
arquivo.dts: Warning (unit_address_vs_reg): /hdmi@fe0a0000/ports/port: node has a reg or ranges property, but no unit name
arquivo.dts: Warning (unit_address_format): /reserved-memory/drm-logo@00000000: unit name should not have leading 0s
arquivo.dts: Warning (unit_address_format): /reserved-memory/drm-cubic-lut@00000000: unit name should not have leading 0s
arquivo.dts: Warning (unique_unit_address): /reserved-memory/drm-logo@00000000: duplicate unit-address (also used in node /reserved-memory/drm-cubic-lut@00000000)
arquivo.dts: Warning (unique_unit_address): /otp@fe38c000/npu-tsadc-trim-h@31: duplicate unit-address (also used in node /otp@fe38c000/tsadc-trim-base-frac@31)
arquivo.dts: Warning (interrupt_provider): /pinctrl/gpio@fdd60000: Missing #address-cells in interrupt provider
arquivo.dts: Warning (interrupt_provider): /pinctrl/gpio@fe740000: Missing #address-cells in interrupt provider
arquivo.dts: Warning (interrupt_provider): /pinctrl/gpio@fe750000: Missing #address-cells in interrupt provider
arquivo.dts: Warning (interrupt_provider): /pinctrl/gpio@fe760000: Missing #address-cells in interrupt provider
arquivo.dts: Warning (interrupt_provider): /pinctrl/gpio@fe770000: Missing #address-cells in interrupt provider
arquivo.dts: Warning (graph_child_address): /syscon@fdc60000/lvds/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /syscon@fdc60000/rgb/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /rkisp-vir0/port: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /dsi@fe060000/panel@0/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /dsi@fe070000/panel@0/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /hdmi@fe0a0000/ports: graph node has single child node 'port', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /edp@fe0c0000/ports: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_child_address): /csi2-dphy0/ports/port@1: graph node has single child node 'endpoint@0', #address-cells/#size-cells are not necessary
arquivo.dts: Warning (graph_port): /hdmi@fe0a0000/ports/port: graph node unit address error, expected "0"

 

The Result:

 

Quote

        vdd_cpu {
            compatible = "tcs,tcs452x";
            reg = <28>;
            vin-supply = <62>;
            regulator-compatible = "fan53555-reg";
            regulator-name = "vdd_cpu";
            regulator-min-microvolt = <1050000>;
            regulator-max-microvolt = <1390000>;
            regulator-ramp-delay = <2300>;
            fcs,suspend-voltage-selector = <1>;
            regulator-boot-on;
            regulator-always-on;

            regulator-state-mem {
                regulator-off-in-suspend;
            };
        };

 

Quote

        rk809 {
            compatible = "rockchip,rk809";
            reg = <0x20>;
            interrupt-parent = <53>;
            interrupts = < 3  8>; 
            pinctrl-names = "default\0pmic-sleep\0pmic-power-off\0pmic-reset";
            pinctrl-0 = <54>;
            pinctrl-1 = <55 56>;
            pinctrl-2 = <57 58>;
            pinctrl-3 = <57 59>;
            rockchip,system-power-controller;
            wakeup-source;
            #clock-cells = <1>;
            clock-output-names = "rk808-clkout1\0rk808-clkout2";
            pmic-reset-func = <0>;
            not-save-power-en = <1>;
            vcc1-supply = <60>;
            vcc2-supply = <60>;
            vcc3-supply = <60>;
            vcc4-supply = <60>;
            vcc5-supply = <60>;
            vcc6-supply = <60>;
            vcc7-supply = <60>;
            vcc8-supply = <60>;
            vcc9-supply = <60>;

            pwrkey {
                status = "okay";
            };

 

 

Quote

pinctrl_rk8xx {
                gpio-controller;
                #gpio-cells = <2>;


                rk817_slppin_null {
                    pins = "gpio_slp";
                    function = "pin_fun0";
                };

                rk817_slppin_slp {
                    pins = "gpio_slp";
                    function = "pin_fun1";
                };

                rk817_slppin_pwrdn {
                    pins = "gpio_slp";
                    function = "pin_fun2";
                };

                rk817_slppin_rst {
                    pins = "gpio_slp";
                    function = "pin_fun3";
                };
            };

 

The power domains config Looks same.


&pmu_io_domains {
    pmuio2-supply = <&vcc_3v3>;
    vccio1-supply = <&vcc_3v3>;
    vccio3-supply = <&vcc_3v3>;
    vccio4-supply = <&vcca_1v8>;
    vccio5-supply = <&vcc_3v3>;
    vccio6-supply = <&vcca_1v8>;
    vccio7-supply = <&vcc_3v3>;
    status = "okay";
};


on android 12 image we dont have DTB for sti8070 Just tcs4525
so, let's work around this.

 

i think this device is full compatible with 
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/rockchip/rk3566-box-demo.dts
i will test it tomorrow.

 

 

Edited by hotnikq
Posted (edited)
Quote

Soldered an SD Card Reader:
 

rk3566-h96max.jpg

 

         

 

 

On 11/21/2022 at 11:04 PM, hotnikq said:

Please, Use a debug Tool TTL UART
Baud rate: 1500000

Data bit: 8

Stop bit: 1

Parity check: none

Flow control: none
☑️ CP2104 TTL Tested!
☑️ CP2102 TTL Tested!
☑️ CP210X TTL Tested!

 

Trying some armbian on SD CARD Reader 
Armbian_23.08.0-trunk_Rock-3a_jammy_edge_6.3.5_xfce_desktop.img
on SD card...

 

Result: 
 

Quote

## Booting Rockchip Format Image
Could not find kernel partition, ret=-1
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found U-Boot script /boot.scr
reading /boot.scr
3252 bytes read in 2 ms (1.6 MiB/s)
## Executing script at 00c00000
Unknown command '▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒                                                                             ▒▒▒SCRIPT FAILED: continuing...
switch to partitions #0, OK
 

 

Edited by hotnikq
Posted (edited)
20 hours ago, maka said:

if rk809 and fan regulator is enabled does not seem like box-demo


it's an RK809-5
RK3566 
DDR3
ethernet-phy-ieee802.3-c22
HCY6355 (AP6335),
Any idea of DTB to test?

Edited by hotnikq
Posted (edited)

I think is like firefly roc-3566-pc . 

@mmie4jbcu tells he can boot with x88 pro 20, wich is similar, with box-demo but his dts is just a precompiled from kernel and this makes me hesitate. 

You can test with his dtb.

I would use a roc-3566-pc image because the rock3a maybe patched because this sbc is a bit tricky.

Edited by maka
Posted (edited)
17 hours ago, maka said:

I think is like firefly roc-3566-pc . 


Yes, Firefly is a great way to start.
The original DTB File from Armbian_23.08.0-trunk_Station-m2_jammy_edge_6.2.16_xfce_desktop.img

Return:
 

Quote

U-Boot SPL board init
U-Boot SPL 2017.09-gaaca6ffec1-211203 #zzz (Dec 03 2021 - 18:42:16)
unknown raw ID phN
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC error: The cmd index is 13, ret is -22
MMC error: The cmd index is 13, ret is -110
MMC error: The cmd index is 13, ret is -110
MMC error: The cmd index is 13, ret is -110
mmc_init: -110, time 82
spl: mmc init failed with error: -110
Trying to boot from MMC1
SPL: A/B-slot: _a, successful: 0, tries-remain: 7
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(da56f18676...) + OK
## Checking uboot 0x00a00000 ... sha256(75a993721d...) + OK
## Checking fdt 0x00b3be10 ... sha256(fcfda359c0...) + OK
## Checking atf-2 0xfdcc1000 ... sha256(c707061ad4...) + OK
## Checking atf-3 0x0006a000 ... sha256(b242b7fb6b...) + OK
## Checking atf-4 0xfdcd0000 ... sha256(4f66d40099...) + OK
## Checking atf-5 0xfdcce000 ... sha256(8b3263a8f2...) + OK
## Checking atf-6 0x00068000 ... sha256(6e9d32ba23...) + OK
## Checking optee 0x08400000 ... sha256(af414b9c9f...) + OK
Jumping to U-Boot(0x00a00000) via ARM Trusted Firmware(0x00040000)
Total: 306.387 ms

INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-451-gcddd6f52e:xsf
NOTICE:  BL31: Built : 07:13:58, Oct 24 2022
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    pmu v1 is valid 220114
INFO:    dfs DDR fsp_param[0].freq_mhz= 1056MHz
INFO:    dfs DDR fsp_param[1].freq_mhz= 324MHz
INFO:    dfs DDR fsp_param[2].freq_mhz= 528MHz
INFO:    dfs DDR fsp_param[3].freq_mhz= 780MHz
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
I/TC:
I/TC: OP-TEE version: 3.13.0-651-gd84087907 #hisping.lin (gcc version 10.2.1 202                                                                             01103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #                                                                             5 Fri Sep 16 15:39:33 CST 2022 aarch64
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0xa00000
INFO:    SPSR = 0x3c9


U-Boot 2017.09-dirty #pc (Dec 09 2022 - 10:56:39 +0800)

Model: Rockchip RK3568 Evaluation Board
PreSerial: 2, raw, 0xfe660000
DRAM:  4 GiB
Sysmem: init
Relocation Offset: ed23d000
Relocation fdt: eb9f8ae0 - eb9fecd0
CR: M/C/I
Using default environment

Hotkey: ctrl+`
dwmmc@fe2b0000: 1, dwmmc@fe2c0000: 2, sdhci@fe310000: 0
Bootdev(atags): mmc 0
MMC0: HS200, 200Mhz
PartType: EFI
DM: v1
boot mode: recovery (misc)
No resource partition
No resource partition
No resource partition
Failed to load DTB, ret=-19
No find valid DTB, ret=-22
Failed to get kernel dtb, ret=-22
io-domain: OK
Failed to get scmi clk dev
dmc_fsp failed, ret=-19
Model: Rockchip RK3568 Evaluation Board
CLK: (sync kernel. arm: enter 816000 KHz, init 816000 KHz, kernel 0N/A)
  apll 816000 KHz
  dpll 528000 KHz
  gpll 1188000 KHz
  cpll 1000000 KHz
  npll 24000 KHz
  vpll 24000 KHz
  hpll 24000 KHz
  ppll 200000 KHz
  armclk 816000 KHz
  aclk_bus 150000 KHz
  pclk_bus 50000 KHz
  aclk_top_high 300000 KHz
  aclk_top_low 200000 KHz
  hclk_top 150000 KHz
  pclk_top 50000 KHz
  aclk_perimid 300000 KHz
  hclk_perimid 150000 KHz
  pclk_pmu 100000 KHz
Net:   No ethernet found.
Hit key to stop autoboot('CTRL+C'):  0
ANDROID: reboot reason: "recovery"
optee api revision: 2.0
Vboot=0, AVB images, AVB verify
read_is_device_unlocked() ops returned that device is UNLOCKED
avb_footer.c:41: ERROR: Footer magic is incorrect.
avb_vbmeta_image.c:65: ERROR: Magic is incorrect.
avb_slot_verify.c:773: ERROR: recovery: Error verifying vbmeta image: invalid vb                                                                             meta header
Verify recovery with vbmeta.
avb_slot_verify.c:762: ERROR: vbmeta: Error verifying vbmeta image: OK_NOT_SIGNE                                                                             D
get image from preloaded partition...
No valid android hdr
avb_slot_verify.c:106: ERROR: recovery: Error loading data from partition.
AVB verify failed
Android boot failed, error -1.
## Booting FIT Image FIT: No fit blob
FIT: No FIT image

## Booting Rockchip Format Image
Could not find kernel partition, ret=-1
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:1...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
320 bytes read in 19 ms (15.6 KiB/s)
1:      Armbian
Retrieving file: /boot/uInitrd
33352326 bytes read in 2804 ms (11.3 MiB/s)
Retrieving file: /boot/Image
27853312 bytes read in 2339 ms (11.4 MiB/s)
append: root=UUID=8bffa7ed-2f1c-40d8-9e74-a674058d0110 console=ttyS02,1500000 co                                                                             nsole=tty0 rw no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net                                                                             .ifnames=0 splash plymouth.ignore-serial-consoles
Retrieving file: /boot/dtb/rockchip/rk3566-firefly-roc-pc.dtb
112257 bytes read in 72 ms (1.5 MiB/s)
Fdt Ramdisk skip relocation
## Loading init Ramdisk from Legacy Image at 0a200000 ...
   Image Name:   uInitrd
   Image Type:   AArch64 Linux RAMDisk Image (gzip compressed)
   Data Size:    33352262 Bytes = 31.8 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 0x08300000
   Booting using the fdt blob at 0x08300000
   Using Device Tree in place at 0000000008300000, end 000000000831e680
can't found rockchip,drm-logo, use rockchip,fb-logo
WARNING: could not set reg FDT_ERR_BADOFFSET.
failed to reserve fb-loader-logo memory
Adding bank: 0x00200000 - 0x08400000 (size: 0x08200000)
Adding bank: 0x09400000 - 0xf0000000 (size: 0xe6c00000)
Adding bank: 0x1f0000000 - 0x200000000 (size: 0x10000000)
== DO RELOCATE == Kernel from 0x00280000 to 0x00400000
Total: 6126.417 ms

Starting kernel ...

I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[    0.000000] Linux version 6.2.16-media (armbian@next) (aarch64-linux-gnu-gcc                                                                              (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38)                                                                              #1 SMP PREEMPT_DYNAMIC Wed May 17 08:59:13 -03 2023
[    0.000000] Machine model: Firefly rk3566-roc-pc
[    0.000000] efi: UEFI not found.
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000000200000-0x00000001ffffffff                                                                             ]
[    0.000000] NUMA: NODE_DATA [mem 0x1ff764100-0x1ff769fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000200000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000001ffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000200000-0x00000000083fffff]
[    0.000000]   node   0: [mem 0x0000000009400000-0x00000000efffffff]
[    0.000000]   node   0: [mem 0x00000001f0000000-0x00000001ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000200000-0x00000001ffffffff]
[    0.000000] On node 0, zone DMA: 512 pages in unavailable ranges
[    0.000000] On node 0, zone DMA: 4096 pages in unavailable ranges
[    0.000000] cma: Reserved 256 MiB at 0x00000000e0000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 30 pages/cpu s83944 r8192 d30744 u122880
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: Virtualization Host Extensions
[    0.000000] CPU features: detected: Qualcomm erratum 1009, or ARM erratum 128                                                                             6807, 2441009
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Fallback order for Node 0: 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1027656
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: root=UUID=8bffa7ed-2f1c-40d8-9e74-a674058d01                                                                             10 console=ttyS02,1500000 console=tty0 rw no_console_suspend consoleblank=0 fsck                                                                             .fix=yes fsck.repair=yes net.ifnames=0 splash plymouth.ignore-serial-consoles
[    0.000000] Unknown kernel command line parameters "splash", will be passed t                                                                             o user space.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes                                                                             , linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes,                                                                              linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x00000000dc000000-0x00000000e000000                                                                             0] (64MB)
[    0.000000] Memory: 3705468K/4175872K available (14784K kernel code, 3392K rw                                                                             data, 5100K rodata, 3776K init, 1029K bss, 208260K reserved, 262144K cma-reserve                                                                             d)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] trace event string verifier disabled
[    0.000000] Dynamic Preempt: none
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jif                                                                             fies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 320 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: MBI range [296:319]
[    0.000000] GICv3: Using MBI frame 0x00000000fd410000
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000fd460000
[    0.000000] ITS: No ITS available, not enabling LPIs
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles:                                                                              0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000000] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 43980                                                                             46511097ns
[    0.001633] Console: colour dummy device 80x25
[    0.001652] printk: console [tty0] enabled
[    0.002542] Calibrating delay loop (skipped), value calculated using timer fr                                                                             equency.. 48.00 BogoMIPS (lpj=96000)
[    0.002586] pid_max: default: 32768 minimum: 301
[    0.002930] LSM: initializing lsm=capability,yama,safesetid,integrity,bpf
[    0.003029] Yama: becoming mindful.
[    0.003121] LSM support for eBPF active
[    0.003356] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, line                                                                             ar)
[    0.003408] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes,                                                                              linear)
[    0.005453] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.006723] cblist_init_generic: Setting adjustable number of callback queues                                                                             .
[    0.006762] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.006934] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.007287] rcu: Hierarchical SRCU implementation.
[    0.007312] rcu:     Max phase no-delay instances is 1000.
[    0.014263] EFI services will not be available.
[    0.015029] smp: Bringing up secondary CPUs ...
[    0.016896] Detected VIPT I-cache on CPU1
[    0.017021] cacheinfo: Unable to detect cache hierarchy for CPU 1
[    0.017045] GICv3: CPU1: found redistributor 100 region 0:0x00000000fd480000
[    0.017108] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[    0.018939] Detected VIPT I-cache on CPU2
[    0.019050] cacheinfo: Unable to detect cache hierarchy for CPU 2
[    0.019072] GICv3: CPU2: found redistributor 200 region 0:0x00000000fd4a0000
[    0.019121] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    0.020961] Detected VIPT I-cache on CPU3
[    0.021072] cacheinfo: Unable to detect cache hierarchy for CPU 3
[    0.021095] GICv3: CPU3: found redistributor 300 region 0:0x00000000fd4c0000
[    0.021141] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[    0.021283] smp: Brought up 1 node, 4 CPUs
[    0.021452] SMP: Total of 4 processors activated.
[    0.021472] CPU features: detected: 32-bit EL0 Support
[    0.021488] CPU features: detected: 32-bit EL1 Support
[    0.021505] CPU features: detected: Data cache clean to the PoU not required                                                                              for I/D coherence
[    0.021527] CPU features: detected: Common not Private translations
[    0.021544] CPU features: detected: CRC32 instructions
[    0.021560] CPU features: detected: Data cache clean to Point of Persistence
[    0.021582] CPU features: detected: RCpc load-acquire (LDAPR)
[    0.021599] CPU features: detected: LSE atomic instructions
[    0.021615] CPU features: detected: Privileged Access Never
[    0.021631] CPU features: detected: RAS Extension Support
[    0.021652] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    0.021790] CPU: All CPU(s) started at EL2
[    0.021813] alternatives: applying system-wide alternatives
[    0.028711] devtmpfs: initialized
[    0.058923] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, ma                                                                             x_idle_ns: 7645041785100000 ns
[    0.058998] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.067211] pinctrl core: initialized pinctrl subsystem
[    0.068259] DMI not present or invalid.
[    0.069250] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.071015] DMA: preallocated 2048 KiB GFP_KERNEL pool for atomic allocations
[    0.071799] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA pool for atomic all                                                                             ocations
[    0.072265] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA32 pool for atomic a                                                                             llocations
[    0.072377] audit: initializing netlink subsys (disabled)
[    0.072653] audit: type=2000 audit(0.068:1): state=initialized audit_enabled=                                                                             0 res=1
[    0.073933] thermal_sys: Registered thermal governor 'fair_share'
[    0.073947] thermal_sys: Registered thermal governor 'bang_bang'
[    0.073974] thermal_sys: Registered thermal governor 'step_wise'
[    0.073994] thermal_sys: Registered thermal governor 'user_space'
[    0.074084] cpuidle: using governor ladder
[    0.074155] cpuidle: using governor menu
[    0.074531] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.074738] ASID allocator initialised with 65536 entries
[    0.076834] Serial: AMBA PL011 UART driver
[    0.092473] platform fe040000.vop: Fixed dependency cycle(s) with /hdmi@fe0a0                                                                             000
[    0.120586] gpio gpiochip0: Static allocation of GPIO base is deprecated, use                                                                              dynamic allocation.
[    0.121240] rockchip-gpio fdd60000.gpio: probed /pinctrl/gpio@fdd60000
[    0.121814] gpio gpiochip1: Static allocation of GPIO base is deprecated, use                                                                              dynamic allocation.
[    0.122182] rockchip-gpio fe740000.gpio: probed /pinctrl/gpio@fe740000
[    0.122690] gpio gpiochip2: Static allocation of GPIO base is deprecated, use                                                                              dynamic allocation.
[    0.123044] rockchip-gpio fe750000.gpio: probed /pinctrl/gpio@fe750000
[    0.123426] gpio gpiochip3: Static allocation of GPIO base is deprecated, use                                                                              dynamic allocation.
[    0.123842] rockchip-gpio fe760000.gpio: probed /pinctrl/gpio@fe760000
[    0.124250] gpio gpiochip4: Static allocation of GPIO base is deprecated, use                                                                              dynamic allocation.
[    0.124604] rockchip-gpio fe770000.gpio: probed /pinctrl/gpio@fe770000
[    0.126130] platform fe0a0000.hdmi: Fixed dependency cycle(s) with /hdmi-con
[    0.131577] KASLR disabled due to lack of seed
[    0.133019] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.133058] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.133081] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.133100] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.133120] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.133139] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.133158] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.133176] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.201440] raid6: neonx8   gen()  1420 MB/s
[    0.269612] raid6: neonx4   gen()  1451 MB/s
[    0.337806] raid6: neonx2   gen()  1337 MB/s
[    0.405946] raid6: neonx1   gen()  1094 MB/s
[    0.474124] raid6: int64x8  gen()   910 MB/s
[    0.542305] raid6: int64x4  gen()  1049 MB/s
[    0.610465] raid6: int64x2  gen()   934 MB/s
[    0.678627] raid6: int64x1  gen()   675 MB/s
[    0.678650] raid6: using algorithm neonx4 gen() 1451 MB/s
[    0.746769] raid6: .... xor() 1097 MB/s, rmw enabled
[    0.746794] raid6: using neon recovery algorithm
[    0.747990] fbcon: Taking over console
[    0.748070] ACPI: Interpreter disabled.
[    0.751465] iommu: Default domain type: Translated
[    0.751497] iommu: DMA domain TLB invalidation policy: lazy mode
[    0.752288] usbcore: registered new interface driver usbfs
[    0.752353] usbcore: registered new interface driver hub
[    0.752417] usbcore: registered new device driver usb
[    0.752878] pps_core: LinuxPPS API ver. 1 registered
[    0.752903] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giome                                                                             tti <giometti@linux.it>
[    0.752947] PTP clock support registered
[    0.753471] EDAC MC: Ver: 3.0.0
[    0.754110] arm-scmi firmware:scmi: Enabled polling mode TX channel - prot_id                                                                             :16
[    0.754336] arm-scmi firmware:scmi: SCMI Notifications - Core Enabled.
[    0.754428] arm-scmi firmware:scmi: SCMI Protocol v2.0 'rockchip:' Firmware v                                                                             ersion 0x0
[    0.756377] NetLabel: Initializing
[    0.756406] NetLabel:  domain hash size = 128
[    0.756424] NetLabel:  protocols = UNLABELED CIPSOv4 CALIPSO
[    0.756529] NetLabel:  unlabeled traffic allowed by default
[    0.756830] vgaarb: loaded
[    0.757516] clocksource: Switched to clocksource arch_sys_counter
[    0.758290] VFS: Disk quotas dquot_6.6.0
[    0.758391] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.758959] pnp: PnP ACPI: disabled
[    0.773453] NET: Registered PF_INET protocol family
[    0.773953] IP idents hash table entries: 65536 (order: 7, 524288 bytes, line                                                                             ar)
[    0.778473] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 3276                                                                             8 bytes, linear)
[    0.778581] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes,                                                                              linear)
[    0.778624] TCP established hash table entries: 32768 (order: 6, 262144 bytes                                                                             , linear)
[    0.778915] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, line                                                                             ar)
[    0.780067] TCP: Hash tables configured (established 32768 bind 32768)
[    0.780568] MPTCP token hash table entries: 4096 (order: 4, 98304 bytes, line                                                                             ar)
[    0.780758] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.780868] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.781255] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.781345] NET: Registered PF_XDP protocol family
[    0.781383] PCI: CLS 0 bytes, default 64
[    0.782200] Trying to unpack rootfs image as initramfs...
[    0.804642] hw perfevents: enabled with armv8_cortex_a55 PMU driver, 7 counte                                                                             rs available
[    0.805763] kvm [1]: IPA Size Limit: 40 bits
[    0.805856] kvm [1]: GICv3: no GICV resource entry
[    0.805881] kvm [1]: disabling GICv2 emulation
[    0.805919] kvm [1]: GIC system register CPU interface enabled
[    0.806270] kvm [1]: vgic interrupt IRQ9
[    0.806966] kvm [1]: VHE mode initialized successfully
[    0.809621] Initialise system trusted keyrings
[    0.810030] workingset: timestamp_bits=39 max_order=20 bucket_order=0
[    0.810194] zbud: loaded
[    0.811680] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.811765] fuse: init (API version 7.38)
[    0.865212] xor: measuring software checksum speed
[    0.871061]    8regs           :  1721 MB/sec
[    0.877357]    32regs          :  1577 MB/sec
[    0.883244]    arm64_neon      :  1690 MB/sec
[    0.883274] xor: using function: 8regs (1721 MB/sec)
[    0.883316] Key type asymmetric registered
[    0.883336] Asymmetric key parser 'x509' registered
[    0.883515] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 2                                                                             46)
[    0.883877] io scheduler mq-deadline registered
[    0.884037] io scheduler bfq registered
[    0.901757] arm-scmi firmware:scmi: Failed. SCMI protocol 22 not active.
[    0.907862] Serial: 8250/16550 driver, 8 ports, IRQ sharing enabled
[    0.912917] fe650000.serial: ttyS1 at MMIO 0xfe650000 (irq = 23, base_baud =                                                                              1500000) is a 16550A
[    0.913225] serial serial0: tty port ttyS1 registered
[    0.914689] fe660000.serial: ttyS2 at MMIO 0xfe660000 (irq = 24, base_baud =                                                                              1500000) is a 16550A
[    0.915080] printk: console [ttyS2] enabled
[    1.034345] Serial: AMBA driver
[    1.038352] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.052452] brd: module loaded
[    1.063323] loop: module loaded
[    1.069114] thunder_xcv, ver 1.0
[    1.069542] thunder_bgx, ver 1.0
[    1.069915] nicpf, ver 1.0
[    1.072082] usbcore: registered new interface driver usbserial_generic
[    1.072717] usbserial: USB Serial support registered for generic
[    1.073322] usbcore: registered new interface driver ch341
[    1.073879] usbserial: USB Serial support registered for ch341-uart
[    1.074485] usbcore: registered new interface driver cp210x
[    1.075018] usbserial: USB Serial support registered for cp210x
[    1.075585] usbcore: registered new interface driver ftdi_sio
[    1.076155] usbserial: USB Serial support registered for FTDI USB Serial Devi                                                                             ce
[    1.076851] usbcore: registered new interface driver pl2303
[    1.077385] usbserial: USB Serial support registered for pl2303
[    1.078718] mousedev: PS/2 mouse device common for all mice
[    1.081766] fan53555-regulator 0-001c: FAN53555 Option[12] Rev[15] Detected!
[    1.086076] dw-apb-uart fe650000.serial: Failed to create device link (0x180)                                                                              with 0-0020
[    1.092484] ghes_edac: GHES probing device list is empty
[    1.094590] ledtrig-cpu: registered to indicate activity on CPUs
[    1.096556] arm-scmi firmware:scmi: Failed. SCMI protocol 17 not active.
[    1.097242] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.102753] NET: Registered PF_INET6 protocol family
[    2.807275] Freeing initrd memory: 32564K
[    2.864549] Segment Routing with IPv6
[    2.865031] In-situ OAM (IOAM) with IPv6
[    2.876656] registered taskstats version 1
[    2.877282] Loading compiled-in X.509 certificates
[    2.881814] zswap: loaded using pool zstd/z3fold
[    2.895844] Key type .fscrypt registered
[    2.896244] Key type fscrypt-provisioning registered
[    2.898762] Btrfs loaded, crc32c=crc32c-generic, assert=on, integrity-checker=on, zoned=yes, f                                                            sverity=yes
[    2.926998] Key type encrypted registered
[    2.927452] ima: No TPM chip found, activating TPM-bypass!
[    2.927964] ima: Allocated hash algorithm: sha1
[    2.928419] ima: No architecture policies found
[    2.928945] evm: Initialising EVM extended attributes:
[    2.929419] evm: security.selinux
[    2.929757] evm: security.SMACK64
[    2.930069] evm: security.SMACK64EXEC
[    2.930406] evm: security.SMACK64TRANSMUTE
[    2.930781] evm: security.SMACK64MMAP
[    2.931117] evm: security.apparmor
[    2.931431] evm: security.ima
[    2.931707] evm: security.capability
[    2.932036] evm: HMAC attrs: 0x1
[    2.981570] dw-apb-uart fe650000.serial: Failed to create device link (0x180) with vcc3v3-sys
[    2.986000] rk808 0-0020: chip id: 0x8090
[    3.063270] rk808-regulator rk808-regulator.1.auto: there is no dvs0 gpio
[    3.063937] rk808-regulator rk808-regulator.1.auto: there is no dvs1 gpio
[    3.064558] rk808-regulator rk808-regulator.1.auto: max buck steps per change: 8
[    3.115780] dw-apb-uart fe650000.serial: Failed to create device link (0x180) with 0-0020
[    3.119197] rockchip-dw-pcie 3c0000000.pcie: host bridge /pcie@fe260000 ranges:
[    3.119921] rockchip-dw-pcie 3c0000000.pcie:       IO 0x033ef00000..0x033effffff -> 0x003ef000                                                            00
[    3.120734] rockchip-dw-pcie 3c0000000.pcie:      MEM 0x0300000000..0x033eefffff -> 0x00000000                                                            00
[    3.121825] rockchip-dw-pcie 3c0000000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[    4.229780] rockchip-dw-pcie 3c0000000.pcie: Phy link never came up
[    4.230844] rockchip-dw-pcie 3c0000000.pcie: PCI host bridge to bus 0000:00
[    4.231490] pci_bus 0000:00: root bus resource [bus 00-0f]
[    4.232001] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0x3ef00000-0                                                            x3effffff])
[    4.232867] pci_bus 0000:00: root bus resource [mem 0x300000000-0x33eefffff] (bus address [0x0                                                            0000000-0x3eefffff])
[    4.233900] pci 0000:00:00.0: [1d87:3566] type 01 class 0x060400
[    4.234484] pci 0000:00:00.0: reg 0x38: [mem 0x300000000-0x30000ffff pref]
[    4.235220] pci 0000:00:00.0: supports D1 D2
[    4.235620] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    4.244376] pci_bus 0000:01: busn_res: can not insert [bus 01-ff] under [bus 00-0f] (conflicts                                                             with (null) [bus 00-0f])
[    4.245810] pci 0000:00:00.0: BAR 6: assigned [mem 0x300000000-0x30000ffff pref]
[    4.246509] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    4.249279] pcieport 0000:00:00.0: PME: Signaling with IRQ 56
[    4.250337] pcieport 0000:00:00.0: AER: enabled with IRQ 56
[    4.261991] rk_gmac-dwmac fe010000.ethernet: IRQ eth_lpi not found
[    4.263465] rk_gmac-dwmac fe010000.ethernet: clock input or output? (input).
[    4.264119] rk_gmac-dwmac fe010000.ethernet: TX delay(0x4e).
[    4.264641] rk_gmac-dwmac fe010000.ethernet: RX delay(0x2c).
[    4.265167] rk_gmac-dwmac fe010000.ethernet: integrated PHY? (no).
[    4.265939] rk_gmac-dwmac fe010000.ethernet: clock input from PHY
[    4.271516] rk_gmac-dwmac fe010000.ethernet: init for RGMII
[    4.272417] rk_gmac-dwmac fe010000.ethernet: User ID: 0x30, Synopsys ID: 0x51
[    4.273077] rk_gmac-dwmac fe010000.ethernet:         DWMAC4/5
[    4.273582] rk_gmac-dwmac fe010000.ethernet: DMA HW capability register supported
[    4.274264] rk_gmac-dwmac fe010000.ethernet: RX Checksum Offload Engine supported
[    4.274940] rk_gmac-dwmac fe010000.ethernet: TX Checksum insertion supported
[    4.275576] rk_gmac-dwmac fe010000.ethernet: Wake-Up On Lan supported
[    4.276237] rk_gmac-dwmac fe010000.ethernet: TSO supported
[    4.276742] rk_gmac-dwmac fe010000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[    4.277468] rk_gmac-dwmac fe010000.ethernet: Enabled RFS Flow TC (entries=10)
[    4.278143] rk_gmac-dwmac fe010000.ethernet: TSO feature enabled
[    4.278693] rk_gmac-dwmac fe010000.ethernet: Using 32/32 bits DMA host/device width
[    4.433570] psci_checker: PSCI checker started using 4 CPUs
[    4.434114] psci_checker: Starting hotplug tests
[    4.434544] psci_checker: Trying to turn off and on again all CPUs
[    4.435899] psci: CPU0 killed (polled 0 ms)
[    4.440060] psci: CPU1 killed (polled 0 ms)
[    4.444048] psci: CPU2 killed (polled 0 ms)
I/TC: Secondary CPU 0 initializing
I/TC: Secondary CPU 0 switching to normal world boot
[    4.447753] Detected VIPT I-cache on CPU0
[    4.448214] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    4.448777] GICv3: CPU0: found redistributor 0 region 0:0x00000000fd460000
[    4.449470] CPU0: Booted secondary processor 0x0000000000 [0x412fd050]
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[    4.452879] Detected VIPT I-cache on CPU1
[    4.453392] cacheinfo: Unable to detect cache hierarchy for CPU 1
[    4.453956] GICv3: CPU1: found redistributor 100 region 0:0x00000000fd480000
[    4.454661] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
[    4.458808] Detected VIPT I-cache on CPU2
[    4.459310] cacheinfo: Unable to detect cache hierarchy for CPU 2
[    4.459877] GICv3: CPU2: found redistributor 200 region 0:0x00000000fd4a0000
[    4.460582] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    4.462780] psci_checker: Trying to turn off and on again group 0 (CPUs 0-3)
[    4.464931] psci: CPU0 killed (polled 0 ms)
[    4.468681] psci: CPU1 killed (polled 0 ms)
[    4.472101] psci: CPU2 killed (polled 0 ms)
I/TC: Secondary CPU 0 initializing
I/TC: Secondary CPU 0 switching to normal world boot
[    4.475678] Detected VIPT I-cache on CPU0
[    4.476141] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    4.476701] GICv3: CPU0: found redistributor 0 region 0:0x00000000fd460000
[    4.477396] CPU0: Booted secondary processor 0x0000000000 [0x412fd050]
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
[    4.480751] Detected VIPT I-cache on CPU1
[    4.481262] cacheinfo: Unable to detect cache hierarchy for CPU 1
[    4.481825] GICv3: CPU1: found redistributor 100 region 0:0x00000000fd480000
[    4.482532] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
[    4.486153] Detected VIPT I-cache on CPU2
[    4.486656] cacheinfo: Unable to detect cache hierarchy for CPU 2
[    4.487224] GICv3: CPU2: found redistributor 200 region 0:0x00000000fd4a0000
[    4.487928] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[    4.490210] psci_checker: Hotplug tests passed OK
[    4.490653] psci_checker: Starting suspend tests (10 cycles per state)
[    4.491306] psci_checker: cpuidle not available on CPU 0, ignoring
[    4.491873] psci_checker: cpuidle not available on CPU 1, ignoring
[    4.492431] psci_checker: cpuidle not available on CPU 2, ignoring
[    4.492989] psci_checker: cpuidle not available on CPU 3, ignoring
[    4.493580] psci_checker: Could not start suspend tests on any CPU
[    4.494142] psci_checker: PSCI checker completed
[    4.498939] Freeing unused kernel memory: 3776K
[    4.529630] Run /init as init process
[    5.686287] rockchip-vop2 fe040000.vop: Adding to iommu group 2
[    5.686930] iommu: Failed to allocate default IOMMU domain of type 11 for group (null) - Falli                                                            ng back to IOMMU_DOMAIN_DMA
[    5.719192] panfrost fde60000.gpu: clock rate = 594000000
[    5.720741] panfrost fde60000.gpu: bus_clock rate = 500000000
[    5.723742] Synopsys Designware Multimedia Card Interface Driver
[    5.727686] rk808-rtc rk808-rtc.3.auto: registered as rtc0
[    5.731896] rockchip-drm display-subsystem: bound fe040000.vop (ops vop2_component_ops [rockch                                                            ipdrm])
[    5.736640] dwmmc_rockchip fe2b0000.mmc: IDMAC supports 32-bit address mode.
[    5.737435] dwmmc_rockchip fe2b0000.mmc: Using internal DMA controller.
[    5.738144] dwmmc_rockchip fe2b0000.mmc: Version ID is 270a
[    5.738814] dwmmc_rockchip fe2b0000.mmc: DW MMC controller at irq 60,32 bit host data width,25                                                            6 deep fifo
[    5.742207] dwmmc_rockchip fe000000.mmc: IDMAC supports 32-bit address mode.
[    5.742932] dwmmc_rockchip fe000000.mmc: Using internal DMA controller.
[    5.743553] dwmmc_rockchip fe000000.mmc: Version ID is 270a
[    5.744132] dwmmc_rockchip fe000000.mmc: DW MMC controller at irq 59,32 bit host data width,25                                                            6 deep fifo
[    5.745784] dwmmc_rockchip fe2c0000.mmc: IDMAC supports 32-bit address mode.
[    5.746498] dwmmc_rockchip fe2c0000.mmc: Using internal DMA controller.
[    5.747112] dwmmc_rockchip fe2c0000.mmc: Version ID is 270a
[    5.747712] dwmmc_rockchip fe2c0000.mmc: DW MMC controller at irq 61,32 bit host data width,25                                                            6 deep fifo
[    5.770452] rk808-rtc rk808-rtc.3.auto: setting system clock to 2017-08-05T09:00:10 UTC (15019                                                            23610)
[    5.785915] dwhdmi-rockchip fe0a0000.hdmi: Detected HDMI TX controller v2.11a with HDCP (DWC H                                                            DMI 2.0 TX PHY)
[    5.787877] panfrost fde60000.gpu: mali-g52 id 0x7402 major 0x1 minor 0x0 status 0x0
[    5.788616] panfrost fde60000.gpu: features: 00000000,00000cf7, issues: 00000000,00000400
[    5.789363] panfrost fde60000.gpu: Features: L2:0x07110206 Shader:0x00000002 Tiler:0x00000209                                                             Mem:0x1 MMU:0x00002823 AS:0xff JS:0x7
[    5.790457] panfrost fde60000.gpu: shader_present=0x1 l2_present=0x1
[    5.791757] dwmmc_rockchip fe2b0000.mmc: Got CD GPIO
[    5.793694] dwhdmi-rockchip fe0a0000.hdmi: registered DesignWare HDMI I2C bus driver
[    5.797803] rockchip-drm display-subsystem: bound fe0a0000.hdmi (ops dw_hdmi_rockchip_ops [roc                                                            kchipdrm])
[    5.800580] [drm] Initialized rockchip 1.0.0 20140818 for display-subsystem on minor 1
[    5.801672] mmc_host mmc3: Bus speed (slot 0) = 375000Hz (slot req 400000Hz, actual 375000HZ d                                                            iv = 0)
[    5.803000] [drm] Initialized panfrost 1.2.0 20180908 for fde60000.gpu on minor 0
[    5.805708] mmc_host mmc0: Bus speed (slot 0) = 375000Hz (slot req 400000Hz, actual 375000HZ d                                                            iv = 0)
[    5.811530] dwmmc_rockchip fe2c0000.mmc: IDMAC supports 32-bit address mode.
[    5.812245] dwmmc_rockchip fe2c0000.mmc: Using internal DMA controller.
[    5.812857] dwmmc_rockchip fe2c0000.mmc: Version ID is 270a
[    5.813408] dwmmc_rockchip fe2c0000.mmc: DW MMC controller at irq 61,32 bit host data width,25                                                            6 deep fifo
[    5.823907] dwmmc_rockchip fe2c0000.mmc: IDMAC supports 32-bit address mode.
[    5.824659] dwmmc_rockchip fe2c0000.mmc: Using internal DMA controller.
[    5.825278] dwmmc_rockchip fe2c0000.mmc: Version ID is 270a
[    5.825901] dwmmc_rockchip fe2c0000.mmc: DW MMC controller at irq 61,32 bit host data width,25                                                            6 deep fifo
[    5.831939] sdhci: Secure Digital Host Controller Interface driver
[    5.832561] sdhci: Copyright(c) Pierre Ossman
[    5.835311] sdhci-pltfm: SDHCI platform and OF driver helper
[    5.873823] dma-pl330 fe530000.dma-controller: Loaded driver for PL330 DMAC-241330
[    5.874559] dma-pl330 fe530000.dma-controller:       DBUFF-128x8bytes Num_Chans-8 Num_Peri-32                                                             Num_Events-16
[    5.893235] ohci-platform fd840000.usb: Generic Platform OHCI controller
[    5.893981] ohci-platform fd840000.usb: new USB bus registered, assigned bus number 1
[    5.895602] ohci-platform fd8c0000.usb: Generic Platform OHCI controller
[    5.896278] ohci-platform fd8c0000.usb: new USB bus registered, assigned bus number 2
 



Thigs that need work around:

 

Quote

[    1.086076] dw-apb-uart fe650000.serial: Failed to create device link (0x180)                                                                              with 0-0020
[    1.092484] ghes_edac: GHES probing device list is empty
[    2.981570] dw-apb-uart fe650000.serial: Failed to create device link (0x180) with vcc3v3-sys
[    3.119197] rockchip-dw-pcie 3c0000000.pcie: host bridge /pcie@fe260000 ranges:
[    3.119921] rockchip-dw-pcie 3c0000000.pcie:       IO 0x033ef00000..0x033effffff -> 0x003ef000                                                            00
[    3.120734] rockchip-dw-pcie 3c0000000.pcie:      MEM 0x0300000000..0x033eefffff -> 0x00000000                                                            00
[    3.121825] rockchip-dw-pcie 3c0000000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[    4.229780] rockchip-dw-pcie 3c0000000.pcie: Phy link never came up
[    4.230844] rockchip-dw-pcie 3c0000000.pcie: PCI host bridge to bus 0000:00
[    4.231490] pci_bus 0000:00: root bus resource [bus 00-0f]
[    4.232001] pci_bus 0000:00: root bus resource [io  0x0000-0xfffff] (bus address [0x3ef00000-0                                                            x3effffff])
[    4.232867] pci_bus 0000:00: root bus resource [mem 0x300000000-0x33eefffff] (bus address [0x0                                                            0000000-0x3eefffff])
[    4.233900] pci 0000:00:00.0: [1d87:3566] type 01 class 0x060400
[    4.234484] pci 0000:00:00.0: reg 0x38: [mem 0x300000000-0x30000ffff pref]
[    4.235220] pci 0000:00:00.0: supports D1 D2
[    4.235620] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    4.244376] pci_bus 0000:01: busn_res: can not insert [bus 01-ff] under [bus 00-0f] (conflicts                                                             with (null) [bus 00-0f])
[    4.245810] pci 0000:00:00.0: BAR 6: assigned [mem 0x300000000-0x30000ffff pref]
[    4.246509] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    5.893235] ohci-platform fd840000.usb: Generic Platform OHCI controller
[    5.893981] ohci-platform fd840000.usb: new USB bus registered, assigned bus number 1
[    5.895602] ohci-platform fd8c0000.usb: Generic Platform OHCI controller
[    5.896278] ohci-platform fd8c0000.usb: new USB bus registered, assigned bus number 2

 

Edited by hotnikq
Posted (edited)

Lets Start with an example:

Leds:

On H96 MAX Android 12 DTS we have:
 

Quote

    leds {
        compatible = "gpio-leds";
        status = "okay";

        power-green {
            gpios = <0x35 0x1b 0x01>;
            linux,default-trigger = "none";
            default-state = "off";
        };

        power-red {
            gpios = <0x35 0x1c 0x00>;               //////// 0x35 is a phandle for gpio@fdd60000 and 0x1c is the pin 0x00 is State
            linux,default-trigger = "none";
            default-state = "off";
        };
    };


        gpio@fdd60000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x00 0xfdd60000 0x00 0x100>;
            interrupts = <0x00 0x21 0x04>;
            clocks = <0x31 0x2e 0x31 0x0c>;
            gpio-controller;
            #gpio-cells = <0x02>;
            gpio-ranges = <0x11b 0x00 0x00 0x20>;
            interrupt-controller;
            #interrupt-cells = <0x02>;
            phandle = <0x35>;                                             ////// 0x35 is the definition for phandle of  gpio@fdd60000
        };

aliases {
        gpio0 = "/pinctrl/gpio@fdd60000";             /////////   gpio@fdd60000  is the address for   gpio0

            }

 

 

and on Linux Rockchip:

 

Quote

    

    gpio0: gpio@fdd60000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x0 0xfdd60000 0x0 0x100>;
            interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
            gpio-controller;
            gpio-ranges = <&pinctrl 0 0 32>;
            #gpio-cells = <2>;
            interrupt-controller;
            #interrupt-cells = <2>;
        };

 

The following example could be used to describe GPIO pins used as device enable
and bit-banged data signals:

    gpio1: gpio1 {
        gpio-controller;
        #gpio-cells = <2>;
    };
    [...]

    data-gpios = <&gpio1 12 0>,
             <&gpio1 13 0>,
             <&gpio1 14 0>,
             <&gpio1 15 0>;

In the above example, &gpio1 uses 2 cells to specify a gpio. The first cell is
a local offset to the GPIO line and the second cell represent consumer flags,
such as if the consumer desire the line to be active low (inverted) or open
drain. This is the recommended practice.

 

 

#define RK_PA0    0       
#define RK_PA1    1      
#define RK_PA2    2       
#define RK_PA3    3       
#define RK_PA4    4       
#define RK_PA5    5       
#define RK_PA6    6       
#define RK_PA7    7       
#define RK_PB0    8       
#define RK_PB1    9       
#define RK_PB2    10       
#define RK_PB3    11       
#define RK_PB4    12       
#define RK_PB5    13       
#define RK_PB6    14       
#define RK_PB7    15       

#define RK_PC0    16       
#define RK_PC1    17       
#define RK_PC2    18       
#define RK_PC3    19       
#define RK_PC4    20       
#define RK_PC5    21       
#define RK_PC6    22       
#define RK_PC7    23       

#define RK_PD0    24       
#define RK_PD1    25       
#define RK_PD2    26       
#define RK_PD3    27       
#define RK_PD4    28       
#define RK_PD5    29       
#define RK_PD6    30       
#define RK_PD7    31       

 

 

 

So we can do an Linux H96 MAX compatible:

 

Quote

    leds {
        compatible = "gpio-leds";
        status = "okay";

        power-green {
            gpios = <&gpio0 RK_PD3 GPIO_ACTIVE_HIGH>;
            linux,default-trigger = "none";
            default-state = "off";
        };

        power-red {
            gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
            linux,default-trigger = "none";
            default-state = "off";
        };
    };

    gpio0: gpio@fdd60000 {
            compatible = "rockchip,gpio-bank";
            reg = <0x0 0xfdd60000 0x0 0x100>;
            interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&pmucru PCLK_GPIO0>, <&pmucru DBCLK_GPIO0>;
            gpio-controller;
            gpio-ranges = <&pinctrl 0 0 32>;
            #gpio-cells = <2>;
            interrupt-controller;
            #interrupt-cells = <2>;
        };

 

 

 

and let's pray that the linux gods give us strength to run this translation on all devices...........

 

Edited by hotnikq

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines