On Sat, Apr 16, 2016 at 2:07 AM, Vineet Gupta <Vineet.Gupta1@xxxxxxxxxxxx> wrote: > On Friday 15 April 2016 09:18 PM, Alexey Brodkin wrote: > >> And now the question is how to force DRM subsystem or just that driver >> to use whatever predefined (say via device tree) location in memory >> for data buffer allocation. > > It seems this is pretty easy to do with DT reserved-memory binding. > > You need to partition memory into @memory and @reserved-memory. > Later can be subdivided into more granular regions and your driver can refer to > one of the regions. jfyi, it might be useful to look at msm_init_vram() which has support to wrap vram carveout as gem buffer, for exact same purpose.. BR, -R > Something like below (untested) > > + memory { > + device_type = "memory"; > + reg = <0x0 0x80000000 0x0 0xA0000000>; > + #address-cells = <2>; > + #size-cells = <2>; > + }; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + /* This memory bypasses IOC port */ > + fb_reserved@A0000000 { > + reg = <0x0 0xA0000000 0x0 0xAF000000>; > + #address-cells = <2>; > + #size-cells = <2>; > + /* no-map; */ > + }; > + }; > + > + > + fb0: video@12300000 { > + memory-region = <&fb_reserved>; > + /* ... */ > + }; > > This might also need a DT helper in ARC mm init code. > > + early_init_fdt_scan_reserved_mem(); > > HTH, > -Vineet -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html