Chrome OS would be great

I plan to spend some time to fix DTS for Rock PI 4B, as basically all my images should work almost out of box with everything that I ship. So, this should also bring rockpi4b compatibility for Chromium OS, as the only difference there is DTS.

I have plans for mainline, but first I want to migrate to mainline u-boot, and this is the major item for 0.10.x branch.

… great. If I can support you, let me know.

If you can help align https://github.com/ayufan-rock64/linux-kernel/blob/release-4.4.190/arch/arm64/boot/dts/rockchip/rk3399-rockpi4b.dts to be “working”.

I mean it boots, but I had to disable HDMI/etc. due to some failures.

1 Like

Hi Jack,

I Have been a part of the GNU Linux community for 5 years now. I like to test, document, bugfix (where possible), ie, to make things easy and robust.

I was looking to to purchase a useful SBC like the Rock Pi 4, and came across this thread when searching for Chromium OS support.

I could help test @ayufanpl’s ChromiumOS builds (recognize him from using Gitlab!), as well as Armbian, Manjaro ARM, Slackware ARM and any other things that need testing.

Here are some things I have been involved in: Manjaro OpenRC, Github, Blog.
Can send me the hardware if you think I can help. Thanks!

Nice. I will send you a PM.

1 Like

Any progress for chrome os?

Hi @zwingler

I got the board recently and am new to ARM, so it will take me some time to setup and understand things (around 1-2 weeks I think).

From what Ayufan wrote, his latest Rock Pi 4b image boots but HDMI does not work. And to fix it we need to fix rk3399-rockpi4b.dts. The idea that I have is to take the dtb/dts from a recent working Radxa image, check whats different, move it to Ayufan’s image and see if it works. :slightly_smiling_face:

Edit-
Here is the extracted dts file from Radxa stretch image rockpi-4b-linux.dts.

Edit 2-
Much better to compare Ayufan dts to Radxa dts from kernel repository:

I wrote Ayfan’s rockpi-4b ubuntu minimal image to SD card and booted with it. There was no activity. The Red Led that usually blinks was on all the time even after a minute. Ayufan wrote that he had disabled HDMI, so I could not see anything on my screen. Need a functional USB TTL cable to check what is happening, but I dont have that yet.

A simple thing I tried was to replace the rk3399-rockpi4b.dtb with rockpi-4b-linux.dtb found in Radxa Debian stretch image. It does not work though, no led light blink, HDMI remained off.

I am out of ideas for the moment, maybe @ayufanpl can give some suggestion. :slightly_smiling_face:

Here is some debug output while trying to boot @ayufanpl’s image:

With Radxa image in eMMC (thanks @piter75 for way to bypass eMMC post) :

=> mmc list
dwmmc@fe320000: 1
sdhci@fe330000: 0 (eMMC)
=> mmc dev 1
GUID Partition Table Header signature is wrong: 0xFFFFFFFFFFFFFFFF != 0x5452415020494645
GUID Partition Table Header signature is wrong: 0xFFFFFFFFFFFFFFFF != 0x5452415020494645
Repair the backup gpt table OK!
Repair the backup gpt table OK!
switch to partitions #0, OK
mmc1 is current device
=> setenv devnum 1
=> run mmc_boot
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:7...
Found /boot/extlinux/extlinux.conf
pxefile_addr_str = 0x00500000
bootfile = /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1055 bytes read in 18 ms (56.6 KiB/s)
select kernel
1:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
2:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a-memtest
Enter choice: Retrieving file: /hw_intfc.conf
** File not found /hw_intfc.conf **
hw_conf.valid = 0
hw_conf.pwm0 = 2
hw_conf.pwm1 = 2
hw_conf.uart2 = 2
hw_conf.uart4 = 2
hw_conf.spi1 = 2
hw_conf.spi2 = 2
hw_conf.i2c2 = 2
hw_conf.i2c6 = 2
hw_conf.i2c7 = 2
hw_conf.dts_overlay_count = 0
1:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
Retrieving file: /boot/initrd.img-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
6337563 bytes read in 287 ms (21.1 MiB/s)
Retrieving file: /boot/vmlinuz-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
20545544 bytes read in 886 ms (22.1 MiB/s)
append: rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=ae:1e:19:20:55:6d eth1addr= serial=e516be85e0b567df cgroup_enable=cpuset cgroup_memory=1 cgroup_enabl4
Retrieving file: /boot/dtbs/4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a/rockchip/rockpi-4b-linux.dtb
** File not found /boot/dtbs/4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a/rockchip/rockpi-4b-linux.dtb **
Skipping kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a for failure retrieving fdt
Retrieving file: /hw_intfc.conf
** File not found /hw_intfc.conf **
hw_conf.valid = 0
hw_conf.pwm0 = 2
hw_conf.pwm1 = 2
hw_conf.uart2 = 2
hw_conf.uart4 = 2
hw_conf.spi1 = 2
hw_conf.spi2 = 2
hw_conf.i2c2 = 2
hw_conf.i2c6 = 2
hw_conf.i2c7 = 2
hw_conf.dts_overlay_count = 0
2:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a-memtest
Retrieving file: /boot/initrd.img-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
6337563 bytes read in 286 ms (21.1 MiB/s)
Retrieving file: /boot/vmlinuz-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
20545544 bytes read in 886 ms (22.1 MiB/s)
append: rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=ae:1e:19:20:55:6d eth1addr= serial=e516be85e0b567df cgroup_enable=cpuset cgroup_memory=1 cgroup_enablt
Retrieving file: /boot/dtbs/4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a/rockchip/rockpi-4b-linux.dtb
** File not found /boot/dtbs/4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a/rockchip/rockpi-4b-linux.dtb **
Skipping kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a-memtest for failure retrieving fdt
SCRIPT FAILED: continuing...
=> 

To fix it I try adding the file from a Radxa Debian Stretch image.
Now it goes to a bootloop:
https://paste2.org/NzY87wyn

On removing the eMMC it boots:

DDR Version 1.19 20190305
In
channel 0
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 400MHz 0,1
channel 0
CS = 0
MR0=0x98
MR4=0x81
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 1
CS = 0
MR0=0x98
MR4=0x81
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
CS = 1
MR0=0x18
MR4=0x3
MR5=0xFF
MR8=0x8
MR12=0x72
MR14=0x72
MR18=0x0
MR19=0x0
MR24=0x8
MR25=0x0
channel 0 training pass!
channel 1 training pass!
change freq to 800MHz 1,0
Channel 0: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
Channel 1: LPDDR4,800MHz
Bus Width=32 Col=10 Bank=8 Row=15/15 CS=2 Die Bus-Width=16 Size=2048MB
256B stride
ch 0 ddrconfig = 0x101, ddrsize = 0x2020
ch 1 ddrconfig = 0x101, ddrsize = 0x2020
pmugrf_os_reg[2] = 0x3AA1FAA1, stride = 0xD
OUT
U-Boot SPL board init

U-Boot SPL 2017.09-rockchip-ayufan-1062-gbb4886a528 (Jun 19 2019 - 19:42:18)
booted from SD
Trying to boot from MMC2
NOTICE:  BL31: v1.3(debug):370ab80
NOTICE:  BL31: Built : 09:23:41, Mar  4 2019
NOTICE:  BL31: Rockchip release version: v1.1
INFO:    GICv3 with legacy support detected. ARM GICV3 driver initialized in EL3
INFO:    Using opteed sec cpu_context!
INFO:    boot cpu mask: 0
INFO:    plat_rockchip_pmu_init(1181): pd status 3e
INFO:    BL31: Initializing runtime services
WARNING: No OPTEE provided by BL2 boot loader, Booting device without OPTEE initialization. SMC`s destined for OPTEE will return SMC_UNK
ERROR:   Error initializing runtime service opteed_fast
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09-rockchip-ayufan-1062-gbb4886a528 (Jun 19 2019 - 19:42:24 +0000)

Model: RockPi-4B
DRAM:  3.9 GiB
DCDC_REG1@vdd_center: ; enabling
DCDC_REG2@vdd_cpu_l: ; enabling
DCDC_REG3@vcc_ddr: ; enabling (ret: -38)
DCDC_REG4@vcc_1v8: set 1800000 uV; enabling
LDO_REG1@vcc1v8_dvp: set 1800000 uV; enabling
LDO_REG2@vcc3v0_touch: set 3000000 uV; enabling
LDO_REG3@vcc1v8_pmu: set 1800000 uV; enabling
LDO_REG4@vcc_sd: set 3300000 uV; enabling
LDO_REG5@vcca3v0_codec: set 3000000 uV; enabling
LDO_REG6@vcc_1v5: set 1500000 uV; enabling
LDO_REG7@vcca1v8_codec: set 1800000 uV; enabling
LDO_REG8@vcc_3v0: set 3000000 uV; enabling
SWITCH_REG1@vcc3v3_s3: ; enabling (ret: -38)
SWITCH_REG2@vcc3v3_s0: ; enabling (ret: -38)
vcc1v8-s0@vcc1v8_s0: set 1800000 uV; enabling (ret: -38)
dc-12v@dc_12v: set 12000000 uV; enabling (ret: -38)
vcc-sys@vcc_sys: set 5000000 uV; enabling (ret: -38)
vcc3v3-sys@vcc3v3_sys: set 3300000 uV; enabling (ret: -38)
vcc-phy-regulator@vcc_phy: ; enabling (ret: -38)
vdd-log@vdd_log: ; enabling (ret: -38)
MMC:   sdhci@fe330000: 0, dwmmc@fe320000: 1
SF: unrecognized JEDEC id bytes: ff, ff, ff
*** Warning - spi_flash_probe_bus_cs() failed, using default environment

In:    serial@ff1a0000
Out:   serial@ff1a0000
Err:   serial@ff1a0000
Model: RockPi-4B
Net:   eth0: ethernet@fe300000
Hit any key to stop autoboot:  0 
Card did not respond to voltage select!
mmc_init: -95, time 20
switch to partitions #0, OK
mmc1 is current device
Scanning mmc 1:7...
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
1055 bytes read in 19 ms (53.7 KiB/s)
select kernel
1:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
2:      kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a-memtest
Enter choice: 1:        kernel-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
Retrieving file: /boot/initrd.img-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
6337563 bytes read in 689 ms (8.8 MiB/s)
Retrieving file: /boot/vmlinuz-4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a
20545544 bytes read in 2189 ms (9 MiB/s)
append: rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=ae:1e:19:20:55:6d eth1addr= serial=e516be85e0b567d cgroup_enable=cpuset cgroup_memory=1 cgroup_enable4
Retrieving file: /boot/dtbs/4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a/rockchip/rk3399-rockpi4b.dtb
92692 bytes read in 79 ms (1.1 MiB/s)
## Flattened Device Tree blob at 01f00000
   Booting using the fdt blob at 0x1f00000
   Loading Ramdisk to f58f7000, end f5f0241b ... OK
   Loading Device Tree to 00000000f58dd000, end 00000000f58f6a13 ... OK

Starting kernel ...
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 4.4.184-1220-rockchip-ayufan-g5fe46b4c9a4a (root@runner-f725ff63-project-5943294-concurrent-1) (gcc version 7.3.0 (Ubuntu/Linaro 7.3.9

https://paste2.org/pDIyetep

Now that it boots will try to get a graphical desktop up. :slightly_smiling_face:

Edit-
A simple substitution of rk3399-rockpi4b.dtb (found in Ayufan’s image) with rockpi-4b-linux.dtb didnt work, goes into bootloop as before.

Trying to copy paste code with hdmi in the name from rockpi-4b-linux.dts to the dts extracted from rk3399-rockpi4b.dtb feels like I dont know enough yet… Need to learn what those block are and what they do.