If you have verified that the memory at $E00000 is readable and writable (and battery backed), the memory should be able to do anything that a "real" CDTV memory card can do. The memory cards are dead simple SRAM, with just data- and address lines and R/W and chip select lines for the odd and even chips.
But here is one important thing you also may need to rule out: bookmark/cardmark.device will inspect the first word at $E00000 when the system starts up to see if the memory is in use. If $E00000 does not contain one of the values below,
it will assume the memory is "unformatted" and will proceed to wipe the card and format it for cardmark use:
| Magic value | Meaning |
| BK | Memory used for bookmarks/cardmarks |
| RW | R/W / RAM card |
| RO | Read only / ROM card |
| RD | Ram disk |
| OK | Something else |
Cardmark.device is present in the official 1.0 ROM, the 2.0 ROM and the unofficial/custom 2.35 ROM. (It is missing from 2.7 and 2.30, because those ROMs contain portions of code that were built for the A570 and that hardware doesn't support memory cards). So if your system has 1.0, 2.0 or 2.35, you need to make sure to write "OK", "RD" or "RW" to address $E00000 once before use. Then you can use any memory from $E000002 and up freely without it getting wiped after reboots. (Let me know if you need help with that.)
If you're not using 1.0, 2.0 or 2.35, and have verified reading/writing RAM works fine, then the problem may lay with how AllocRamDisk / memory.device works, but I haven't used those tools, so can't really comment much there atm.
Also note: any resident modules on the memory card will only get initialized with the following combinations of CDTV/Kickstart ROM:
- CDTV 1.0 + Kickstart 1.3
- CDTV 2.35 + Kickstart 1.3 or Kickstart 2.x
If you use Kickstart 3+ then resident modules on the memory card will
not get initialized. This is because the exec.library inside the CDTV ROM has been modified to also scan the $E00000-$E7ffff area for ROM tags. This region is not scanned by the "normal" exec.library in the Kickstart ROMs. Because the CDTV specific exec.library has a higher priority than its counterpart in Kickstart ROM it "wins", even if the exec.lib versions are identical. However, when the Kickstart ROM exec version is higher than the one in the CDTV ROM, then the Kickstart Exec wins and $E00000-$E7ffff is not scanned for ROM tags and no resident modules on the memory card will be initialized. (Support for Kickstart 3 and resident modules on memory cards is on the roadmap for a future CDTV Land CDTV OS ROM version, but that might take a while).
This is only the resident module functionality. Using the memory as system RAM (whether with AddMem or directly) and all other uses will work fine, as long as you mark the memory as "in use" according to the table above.