Messages in this thread | | | From | Ayan Halder <> | Subject | Question regarding "reserved-memory" | Date | Thu, 24 Oct 2019 14:22:17 +0000 |
| |
Hi Folks,
I have a question regarding "reserved-memory". I am using an Arm Juno platform which has a chunk of ram in its fpga. I intend to make this memory as reserved so that it can be shared between various devices for passing framebuffer.
My dts looks like the following:-
/ { .... // some nodes
tlx@60000000 { compatible = "simple-bus"; ...
juno_wrapper {
... /* here we have all the nodes */ /* corresponding to the devices in the fpga */
memory@d000000 { device_type = "memory"; reg = <0x00 0x60000000 0x00 0x8000000>; };
reserved-memory { #address-cells = <0x01>; #size-cells = <0x01>; ranges;
framebuffer@d000000 { compatible = "shared-dma-pool"; linux,cma-default; reusable; reg = <0x00 0x60000000 0x00 0x8000000>; phandle = <0x44>; }; }; ... } } ... }
Note that the depth of the "reserved-memory" node is 3.
Refer __fdt_scan_reserved_mem() :-
if (!found && depth == 1 && strcmp(uname, "reserved-memory") == 0) {
if (__reserved_mem_check_root(node) != 0) { pr_err("Reserved memory: unsupported node format, ignoring\n"); /* break scan */ return 1; } found = 1;
/* scan next node */ return 0; }
It expects the "reserved-memory" node to be at depth == 1 and so it does not probe it in our case.
Niether from the Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt nor from commit - e8d9d1f5485b52ec3c4d7af839e6914438f6c285, I could understand the reason for such restriction.
So, I seek the community's advice as to whether I should fix up __fdt_scan_reserved_mem() so as to do away with the restriction or put the "reserved-memory" node outside of 'tlx@60000000' (which looks logically incorrect as the memory is on the fpga platform).
Thanks, Ayan
| |