Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 4919

Troubleshooting • SD card overclock not working?

$
0
0
Hi, i'm having a RPi 4B and i've read about SD card overclock configs. I have the following appended into `/boot/firmware/config.txt`:

Code:

dtoverlay=sdhost,overclock_50=100dtparam=sd_overclock=100

I've checked device tree and I read 0x64 there:

Code:

root@fpi4:~# dtc -I fs /sys/firmware/devicetree/base 2>/dev/null | grep 'overclock.50\|sd.overclock'  -B12                        pinctrl-names = "default";                        pinctrl-0 = <0x31>;                        bus-width = <0x04>;                        non-removable;                        interrupts = <0x00 0x7e 0x04>;                        clocks = <0x08 0x1c>;                        dma-names = "rx-tx";                        compatible = "brcm,bcm2835-mmc\0brcm,bcm2835-sdhci";                        status = "disabled";                        reg = <0x7e300000 0x100>;                        phandle = <0x4d>;                        dmas = <0x0c 0x0b>;                        brcm,overclock-50 = <0x00>;--                mmc@7e202000 {                        bus-width = <0x04>;                        interrupts = <0x00 0x78 0x04>;                        clocks = <0x08 0x14>;                        brcm,pio-limit = <0x01>;                        dma-names = "rx-tx";                        compatible = "brcm,bcm2835-sdhost";                        status = "okay";                        firmware = <0x06>;                        reg = <0x7e202000 0x100>;                        phandle = <0x4b>;                        dmas = <0x0c 0x2000000d>;                        brcm,overclock-50 = <0x64>;--                mmc@7e300000 {                        pinctrl-names = "default";                        pinctrl-0 = <0x13>;                        bus-width = <0x04>;                        interrupts = <0x00 0x7e 0x04>;                        clocks = <0x08 0x1c>;                        dma-names = "rx-tx";                        compatible = "brcm,bcm2835-mmc\0brcm,bcm2835-sdhci";                        status = "disabled";                        reg = <0x7e300000 0x100>;                        phandle = <0x4c>;                        dmas = <0x0c 0x0b>;                        brcm,overclock-50 = <0x00>;--        zone_dma {                dma-ranges = <0x00 0x00 0x00 0x40000000>;                #address-cells = <0x01>;                #size-cells = <0x01>;        };        __overrides__ {                i2c1 = "\0\0\0Hstatus";                spi_dma4 = <0x46 0x646d6173 0x3a303d00 0x2e 0x46 0x646d6173 0x3a383d00 0x2e>;                cam1_reg_gpio = [00 00 00 53 67 70 69 6f 3a 34 00 00 00 00 53 67 70 69 6f 3a 30 3d 00 00 00 00 07];                drm_fb1_vc4 = "\0\0\0Odrm-fb1=\0/gpu";                random = "\0\0\0Jstatus";                sd_overclock = "\0\0\0Kbrcm,overclock-50:0";--                nvmem_cust_rw = "\0\0\0Wrw?";                sd_pio_limit = "\0\0\0Kbrcm,pio-limit:0";                cam0-led;                pwr_led_trigger = "\0\0\0[linux,default-trigger";                i2c_arm_baudrate = "\0\0\0Hclock-frequency:0";                pwr_led_activelow = "\0\0\0[gpios:8";                axiperf = "\0\0\0Nstatus";                strict_gpiod = "\0\0\0Tbootargs=pinctrl_bcm2835.persist_gpio_outputs=n";                uart1 = "\0\0\0Dstatus";                hdmi = "\0\0\0Ustatus\0\0\0\0Vstatus";                drm_fb0_vc4 = "\0\0\0Odrm-fb0=\0/gpu";                cam0_reg_gpio = [00 00 00 52 67 70 69 6f 3a 34 00 00 00 00 52 67 70 69 6f 3a 30 3d 00 00 00 00 07];                sdio_overclock = "\0\0\0Lbrcm,overclock-50:0\0\0\0\0Mbrcm,overclock-50:0";
However, when i checked debugfs, it's still showing DDR50, while i'm expecting DDR100. I've also checked dmesg and it's also showing DDR50 without signs of overclocking.

Code:

root@fpi4:~# head /sys/kernel/debug/mmc0/{clock,ios}==> /sys/kernel/debug/mmc0/clock <==50000000==> /sys/kernel/debug/mmc0/ios <==clock:          50000000 Hzactual clock:   50000000 Hzvdd:            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:    7 (sd uhs DDR50)signal voltage: 1 (1.80 V)driver type:    0 (driver type B)root@fpi4:~# dmesg | grep -i 'mmc\|sd\|overclock'[    1.639016] sdhci: Secure Digital Host Controller Interface driver[    1.639097] sdhci: Copyright(c) Pierre Ossman[    1.639371] sdhci-pltfm: SDHCI platform and OF driver helper[    1.673741] sdhost: log_buf @ 00000000a4453ccd (ee800000)[    1.728670] mmc2: sdhost-bcm2835 loaded - DMA enabled (>1)[    1.768797] mmc0: SDHCI controller on fe340000.mmc [fe340000.mmc] using ADMA[    1.866562] mmc0: new ultra high speed DDR50 SDXC card at address 0001[    1.867544] mmcblk0: mmc0:0001 GD4QT 119 GiB[    1.869977]  mmcblk0: p1 p2[    1.870345] mmcblk0: mmc0:0001 GD4QT 119 GiB[    2.662448] EXT4-fs (mmcblk0p2): mounted filesystem 93c89e92-8f2e-4522-ad32-68faed883d2f ro with ordered data mode. Quota mode: none.[    4.128352] EXT4-fs (mmcblk0p2): re-mounted 93c89e92-8f2e-4522-ad32-68faed883d2f r/w. Quota mode: none.
Any idea what I'm missing? OS info below. Thanks!

Code:

root@fpi4:~# lsb_release -aNo LSB modules are available.Distributor ID: DebianDescription:    Debian GNU/Linux 12 (bookworm)Release:        12Codename:       bookwormroot@fpi4:~# uname -aLinux fpi4 6.6.62+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.6.62-1+rpt1 (2024-11-25) aarch64 GNU/Linux
Additionally, a related question. Is there an option to set/overclock into SDR mode instead of DDR? UHS-I defines DDR50 and SDR208, and i'm hoping to try out SDR208 (or at least SDR200 if restricted by clock division). Some SD cards are eMMC HS400 under the hood, so probably DDR200 also worth a try too)

Statistics: Posted by ferrum — Tue Dec 10, 2024 10:34 pm



Viewing all articles
Browse latest Browse all 4919

Trending Articles