I have zero use of the NPU and the idea it steals 6GB of RAM is quite frustrating. RockOS 2025-0423 does not publish an asset of the DTB with no-npu. I tried using the DTB asset from 2025-0219, but that causes the Megrez to fail to boot with some kind of display error. Should the DTB from 2025-0219 actually work or do you need a 2025-0423 specific DTB to get the NPU to be disabled? If you need a specific DTB, can someone please upload that asset to github? If you don’t need a specific DTB, has anyone seen it cause a boot failure?
The device tree has changed substantially between the 2025-0219 and 2025-0423 releases. It seems MilkV simply forgot to include the nodsp DTB in the current release. I would open an issue for the missing DTB on their GitHub and see what happens. I have been looking at the DTS for both the nodsp and the standard versions and I haven’t found the on/off swich. But that says more about my poor DT skills than anything else.
Correction! I found the change. If you decompile your current DTB, you want to look for mmz_nid_0_part_0 section, there is a line of reg = <0x03 0x00 0x01 0x80000000>; this needs to be changed to reg = <0x03 0x00 0x01 0x1000>; and then re-compile the DTB. This should remove the shared memory block.
Decompile existing DTB to DTS: dtc -i dtb -o dts /boot/dtb/eswin/eic7700-milkv-megrez.dtb (this creates a file called dts in the current directory)
Then you can compile with dtc -i dts -o dtb dts that will compile the dts file into a dtb file.
Backup your current DTB, don’t overwrite in case I am wrong but that should do what you want.
And frankly this should be in the official docs, its far superior of a solution than having to download a new .dtb file. It could easily be a script to let you switch between .dtbs as well.
You wouldn’t happen to know how to use their NPU without their runtime? (on megrez) Running deepseek with their runtime using modelscope seemed like a black box. I wouldn’t mind working with their NPU if there was some docs for it.