Loading arch/powerpc/kernel/prom_init.c +39 −0 Original line number Diff line number Diff line Loading @@ -2216,6 +2216,45 @@ static void __init fixup_device_tree_efika(void) prom_printf("fixup_device_tree_efika: ", "skipped entry %x - setprop error\n", i); } /* Make sure ethernet mdio bus node exists */ node = call_prom("finddevice", 1, 1, ADDR("/builtin/mdio")); if (!PHANDLE_VALID(node)) { prom_printf("Adding Ethernet MDIO node\n"); call_prom("interpret", 1, 1, " s\" /builtin\" find-device" " new-device" " 1 encode-int s\" #address-cells\" property" " 0 encode-int s\" #size-cells\" property" " s\" mdio\" 2dup device-name device-type" " s\" mpc5200b-fec-phy\" encode-string" " s\" compatible\" property" " 0xf0003000 0x400 reg" " 0x2 encode-int" " 0x5 encode-int encode+" " 0x3 encode-int encode+" " s\" interrupts\" property" " finish-device"); }; /* Make sure ethernet phy device node exist */ node = call_prom("finddevice", 1, 1, ADDR("/builtin/mdio/ethernet-phy")); if (!PHANDLE_VALID(node)) { prom_printf("Adding Ethernet PHY node\n"); call_prom("interpret", 1, 1, " s\" /builtin/mdio\" find-device" " new-device" " s\" ethernet-phy\" device-name" " 0x10 encode-int s\" reg\" property" " my-self" " ihandle>phandle" " finish-device" " s\" /builtin/ethernet\" find-device" " encode-int" " s\" phy-handle\" property" " device-end"); } } #else #define fixup_device_tree_efika() Loading arch/powerpc/mm/slb.c +8 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,14 @@ static inline void slb_shadow_clear(unsigned long entry) get_slb_shadow()->save_area[entry].esid = 0; } void slb_shadow_clear_all(void) { int i; for (i = 0; i < SLB_NUM_BOLTED; i++) slb_shadow_clear(i); } static inline void create_shadowed_slbe(unsigned long ea, int ssize, unsigned long flags, unsigned long entry) Loading arch/powerpc/platforms/pseries/hotplug-cpu.c +2 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include <asm/vdso_datapage.h> #include <asm/pSeries_reconfig.h> #include "xics.h" #include "plpar_wrappers.h" /* This version can't take the spinlock, because it never returns */ static struct rtas_args rtas_stop_self_args = { Loading Loading @@ -58,6 +59,7 @@ static void pseries_mach_cpu_die(void) local_irq_disable(); idle_task_exit(); xics_teardown_cpu(0); unregister_slb_shadow(hard_smp_processor_id(), __pa(get_slb_shadow())); rtas_stop_self(); /* Should never get here... */ BUG(); Loading arch/powerpc/platforms/pseries/lpar.c +1 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,7 @@ void vpa_init(int cpu) */ addr = __pa(&slb_shadow[cpu]); if (firmware_has_feature(FW_FEATURE_SPLPAR)) { slb_shadow_clear_all(); ret = register_slb_shadow(hwcpu, addr); if (ret) printk(KERN_ERR Loading include/asm-powerpc/mmu-hash64.h +1 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ extern void hpte_init_iSeries(void); extern void hpte_init_beat(void); extern void hpte_init_beat_v3(void); extern void slb_shadow_clear_all(void); extern void stabs_alloc(void); extern void slb_initialize(void); extern void slb_flush_and_rebolt(void); Loading Loading
arch/powerpc/kernel/prom_init.c +39 −0 Original line number Diff line number Diff line Loading @@ -2216,6 +2216,45 @@ static void __init fixup_device_tree_efika(void) prom_printf("fixup_device_tree_efika: ", "skipped entry %x - setprop error\n", i); } /* Make sure ethernet mdio bus node exists */ node = call_prom("finddevice", 1, 1, ADDR("/builtin/mdio")); if (!PHANDLE_VALID(node)) { prom_printf("Adding Ethernet MDIO node\n"); call_prom("interpret", 1, 1, " s\" /builtin\" find-device" " new-device" " 1 encode-int s\" #address-cells\" property" " 0 encode-int s\" #size-cells\" property" " s\" mdio\" 2dup device-name device-type" " s\" mpc5200b-fec-phy\" encode-string" " s\" compatible\" property" " 0xf0003000 0x400 reg" " 0x2 encode-int" " 0x5 encode-int encode+" " 0x3 encode-int encode+" " s\" interrupts\" property" " finish-device"); }; /* Make sure ethernet phy device node exist */ node = call_prom("finddevice", 1, 1, ADDR("/builtin/mdio/ethernet-phy")); if (!PHANDLE_VALID(node)) { prom_printf("Adding Ethernet PHY node\n"); call_prom("interpret", 1, 1, " s\" /builtin/mdio\" find-device" " new-device" " s\" ethernet-phy\" device-name" " 0x10 encode-int s\" reg\" property" " my-self" " ihandle>phandle" " finish-device" " s\" /builtin/ethernet\" find-device" " encode-int" " s\" phy-handle\" property" " device-end"); } } #else #define fixup_device_tree_efika() Loading
arch/powerpc/mm/slb.c +8 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,14 @@ static inline void slb_shadow_clear(unsigned long entry) get_slb_shadow()->save_area[entry].esid = 0; } void slb_shadow_clear_all(void) { int i; for (i = 0; i < SLB_NUM_BOLTED; i++) slb_shadow_clear(i); } static inline void create_shadowed_slbe(unsigned long ea, int ssize, unsigned long flags, unsigned long entry) Loading
arch/powerpc/platforms/pseries/hotplug-cpu.c +2 −0 Original line number Diff line number Diff line Loading @@ -29,6 +29,7 @@ #include <asm/vdso_datapage.h> #include <asm/pSeries_reconfig.h> #include "xics.h" #include "plpar_wrappers.h" /* This version can't take the spinlock, because it never returns */ static struct rtas_args rtas_stop_self_args = { Loading Loading @@ -58,6 +59,7 @@ static void pseries_mach_cpu_die(void) local_irq_disable(); idle_task_exit(); xics_teardown_cpu(0); unregister_slb_shadow(hard_smp_processor_id(), __pa(get_slb_shadow())); rtas_stop_self(); /* Should never get here... */ BUG(); Loading
arch/powerpc/platforms/pseries/lpar.c +1 −0 Original line number Diff line number Diff line Loading @@ -272,6 +272,7 @@ void vpa_init(int cpu) */ addr = __pa(&slb_shadow[cpu]); if (firmware_has_feature(FW_FEATURE_SPLPAR)) { slb_shadow_clear_all(); ret = register_slb_shadow(hwcpu, addr); if (ret) printk(KERN_ERR Loading
include/asm-powerpc/mmu-hash64.h +1 −0 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ extern void hpte_init_iSeries(void); extern void hpte_init_beat(void); extern void hpte_init_beat_v3(void); extern void slb_shadow_clear_all(void); extern void stabs_alloc(void); extern void slb_initialize(void); extern void slb_flush_and_rebolt(void); Loading