Hi Trilok,
Today during the device tree evolution call you asked about the software domain bindings.
Although I don't have a full write-up of those bindings, please have a look at the attached example. In particular, have a look under /chosen as the comments should explain how the bindings are meant to be used. I also appended the most relevant section below for convenience.
The example is simple and only has the configuration for a Cortex R5 software domain. However, as stated during the call, it is a goal that these bindings should work for virtual machines too, and the new properties below should apply well. However, the virtual machine use-case requires a bit more information (i.e. the number of virtual cpus and the description of purely virtual devices) and I don't have a reference for that yet.
Cheers,
Stefano
chosen { #address-cells = <0x2>; #size-cells = <0x2>;
openamp_r5 { compatible = "openamp,domain-v1"; #address-cells = <0x2>; #size-cells = <0x2>; /* * 1:1 map, it should match the memory regions * specified under access below. * * It is in the form: * memory = <address size address size ...> */ memory = <0x0 0x0 0x0 0x8000000>; /* * cpus specifies on which CPUs this domain runs * on * * link to cluster | cpus-mask | execution-mode * * execution mode for ARM-R CPUs: * bit 30: lockstep (lockstep enabled == 1) * bit 31: secure mode / normal mode (secure mode == 1) */ cpus = <&cpus_r5 0x2 0x80000000>; /* * Access specifies which resources this domain * has access to. * * Link to resource | flags * * The "flags" field is mapping specific * * For memory, reserved-memory, and sram: * bit 0: 0/1: RO/RW * * Other cases: unused * * In this example we are assigning: * - memory range 0x0-0x8000000 RW * - tcm RW * - ethernet card at 0xff0c0000 */ access = <&memory_r5 0x1>, <&tcm 0x1>, <ðernet0 0x0>; }; };
system-dt@lists.openampproject.org