Hi Hung-Chun,

Thanks for testing this series

On Sat, 31 Oct 2026 at 17:26, Hung-Chun Tseng <[email protected]> wrote:
>
> Hi Anand,
>
> Thanks for sending this. I tested the series on a Milk-V Jupiter,
> booting from SD. It reaches the U-Boot prompt, but the SPL no longer
> finds the PMIC:
>
>   Get board name:k1-x_milkv-jupiter
>   No PMIC (-19), leaving rails as found
>   DDR firmware: [0xc0820740]:0xf0227179, size:0x8d98
>
> With a Jupiter -u-boot.dtsi that has the same i2c8/pmic block this
> patch removes, the SPL sets the rails before DDR init:
>
>   vdd_core, value:900000
>   vdd_1v8, value:1800000
>   vdd_1v8_mmc, value:3300000
>
> The commit message says the regulator configuration moves to
> dts/upstream, but k1-milkv-jupiter.dts there has no bootph tags and no
> vdd_core/vdd_1v8/vdd_1v8_mmc names, so the PMIC is not in the SPL
> device tree and pmic_init() skips it. It works on this board only
> because the rails come up at usable voltages. How do you plan to let
> the SPL find the rails?
>
> The new file is also not picked up until 6/6. U-Boot includes
> <dtb>-u-boot.dtsi, $(SYS_SOC)-u-boot.dtsi, $(SYS_CPU)-u-boot.dtsi,
> $(SYS_VENDOR)-u-boot.dtsi and u-boot.dtsi (scripts/Makefile.lib),
> which on K1 means k1-u-boot.dtsi or spacemit-u-boot.dtsi. Nothing
> includes spacemit-k1-u-boot.dtsi until 6/6 sets
> CONFIG_DEVICE_TREE_INCLUDES, so 1/6 to 5/6 build without any K1
> overlay, which breaks bisection. I have not built each step. Naming the
> file k1-u-boot.dtsi would get it included from this patch on, and 6/6
> would not need DEVICE_TREE_INCLUDES.
>
I think configs/spacemit_k3_defconfig uses the same approach.

CONFIG_DEVICE_TREE_INCLUDES="spacemit-k3-u-boot.dtsi"

It is consistent to use the same naming format for files.
> The MusePi Pro overlay also set sdhci0's cd-gpios to GPIO 80 active
> low, while k1-musepi-pro.dts in dts/upstream has it active high, so
> removing the override flips card detect on that board. Was the
> override fixing the upstream polarity?
I haven't verified this yet, but we can retain the override if you prefer
>
> Two other things I saw, neither caused by this series: the SPI NOR on
> the Jupiter is a GigaDevice part (JEDEC c8 40 17), which needs
> "configs: k1: enable GigaDevice SPI NOR flash support" [1], and
> U-Boot reports 8 GiB on this 4 GiB board, a known issue in
> ddr_get_density().
>
Yep, you can enable CONFIG_SPI_FLASH_GIGADEVICE in the
configs/spacemit_k1_defconfig

> [1] 
> https://lore.kernel.org/u-boot/[email protected]/
>
You likely need to update the regulator name in your upstream patches
to match the specific naming convention of your board.

for example
               regulators {
                        buck1_0v9: buck1 {
                                regulator-name = "vdd_core";
                                bootph-pre-ram;
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <1050000>;
                                regulator-ramp-delay = <5000>;
                                regulator-always-on;
                        };

                          buck4: buck4 {
                                bootph-pre-ram;
                                regulator-name = "vdd_1v8";
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <3300000>;
                                regulator-ramp-delay = <5000>;
                                regulator-always-on;
                        };

                        aldo1: aldo1 {
                                regulator-name = "vdd_1v8_mmc";
                                bootph-pre-ram;
                                regulator-min-microvolt = <500000>;
                                regulator-max-microvolt = <3400000>;
                                regulator-boot-on;
                        };

You can verify this using the command below

 # dtc -I dtb -O dts spl/u-boot-spl.dtb |
    grep -n -E \
    'regulator|pmic|reset-controller|reset-gpios|vmmc-supply|vqmmc-supply'
136:                    pmic@41 {
149:                            regulators {
152:                                            regulator-name = "vdd_core";
153:
regulator-min-microvolt = <0x7a120>;
154:
regulator-max-microvolt = <0x100590>;
155:                                            regulator-ramp-delay = <0x1388>;
156:                                            regulator-always-on;
161:                                            regulator-name = "vdd_1v8";
162:
regulator-min-microvolt = <0x7a120>;
163:
regulator-max-microvolt = <0x1b7740>;
164:                                            regulator-ramp-delay = <0x1388>;
165:                                            regulator-always-on;
170:                                            regulator-name = "vdd_1v8_mmc";
171:
regulator-min-microvolt = <0x7a120>;
172:
regulator-max-microvolt = <0x33e140>;
173:                                            regulator-boot-on;
298:                            vmmc-supply = <0x3d>;
299:                            vqmmc-supply = <0x3e>;

If you get this working on your boards, please consider updating it in
your patch series.

> Thanks,
> Hung-Chun

Thanks
-Anand

Reply via email to