Decompiled dtb doesn’t use names for gpio but uses only numbers. Just compare second and third value for interrupt-gpios and power_on-gpios.
And also check in dmesg of any gpio conflict (grep gpio).
Decompiled dtb doesn’t use names for gpio but uses only numbers. Just compare second and third value for interrupt-gpios and power_on-gpios.
And also check in dmesg of any gpio conflict (grep gpio).
coreelec dtb fdtdump:
compatible = "amlogic, aml-wifi";
status = "okay";
irq_trigger_type = "GPIO_IRQ_LOW";
interrupt-gpios = <0x00000018 0x00000037 0x00000000>;
power_on-gpios = <0x00000018 0x00000036 0x00000000>;
pwm_config = <0x00000046>;
};
wifi_pwm_conf {
phandle = <0x00000046>;
pwm_channel1_conf {
pwms = <0x00000047 0x00000000 0x0000774d 0x00000000>;
duty-cycle = <0x00003ba6>;
times = <0x00000007>;
};
pwm_channel2_conf {
pwms = <0x00000047 0x00000002 0x00007724 0x00000000>;
duty-cycle = <0x00003b92>;
times = <0x0000000a>;
};
};
android dtb fdtdump:
aml_wifi {
compatible = "amlogic, aml-wifi";
status = "okay";
irq_trigger_type = "GPIO_IRQ_LOW";
pwm_config = <0x00000052>;
interrupt-gpios = <0x0000001e 0x00000037 0x00000000>;
power_on-gpios = <0x0000001e 0x00000036 0x00000000>;
};
wifi_pwm_conf {
phandle = <0x00000052>;
pwm_channel1_conf {
pwms = <0x00000053 0x00000000 0x0000774d 0x00000000>;
duty-cycle = <0x00003ba6>;
times = <0x00000007>;
};
pwm_channel2_conf {
pwms = <0x00000053 0x00000002 0x00007724 0x00000000>;
duty-cycle = <0x00003b92>;
times = <0x0000000a>;
};
};
I can’t tell the difference, the second and third value are the same
In the case of wifi sdio cards, you do not modify the aml_wifi section, only the “sdio” section.
Somewhere here: https://github.com/CoreELEC/linux-amlogic/blob/amlogic-5.4.210/arch/arm64/boot/dts/amlogic/s4_s905w2_ap201_1g.dts , line 1278.
It worked on my box.
Hi @Secam7 , what you’ve added to this section &sd_emmc_a
? Can you pls highlight more? I added like this, still not working
status = "okay";
pinctrl-0 = <&sdio_pins>;
pinctrl-1 = <&sdio_clk_gate_pins>;
pinctrl-names = "default", "clk-gate";
#address-cells = <1>;
#size-cells = <0>;
bus-width = <4>;
cap-sd-highspeed;
sd-uhs-sdr50;
sd-uhs-sdr104;
max-frequency = <200000000>;
non-removable;
disable-wp;
+ interrupt-parent = <&gpio>;
+ interrupt-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_HIGH>;
+ power_on-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_HIGH>;
//vmmc-supply = <&vddao_3v3>;
//vqmmc-supply = <&vddio_ao1v8>;
brcmf: wifi@1 {
reg = <1>;
compatible = "brcm,bcm4329-fmac";
};
};
Please update tomorrow with next Amlogic-ne nightly 20230919 and run:
udevadm info /sys/bus/pci/devices/* | paste
and
lspci | paste
In my box, for sdio it was enough to reduce the clock to 40MHz.
Here is the link to my changes: MECOOL M8S PLUS (new, s905x2)
Check if sdio is working now:
CoreELEC:~ # cat /sys/kernel/debug/sdio/ios
clock: 40000000 Hz
actual clock: 40000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 1 (up)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
CoreELEC:~ #
Thank you. It does not work for my box. There is no /sys/kernel/debug/sdio
folder.
The command
udevadm info /sys/bus/sdio/devices/* | paste
http://ix.io/4GIw
dmesg
http://ix.io/4GIx
I have kernel 4.9, in kernel 5.x there may be a different path, e.g. /sys/kernel/debug/mmc*
Show: ls -la /sys/kernel/debug/
@Secam7 , I think it is mmc2
CoreELEC:~ # cat /sys/kernel/debug/mmc1/ios
clock: 50000000 Hz
actual clock: 50000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 2 (sd high-speed)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
CoreELEC:~ # cat /sys/kernel/debug/mmc0/ios
clock: 200000000 Hz
actual clock: 196608000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 3 (8 bits)
timing spec: 9 (mmc HS200)
signal voltage: 1 (1.80 V)
driver type: 0 (driver type B)
CoreELEC:~ # cat /sys/kernel/debug/mmc2/ios
clock: 50000000 Hz
actual clock: 50000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip select: 0 (don't care)
power mode: 2 (on)
bus width: 2 (4 bits)
timing spec: 0 (legacy)
signal voltage: 0 (3.30 V)
driver type: 0 (driver type B)
##############################################
##############################################
CoreELEC (official): 21.0-Omega_nightly_20230919 (Amlogic-ne.aarch64)
Machine model: Amlogic
CoreELEC dt-id: sc2_s905x4_4g_1gbit
CoreELEC:~ # udevadm info /sys/bus/pci/devices/* | paste
Unknown device “/sys/bus/pci/devices/*”: No such device
CoreELEC:~ # lspci | paste
CoreELEC:~ # lspci | paste
CoreELEC:~ # lspci
CoreELEC:~ #
@Portisch @vpeter What happens when you can’t get it? It’s weird.
Boot this image and enable pci by SSH:
mount -o rw,remount /flash
fdtput -t s /flash/dtb.img /soc/pcie@f5000000 status okay
sync
reboot
dmesg | paste
After reboot try again if lspci
give now a result or not.
If yes: udevadm info /sys/bus/pci/devices/* | paste
Latest nighty HAKO Pro (S905Y4-B). BT not working (No adaptor) , WIFI is fine
info /sys/bus/sdio/devices
http://ix.io/4GNs
dmesg | paste
http://ix.io/4GNt
CoreELEC:~ # udevadm info /sys/bus/pci/devices/* | paste
Unknown device “/sys/bus/pci/devices/*”: No such device
CoreELEC:~ # mount -o rw,remount /flash
CoreELEC:~ # fdtput -t s /flash/dtb.img /pcie@f5000000 status okay
Error at ‘/pcie@f5000000’: FDT_ERR_NOTFOUND
adb shell:
127|ohm:/sys/bus/pci/devices $ lspci
01:00.0 Class 0280: 14e4:449d
00:00.0 Class 0604: 16c3:abcd
1|ohm:/sys/bus/pci/devices $ lspci -k
01:00.0 Class 0280: 14e4:449d pcieh
00:00.0 Class 0604: 16c3:abcd pcieport
Android DTB file:
dtb.img (256 KB)
Whether terminal sharing is required.
Yes, it’s mmc2 and it looks correct.
My box in LibreElec needed entries like this:
+/* SDIO */
+&sd_emmc_a {
+ status = "okay";
+ pinctrl-0 = <&sdio_pins>;
+ pinctrl-1 = <&sdio_clk_gate_pins>;
+ pinctrl-names = "default", "clk-gate";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ bus-width = <4>;
+ cap-sd-highspeed;
+ max-frequency = <40000000>;
+
+ non-removable;
+ disable-wp;
+
+ /* WiFi firmware requires power to be kept while in suspend */
+ keep-power-in-suspend;
+
+ mmc-pwrseq = <&sdio_pwrseq>;
+
+ vmmc-supply = <&vddao_3v3>;
+ vqmmc-supply = <&vddao_1v8>;
+
+ rtl8189fs: wifi@1 {
+ reg = <1>;
+ };
+};
I changed the max-frequency and entries about the driver (in my case rtl8189fs).
I would still try with the driver sources unchanged. If this doesn’t work, I have no more ideas.
Please try again with tomorrow next Amlogic-ne nightly.
After update do these steps again:
I have tested the latest nightly version of ng and reported the previous errors. The latest nightly version of ne is not available yet and cannot be tested.
@Portisch
CoreELEC:~ # mount -o rw,remount /flash
CoreELEC:~ # fdtput -t s /flash/dtb.img /pcie@f5000000 status okay
Error at ‘/pcie@f5000000’: FDT_ERR_NOTFOUND
read above: it must be
/soc/pcie@f5000000
and I really doubt pci will work on 4.9 kernel on ng image
##############################################
# CoreELEC #
# https://coreelec.org #
##############################################
CoreELEC (official): 20.3-Nexus_nightly_20230922 (Amlogic-ng.arm)
Machine model: Amlogic
CoreELEC dt-id: sc2_s905x4_4g_1gbit
CoreELEC:~ # mount -o rw,remount /flash
CoreELEC:~ # fdtput -t s /flash/dtb.img /soc/pcie@f5000000 status okay
Error at '/soc/pcie@f5000000': FDT_ERR_NOTFOUND
CoreELEC:~ # lspci
-sh: lspci: command not found
Do you need today’s version test of ne? Thank you, please.
@vpeter
With mixing CE20, CE21, NG, NE it is (as I already wrote) impossible to follow what you are doing because there are naming differences.
On NE it is
/soc/pcie@f5000000
and on NG it is
/pcieA@f5000000
And I doubt PCIe works ok on NG.
PCI only will work on Amlogic -ne.
The new nightly is now online:
https://relkai.coreelec.org/?dir=Amlogic-ne
About | FAQ | Terms of Service | Privacy Policy | Legal Notice