Lines Matching +full:used +full:- +full:by +full:- +full:rtas
1 // SPDX-License-Identifier: GPL-2.0-or-later
6 * Copyright (C) 1996-2005 Paul Mackerras.
8 * Adapted for 64bit PowerPC by Dave Engebretsen and Peter Bergner.
31 #include <asm/rtas.h>
42 #include <asm/asm-prototypes.h>
43 #include <asm/ultravisor-api.h>
68 * On ppc32 we compile with -mrelocatable, which means that references
78 * ADDR is used in calls to call_prom. The 4th and following
79 * arguments to call_prom should be 32-bit values.
187 /* Platforms codes are now obsolete in the kernel. Now only used within this
218 * Error results ... some OF calls will return "-1" on error, some
224 #define PROM_ERROR (-1u)
238 return c1 < c2 ? -1 : 1; in prom_strcmp()
262 return c1 < c2 ? -1 : 1; in prom_strncmp()
265 count--; in prom_strncmp()
276 return sc - s; in prom_strlen()
284 for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--) in prom_memcmp()
285 if ((res = *su1 - *su2) != 0) in prom_memcmp()
299 l1--; in prom_strstr()
318 count -= dsize; in prom_strlcat()
320 len = count-1; in prom_strlcat()
331 return -EINVAL; in prom_strtobool()
362 return -EINVAL; in prom_strtobool()
418 rets[i-1] = be32_to_cpu(args.args[nargs+i]); in call_prom_ret()
435 call_prom("write", 3, 1, prom.stdout, p, q - p); in prom_print()
453 for (i = nibbles-1; i >= 0; i--) { in prom_print_hex()
456 buf[i] += ('a'-'0'-10); in prom_print_hex()
470 for (i = UL_DIGITS-1; i >= 0; i--) { in prom_print_dec()
477 size = UL_DIGITS - i; in prom_print_dec()
495 call_prom("write", 3, 1, prom.stdout, p, q - p); in prom_printf()
564 prom_print("-"); in prom_printf()
565 vs = -vs; in prom_printf()
587 ret = call_prom_ret("call-method", 5, 2, &result, in prom_claim()
590 if (ret != 0 || result == -1) in prom_claim()
591 return -1; in prom_claim()
592 ret = call_prom_ret("call-method", 5, 2, &result, in prom_claim()
596 call_prom("call-method", 4, 1, ADDR("release"), in prom_claim()
598 return -1; in prom_claim()
601 call_prom("call-method", 6, 1, in prom_claim()
613 * it also causes some sort of double-fault on early pmacs */ in prom_panic()
673 --i; in tohex()
709 #define toupper(c) (islower(c) ? ((c) - 'a' + 'A') : (c))
725 (value = isdigit(*cp) ? *cp - '0' : toupper(*cp) - 'A' + 10) < base) { in prom_strtoul()
764 * Early parsing of the command line passed to the kernel, used for
778 l = prom_getprop(prom.chosen, "bootargs", p, COMMAND_LINE_SIZE-1); in early_cmdline_parse()
845 opt += sizeof("svm=") - 1; in early_cmdline_parse()
855 * followed by # option vectors - 1, followed by the option vectors.
861 /* Firmware expects the value to be n - 1, where n is the # of vectors */
862 #define NUM_VECTORS(n) ((n) - 1)
865 * Firmware expects 1 + n - 2, where n is the length of the option vector in
866 * bytes. The 1 accounts for the length byte itself, the - 2 .. ?
868 #define VECTOR_LENGTH(n) (1 + (n) - 2)
988 .mask = cpu_to_be32(0xffffffff), /* all 3.1-compliant */
992 .mask = cpu_to_be32(0xffffffff), /* all 3.00-compliant */
996 .mask = cpu_to_be32(0xffffffff), /* all 2.07-compliant */
1000 .mask = cpu_to_be32(0xffffffff), /* all 2.06-compliant */
1004 .mask = cpu_to_be32(0xffffffff), /* all 2.05-compliant */
1008 .mask = cpu_to_be32(0xfffffffe), /* all 2.04-compliant and earlier */
1101 /* Old method - ELF header with PT_NOTE sections only works on BE */
1124 char name[24]; /* "IBM,RPA-Client-Config" */
1173 .namesz = sizeof("IBM,RPA-Client-Config"),
1176 .name = "IBM,RPA-Client-Config",
1208 plen = prom_getproplen(node, "ibm,ppc-interrupt-server#s"); in prom_count_smt_threads()
1234 prom_debug("MMU - either supported\n"); in prom_parse_mmu_model()
1235 support->radix_mmu = !prom_radix_disable; in prom_parse_mmu_model()
1236 support->hash_mmu = true; in prom_parse_mmu_model()
1239 prom_debug("MMU - radix only\n"); in prom_parse_mmu_model()
1247 support->radix_mmu = true; in prom_parse_mmu_model()
1250 prom_debug("MMU - hash only\n"); in prom_parse_mmu_model()
1251 support->hash_mmu = true; in prom_parse_mmu_model()
1264 prom_debug("XIVE - either mode supported\n"); in prom_parse_xive_model()
1265 support->xive = !prom_xive_disable; in prom_parse_xive_model()
1268 prom_debug("XIVE - exploitation mode supported\n"); in prom_parse_xive_model()
1276 support->xive = true; in prom_parse_xive_model()
1279 prom_debug("XIVE - legacy mode supported\n"); in prom_parse_xive_model()
1296 support->radix_gtse = !prom_radix_gtse_disable; in prom_parse_platform_support()
1314 "ibm,arch-vec-5-platform-support"); in prom_check_platform_support()
1320 * by __memcpy() when KASAN is active in prom_check_platform_support()
1328 prom_debug("Found ibm,arch-vec-5-platform-support, len: %d\n", in prom_check_platform_support()
1331 prom_printf("WARNING: ibm,arch-vec-5-platform-support longer than expected (len: %d)\n", in prom_check_platform_support()
1333 prom_getprop(prom.chosen, "ibm,arch-vec-5-platform-support", in prom_check_platform_support()
1345 /* Radix preferred - Check if GTSE is also supported */ in prom_check_platform_support()
1374 /* Check ibm,arch-vec-5-platform-support and fixup vec5 if required */ in prom_send_capabilities()
1392 /* try calling the ibm,client-architecture-support method */ in prom_send_capabilities()
1393 prom_printf("Calling ibm,client-architecture-support..."); in prom_send_capabilities()
1394 if (call_prom_ret("call-method", 3, 2, &ret, in prom_send_capabilities()
1395 ADDR("ibm,client-architecture-support"), in prom_send_capabilities()
1400 prom_printf("\nWARNING: ibm,client-architecture" in prom_send_capabilities()
1401 "-support call FAILED!\n"); in prom_send_capabilities()
1414 /* no ibm,client-architecture-support call, try the old way */ in prom_send_capabilities()
1416 ADDR("/packages/elf-loader")); in prom_send_capabilities()
1418 prom_printf("couldn't open /packages/elf-loader\n"); in prom_send_capabilities()
1421 call_prom("call-method", 3, 1, ADDR("process-elf-header"), in prom_send_capabilities()
1443 * from there, allocations are done this way : rtas is allocated
1444 * topmost, and the device-tree is allocated from the bottom. We try
1445 * to grow the device-tree allocation as we progress. If we can't,
1460 * extending the previous allocation). Used for the device-tree flattening
1492 prom_debug(" -> %lx\n", addr); in alloc_up()
1519 addr = ALIGN_DOWN(alloc_top_high - size, align); in alloc_down()
1537 base = ALIGN_DOWN(alloc_top - size, align); in alloc_down()
1539 base = ALIGN_DOWN(base - 0x100000, align)) { in alloc_down()
1551 prom_debug(" -> %lx\n", addr); in alloc_down()
1572 s--; in prom_next_cell()
1607 size = top - base; in reserve_mem()
1609 if (cnt >= (MEM_RESERVE_MAP_SIZE - 1)) in reserve_mem()
1635 prom_getprop(prom.root, "#address-cells", &val, sizeof(val)); in prom_init_mem()
1638 prom_getprop(prom.root, "#size-cells", &val, sizeof(rsc)); in prom_init_mem()
1669 call_prom("package-to-path", 3, 1, node, prom_scratch, in prom_init_mem()
1670 sizeof(prom_scratch) - 1); in prom_init_mem()
1674 while ((endp - p) >= (rac + rsc)) { in prom_init_mem()
1717 * segment 0 when running non-LPAR. in prom_init_mem()
1721 * reasonable on 32-bit, cap at 768MB on all machines. in prom_init_mem()
1780 rtas_node = call_prom("finddevice", 1, 1, ADDR("/rtas")); in prom_rtas_os_term()
1786 prom_getprop(rtas_node, "ibm,os-term", &val, sizeof(val)); in prom_rtas_os_term()
1788 prom_debug("ibm,os-term: %x\n", token); in prom_rtas_os_term()
1790 prom_panic("Could not get token for ibm,os-term\n"); in prom_rtas_os_term()
1800 * Allocate room for and instantiate RTAS
1812 rtas_node = call_prom("finddevice", 1, 1, ADDR("/rtas")); in prom_instantiate_rtas()
1818 prom_getprop(rtas_node, "rtas-size", &val, sizeof(size)); in prom_instantiate_rtas()
1825 prom_panic("Could not allocate memory for RTAS\n"); in prom_instantiate_rtas()
1827 rtas_inst = call_prom("open", 1, 1, ADDR("/rtas")); in prom_instantiate_rtas()
1829 prom_printf("opening rtas package failed (%x)\n", rtas_inst); in prom_instantiate_rtas()
1833 prom_printf("instantiating rtas at 0x%x...", base); in prom_instantiate_rtas()
1835 if (call_prom_ret("call-method", 3, 2, &entry, in prom_instantiate_rtas()
1836 ADDR("instantiate-rtas"), in prom_instantiate_rtas()
1847 prom_setprop(rtas_node, "/rtas", "linux,rtas-base", in prom_instantiate_rtas()
1850 prom_setprop(rtas_node, "/rtas", "linux,rtas-entry", in prom_instantiate_rtas()
1853 /* Check if it supports "query-cpu-stopped-state" */ in prom_instantiate_rtas()
1854 if (prom_getprop(rtas_node, "query-cpu-stopped-state", in prom_instantiate_rtas()
1858 prom_debug("rtas base = 0x%x\n", base); in prom_instantiate_rtas()
1859 prom_debug("rtas entry = 0x%x\n", entry); in prom_instantiate_rtas()
1860 prom_debug("rtas size = 0x%x\n", size); in prom_instantiate_rtas()
1890 if (prom_getprop(ibmvtpm_node, "ibm,sml-efi-reformat-supported", in prom_instantiate_sml()
1892 if (call_prom_ret("call-method", 2, 2, &succ, in prom_instantiate_sml()
1893 ADDR("reformat-sml-to-efi-alignment"), in prom_instantiate_sml()
1899 if (call_prom_ret("call-method", 2, 2, &size, in prom_instantiate_sml()
1900 ADDR("sml-get-allocated-size"), in prom_instantiate_sml()
1906 if (call_prom_ret("call-method", 2, 2, &size, in prom_instantiate_sml()
1907 ADDR("sml-get-handover-size"), in prom_instantiate_sml()
1922 if (call_prom_ret("call-method", 4, 2, &entry, in prom_instantiate_sml()
1923 ADDR("sml-handover"), in prom_instantiate_sml()
1932 prom_setprop(ibmvtpm_node, "/vdevice/vtpm", "linux,sml-base", in prom_instantiate_sml()
1934 prom_setprop(ibmvtpm_node, "/vdevice/vtpm", "linux,sml-size", in prom_instantiate_sml()
1994 if (prom_getprop(node, "tce-table-minalign", &minalign, in prom_initialize_tce_table()
1997 if (prom_getprop(node, "tce-table-minsize", &minsize, in prom_initialize_tce_table()
2004 * By doing this, we avoid the pitfalls of trying to DMA to in prom_initialize_tce_table()
2017 /* It seems OF doesn't null-terminate the path :-( */ in prom_initialize_tce_table()
2020 if (call_prom("package-to-path", 3, 1, node, in prom_initialize_tce_table()
2021 path, sizeof(prom_scratch) - 1) == PROM_ERROR) { in prom_initialize_tce_table()
2022 prom_printf("package-to-path failed\n"); in prom_initialize_tce_table()
2026 prom_setprop(node, path, "linux,tce-base", &base, sizeof(base)); in prom_initialize_tce_table()
2027 prom_setprop(node, path, "linux,tce-size", &minsize, sizeof(minsize)); in prom_initialize_tce_table()
2034 /* Initialize the table to have a one-to-one mapping in prom_initialize_tce_table()
2051 call_prom("call-method", 6, 0, ADDR("set-64-bit-addressing"), in prom_initialize_tce_table()
2052 phb_node, -1, minsize, in prom_initialize_tce_table()
2057 reserve_mem(local_alloc_bottom, local_alloc_top - local_alloc_bottom); in prom_initialize_tce_table()
2072 * We can't wait until smp_boot_cpus (the OF is trashed by then)
2074 * by the kernel (not OF) before we destroy the OF.
2086 * -- Cort
2090 * 0 - 0x100 address range
2106 * On pseries, if RTAS supports "query-cpu-stopped-state", in prom_hold_cpus()
2107 * we skip this stage, the CPUs will be started by the in prom_hold_cpus()
2108 * kernel using RTAS. in prom_hold_cpus()
2142 /* Skip non-configured cpus. */ in prom_hold_cpus()
2147 reg = cpu_to_be32(-1); /* make sparse happy */ in prom_hold_cpus()
2153 /* Init the acknowledge var which will be reset by in prom_hold_cpus()
2157 *acknowledge = (unsigned long)-1; in prom_hold_cpus()
2160 /* Primary Thread of non-boot cpu or any thread */ in prom_hold_cpus()
2162 call_prom("start-cpu", 3, 0, node, in prom_hold_cpus()
2166 (*acknowledge == ((unsigned long)-1)); i++ ) in prom_hold_cpus()
2218 version[sizeof(version) - 1] = 0; in prom_find_mmu()
2224 call_prom("interpret", 1, 1, "dev /memory 0 to allow-reclaim"); in prom_find_mmu()
2252 call_prom("instance-to-path", 3, 1, prom.stdout, path, 255); in prom_init_stdout()
2254 prom_setprop(prom.chosen, "/chosen", "linux,stdout-path", in prom_init_stdout()
2257 /* instance-to-package fails on PA-Semi */ in prom_init_stdout()
2258 stdout_node = call_prom("instance-to-package", 1, 1, prom.stdout); in prom_init_stdout()
2266 prom_setprop(stdout_node, path, "linux,boot-display", NULL, 0); in prom_init_stdout()
2275 phandle rtas; in prom_find_machine_type() local
2281 compat, sizeof(compat)-1); in prom_find_machine_type()
2298 prom_strstr(p, "IBM,CPBW-1.0")) in prom_find_machine_type()
2307 * - /device_type is "chrp" (please, do NOT use that for future in prom_find_machine_type()
2308 * non-IBM designs ! in prom_find_machine_type()
2309 * - it has /rtas in prom_find_machine_type()
2312 compat, sizeof(compat)-1); in prom_find_machine_type()
2319 rtas = call_prom("finddevice", 1, 1, ADDR("/rtas")); in prom_find_machine_type()
2320 if (!PHANDLE_VALID(rtas)) in prom_find_machine_type()
2322 x = prom_getproplen(rtas, "ibm,hypertas-functions"); in prom_find_machine_type()
2335 return call_prom("call-method", 6, 1, ADDR("color!"), ih, i, b, g, r); in prom_set_color()
2380 /* It seems OF doesn't null-terminate the path :-( */ in prom_check_displays()
2388 if (call_prom("package-to-path", 3, 1, node, path, in prom_check_displays()
2389 sizeof(prom_scratch) - 10) == PROM_ERROR) in prom_check_displays()
2404 * method is available. Should update this to set-colors */ in prom_check_displays()
2420 if (prom_getprop(node, "linux,boot-display", NULL, 0) != in prom_check_displays()
2460 room = alloc_top - alloc_bottom; in make_room()
2492 return s - os; in dt_find_string()
2566 room = *mem_end - *mem_start; in scan_dt_build_struct()
2569 l = call_prom("package-to-path", 3, 1, node, namep, room); in scan_dt_build_struct()
2573 if (l >= *mem_end - *mem_start) in scan_dt_build_struct()
2575 call_prom("package-to-path", 3, 1, node, namep, l); in scan_dt_build_struct()
2596 call_prom("package-to-path", 3, 1, node, path, sizeof(prom_scratch) - 1); in scan_dt_build_struct()
2675 * Check how much room we have between alloc top & bottom (+/- a in flatten_device_tree()
2678 room = alloc_top - alloc_bottom - 0x4000; in flatten_device_tree()
2686 prom_panic("Can't allocate initial device-tree chunk\n"); in flatten_device_tree()
2725 hdr->boot_cpuid_phys = cpu_to_be32(prom.cpu); in flatten_device_tree()
2726 hdr->magic = cpu_to_be32(OF_DT_HEADER); in flatten_device_tree()
2727 hdr->totalsize = cpu_to_be32(dt_struct_end - dt_header_start); in flatten_device_tree()
2728 hdr->off_dt_struct = cpu_to_be32(dt_struct_start - dt_header_start); in flatten_device_tree()
2729 hdr->off_dt_strings = cpu_to_be32(dt_string_start - dt_header_start); in flatten_device_tree()
2730 hdr->dt_strings_size = cpu_to_be32(dt_string_end - dt_string_start); in flatten_device_tree()
2731 hdr->off_mem_rsvmap = cpu_to_be32(((unsigned long)rsvmap) - dt_header_start); in flatten_device_tree()
2732 hdr->version = cpu_to_be32(OF_DT_VERSION); in flatten_device_tree()
2734 hdr->last_comp_version = cpu_to_be32(0x10); in flatten_device_tree()
2744 prom_printf(" %llx - %llx\n", in flatten_device_tree()
2754 prom_printf("Device tree strings 0x%lx -> 0x%lx\n", in flatten_device_tree()
2756 prom_printf("Device tree struct 0x%lx -> 0x%lx\n", in flatten_device_tree()
2805 /* The values for memory-controller don't have right number of cells */
2820 prom_getprop(prom.root, "#address-cells", &ac, sizeof(ac)); in fixup_device_tree_maple_memory_controller()
2821 prom_getprop(prom.root, "#size-cells", &sc, sizeof(sc)); in fixup_device_tree_maple_memory_controller()
2887 prom_printf("Fixing up IDE class-code on Pegasos...\n"); in fixup_device_tree_chrp()
2888 rc = prom_getprop(ph, "class-code", prop, sizeof(u32)); in fixup_device_tree_chrp()
2891 prom_setprop(ph, name, "class-code", prop, sizeof(u32)); in fixup_device_tree_chrp()
2919 if (prom_getprop(u3, "device-rev", &u3_rev, sizeof(u3_rev)) in fixup_device_tree_pmac()
2936 prom_setprop(i2c, "/u3@0,f8000000/i2c@f8001000", "interrupt-parent", in fixup_device_tree_pmac()
2945 * The MPC5200 FEC driver requires an phy-handle property to tell it how
2946 * to talk to the phy. If the phy-handle property is missing, then this
2956 /* Check if /builtin/ethernet exists - bail if it doesn't */ in fixup_device_tree_efika_add_phy()
2961 /* Check if the phy-handle property exists - bail if it does */ in fixup_device_tree_efika_add_phy()
2962 rv = prom_getprop(node, "phy-handle", prop, sizeof(prop)); in fixup_device_tree_efika_add_phy()
2971 /* Check for an MDIO bus node - if missing then create one */ in fixup_device_tree_efika_add_phy()
2976 " s\" /builtin\" find-device" in fixup_device_tree_efika_add_phy()
2977 " new-device" in fixup_device_tree_efika_add_phy()
2978 " 1 encode-int s\" #address-cells\" property" in fixup_device_tree_efika_add_phy()
2979 " 0 encode-int s\" #size-cells\" property" in fixup_device_tree_efika_add_phy()
2980 " s\" mdio\" device-name" in fixup_device_tree_efika_add_phy()
2981 " s\" fsl,mpc5200b-mdio\" encode-string" in fixup_device_tree_efika_add_phy()
2984 " 0x2 encode-int" in fixup_device_tree_efika_add_phy()
2985 " 0x5 encode-int encode+" in fixup_device_tree_efika_add_phy()
2986 " 0x3 encode-int encode+" in fixup_device_tree_efika_add_phy()
2988 " finish-device"); in fixup_device_tree_efika_add_phy()
2991 /* Check for a PHY device node - if missing then create one and in fixup_device_tree_efika_add_phy()
2994 ADDR("/builtin/mdio/ethernet-phy")); in fixup_device_tree_efika_add_phy()
2998 " s\" /builtin/mdio\" find-device" in fixup_device_tree_efika_add_phy()
2999 " new-device" in fixup_device_tree_efika_add_phy()
3000 " s\" ethernet-phy\" device-name" in fixup_device_tree_efika_add_phy()
3001 " 0x10 encode-int s\" reg\" property" in fixup_device_tree_efika_add_phy()
3002 " my-self" in fixup_device_tree_efika_add_phy()
3004 " finish-device" in fixup_device_tree_efika_add_phy()
3005 " s\" /builtin/ethernet\" find-device" in fixup_device_tree_efika_add_phy()
3006 " encode-int" in fixup_device_tree_efika_add_phy()
3007 " s\" phy-handle\" property" in fixup_device_tree_efika_add_phy()
3008 " device-end"); in fixup_device_tree_efika_add_phy()
3072 /* Make sure ethernet phy-handle property exists */ in fixup_device_tree_efika()
3083 * Add an interrupt-controller property for the io-bridge to use
3098 /* check if interrupt-controller node set yet */ in fixup_device_tree_pasemi()
3099 if (prom_getproplen(iob, "interrupt-controller") !=PROM_ERROR) in fixup_device_tree_pasemi()
3102 prom_printf("adding interrupt-controller property for SB600...\n"); in fixup_device_tree_pasemi()
3104 prom_setprop(iob, name, "interrupt-controller", &val, 0); in fixup_device_tree_pasemi()
3123 /* found a node, update both interrupts and interrupt-parent */ in fixup_device_tree_pasemi()
3125 interrupts[0] -= 203; in fixup_device_tree_pasemi()
3127 interrupts[0] -= 213; in fixup_device_tree_pasemi()
3135 prom_setprop(node, pci_name, "interrupt-parent", &parent, in fixup_device_tree_pasemi()
3140 * The io-bridge has device_type set to 'io-bridge' change it to 'isa' in fixup_device_tree_pasemi()
3141 * so that generic isa-bridge code can add the SB600 and its on-board in fixup_device_tree_pasemi()
3144 name = "/pxp@0,e0000000/io-bridge@0"; in fixup_device_tree_pasemi()
3180 cpu_pkg = call_prom("instance-to-package", 1, 1, prom_cpu); in prom_find_boot_cpu()
3201 prom_setprop(prom.chosen, "/chosen", "linux,initrd-start", in prom_check_initrd()
3204 prom_setprop(prom.chosen, "/chosen", "linux,initrd-end", in prom_check_initrd()
3208 prom_initrd_end - prom_initrd_start); in prom_check_initrd()
3231 /* Get the start of the TOC by using r2 directly. */ in __reloc_toc()
3232 asm volatile("addi %0,2,-0x8000" : "=b" (toc_entry)); in __reloc_toc()
3244 (__prom_init_toc_end - __prom_init_toc_start) / sizeof(long); in reloc_toc()
3255 (__prom_init_toc_end - __prom_init_toc_start) / sizeof(long); in unreloc_toc()
3259 __reloc_toc(-offset, nr_entries); in unreloc_toc()
3294 * relocated it so the check will fail. Restore the original image by in setup_secure_guest()
3339 memset(&__bss_start, 0, __bss_stop - __bss_start); in prom_init()
3424 * On non-powermacs, try to instantiate RTAS. PowerMacs don't in prom_init()
3425 * have a usable RTAS implementation. in prom_init()
3436 * On non-powermacs, put all CPUs in spin-loops. in prom_init()
3440 * (This must be done after instanciating RTAS) in prom_init()
3446 * Fill in some infos for use by the kernel later on in prom_init()
3450 prom_setprop(prom.chosen, "/chosen", "linux,memory-limit", in prom_init()
3455 prom_setprop(prom.chosen, "/chosen", "linux,iommu-off", in prom_init()
3459 prom_setprop(prom.chosen, "/chosen", "linux,iommu-force-on", in prom_init()
3463 prom_setprop(prom.chosen, "/chosen", "linux,tce-alloc-start", in prom_init()
3466 prom_setprop(prom.chosen, "/chosen", "linux,tce-alloc-end", in prom_init()
3473 * Fixup any known bugs in the device-tree in prom_init()
3478 * Now finally create the flattened device-tree in prom_init()
3506 prom_debug("->dt_header_start=0x%lx\n", hdr); in prom_init()
3509 reloc_got2(-offset); in prom_init()