[XenPPC] [PATCH 1 of 4] [PATCH] Move flat device tree construction from python to libxc for xc_linux_build()

2007-01-19 Thread Ryan Harper
7 files changed, 699 insertions(+), 113 deletions(-)
tools/libxc/powerpc64/Makefile |1 
tools/libxc/powerpc64/mk_flatdevtree.c |  605 
tools/libxc/powerpc64/mk_flatdevtree.h |   42 ++
tools/libxc/powerpc64/xc_linux_build.c |  143 ++-
tools/libxc/xenguest.h |4 
tools/python/xen/lowlevel/xc/xc.c  |   12 
tools/python/xen/xend/image.py |5 


# HG changeset patch
# User Ryan Harper [EMAIL PROTECTED]
# Date 1169241710 21600
# Node ID 5a846b0c810cd24e5390a4dd2bdda8690d48c808
# Parent  c16586000525f9d9dfbbe336d9d458dd08b44a0e
[PATCH] Move flat device tree construction from python to libxc for 
xc_linux_build().

Signed-off-by: Ryan Harper [EMAIL PROTECTED]

diff -r c16586000525 -r 5a846b0c810c tools/libxc/powerpc64/Makefile
--- a/tools/libxc/powerpc64/MakefileWed Jan 17 19:37:20 2007 -0500
+++ b/tools/libxc/powerpc64/MakefileFri Jan 19 15:21:50 2007 -0600
@@ -1,4 +1,5 @@ GUEST_SRCS-y += powerpc64/flatdevtree.c
 GUEST_SRCS-y += powerpc64/flatdevtree.c
+GUEST_SRCS-y += powerpc64/mk_flatdevtree.c
 GUEST_SRCS-y += powerpc64/xc_linux_build.c
 GUEST_SRCS-y += powerpc64/xc_prose_build.c
 GUEST_SRCS-y += powerpc64/utils.c
diff -r c16586000525 -r 5a846b0c810c tools/libxc/powerpc64/xc_linux_build.c
--- a/tools/libxc/powerpc64/xc_linux_build.cWed Jan 17 19:37:20 2007 -0500
+++ b/tools/libxc/powerpc64/xc_linux_build.cFri Jan 19 15:21:50 2007 -0600
@@ -13,9 +13,10 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * Copyright (C) IBM Corporation 2006
+ * Copyright IBM Corporation 2006, 2007
  *
  * Authors: Hollis Blanchard [EMAIL PROTECTED]
+ *  Ryan Harper [EMAIL PROTECTED]
  */
 
 #include stdio.h
@@ -36,6 +37,7 @@
 #include flatdevtree_env.h
 #include flatdevtree.h
 #include utils.h
+#include mk_flatdevtree.h
 
 #define INITRD_ADDR (24UL  20)
 #define DEVTREE_ADDR (16UL  20)
@@ -78,85 +80,6 @@ static int init_boot_vcpu(
 return rc;
 }
 
-static int load_devtree(
-int xc_handle,
-int domid,
-xen_pfn_t *page_array,
-void *devtree,
-unsigned long devtree_addr,
-uint64_t initrd_base,
-unsigned long initrd_len,
-start_info_t *start_info __attribute__((unused)),
-unsigned long start_info_addr)
-{
-uint32_t si[4] = {0, start_info_addr, 0, 0x1000};
-struct boot_param_header *header;
-void *chosen;
-void *xen;
-uint64_t initrd_end = initrd_base + initrd_len;
-unsigned int devtree_size;
-int rc = 0;
-
-DPRINTF(adding initrd props\n);
-
-chosen = ft_find_node(devtree, /chosen);
-if (chosen == NULL) {
-DPRINTF(couldn't find /chosen\n);
-return -1;
-}
-
-xen = ft_find_node(devtree, /xen);
-if (xen == NULL) {
-DPRINTF(couldn't find /xen\n);
-return -1;
-}
-
-/* initrd-start */
-rc = ft_set_prop(devtree, chosen, linux,initrd-start,
-initrd_base, sizeof(initrd_base));
-if (rc  0) {
-DPRINTF(couldn't set /chosen/linux,initrd-start\n);
-return rc;
-}
-
-/* initrd-end */
-rc = ft_set_prop(devtree, chosen, linux,initrd-end,
-initrd_end, sizeof(initrd_end));
-if (rc  0) {
-DPRINTF(couldn't set /chosen/linux,initrd-end\n);
-return rc;
-}
-
-rc = ft_set_rsvmap(devtree, 1, initrd_base, initrd_len);
-if (rc  0) {
-DPRINTF(couldn't set initrd reservation\n);
-return ~0UL;
-}
-
-/* start-info (XXX being removed soon) */
-rc = ft_set_prop(devtree, xen, start-info, si, sizeof(si));
-if (rc  0) {
-DPRINTF(couldn't set /xen/start-info\n);
-return rc;
-}
-
-header = devtree;
-devtree_size = header-totalsize;
-{
-static const char dtb[] = /tmp/xc_domU.dtb;
-int dfd = creat(dtb, 0666);
-if (dfd != -1) {
-write(dfd, devtree, devtree_size);
-close(dfd);
-} else
-DPRINTF(could not open(\%s\)\n, dtb);
-}
-
-DPRINTF(copying device tree to 0x%lx[0x%x]\n, DEVTREE_ADDR, 
devtree_size);
-return install_image(xc_handle, domid, page_array, devtree, DEVTREE_ADDR,
-   devtree_size);
-}
-
 static int load_initrd(
 int xc_handle,
 int domid,
@@ -187,13 +110,14 @@ out:
 }
 
 static unsigned long create_start_info(
-void *devtree, start_info_t *start_info,
-unsigned int console_evtchn, unsigned int store_evtchn,
-unsigned long nr_pages, unsigned long rma_pages)
+start_info_t *start_info,
+unsigned int console_evtchn,
+unsigned int store_evtchn,
+unsigned long nr_pages,
+unsigned long rma_pages)
 {
 unsigned long start_info_addr;
 uint64_t rma_top;
-int rc;
 
 memset(start_info, 0, sizeof(*start_info));
 snprintf(start_info-magic, sizeof(start_info-magic),
@@ -209,13 +133,6 @@ static unsigned long 

[XenPPC] [PATCH 1 of 4] [PATCH] Move flat device tree construction from python to libxc for xc_linux_build()

2007-01-19 Thread Ryan Harper
7 files changed, 697 insertions(+), 119 deletions(-)
tools/libxc/powerpc64/Makefile |1 
tools/libxc/powerpc64/mk_flatdevtree.c |  605 
tools/libxc/powerpc64/mk_flatdevtree.h |   42 ++
tools/libxc/powerpc64/xc_linux_build.c |  147 ++-
tools/libxc/xenguest.h |4 
tools/python/xen/lowlevel/xc/xc.c  |   12 
tools/python/xen/xend/image.py |5 


# HG changeset patch
# User Ryan Harper [EMAIL PROTECTED]
# Date 1169248739 21600
# Node ID e3b9f4ea49c014d8578415082ad09f76dbfb98b6
# Parent  c16586000525f9d9dfbbe336d9d458dd08b44a0e
[PATCH] Move flat device tree construction from python to libxc for 
xc_linux_build().

Signed-off-by: Ryan Harper [EMAIL PROTECTED]

diff -r c16586000525 -r e3b9f4ea49c0 tools/libxc/powerpc64/Makefile
--- a/tools/libxc/powerpc64/MakefileWed Jan 17 19:37:20 2007 -0500
+++ b/tools/libxc/powerpc64/MakefileFri Jan 19 17:18:59 2007 -0600
@@ -1,4 +1,5 @@ GUEST_SRCS-y += powerpc64/flatdevtree.c
 GUEST_SRCS-y += powerpc64/flatdevtree.c
+GUEST_SRCS-y += powerpc64/mk_flatdevtree.c
 GUEST_SRCS-y += powerpc64/xc_linux_build.c
 GUEST_SRCS-y += powerpc64/xc_prose_build.c
 GUEST_SRCS-y += powerpc64/utils.c
diff -r c16586000525 -r e3b9f4ea49c0 tools/libxc/powerpc64/xc_linux_build.c
--- a/tools/libxc/powerpc64/xc_linux_build.cWed Jan 17 19:37:20 2007 -0500
+++ b/tools/libxc/powerpc64/xc_linux_build.cFri Jan 19 17:18:59 2007 -0600
@@ -13,9 +13,10 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  *
- * Copyright (C) IBM Corporation 2006
+ * Copyright IBM Corporation 2006, 2007
  *
  * Authors: Hollis Blanchard [EMAIL PROTECTED]
+ *  Ryan Harper [EMAIL PROTECTED]
  */
 
 #include stdio.h
@@ -36,6 +37,7 @@
 #include flatdevtree_env.h
 #include flatdevtree.h
 #include utils.h
+#include mk_flatdevtree.h
 
 #define INITRD_ADDR (24UL  20)
 #define DEVTREE_ADDR (16UL  20)
@@ -78,85 +80,6 @@ static int init_boot_vcpu(
 return rc;
 }
 
-static int load_devtree(
-int xc_handle,
-int domid,
-xen_pfn_t *page_array,
-void *devtree,
-unsigned long devtree_addr,
-uint64_t initrd_base,
-unsigned long initrd_len,
-start_info_t *start_info __attribute__((unused)),
-unsigned long start_info_addr)
-{
-uint32_t si[4] = {0, start_info_addr, 0, 0x1000};
-struct boot_param_header *header;
-void *chosen;
-void *xen;
-uint64_t initrd_end = initrd_base + initrd_len;
-unsigned int devtree_size;
-int rc = 0;
-
-DPRINTF(adding initrd props\n);
-
-chosen = ft_find_node(devtree, /chosen);
-if (chosen == NULL) {
-DPRINTF(couldn't find /chosen\n);
-return -1;
-}
-
-xen = ft_find_node(devtree, /xen);
-if (xen == NULL) {
-DPRINTF(couldn't find /xen\n);
-return -1;
-}
-
-/* initrd-start */
-rc = ft_set_prop(devtree, chosen, linux,initrd-start,
-initrd_base, sizeof(initrd_base));
-if (rc  0) {
-DPRINTF(couldn't set /chosen/linux,initrd-start\n);
-return rc;
-}
-
-/* initrd-end */
-rc = ft_set_prop(devtree, chosen, linux,initrd-end,
-initrd_end, sizeof(initrd_end));
-if (rc  0) {
-DPRINTF(couldn't set /chosen/linux,initrd-end\n);
-return rc;
-}
-
-rc = ft_set_rsvmap(devtree, 1, initrd_base, initrd_len);
-if (rc  0) {
-DPRINTF(couldn't set initrd reservation\n);
-return ~0UL;
-}
-
-/* start-info (XXX being removed soon) */
-rc = ft_set_prop(devtree, xen, start-info, si, sizeof(si));
-if (rc  0) {
-DPRINTF(couldn't set /xen/start-info\n);
-return rc;
-}
-
-header = devtree;
-devtree_size = header-totalsize;
-{
-static const char dtb[] = /tmp/xc_domU.dtb;
-int dfd = creat(dtb, 0666);
-if (dfd != -1) {
-write(dfd, devtree, devtree_size);
-close(dfd);
-} else
-DPRINTF(could not open(\%s\)\n, dtb);
-}
-
-DPRINTF(copying device tree to 0x%lx[0x%x]\n, DEVTREE_ADDR, 
devtree_size);
-return install_image(xc_handle, domid, page_array, devtree, DEVTREE_ADDR,
-   devtree_size);
-}
-
 static int load_initrd(
 int xc_handle,
 int domid,
@@ -187,13 +110,14 @@ out:
 }
 
 static unsigned long create_start_info(
-void *devtree, start_info_t *start_info,
-unsigned int console_evtchn, unsigned int store_evtchn,
-unsigned long nr_pages, unsigned long rma_pages)
+start_info_t *start_info,
+unsigned int console_evtchn,
+unsigned int store_evtchn,
+unsigned long nr_pages,
+unsigned long rma_pages)
 {
 unsigned long start_info_addr;
 uint64_t rma_top;
-int rc;
 
 memset(start_info, 0, sizeof(*start_info));
 snprintf(start_info-magic, sizeof(start_info-magic),
@@ -209,13 +133,6 @@ static unsigned long