The router should have 512MB of RAM but on /proc/meminfo they are only 215.38MB
MemTotal: 220552 kB
MemFree: 32760 kB
MemAvailable: 104640 kB
In the hardware page, there is also the kernel log, which matches mine, and it says:
[ 0.000000] Memory: 219528K/229376K available (4978K kernel code, 160K rwdata, 756K rodata, 1024K init, 235K bss, 9848K reserved, 0K cma-reserved, 0K highmem)
Hmm ... I've thought the same first. But datasheet is telling:
Memory: 128MB flash and 512MB RAM
Maybe there are two versions now? What I can see on closer look this is (in product sheet) X4S. While bootlog is showing X4 only. ... But maybe the product sheet is wrong.
EDIT:
I think the datasheet is wrong. XS4 is R7800 and it has 512MB RAM. They have just done copy and paste and changed just the "R" into "D" and forgot about specifications.
On the label mine is D78000 but it also says X4S. I can take a picture of the label and post it somewhere if that helps.
Also happy to try some kernel or if you think I could load the R7800 image and see what happens. Not really using the ADSL modem anyway, which I think it is the only difference between the two.
I would only load R7800 firmware over serial into RAM to see if it works and showing full RAM. Do not try to force install! In best case it would fail and doing nothing in worst case partition layout would get destroyed (if different; this is likely the case) and important calibration data will get lost.
What you could do is installing the latest snapshot (for D7800 ofc) and see if things are changing.
The bootlog which is in wiki page makes me still thinking that there are either different versions/revisions around (including wrong datasheets linked by Netgear) or it is "normal" for this device (as the modem needs ram also; the amount of RAM available makes me thinking this).
That would fail badly, despite the name, both devices are considerably different (ipq8064 vs ipq8065 to start with, not underestimating the impact of the xDSL SOC).
True, the board is not common with R7800 (as I thought first). Its base is the same as R7500 (which has 256MB RAM). So @gigi81 forget about to try to load it into RAM it would not work anyway.
I think the datasheet is right, at least some if not all production units of the D7800 have 512MB RAM. I've been running an adapted version of hnyman's R7800 build on mine for over half a year which uses 512MB. So far it's been running without any issues which surely wouldn't be the case if half its memory didn't really exist.
The amount of memory shown in the bootlog doesn't prove anything because the firmware can't access more RAM than it was compiled for. Since only 256MB are specified in target/linux/ipq806x/files/arch/arm/boot/dts/qcom-ipq8064-d7800.dts that is what you get.
There was a thread like this long time ago.
I have a D7800 BETA Device which has only 256 MB RAM.
After Release and some support in OpenWrt someone changed the dts to 512 MB Ram. This was an issue for my beta device as it didn‘t worked with the build. But ok mine is a beta and released version is 512MB. So ok for me.
After some kernel upgrades in the OpenWrt target i think, someone restored the mainline kernel dts i think and there is still 256MB defined.
...
still can‘t find the old thread ...
Now the question is: Can the user somehow distinguish these versions from the outside (different Model naming, different serial-number, different $something_else)?
You can distinguish this while running the stock firmware and navigating to /debug.htm, that's how I confirmed my device actually had 512MB of RAM, I then applied an edit to the DTS (copied the R7800 memory definition) as part of a source build which seems to be working well.
Not knowing how they have been determined it is only speculation on my part but I noticed in target/linux/ipq806x/image/Makefile (19.07 branch checkout) that the NETGEAR_HW_ID values listed against each of the R7500, R7500v2 & R7800 appear to have encoded the amount of RAM that matches the respective DTS files, while the D7800 value has "512" rather than the "256" that might be expected if it had only 256MB of RAM the same as the R7500: