Find an A80 lichee SDK carrying rogue_km at DDK 1.4 #56

Closed
opened 2026-08-29 15:40:47 +00:00 by tiagoagueda · 1 comment
Owner

This is the gate for #55. Everything downstream changes shape depending on the answer,
so it should be settled before any code is written.

A PowerVR stack is three version-locked pieces, and the km/um bridge is checked at runtime.
What we hold:

km source Linux/glibc userspace
DDK 1.3 have it (A80_SDK_20140728_lichee.tar.gz) none exists in our archive
DDK 1.4 missing Ubuntu 150204, with libpvr_dri_if.so

So the only glibc userspace we have - the one that gives accelerated Debian rather than
Android - is DDK 1.4@3064661, and we have no 1.4 kernel source to pair with it.

The task

Find a post-Feb-2015 A80 lichee SDK containing modules/rogue_km at DDK 1.4. Ours is July 2014.
Places to look: other A80 board vendors (Cubieboard4, Merrii Optimus, CX-A99), Chinese mirrors,
linux-sunxi archives, any A80_SDK_2015* tarball.

Verify a candidate with grep PVRVERSION_ include/pvrversion.h - it must read 1.4.

Do not

Pair km 1.3 with um 1.4. The generated bridge ABI differs between DDK minors. Forcing the version
constants is a ~1 hour experiment worth doing once, but plan on it failing.

If this fails

Fallbacks are Android userspace on Debian via libhybris, or simply booting the vendor Android 4.4
(141025) build - which is the DDK 1.3 one, and therefore already a matched pair - when
acceleration is wanted. Neither needs this issue resolved.

**This is the gate for #55.** Everything downstream changes shape depending on the answer, so it should be settled before any code is written. A PowerVR stack is three version-locked pieces, and the km/um bridge is **checked at runtime**. What we hold: | | km source | Linux/glibc userspace | |---|---|---| | DDK **1.3** | have it (`A80_SDK_20140728_lichee.tar.gz`) | none exists in our archive | | DDK **1.4** | **missing** | Ubuntu 150204, with `libpvr_dri_if.so` | So the only **glibc** userspace we have - the one that gives accelerated *Debian* rather than Android - is DDK `1.4@3064661`, and we have no 1.4 kernel source to pair with it. ## The task Find a post-Feb-2015 A80 `lichee` SDK containing `modules/rogue_km` at DDK 1.4. Ours is July 2014. Places to look: other A80 board vendors (Cubieboard4, Merrii Optimus, CX-A99), Chinese mirrors, linux-sunxi archives, any `A80_SDK_2015*` tarball. **Verify a candidate with** `grep PVRVERSION_ include/pvrversion.h` - it must read `1.4`. ## Do not Pair km 1.3 with um 1.4. The generated bridge ABI differs between DDK minors. Forcing the version constants is a ~1 hour experiment worth doing once, but plan on it failing. ## If this fails Fallbacks are Android userspace on Debian via libhybris, or simply booting the vendor Android 4.4 (141025) build - which is the DDK 1.3 one, and therefore already a matched pair - when acceleration is wanted. Neither needs this issue resolved.
Author
Owner

Found. https://github.com/cubieboard/CC-A80-kernel-source, commit
6a5adc979f2191be1ddefbf02aea53b12e7942a1, modules/rogue_km.

It passes the test this issue specifies, and then some:

PVRVERSION_MAJ               1
PVRVERSION_MIN               4
PVRVERSION_BRANCHNAME       "1.4"
PVRVERSION_BUILD             3064661
PVRVERSION_STRING           "Rogue_DDK_Linux_XOrg rogueddk 1.4@3064661"

Two things make this better than the minimum asked for:

  1. 3064661 is the exact build of the userspace we already hold. Not merely DDK 1.4 - the
    same build number as libpvr_dri_if.so from Ubuntu 150204. There is no "close enough minor"
    judgement to make.
  2. Rogue_DDK_Linux_XOrg, not Android_RSCompute. It is the glibc/X11 variant, which is
    the case this issue existed for: accelerated Debian, without libhybris and without booting
    the vendor Android 4.4 build.

It also carries what a build actually needs: services/system/rgx_sunxi/ (the sunxi system
layer) and build/linux/sunxi_linux/Makefile (a Linux target, not an Android one), on kernel
3.4.39 - the same 3.4 family as our vendor tree.

The dead ends, recorded so nobody repeats them

  • both local rogue_km trees (~/a80/rogue/lichee/... and ~/a80/linux-3.4-sunxi/...) are
    1.3@2966915. The eurasia_km tree alongside them is sgxddk 1.12 - SGX, a different GPU
    family entirely, and not relevant.
  • the three post-Feb-2015 vendor archives (SDK3.0_151117, SDK3.0_AP6335_4.4.2_20150914,
    Remix_150812) contain no lichee, rogue or pvr entries. They are flashable images, not
    source SDKs - the "SDK" in the filename is about the release line, not its contents.
  • the full offline linux-sunxi wiki mirror, all 4095 pages, references exactly one A80 SDK:
    A80_SDK_20140728, the July 2014 one we already have. There is no 2015 A80 SDK on
    dl.linux-sunxi.org.

So the answer was never going to come from an A80_SDK_2015* tarball. It came from a different
A80 board vendor
- which this issue did list as a place to look, and which turned out to be the
one that mattered.

Archived

Because "it is on GitHub" was equally true of the A80 lichee sources and android.zip, which
are now gone from every mirror. A public URL is a location, not a backup.

~/a80/vendor/CC-A80-kernel-source-6a5adc979f21.tar.zst 84 M, 948ecb2d883fdee5…
~/a80/vendor/CC-A80-rogue_km-1.4@3064661.tar.zst 558 K, bfca816172844…

Both tested with zstd -t, and pvrversion.h re-extracted from the small one to confirm the
round trip. Detail in ARCHIVE.md. It should follow the nine vendor images to the other two
locations.

This unblocks #55. The "if this fails" fallbacks in the original post - libhybris, or booting
Android 4.4 for acceleration - are no longer needed.

Found. `https://github.com/cubieboard/CC-A80-kernel-source`, commit `6a5adc979f2191be1ddefbf02aea53b12e7942a1`, `modules/rogue_km`. It passes the test this issue specifies, and then some: ``` PVRVERSION_MAJ 1 PVRVERSION_MIN 4 PVRVERSION_BRANCHNAME "1.4" PVRVERSION_BUILD 3064661 PVRVERSION_STRING "Rogue_DDK_Linux_XOrg rogueddk 1.4@3064661" ``` Two things make this better than the minimum asked for: 1. **`3064661` is the exact build of the userspace we already hold.** Not merely DDK 1.4 - the same build number as `libpvr_dri_if.so` from Ubuntu 150204. There is no "close enough minor" judgement to make. 2. **`Rogue_DDK_Linux_XOrg`, not `Android_RSCompute`.** It is the glibc/X11 variant, which is the case this issue existed for: accelerated *Debian*, without libhybris and without booting the vendor Android 4.4 build. It also carries what a build actually needs: `services/system/rgx_sunxi/` (the sunxi system layer) and `build/linux/sunxi_linux/Makefile` (a Linux target, not an Android one), on kernel 3.4.39 - the same 3.4 family as our vendor tree. ## The dead ends, recorded so nobody repeats them - both local `rogue_km` trees (`~/a80/rogue/lichee/...` and `~/a80/linux-3.4-sunxi/...`) are **1.3@2966915**. The `eurasia_km` tree alongside them is `sgxddk 1.12` - SGX, a different GPU family entirely, and not relevant. - the three post-Feb-2015 vendor archives (`SDK3.0_151117`, `SDK3.0_AP6335_4.4.2_20150914`, `Remix_150812`) contain **no** lichee, rogue or pvr entries. They are flashable images, not source SDKs - the "SDK" in the filename is about the release line, not its contents. - the **full offline linux-sunxi wiki mirror, all 4095 pages**, references exactly one A80 SDK: `A80_SDK_20140728`, the July 2014 one we already have. There is no 2015 A80 SDK on dl.linux-sunxi.org. So the answer was never going to come from an `A80_SDK_2015*` tarball. It came from a *different A80 board vendor* - which this issue did list as a place to look, and which turned out to be the one that mattered. ## Archived Because "it is on GitHub" was equally true of the A80 `lichee` sources and `android.zip`, which are now gone from every mirror. A public URL is a location, not a backup. | | | |---|---| | `~/a80/vendor/CC-A80-kernel-source-6a5adc979f21.tar.zst` | 84 M, `948ecb2d883fdee5…` | | `~/a80/vendor/CC-A80-rogue_km-1.4@3064661.tar.zst` | 558 K, `bfca816172844…` | Both tested with `zstd -t`, and `pvrversion.h` re-extracted from the small one to confirm the round trip. Detail in `ARCHIVE.md`. It should follow the nine vendor images to the other two locations. **This unblocks #55.** The "if this fails" fallbacks in the original post - libhybris, or booting Android 4.4 for acceleration - are no longer needed.
Sign in to join this conversation.
No description provided.