Skip to content

Commit

Permalink
Merge refs/heads/devtree from rsync://oak/kernels/iseries/work/.git
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Mackerras committed Sep 26, 2005
2 parents 14cf11a + 3d8a66c commit 51a0885
Show file tree
Hide file tree
Showing 12 changed files with 313 additions and 273 deletions.
1 change: 0 additions & 1 deletion arch/ppc64/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -357,7 +357,6 @@ config HOTPLUG_CPU

config PROC_DEVICETREE
bool "Support for Open Firmware device tree in /proc"
depends on !PPC_ISERIES
help
This option adds a device-tree directory under /proc which contains
an image of the device tree that the kernel copies from Open
Expand Down
4 changes: 2 additions & 2 deletions arch/ppc64/kernel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ obj-y := setup.o entry.o traps.o irq.o idle.o dma.o \
udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o \
ptrace32.o signal32.o rtc.o init_task.o \
lmb.o cputable.o cpu_setup_power4.o idle_power4.o \
iommu.o sysfs.o vdso.o pmc.o firmware.o
iommu.o sysfs.o vdso.o pmc.o firmware.o prom.o
obj-y += vdso32/ vdso64/

obj-$(CONFIG_PPC_OF) += of_device.o
Expand All @@ -27,7 +27,7 @@ obj-$(CONFIG_PPC_ISERIES) += HvCall.o HvLpConfig.o LparData.o \
mf.o HvLpEvent.o iSeries_proc.o iSeries_htab.o \
iSeries_iommu.o

obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o prom_init.o prom.o
obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o prom_init.o

obj-$(CONFIG_PPC_PSERIES) += pSeries_pci.o pSeries_lpar.o pSeries_hvCall.o \
pSeries_nvram.o rtasd.o ras.o pSeries_reconfig.o \
Expand Down
7 changes: 5 additions & 2 deletions arch/ppc64/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -1364,6 +1364,7 @@ _STATIC(__start_initialization_iSeries)
addi r2,r2,0x4000

bl .iSeries_early_setup
bl .early_setup

/* relocation is on at this point */

Expand Down Expand Up @@ -1970,20 +1971,22 @@ _GLOBAL(hmt_start_secondary)
blr
#endif

#if defined(CONFIG_KEXEC) || (defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES))
#if defined(CONFIG_KEXEC) || defined(CONFIG_SMP)
_GLOBAL(smp_release_cpus)
/* All secondary cpus are spinning on a common
* spinloop, release them all now so they can start
* to spin on their individual paca spinloops.
* For non SMP kernels, the secondary cpus never
* get out of the common spinloop.
* XXX This does nothing useful on iSeries, secondaries are
* already waiting on their paca.
*/
li r3,1
LOADADDR(r5,__secondary_hold_spinloop)
std r3,0(r5)
sync
blr
#endif /* CONFIG_SMP && !CONFIG_PPC_ISERIES */
#endif /* CONFIG_SMP */


/*
Expand Down
19 changes: 19 additions & 0 deletions arch/ppc64/kernel/iSeries_htab.c
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,25 @@ static long iSeries_hpte_insert(unsigned long hpte_group, unsigned long va,
return (secondary << 3) | (slot & 7);
}

long iSeries_hpte_bolt_or_insert(unsigned long hpte_group,
unsigned long va, unsigned long prpn, unsigned long vflags,
unsigned long rflags)
{
long slot;
hpte_t lhpte;

slot = HvCallHpt_findValid(&lhpte, va >> PAGE_SHIFT);

if (lhpte.v & HPTE_V_VALID) {
/* Bolt the existing HPTE */
HvCallHpt_setSwBits(slot, 0x10, 0);
HvCallHpt_setPp(slot, PP_RWXX);
return 0;
}

return iSeries_hpte_insert(hpte_group, va, prpn, vflags, rflags);
}

static unsigned long iSeries_hpte_getword0(unsigned long slot)
{
hpte_t hpte;
Expand Down
13 changes: 13 additions & 0 deletions arch/ppc64/kernel/iSeries_irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -351,3 +351,16 @@ int __init iSeries_allocate_IRQ(HvBusNumber busNumber,
irq_desc[virtirq].handler = &iSeries_IRQ_handler;
return virtirq;
}

int virt_irq_create_mapping(unsigned int real_irq)
{
BUG(); /* Don't call this on iSeries, yet */

return 0;
}

void virt_irq_init(void)
{
return;
}

Loading

0 comments on commit 51a0885

Please sign in to comment.