option even though the Linux kernel doesn actually use the physical memory range that I am specifying?
The CMEM kernel module’s allowOverlap=0|1 option was originally introduced to allow the system developer to forcibly install CMEM in a physical memory range that appears to fall within the kernel’s memory range. The range check itself is intended to alert the user that they have chosen an invalid memory range, as well as preventing kernel corruption that might result if the overlap was allowed to happen. The range check is about as basic as it can be, as it merely checks whether the beginning address of a CMEM memory block is below the end of the Linux kernel’s valid physical memory range (which is defined by the u-boot bootargs parameter of mem=##M). In other words, the check was just assuring that the CMEM memory was *above* the kernel’s memory. Since this check was introduced, valid use cases have arisen where CMEM is granted physical memory that lies either below or both above and below the Linux kernel’s memory range (or ranges).