From: Andre Heider <a.heider@gmail.com>
To: E Shattow <e@freeshell.de>, Eric Chung <eric.chung@riscstar.com>
Cc: u-boot-spacemit@groups.io, u-boot@lists.u-boot-project.org,
Yao Zi <me@ziyao.cc>, Tom Rini <trini@konsulko.com>,
Tim Ouyang <tim609@andestech.com>,
Leo Liang <leo.liang@sifive.com>, Wei Fu <wefu@redhat.com>,
Scott Bambrough <scott@riscstar.com>,
Huan Zhou <pericycle.cc@gmail.com>,
Raymond Mao <raymond.mao@riscstar.com>,
Peng Fan <peng.fan@nxp.com>,
Jaehoon Chung <jh80.chung@samsung.com>,
Bastien Curutchet <bastien.curutchet@bootlin.com>,
Anshul Dalal <anshuld@ti.com>, Siu Ming Tong <smtong@axiado.com>,
Johan Jonker <jbx6244@gmail.com>, Yixun Lan <dlan@kernel.org>
Subject: Re: [PATCH v13 7/7] spacemit: k1: fix product name detection and DTB matching in SPL
Date: Tue, 6 Oct 2026 08:57:25 +0200 [thread overview]
Message-ID: <873ea90e-e5af-4f9f-aadc-12989cd49786@gmail.com> (raw)
In-Reply-To: <8a53fca3-c1c9-4dd4-86d0-cb40c7ca597f@freeshell.de>
Hi,
just noticed that Yixuan wasn't part of cc:, adding.
On 05.10.26 11:33 PM, E Shattow wrote:
> On 10/5/26 08:34, Eric Chung wrote:
>> On Mon, Oct 5, 2026 at 3:23 PM Andre Heider <a.heider@gmail.com> wrote:
>>>
>>> On 05.10.26 6:01 AM, Eric Chung wrote:
>>>> On Fri, Oct 2, 2026 at 8:58 PM Andre Heider <a.heider@gmail.com> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> just a general question related to this patch, not about the patch itself, see below:
>>>>>
>>>>> On 12.09.26 2:37 PM, Eric Chung wrote:
>>>>>> +static const struct {
>>>>>> + const char *eeprom_name;
>>>>>> + const char *fit_name;
>>>>>> +} k1_board_map[] = {
>>>>>> + { "k1-x_MUSE-Pi-Pro", "spacemit/k1-musepi-pro" },
>>>>>> + { "k1-x_deb1", "spacemit/k1-bananapi-f3" },
>>>>>> + { "k1-x_milkv-jupiter", "spacemit/k1-milkv-jupiter" },
>>>>>> +};
>>>>> This maps the EEPROMs product_name to the dtb, just like the vendor fork, nice.
>>>>>
>>>>> But does the BPI F3 really have "k1-x_deb1" in there?
>>>>> I know that's the fallback dtb of the vendor's fork [0][1], in case there's nothing there, and I thought that was the case for the F3?
>>>>>
>>>>
>>>> k1-x_deb1 means the internal development board. And it could work
>>>> smoothly on the Banana Pi F3.
>>>
>>> Yes, but maybe someone with a F3 board can verify via `tlv_eeprom` if that string is actually in there?
>>>
>>>>
>>>>
>>>>> Because it seems it's not set for BPI-CM6 IO board either [2], which then makes it impossible to distinguish, at least based on the EEPROM value :\
>>>>>
>>>>
>>>> What's BPI-CM6 IO board? Is the BPI-CM6 IO board similar to the Banana
>>>> Pi F3? Is it supported by linux kernel now?
>>>
>>> This one:
>>> https://docs.banana-pi.org/en/BPI-CM6/BananaPi_BPI-CM6
>>>
>>> Supported by mainline via:
>>> arch/riscv/boot/dts/spacemit/k1-bananapi-cm6-io.dts
>>>
>>> Apparently sinovoip *edited* k1-x_deb1.dts for CM6 and even ship that hack in their OS images (visible in the logs on that OpenWrt PR):
>>> https://github.com/BPI-SINOVOIP/pi-linux/commit/333b99e8cd9b18e98bf71821518548df345dbb61
>>> /o\
>>>
>>>>
>>>>> Are there any ideas how to handle that, yet?
>>>>>
>>>>> Can we distinguish between those boards in the SPL based on something different?
>>>>>
>>>>> Or can we make up our own strings and let users write that to EEPROM? Mainline and vendor technically allows it via e.g.:
>>>>> tlv_eeprom set 0x21 "k1-x_BPI-CM6-IO"
>>>>> tlv_eeprom write
>>>>> But that's assuming the EEPROM is writable, which I haven't checked.
>>>>> (And I neither have a F3 nor a CM6).
>>>>>
>>>>
>>>> tlv_eeprom should support to write EEPROM. If it fails, we could
>>>> enable ENV in SPL. I have a patch in the mailing list to enable ENV.
>>>> But that patch was abandoned. You could review the mailing list to
>>>> reuse it.
>>>
>>> In the meantime a board owner verified the EEPROM write as working:
>>> https://github.com/openwrt/openwrt/pull/23231#issuecomment-5972395785
>>>
>>> For the record, I made up "k1-x_BPI-CM6-IO" as product name with a matching vendor fork device-tree file name, which makes u-boot as well as the kernel pick up their matching device-trees via CONFIG_FIT_BEST_MATCH.
>>>
>>> In case mainline u-boot goes the same way (let CM6 owners add a value to EEPROM) to properly make multi-dtb fit images boot, can we agree on a value? Or maybe someone here has connections to sinovoip and ask them to put that/anything in there?
>>>
>>
>> Yes, adding "k1-x_BPI-CM6-IO" to the EEPROM sounds good to me. Feel
>> free to format a patch and send it to the mailing list.
>
> If we are inventing EEPROM data based on vibes then I think it is
> appropriate to give at least one or two characters in the EEPROM data to
> the company names respectively; "BananaPi" and "OrangePi" are brands
> astroturfing the Raspbery Pi Foundation trademark.
>
> "Orange Pi is an open source product brand of Shenzhen Xunlong Software
> Co., Ltd" from www.orangepi.org website.
>
> FYI for the StarFive JH-7110 SoC Xunlong OrangePi RV board I made up
> this EEPROM value in board/starfive/visionfive2/spl.c:
>
> } else if (!strcmp(name, "starfive/jh7110-orangepi-rv") &&
> !strncmp(get_product_id_from_eeprom(), "XOPIRV", 6)) {
>
> and in board/starfive/visionfive2/starfive_visionfive2.c:
>
> } else if (!strncmp(get_product_id_from_eeprom(), "XOPIRV", 6)) {
> fdtfile = "starfive/jh7110-orangepi-rv.dtb";
>
> It is the situation that a few products on the market with JH-7110 SoC
> have shipped having an EEPROM product name data identical to the
> reference StarFive VisionFive2 1.3b board and where the vendor edits
> this corresponding dts file in their own u-boot fork. Eventually I would
> like this to be a bare-minimum default for boards in mainline u-boot
> that get it wrong to boot with just enough peripheral support to write a
> new EEPROM value. As it is now we fail the boot with a message for the
> user when no match is found.
Ack, that sounds like a good idea.
> While we're inventing new values for boards with SpacemiT SoC we should
> also add such for the Banana Pi F3 and not leave it with the generic
> reference board product name (unless that is in fact what its purpose is
> historically). I suggest a logical-or to the existing comparison for
> compatibility until a decision is formed about what should be the
> default when no match is found.
>
> The EEPROM data examples are derived from vendor u-boot filenames so not
> necessary to arbitrarily upcase; Add for example "k1-x_svbpi-cm6" for
> the System-on module or "k1-x_svbpi-cm6-io" for the baseboard, whichever
> has the EEPROM device. In fact we might also derive this as
> "k1-bananapi-cm6" or "k1-bananapi-cm6-io" from upstream Linux. The
> pattern with "k1-x_" prefix appears to be representing vendor dts
> filenames for boards with the taped-out K1 SoC; and "k1-pro_" is
> pre-production dts filename related. That is very arbitrary and I don't
> see any reason why we should invent something on vibes about a filename
> that does not exist... but anyways it would be lowercase and not upcase.
While mainline u-boot for K1 progresses nicely, it's not ready yet (think bootstrapping spl/proper/kernel on all boards from bootrom via fastboot).
Which is why the OpenWrt PR has the vendor u-boot for now (with some patches and compatibles added to boot mainline opensbi/linux).
So I actually created a k1-x_BPI-CM6-IO.dts file in there. I just derived the name based on what else is in there:
k1-x_baton-camera.dts
k1-x_BPI-CM6-IO.dts
k1-x_deb1.dts
k1-x_deb2.dts
k1-x_evb.dts
k1-x_FusionOne.dts
k1-x_InnoBoard-Pi.dts
k1-x_lpi3a.dts
k1-x_LX-V10.dts
k1-x_milkv-jupiter.dts
k1-x_MINI-PC.dts
k1-x_MUSE-Book.dts
k1-x_MUSE-Card.dts
k1-x_MUSE-N1.dts
k1-x_MUSE-Paper2.dts
k1-x_MUSE-Paper-mini-4g.dts
k1-x_MUSE-Pi.dts
k1-x_MUSE-Pi-Pro.dts
k1-x_som.dts
k1-x_spl.dts
k1-x_uav.dts
k1-x_ZT001H.dts
k1-x_ZT_RVOH007.dts
x1_orangepi-r2s.dts
x1_orangepi-rv2.dts
- the k1-x_ prefix is to keep it in line
- there's a mix of upper and lower case
- the mainline dts has no "sv" or "sinovoip" either, it even uses the "bananapi" vendor for the compatible
- both orangepi boards are already covered. The patches are from armbian IIRC, but didn't require adding a product name to EEPROM
> Suggested thus any of:
> k1-x_bpi-cm6(-io)
> k1-x_svbpi-cm6(-io)
> k1-x_svbp-bpi-cm6(-io)
> k1-x_bpbpi-cm6(-io)
> k1-x_bpi-cm6(-io)
> k1-bananapi-cm6
> k1-bananapi-cm6-io
> k1-bananapi-f3
>
> My strong preference is for referring to mainline Linux dts filenames if
> we are just making it up when the overwhelming trend is to refer to
> actual filenames, somewhere.
I don't really have a preference, the name I made up was the first thing that made sense to me. Whatever can be agreed upon ;)
Cheers,
Andre
next prev parent reply other threads:[~2026-10-06 13:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-12 12:36 [PATCH v13 0/7] spacemit mmc driver Eric Chung
2026-09-12 12:36 ` [PATCH v13 1/7] spacemit: k1: select boot device via config registers Eric Chung
2026-09-12 12:36 ` [PATCH v13 2/7] mmc: k1: add sdhci platform driver Eric Chung
2026-09-16 12:40 ` Yixun Lan
2026-09-23 13:23 ` Yixun Lan
2026-09-12 12:36 ` [PATCH v13 3/7] dts: k1: enable mmc devices in SPL Eric Chung
2026-09-12 12:36 ` [PATCH v13 4/7] configs: k1: enable SD and eMMC support Eric Chung
2026-09-12 12:36 ` [PATCH v13 5/7] MAINTAINER: update Spacemit K1 entry Eric Chung
2026-09-12 12:36 ` [PATCH v13 6/7] doc: spacemit: flash on K1 SoC based boards Eric Chung
2026-09-12 12:37 ` [PATCH v13 7/7] spacemit: k1: fix product name detection and DTB matching in SPL Eric Chung
2026-10-02 12:58 ` Andre Heider
2026-10-05 4:01 ` Eric Chung
2026-10-05 7:23 ` Andre Heider
2026-10-05 15:34 ` Eric Chung
2026-10-05 21:33 ` E Shattow
2026-10-06 6:57 ` Andre Heider [this message]
2026-09-16 12:27 ` [PATCH v13 0/7] spacemit mmc driver Yixun Lan
2026-09-29 10:14 ` Yixun Lan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=873ea90e-e5af-4f9f-aadc-12989cd49786@gmail.com \
--to=a.heider@gmail.com \
--cc=anshuld@ti.com \
--cc=bastien.curutchet@bootlin.com \
--cc=dlan@kernel.org \
--cc=e@freeshell.de \
--cc=eric.chung@riscstar.com \
--cc=jbx6244@gmail.com \
--cc=jh80.chung@samsung.com \
--cc=leo.liang@sifive.com \
--cc=me@ziyao.cc \
--cc=peng.fan@nxp.com \
--cc=pericycle.cc@gmail.com \
--cc=raymond.mao@riscstar.com \
--cc=scott@riscstar.com \
--cc=smtong@axiado.com \
--cc=tim609@andestech.com \
--cc=trini@konsulko.com \
--cc=u-boot-spacemit@groups.io \
--cc=u-boot@lists.u-boot-project.org \
--cc=wefu@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.