powerpc: move iSeries_setup.[ch] and mf.c into platforms/iseries
iSeries_setup.c becomes setup.c iSeries_setup.h becomes setup.h mf.c retains its name Also moved iSeries_[gs]et_rtc_time and iSeries_get_boot_time into mf.c since they are just small wrappers around mf_ functions. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
This commit is contained in:
parent
2960eb661a
commit
c8b84976f8
6 changed files with 65 additions and 70 deletions
|
@ -1 +1 @@
|
||||||
obj-$(CONFIG_PPC_ISERIES) += hvcall.o hvlpconfig.o lpardata.o
|
obj-y += hvcall.o hvlpconfig.o lpardata.o setup.o mf.o
|
||||||
|
|
|
@ -1,29 +1,28 @@
|
||||||
/*
|
/*
|
||||||
* mf.c
|
* Copyright (C) 2001 Troy D. Armstrong IBM Corporation
|
||||||
* Copyright (C) 2001 Troy D. Armstrong IBM Corporation
|
* Copyright (C) 2004-2005 Stephen Rothwell IBM Corporation
|
||||||
* Copyright (C) 2004-2005 Stephen Rothwell IBM Corporation
|
*
|
||||||
*
|
* This modules exists as an interface between a Linux secondary partition
|
||||||
* This modules exists as an interface between a Linux secondary partition
|
* running on an iSeries and the primary partition's Virtual Service
|
||||||
* running on an iSeries and the primary partition's Virtual Service
|
* Processor (VSP) object. The VSP has final authority over powering on/off
|
||||||
* Processor (VSP) object. The VSP has final authority over powering on/off
|
* all partitions in the iSeries. It also provides miscellaneous low-level
|
||||||
* all partitions in the iSeries. It also provides miscellaneous low-level
|
* machine facility type operations.
|
||||||
* machine facility type operations.
|
*
|
||||||
*
|
*
|
||||||
*
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* it under the terms of the GNU General Public License as published by
|
||||||
* it under the terms of the GNU General Public License as published by
|
* the Free Software Foundation; either version 2 of the License, or
|
||||||
* the Free Software Foundation; either version 2 of the License, or
|
* (at your option) any later version.
|
||||||
* (at your option) any later version.
|
*
|
||||||
*
|
* This program is distributed in the hope that it will be useful,
|
||||||
* This program is distributed in the hope that it will be useful,
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
* GNU General Public License for more details.
|
||||||
* GNU General Public License for more details.
|
*
|
||||||
*
|
* You should have received a copy of the GNU General Public License
|
||||||
* You should have received a copy of the GNU General Public License
|
* along with this program; if not, write to the Free Software
|
||||||
* along with this program; if not, write to the Free Software
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
*/
|
||||||
*/
|
|
||||||
|
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
@ -42,6 +41,10 @@
|
||||||
#include <asm/iSeries/HvLpConfig.h>
|
#include <asm/iSeries/HvLpConfig.h>
|
||||||
#include <asm/iSeries/ItLpQueue.h>
|
#include <asm/iSeries/ItLpQueue.h>
|
||||||
|
|
||||||
|
#include "setup.h"
|
||||||
|
|
||||||
|
extern int piranha_simulator;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the structure layout for the Machine Facilites LPAR event
|
* This is the structure layout for the Machine Facilites LPAR event
|
||||||
* flows.
|
* flows.
|
||||||
|
@ -1279,3 +1282,35 @@ static int __init mf_proc_init(void)
|
||||||
__initcall(mf_proc_init);
|
__initcall(mf_proc_init);
|
||||||
|
|
||||||
#endif /* CONFIG_PROC_FS */
|
#endif /* CONFIG_PROC_FS */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get the RTC from the virtual service processor
|
||||||
|
* This requires flowing LpEvents to the primary partition
|
||||||
|
*/
|
||||||
|
void iSeries_get_rtc_time(struct rtc_time *rtc_tm)
|
||||||
|
{
|
||||||
|
if (piranha_simulator)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mf_get_rtc(rtc_tm);
|
||||||
|
rtc_tm->tm_mon--;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Set the RTC in the virtual service processor
|
||||||
|
* This requires flowing LpEvents to the primary partition
|
||||||
|
*/
|
||||||
|
int iSeries_set_rtc_time(struct rtc_time *tm)
|
||||||
|
{
|
||||||
|
mf_set_rtc(tm);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void iSeries_get_boot_time(struct rtc_time *tm)
|
||||||
|
{
|
||||||
|
if (piranha_simulator)
|
||||||
|
return;
|
||||||
|
|
||||||
|
mf_get_boot_rtc(tm);
|
||||||
|
tm->tm_mon -= 1;
|
||||||
|
}
|
|
@ -2,8 +2,6 @@
|
||||||
* Copyright (c) 2000 Mike Corrigan <mikejc@us.ibm.com>
|
* Copyright (c) 2000 Mike Corrigan <mikejc@us.ibm.com>
|
||||||
* Copyright (c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
|
* Copyright (c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
|
||||||
*
|
*
|
||||||
* Module name: iSeries_setup.c
|
|
||||||
*
|
|
||||||
* Description:
|
* Description:
|
||||||
* Architecture- / platform-specific boot-time initialization code for
|
* Architecture- / platform-specific boot-time initialization code for
|
||||||
* the IBM iSeries LPAR. Adapted from original code by Grant Erickson and
|
* the IBM iSeries LPAR. Adapted from original code by Grant Erickson and
|
||||||
|
@ -42,7 +40,6 @@
|
||||||
#include <asm/firmware.h>
|
#include <asm/firmware.h>
|
||||||
|
|
||||||
#include <asm/time.h>
|
#include <asm/time.h>
|
||||||
#include "iSeries_setup.h"
|
|
||||||
#include <asm/naca.h>
|
#include <asm/naca.h>
|
||||||
#include <asm/paca.h>
|
#include <asm/paca.h>
|
||||||
#include <asm/cache.h>
|
#include <asm/cache.h>
|
||||||
|
@ -62,6 +59,8 @@
|
||||||
#include <asm/iSeries/ItVpdAreas.h>
|
#include <asm/iSeries/ItVpdAreas.h>
|
||||||
#include <asm/iSeries/LparMap.h>
|
#include <asm/iSeries/LparMap.h>
|
||||||
|
|
||||||
|
#include "setup.h"
|
||||||
|
|
||||||
extern void hvlog(char *fmt, ...);
|
extern void hvlog(char *fmt, ...);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
|
@ -2,8 +2,6 @@
|
||||||
* Copyright (c) 2000 Mike Corrigan <mikejc@us.ibm.com>
|
* Copyright (c) 2000 Mike Corrigan <mikejc@us.ibm.com>
|
||||||
* Copyright (c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
|
* Copyright (c) 1999-2000 Grant Erickson <grant@lcse.umn.edu>
|
||||||
*
|
*
|
||||||
* Module name: as400_setup.h
|
|
||||||
*
|
|
||||||
* Description:
|
* Description:
|
||||||
* Architecture- / platform-specific boot-time initialization code for
|
* Architecture- / platform-specific boot-time initialization code for
|
||||||
* the IBM AS/400 LPAR. Adapted from original code by Grant Erickson and
|
* the IBM AS/400 LPAR. Adapted from original code by Grant Erickson and
|
|
@ -22,8 +22,8 @@ pci-obj-$(CONFIG_PPC_MULTIPLATFORM) += pci_dn.o pci_direct_iommu.o
|
||||||
|
|
||||||
obj-$(CONFIG_PCI) += pci.o pci_iommu.o iomap.o $(pci-obj-y)
|
obj-$(CONFIG_PCI) += pci.o pci_iommu.o iomap.o $(pci-obj-y)
|
||||||
|
|
||||||
obj-$(CONFIG_PPC_ISERIES) += iSeries_setup.o ItLpQueue.o hvCall.o \
|
obj-$(CONFIG_PPC_ISERIES) += ItLpQueue.o hvCall.o \
|
||||||
mf.o HvLpEvent.o iSeries_proc.o iSeries_htab.o \
|
HvLpEvent.o iSeries_proc.o iSeries_htab.o \
|
||||||
iSeries_iommu.o
|
iSeries_iommu.o
|
||||||
|
|
||||||
obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o prom_init.o
|
obj-$(CONFIG_PPC_MULTIPLATFORM) += nvram.o i8259.o prom_init.o
|
||||||
|
|
|
@ -43,11 +43,8 @@
|
||||||
#include <asm/time.h>
|
#include <asm/time.h>
|
||||||
#include <asm/rtas.h>
|
#include <asm/rtas.h>
|
||||||
|
|
||||||
#include <asm/iSeries/mf.h>
|
|
||||||
#include <asm/machdep.h>
|
#include <asm/machdep.h>
|
||||||
|
|
||||||
extern int piranha_simulator;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We sponge a minor off of the misc major. No need slurping
|
* We sponge a minor off of the misc major. No need slurping
|
||||||
* up another valuable major dev number for this. If you add
|
* up another valuable major dev number for this. If you add
|
||||||
|
@ -265,40 +262,6 @@ static int rtc_read_proc(char *page, char **start, off_t off,
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PPC_ISERIES
|
|
||||||
/*
|
|
||||||
* Get the RTC from the virtual service processor
|
|
||||||
* This requires flowing LpEvents to the primary partition
|
|
||||||
*/
|
|
||||||
void iSeries_get_rtc_time(struct rtc_time *rtc_tm)
|
|
||||||
{
|
|
||||||
if (piranha_simulator)
|
|
||||||
return;
|
|
||||||
|
|
||||||
mf_get_rtc(rtc_tm);
|
|
||||||
rtc_tm->tm_mon--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Set the RTC in the virtual service processor
|
|
||||||
* This requires flowing LpEvents to the primary partition
|
|
||||||
*/
|
|
||||||
int iSeries_set_rtc_time(struct rtc_time *tm)
|
|
||||||
{
|
|
||||||
mf_set_rtc(tm);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void iSeries_get_boot_time(struct rtc_time *tm)
|
|
||||||
{
|
|
||||||
if ( piranha_simulator )
|
|
||||||
return;
|
|
||||||
|
|
||||||
mf_get_boot_rtc(tm);
|
|
||||||
tm->tm_mon -= 1;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef CONFIG_PPC_RTAS
|
#ifdef CONFIG_PPC_RTAS
|
||||||
#define MAX_RTC_WAIT 5000 /* 5 sec */
|
#define MAX_RTC_WAIT 5000 /* 5 sec */
|
||||||
#define RTAS_CLOCK_BUSY (-2)
|
#define RTAS_CLOCK_BUSY (-2)
|
||||||
|
|
Loading…
Add table
Reference in a new issue