prom.c (353816f43d1fb340ff2d9a911dd5d0799c09f6a5) | prom.c (63277161312dd42af7dd3968077b272d192dd6ba) |
---|---|
1/* 2 * Procedures for creating, accessing and interpreting the device tree. 3 * 4 * Paul Mackerras August 1996. 5 * Copyright (C) 1996-2005 Paul Mackerras. 6 * 7 * Adapted for 64bit PowerPC by Dave Engebretsen and Peter Bergner. 8 * {engebret|bergner}@us.ibm.com --- 810 unchanged lines hidden (view full) --- 819 if (lprop) 820 tce_alloc_start = *lprop; 821 lprop = of_get_flat_dt_prop(node, "linux,tce-alloc-end", NULL); 822 if (lprop) 823 tce_alloc_end = *lprop; 824#endif 825 826#ifdef CONFIG_KEXEC | 1/* 2 * Procedures for creating, accessing and interpreting the device tree. 3 * 4 * Paul Mackerras August 1996. 5 * Copyright (C) 1996-2005 Paul Mackerras. 6 * 7 * Adapted for 64bit PowerPC by Dave Engebretsen and Peter Bergner. 8 * {engebret|bergner}@us.ibm.com --- 810 unchanged lines hidden (view full) --- 819 if (lprop) 820 tce_alloc_start = *lprop; 821 lprop = of_get_flat_dt_prop(node, "linux,tce-alloc-end", NULL); 822 if (lprop) 823 tce_alloc_end = *lprop; 824#endif 825 826#ifdef CONFIG_KEXEC |
827 lprop = (u64*)of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL); | 827 lprop = of_get_flat_dt_prop(node, "linux,crashkernel-base", NULL); |
828 if (lprop) 829 crashk_res.start = *lprop; 830 | 828 if (lprop) 829 crashk_res.start = *lprop; 830 |
831 lprop = (u64*)of_get_flat_dt_prop(node, "linux,crashkernel-size", NULL); | 831 lprop = of_get_flat_dt_prop(node, "linux,crashkernel-size", NULL); |
832 if (lprop) 833 crashk_res.end = crashk_res.start + *lprop - 1; 834#endif 835 836 early_init_dt_check_for_initrd(node); 837 838 /* Retreive command line */ 839 p = of_get_flat_dt_prop(node, "bootargs", &l); --- 48 unchanged lines hidden (view full) --- 888 */ 889static int __init early_init_dt_scan_drconf_memory(unsigned long node) 890{ 891 cell_t *dm, *ls, *usm; 892 unsigned long l, n, flags; 893 u64 base, size, lmb_size; 894 unsigned int is_kexec_kdump = 0, rngs; 895 | 832 if (lprop) 833 crashk_res.end = crashk_res.start + *lprop - 1; 834#endif 835 836 early_init_dt_check_for_initrd(node); 837 838 /* Retreive command line */ 839 p = of_get_flat_dt_prop(node, "bootargs", &l); --- 48 unchanged lines hidden (view full) --- 888 */ 889static int __init early_init_dt_scan_drconf_memory(unsigned long node) 890{ 891 cell_t *dm, *ls, *usm; 892 unsigned long l, n, flags; 893 u64 base, size, lmb_size; 894 unsigned int is_kexec_kdump = 0, rngs; 895 |
896 ls = (cell_t *)of_get_flat_dt_prop(node, "ibm,lmb-size", &l); | 896 ls = of_get_flat_dt_prop(node, "ibm,lmb-size", &l); |
897 if (ls == NULL || l < dt_root_size_cells * sizeof(cell_t)) 898 return 0; 899 lmb_size = dt_mem_next_cell(dt_root_size_cells, &ls); 900 | 897 if (ls == NULL || l < dt_root_size_cells * sizeof(cell_t)) 898 return 0; 899 lmb_size = dt_mem_next_cell(dt_root_size_cells, &ls); 900 |
901 dm = (cell_t *)of_get_flat_dt_prop(node, "ibm,dynamic-memory", &l); | 901 dm = of_get_flat_dt_prop(node, "ibm,dynamic-memory", &l); |
902 if (dm == NULL || l < sizeof(cell_t)) 903 return 0; 904 905 n = *dm++; /* number of entries */ 906 if (l < (n * (dt_root_addr_cells + 4) + 1) * sizeof(cell_t)) 907 return 0; 908 909 /* check if this is a kexec/kdump kernel. */ | 902 if (dm == NULL || l < sizeof(cell_t)) 903 return 0; 904 905 n = *dm++; /* number of entries */ 906 if (l < (n * (dt_root_addr_cells + 4) + 1) * sizeof(cell_t)) 907 return 0; 908 909 /* check if this is a kexec/kdump kernel. */ |
910 usm = (cell_t *)of_get_flat_dt_prop(node, "linux,drconf-usable-memory", | 910 usm = of_get_flat_dt_prop(node, "linux,drconf-usable-memory", |
911 &l); 912 if (usm != NULL) 913 is_kexec_kdump = 1; 914 915 for (; n != 0; --n) { 916 base = dt_mem_next_cell(dt_root_addr_cells, &dm); 917 flags = dm[3]; 918 /* skip DRC index, pad, assoc. list index, flags */ --- 57 unchanged lines hidden (view full) --- 976 * The longtrail doesn't have a device_type on the 977 * /memory node, so look for the node called /memory@0. 978 */ 979 if (depth != 1 || strcmp(uname, "memory@0") != 0) 980 return 0; 981 } else if (strcmp(type, "memory") != 0) 982 return 0; 983 | 911 &l); 912 if (usm != NULL) 913 is_kexec_kdump = 1; 914 915 for (; n != 0; --n) { 916 base = dt_mem_next_cell(dt_root_addr_cells, &dm); 917 flags = dm[3]; 918 /* skip DRC index, pad, assoc. list index, flags */ --- 57 unchanged lines hidden (view full) --- 976 * The longtrail doesn't have a device_type on the 977 * /memory node, so look for the node called /memory@0. 978 */ 979 if (depth != 1 || strcmp(uname, "memory@0") != 0) 980 return 0; 981 } else if (strcmp(type, "memory") != 0) 982 return 0; 983 |
984 reg = (cell_t *)of_get_flat_dt_prop(node, "linux,usable-memory", &l); | 984 reg = of_get_flat_dt_prop(node, "linux,usable-memory", &l); |
985 if (reg == NULL) | 985 if (reg == NULL) |
986 reg = (cell_t *)of_get_flat_dt_prop(node, "reg", &l); | 986 reg = of_get_flat_dt_prop(node, "reg", &l); |
987 if (reg == NULL) 988 return 0; 989 990 endp = reg + (l / sizeof(cell_t)); 991 992 DBG("memory scan node %s, reg size %ld, data: %x %x %x %x,\n", 993 uname, l, reg[0], reg[1], reg[2], reg[3]); 994 --- 727 unchanged lines hidden --- | 987 if (reg == NULL) 988 return 0; 989 990 endp = reg + (l / sizeof(cell_t)); 991 992 DBG("memory scan node %s, reg size %ld, data: %x %x %x %x,\n", 993 uname, l, reg[0], reg[1], reg[2], reg[3]); 994 --- 727 unchanged lines hidden --- |