IIRC the BBB is in nitro mode, which is clocking beyond the normal multipliers, you keep the fundamental clocks at 100MHz though. Overclocking emmc you usually do through timings. When I’ve so it before I’ve modified the device tree at uboot time, crux is finding the thing to change, and the changing it in a safe way - e.g. If you have a script that modifies the device tree at built time, then when the machine refuses to boot, you can pull the sd card, and change things back. Also if you a uart attached, can just modify the change in uboot in real time. If I get time I’ll look into what to change, doing it via uboot may well be different, as I use arch rather than debian.
This is where I did this on an odroid Arch Linux ARM • View topic - odroid-c2 linux 4.15 and eMMC [SOLVED - well work arround]
OK found the two possible entries in the device tree for BBB:
ocp/interconnect@48000000/segment@100000/target-module@d8000/mmc@0 - this is the emmc
ocp/interconnect@48000000/segment@0/target-module@60000/mmc@0 - this is the sdcard
Neither has a speed, so will need to check from the compatible flag which kernel driver it uses, and if that kernel module can also take a speed setting from device tree.
This is where you can get the Device tree parameters for the kernel driver - it doesn’t obviously have a speed - so need to check if the kernel drive also uses the higher mmc kernel drive, which has speed settings.
This is where you can see the max-frequency, its not clear if this sets the running speed, or the maximum speed. Usually the speed is set by the card type, e.g. HS400 and so on, so I think max-frequency may only be to under clock devices …
So think maybe the way to do this is to force the emmc to be run in a different mode than is detected, this allows a higher multiplier. Then you set the max-frequency to down clock the speed to close to where you want it.
Btw - doing this is hairy as anything, it stands a good chance of breaking your system. So the real question has to be why do you want to increase the speed of the emmc beyond what is detected, boot speed isn’t a good reason …
Ohh yes this is wher you can see current settings: /sys/kernel/debug/mmc*/ios
The kernel module that does the emmc is:
omap_hsmmc.c
So you can see where the 5200000 comes from. It seems to inherit the maximum frequency - so it does suggest you can change the maximum frequency as above, this is under the assumption that it uses the main mmc code - which I think does take the maximum frequency.
If you do change these things, make sure you have a way of changing back. e.g. write it to a file system you can access independently (e.g. and sd card).