Skip to content

platforms: add qcs6490-thundercomm-rubikpi3 ufs layout#115

Open
EmbeddedAndroid wants to merge 1 commit into
qualcomm-linux:mainfrom
EmbeddedAndroid:rubikpi3
Open

platforms: add qcs6490-thundercomm-rubikpi3 ufs layout#115
EmbeddedAndroid wants to merge 1 commit into
qualcomm-linux:mainfrom
EmbeddedAndroid:rubikpi3

Conversation

@EmbeddedAndroid
Copy link
Copy Markdown

@EmbeddedAndroid EmbeddedAndroid commented May 13, 2026

Summary

Adds a UFS partition scheme and contents.xml.in template for the Thundercomm
RUBIK Pi 3 (qcs6490-thundercomm-rubikpi3). The board uses the same QCS6490
SoC as RB3 Gen 2 and shares its LUN 0-5 firmware layout, but defaults to a
32 GB UFS (vs 128 GB) and exposes a board-specific LUN 6 containing the
three images the Thundercomm UEFI consumes early in boot:

name size filename
rubikpi_con 8192 KB rubikpi_config.img
devcfg_full 204800 KB devcfg_full.img
dtb_con 69632 KB rubikpi_dtso.img

The GUIDs and sizes match the layout the vendor UEFI looks for (extracted
from gpt_main6.bin in the Thundercomm boot-assets).

Mainline Linux support for the board landed in v7.0 via commit
f055a39f6874
("arm64: dts: qcom: Add qcs6490-rubikpi3 board dts").

Motivated by upstream review feedback on
qualcomm-linux/meta-qcom-3rdparty#41 (see
this comment),
which asked that the layout be managed through qcom-ptool like other
targets rather than shipping static rawprogram/patch/gpt files in the
Yocto recipe.

@@ -0,0 +1,122 @@
# Copyright (c) 2026 Tyler Baker <tyler.baker@oss.qualcomm.com>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.

Copy link
Copy Markdown
Author

@EmbeddedAndroid EmbeddedAndroid May 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 4eda058 updated the copyright Thanks!

@koenkooi
Copy link
Copy Markdown

My rubikpi3 shows 128GiB UFS:

rubikpi3:~# dmesg | grep -i blocks
[    0.462725] sd 0:0:0:0: [sda] 29976576 4096-byte logical blocks: (123 GB/114 GiB)
[    0.464061] sd 0:0:0:1: [sdb] 5120 4096-byte logical blocks: (21.0 MB/20.0 MiB)
[    0.465376] sd 0:0:0:2: [sdc] 5120 4096-byte logical blocks: (21.0 MB/20.0 MiB)
[    0.466650] sd 0:0:0:3: [sdd] 8192 4096-byte logical blocks: (33.6 MB/32.0 MiB)
[    0.467955] sd 0:0:0:4: [sde] 655360 4096-byte logical blocks: (2.68 GB/2.50 GiB)
[    0.469190] sd 0:0:0:5: [sdf] 51200 4096-byte logical blocks: (210 MB/200 MiB)
[    0.470352] sd 0:0:0:6: [sdg] 262144 4096-byte logical blocks: (1.07 GB/1.00 GiB)
[    0.471560] sd 0:0:0:7: [sdh] 262144 4096-byte logical blocks: (1.07 GB/1.00 GiB)

And

[    0.461336] scsi 0:0:0:0: Direct-Access     SKhynix  H9QT0G6CN6X146   A002 PQ: 0 ANSI: 6

@EmbeddedAndroid
Copy link
Copy Markdown
Author

My rubikpi3 shows 128GiB UFS:

rubikpi3:~# dmesg | grep -i blocks
[    0.462725] sd 0:0:0:0: [sda] 29976576 4096-byte logical blocks: (123 GB/114 GiB)
[    0.464061] sd 0:0:0:1: [sdb] 5120 4096-byte logical blocks: (21.0 MB/20.0 MiB)
[    0.465376] sd 0:0:0:2: [sdc] 5120 4096-byte logical blocks: (21.0 MB/20.0 MiB)
[    0.466650] sd 0:0:0:3: [sdd] 8192 4096-byte logical blocks: (33.6 MB/32.0 MiB)
[    0.467955] sd 0:0:0:4: [sde] 655360 4096-byte logical blocks: (2.68 GB/2.50 GiB)
[    0.469190] sd 0:0:0:5: [sdf] 51200 4096-byte logical blocks: (210 MB/200 MiB)
[    0.470352] sd 0:0:0:6: [sdg] 262144 4096-byte logical blocks: (1.07 GB/1.00 GiB)
[    0.471560] sd 0:0:0:7: [sdh] 262144 4096-byte logical blocks: (1.07 GB/1.00 GiB)

And

[    0.461336] scsi 0:0:0:0: Direct-Access     SKhynix  H9QT0G6CN6X146   A002 PQ: 0 ANSI: 6

Good catch. I have three of these boards, one is pre production with a 32GB flash chip. Other two are production units and indeed have 128GB UFS. Updated the PR to use 128GB.

Add the partition scheme and contents.xml template for the Thundercomm
RUBIK Pi 3 (qcs6490-thundercomm-rubikpi3). The board uses the same
QCS6490 SoC as RB3 Gen 2 and shares its LUN 0-5 firmware partition
layout, and ships with a 128 GB SK hynix H9QT0G6CN6X146 UFS part.
It also requires three board-specific images on LUN 6 that the
Thundercomm UEFI consumes early in boot:

  - rubikpi_con   (8 MB)   - rubikpi_config.img
  - devcfg_full   (200 MB) - devcfg_full.img
  - dtb_con       (68 MB)  - rubikpi_dtso.img

The GUIDs and sizes match the layout the Thundercomm UEFI looks for
(extracted from the vendor gpt_main6.bin). Mainline kernel support
for the board landed in v7.0 via Linux commit f055a39f6874 ("arm64:
dts: qcom: Add qcs6490-rubikpi3 board dts").

This replaces the static rawprogram/patch/gpt files previously shipped
by the meta-qcom-3rdparty Yocto recipe with a managed layout, per
upstream review feedback. Allow the new board-specific image names
in the integration test and refresh the checksum manifest accordingly.

Signed-off-by: Tyler Baker <tyler.baker@oss.qualcomm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants