Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 22958
b: refs/heads/master
c: 57cfb81
h: refs/heads/master
v: v3
  • Loading branch information
Michael Ellerman authored and Paul Mackerras committed Mar 22, 2006
1 parent 8104a8d commit 8c98957
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 18 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3d15910bfbeb02286ce4b5009c53754e88066ccb
refs/heads/master: 57cfb814f698d30894bc28e22125550193ebe549
4 changes: 2 additions & 2 deletions trunk/arch/powerpc/mm/hash_utils_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ void __init htab_initialize(void)

htab_hash_mask = pteg_count - 1;

if (platform_is_lpar()) {
if (firmware_has_feature(FW_FEATURE_LPAR)) {
/* Using a hypervisor which owns the htab */
htab_address = NULL;
_SDR1 = 0;
Expand Down Expand Up @@ -517,7 +517,7 @@ void __init htab_initialize(void)

void htab_initialize_secondary(void)
{
if (!platform_is_lpar())
if (!firmware_has_feature(FW_FEATURE_LPAR))
mtspr(SPRN_SDR1, _SDR1);
}

Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/oprofile/op_model_power4.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/oprofile.h>
#include <linux/init.h>
#include <linux/smp.h>
#include <asm/firmware.h>
#include <asm/ptrace.h>
#include <asm/system.h>
#include <asm/processor.h>
Expand Down Expand Up @@ -232,7 +233,7 @@ static unsigned long get_pc(struct pt_regs *regs)
mmcra = mfspr(SPRN_MMCRA);

/* Were we in the hypervisor? */
if (platform_is_lpar() && (mmcra & MMCRA_SIHV))
if (firmware_has_feature(FW_FEATURE_LPAR) && (mmcra & MMCRA_SIHV))
/* function descriptor madness */
return *((unsigned long *)hypervisor_bucket);

Expand Down
10 changes: 7 additions & 3 deletions trunk/arch/powerpc/platforms/iseries/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,6 @@ static void __init iSeries_init_early(void)
{
DBG(" -> iSeries_init_early()\n");

ppc64_firmware_features = FW_FEATURE_ISERIES;

ppc64_interrupt_controller = IC_ISERIES;

#if defined(CONFIG_BLK_DEV_INITRD)
Expand Down Expand Up @@ -711,7 +709,13 @@ void __init iSeries_init_IRQ(void) { }

static int __init iseries_probe(int platform)
{
return PLATFORM_ISERIES_LPAR == platform;
if (PLATFORM_ISERIES_LPAR != platform)
return 0;

ppc64_firmware_features |= FW_FEATURE_ISERIES;
ppc64_firmware_features |= FW_FEATURE_LPAR;

return 1;
}

struct machdep_calls __initdata iseries_md = {
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/pseries/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -580,7 +580,7 @@ void iommu_init_early_pSeries(void)
return;
}

if (platform_is_lpar()) {
if (firmware_has_feature(FW_FEATURE_LPAR)) {
if (firmware_has_feature(FW_FEATURE_MULTITCE)) {
ppc_md.tce_build = tce_buildmulti_pSeriesLP;
ppc_md.tce_free = tce_freemulti_pSeriesLP;
Expand Down
11 changes: 7 additions & 4 deletions trunk/arch/powerpc/platforms/pseries/setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ static void __init pSeries_setup_arch(void)
ppc_md.idle_loop = default_idle;
}

if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
ppc_md.enable_pmcs = pseries_lpar_enable_pmcs;
else
ppc_md.enable_pmcs = power4_enable_pmcs;
Expand Down Expand Up @@ -324,12 +324,12 @@ static void __init pSeries_init_early(void)

fw_feature_init();

if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
hpte_init_lpar();
else
hpte_init_native();

if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
find_udbg_vterm();

if (firmware_has_feature(FW_FEATURE_DABR))
Expand Down Expand Up @@ -385,6 +385,9 @@ static int __init pSeries_probe(int platform)
* it here ...
*/

if (platform == PLATFORM_PSERIES_LPAR)
ppc64_firmware_features |= FW_FEATURE_LPAR;

return 1;
}

Expand Down Expand Up @@ -524,7 +527,7 @@ static void pseries_shared_idle(void)

static int pSeries_pci_probe_mode(struct pci_bus *bus)
{
if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
return PCI_PROBE_DEVTREE;
return PCI_PROBE_NORMAL;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/powerpc/platforms/pseries/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ void __init smp_init_pSeries(void)
smp_ops->cpu_die = pSeries_cpu_die;

/* Processors can be added/removed only on LPAR */
if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
pSeries_reconfig_notifier_register(&pSeries_smp_nb);
#endif

Expand Down
3 changes: 2 additions & 1 deletion trunk/arch/powerpc/platforms/pseries/xics.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
#include <linux/gfp.h>
#include <linux/radix-tree.h>
#include <linux/cpu.h>
#include <asm/firmware.h>
#include <asm/prom.h>
#include <asm/io.h>
#include <asm/pgtable.h>
Expand Down Expand Up @@ -536,7 +537,7 @@ void xics_init_IRQ(void)
of_node_put(np);
}

if (platform_is_lpar())
if (firmware_has_feature(FW_FEATURE_LPAR))
ops = &pSeriesLP_ops;
else {
#ifdef CONFIG_SMP
Expand Down
7 changes: 4 additions & 3 deletions trunk/include/asm-powerpc/firmware.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
#define FW_FEATURE_MULTITCE (1UL<<19)
#define FW_FEATURE_SPLPAR (1UL<<20)
#define FW_FEATURE_ISERIES (1UL<<21)
#define FW_FEATURE_LPAR (1UL<<22)

enum {
#ifdef CONFIG_PPC64
Expand All @@ -51,10 +52,10 @@ enum {
FW_FEATURE_MIGRATE | FW_FEATURE_PERFMON | FW_FEATURE_CRQ |
FW_FEATURE_VIO | FW_FEATURE_RDMA | FW_FEATURE_LLAN |
FW_FEATURE_BULK | FW_FEATURE_XDABR | FW_FEATURE_MULTITCE |
FW_FEATURE_SPLPAR,
FW_FEATURE_SPLPAR | FW_FEATURE_LPAR,
FW_FEATURE_PSERIES_ALWAYS = 0,
FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES,
FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES,
FW_FEATURE_ISERIES_POSSIBLE = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
FW_FEATURE_ISERIES_ALWAYS = FW_FEATURE_ISERIES | FW_FEATURE_LPAR,
FW_FEATURE_POSSIBLE =
#ifdef CONFIG_PPC_PSERIES
FW_FEATURE_PSERIES_POSSIBLE |
Expand Down
1 change: 0 additions & 1 deletion trunk/include/asm-powerpc/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
#ifdef __KERNEL__
#define platform_is_pseries() (_machine == PLATFORM_PSERIES || \
_machine == PLATFORM_PSERIES_LPAR)
#define platform_is_lpar() (!!(_machine & PLATFORM_LPAR))

#if defined(CONFIG_PPC_MULTIPLATFORM)
extern int _machine;
Expand Down

0 comments on commit 8c98957

Please sign in to comment.