From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH 01/10] xen: arm: introduce concept of modules which can be in RAM at start of day Date: Fri, 18 Jan 2013 16:40:27 +0000 Message-ID: <1358527236-2486-1-git-send-email-ian.campbell@citrix.com> References: <1358526135.3279.103.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1358526135.3279.103.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: tim@xen.org, stefano.stabellini@citrix.com, Ian Campbell List-Id: xen-devel@lists.xenproject.org The intention is that these will eventually be filled in with information from the bootloader, perhaps via a DTB binding. Allow for 2 modules (kernel and initrd), plus a third pseudo-module which is the hypervisor itself. Currently we neither parse nor do anything with them. Signed-off-by: Ian Campbell --- v5: Split from "xen: arm: parse modules from DT during early boot." so we can discuss the specifics of the DTB interface separately. v4: Use /chosen/modules/module@N Identify module type by compatible property not number. v3: Use a reg = < > property for the module address/length. v2: Reserve the zeroeth module for Xen itself (not used yet) Use a more idiomatic DT layout Document said layout --- xen/include/xen/device_tree.h | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/xen/include/xen/device_tree.h b/xen/include/xen/device_tree.h index a0e3a97..52ef258 100644 --- a/xen/include/xen/device_tree.h +++ b/xen/include/xen/device_tree.h @@ -15,6 +15,7 @@ #define DEVICE_TREE_MAX_DEPTH 16 #define NR_MEM_BANKS 8 +#define NR_MODULES 2 struct membank { paddr_t start; @@ -33,9 +34,22 @@ struct dt_gic_info { paddr_t gic_vcpu_addr; }; +struct dt_mb_module { + paddr_t start; + paddr_t size; + char cmdline[1024]; +}; + +struct dt_module_info { + int nr_mods; + /* Module 0 is Xen itself, followed by the provided modules-proper */ + struct dt_mb_module module[NR_MODULES + 1]; +}; + struct dt_early_info { struct dt_mem_info mem; struct dt_gic_info gic; + struct dt_module_info modules; }; typedef int (*device_tree_node_func)(const void *fdt, -- 1.7.9.1