mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-06 22:42:10 +00:00
powerpc updates for 4.4
- Kconfig: remove BE-only platforms from LE kernel build from Boqun Feng - Refresh ps3_defconfig from Geoff Levand - Emit GNU & SysV hashes for the vdso from Michael Ellerman - Define an enum for the bolted SLB indexes from Anshuman Khandual - Use a local to avoid multiple calls to get_slb_shadow() from Michael Ellerman - Add gettimeofday() benchmark from Michael Neuling - Avoid link stack corruption in __get_datapage() from Michael Neuling - Add virt_to_pfn and use this instead of opencoding from Aneesh Kumar K.V - Add ppc64le_defconfig from Michael Ellerman - pseries: extract of_helpers module from Andy Shevchenko - Correct string length in pseries_of_derive_parent() from Nathan Fontenot - Free the MSI bitmap if it was slab allocated from Denis Kirjanov - Shorten irq_chip name for the SIU from Christophe Leroy - Wait 1s for secondaries to enter OPAL during kexec from Samuel Mendoza-Jonas - Fix _ALIGN_* errors due to type difference. from Aneesh Kumar K.V - powerpc/pseries/hvcserver: don't memset pi_buff if it is null from Colin Ian King - Disable hugepd for 64K page size. from Aneesh Kumar K.V - Differentiate between hugetlb and THP during page walk from Aneesh Kumar K.V - Make PCI non-optional for pseries from Michael Ellerman - Individual System V IPC system calls from Sam bobroff - Add selftest of unmuxed IPC calls from Michael Ellerman - discard .exit.data at runtime from Stephen Rothwell - Delete old orphaned PrPMC 280/2800 DTS and boot file. from Paul Gortmaker - Use of_get_next_parent to simplify code from Christophe Jaillet - Paginate some xmon output from Sam bobroff - Add some more elements to the xmon PACA dump from Michael Ellerman - Allow the tm-syscall selftest to build with old headers from Michael Ellerman - Run EBB selftests only on POWER8 from Denis Kirjanov - Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU from Michael Ellerman - Avoid reference to potentially freed memory in prom.c from Christophe Jaillet - Quieten boot wrapper output with run_cmd from Geoff Levand - EEH fixes and cleanups from Gavin Shan - Fix recursive fenced PHB on Broadcom shiner adapter from Gavin Shan - Use of_get_next_parent() in of_get_ibm_chip_id() from Michael Ellerman - Fix section mismatch warning in msi_bitmap_alloc() from Denis Kirjanov - Fix ps3-lpm white space from Rudhresh Kumar J - Fix ps3-vuart null dereference from Colin King - nvram: Add missing kfree in error path from Christophe Jaillet - nvram: Fix function name in some errors messages. from Christophe Jaillet - drivers/macintosh: adb: fix misleading Kconfig help text from Aaro Koskinen - agp/uninorth: fix a memleak in create_gatt_table from Denis Kirjanov - cxl: Free virtual PHB when removing from Andrew Donnellan - scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target from Michael Ellerman - scripts/kconfig/Makefile: Fix KBUILD_DEFCONFIG check when building with O= from Michael Ellerman - Freescale updates from Scott: Highlights include 64-bit book3e kexec/kdump support, a rework of the qoriq clock driver, device tree changes including qoriq fman nodes, support for a new 85xx board, and some fixes. - MPC5xxx updates from Anatolij: Highlights include a driver for MPC512x LocalPlus Bus FIFO with its device tree binding documentation, mpc512x device tree updates and some minor fixes. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJWPEZgAAoJEFHr6jzI4aWANjYQAKX2Q/95hqKfCuF5FBcUmtMC Pu/Nff027MVzxZ2ApDcvvLGps5Nz2bn3nIhc9zjkXc5E8DuL6X3Yl8ce7qyNcc3g cJJ8RvtUo6J1OMWetXFehtPYniAAwKMhZYKnj0+WnLr2SyH/Vhl3ehDkFbGyPtuH r+2E7krFjfVgU+bzciIFnOaDekFuFN/pXWMb6e6zQyBJe9N8ZIp96uouGCebKVd0 VDLItzdaKErT8JFfbymMPvZm3V0rMVx4WWu3kAbQX8LrD5a18NF1zrjAOHRXc61n kkk8/DPuNOon1PbXXyiS5BcFyZRe+KE3VBnoW5sOMqMIRg5WdO1oU3e2pEfXMO8+ leXYwFLXiKzUZuOgQG2QiUhrzD2yC1o6/TJWATv0dSl9AwrecgPX+Vj6X357slAf A9E3eMy5tgnpndBWZmvZS3W7YDKH+NkeZ+Q40+NErAlqr++ErrTcKVndk5vWlYTT 7mMZeTXagX66al/k5ATKqwB7iUSpnYHSAa9fcUYPSM2FnXsDxPyeJGkBbcoOmkGj QrpgNYOvJaUJd076goZCV39v0c1xpfV9/9kyVch8HUadf6JcjpVZwYnbGw2qlJjh ZanuBG2VOeSwaKQqXiRBSBetnpAg8CVpFjDmX9wOBfSek2wxEJqDX/vQExdbIDQQ pUs7vnUxLzhmW/x+ygOI =YwcM -----END PGP SIGNATURE----- Merge tag 'powerpc-4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc updates from Michael Ellerman: - Kconfig: remove BE-only platforms from LE kernel build from Boqun Feng - Refresh ps3_defconfig from Geoff Levand - Emit GNU & SysV hashes for the vdso from Michael Ellerman - Define an enum for the bolted SLB indexes from Anshuman Khandual - Use a local to avoid multiple calls to get_slb_shadow() from Michael Ellerman - Add gettimeofday() benchmark from Michael Neuling - Avoid link stack corruption in __get_datapage() from Michael Neuling - Add virt_to_pfn and use this instead of opencoding from Aneesh Kumar K.V - Add ppc64le_defconfig from Michael Ellerman - pseries: extract of_helpers module from Andy Shevchenko - Correct string length in pseries_of_derive_parent() from Nathan Fontenot - Free the MSI bitmap if it was slab allocated from Denis Kirjanov - Shorten irq_chip name for the SIU from Christophe Leroy - Wait 1s for secondaries to enter OPAL during kexec from Samuel Mendoza-Jonas - Fix _ALIGN_* errors due to type difference, from Aneesh Kumar K.V - powerpc/pseries/hvcserver: don't memset pi_buff if it is null from Colin Ian King - Disable hugepd for 64K page size, from Aneesh Kumar K.V - Differentiate between hugetlb and THP during page walk from Aneesh Kumar K.V - Make PCI non-optional for pseries from Michael Ellerman - Individual System V IPC system calls from Sam bobroff - Add selftest of unmuxed IPC calls from Michael Ellerman - discard .exit.data at runtime from Stephen Rothwell - Delete old orphaned PrPMC 280/2800 DTS and boot file, from Paul Gortmaker - Use of_get_next_parent to simplify code from Christophe Jaillet - Paginate some xmon output from Sam bobroff - Add some more elements to the xmon PACA dump from Michael Ellerman - Allow the tm-syscall selftest to build with old headers from Michael Ellerman - Run EBB selftests only on POWER8 from Denis Kirjanov - Drop CONFIG_TUNE_CELL in favour of CONFIG_CELL_CPU from Michael Ellerman - Avoid reference to potentially freed memory in prom.c from Christophe Jaillet - Quieten boot wrapper output with run_cmd from Geoff Levand - EEH fixes and cleanups from Gavin Shan - Fix recursive fenced PHB on Broadcom shiner adapter from Gavin Shan - Use of_get_next_parent() in of_get_ibm_chip_id() from Michael Ellerman - Fix section mismatch warning in msi_bitmap_alloc() from Denis Kirjanov - Fix ps3-lpm white space from Rudhresh Kumar J - Fix ps3-vuart null dereference from Colin King - nvram: Add missing kfree in error path from Christophe Jaillet - nvram: Fix function name in some errors messages, from Christophe Jaillet - drivers/macintosh: adb: fix misleading Kconfig help text from Aaro Koskinen - agp/uninorth: fix a memleak in create_gatt_table from Denis Kirjanov - cxl: Free virtual PHB when removing from Andrew Donnellan - scripts/kconfig/Makefile: Allow KBUILD_DEFCONFIG to be a target from Michael Ellerman - scripts/kconfig/Makefile: Fix KBUILD_DEFCONFIG check when building with O= from Michael Ellerman - Freescale updates from Scott: Highlights include 64-bit book3e kexec/kdump support, a rework of the qoriq clock driver, device tree changes including qoriq fman nodes, support for a new 85xx board, and some fixes. - MPC5xxx updates from Anatolij: Highlights include a driver for MPC512x LocalPlus Bus FIFO with its device tree binding documentation, mpc512x device tree updates and some minor fixes. * tag 'powerpc-4.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (106 commits) powerpc/msi: Fix section mismatch warning in msi_bitmap_alloc() powerpc/prom: Use of_get_next_parent() in of_get_ibm_chip_id() powerpc/pseries: Correct string length in pseries_of_derive_parent() powerpc/e6500: hw tablewalk: make sure we invalidate and write to the same tlb entry powerpc/mpc85xx: Add FSL QorIQ DPAA FMan support to the SoC device tree(s) powerpc/mpc85xx: Create dts components for the FSL QorIQ DPAA FMan powerpc/fsl: Add #clock-cells and clockgen label to clockgen nodes powerpc: handle error case in cpm_muram_alloc() powerpc: mpic: use IRQCHIP_SKIP_SET_WAKE instead of redundant mpic_irq_set_wake powerpc/book3e-64: Enable kexec powerpc/book3e-64/kexec: Set "r4 = 0" when entering spinloop powerpc/booke: Only use VIRT_PHYS_OFFSET on booke32 powerpc/book3e-64/kexec: Enable SMP release powerpc/book3e-64/kexec: create an identity TLB mapping powerpc/book3e-64: Don't limit paca to 256 MiB powerpc/book3e/kdump: Enable crash_kexec_wait_realmode powerpc/book3e: support CONFIG_RELOCATABLE powerpc/booke64: Fix args to copy_and_flush powerpc/book3e-64: rename interrupt_end_book3e with __end_interrupts powerpc/e6500: kexec: Handle hardware threads ...
This commit is contained in:
commit
2f4bf528ec
311 changed files with 6551 additions and 1770 deletions
|
@ -179,6 +179,19 @@ static int setup_one_atmu(struct ccsr_pci __iomem *pci,
|
|||
return i;
|
||||
}
|
||||
|
||||
static bool is_kdump(void)
|
||||
{
|
||||
struct device_node *node;
|
||||
|
||||
node = of_find_node_by_type(NULL, "memory");
|
||||
if (!node) {
|
||||
WARN_ON_ONCE(1);
|
||||
return false;
|
||||
}
|
||||
|
||||
return of_property_read_bool(node, "linux,usable-memory");
|
||||
}
|
||||
|
||||
/* atmu setup for fsl pci/pcie controller */
|
||||
static void setup_pci_atmu(struct pci_controller *hose)
|
||||
{
|
||||
|
@ -192,6 +205,16 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
const char *name = hose->dn->full_name;
|
||||
const u64 *reg;
|
||||
int len;
|
||||
bool setup_inbound;
|
||||
|
||||
/*
|
||||
* If this is kdump, we don't want to trigger a bunch of PCI
|
||||
* errors by closing the window on in-flight DMA.
|
||||
*
|
||||
* We still run most of the function's logic so that things like
|
||||
* hose->dma_window_size still get set.
|
||||
*/
|
||||
setup_inbound = !is_kdump();
|
||||
|
||||
if (early_find_capability(hose, 0, 0, PCI_CAP_ID_EXP)) {
|
||||
if (in_be32(&pci->block_rev1) >= PCIE_IP_REV_2_2) {
|
||||
|
@ -204,8 +227,11 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
/* Disable all windows (except powar0 since it's ignored) */
|
||||
for(i = 1; i < 5; i++)
|
||||
out_be32(&pci->pow[i].powar, 0);
|
||||
for (i = start_idx; i < end_idx; i++)
|
||||
out_be32(&pci->piw[i].piwar, 0);
|
||||
|
||||
if (setup_inbound) {
|
||||
for (i = start_idx; i < end_idx; i++)
|
||||
out_be32(&pci->piw[i].piwar, 0);
|
||||
}
|
||||
|
||||
/* Setup outbound MEM window */
|
||||
for(i = 0, j = 1; i < 3; i++) {
|
||||
|
@ -278,6 +304,7 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
|
||||
/* Setup inbound mem window */
|
||||
mem = memblock_end_of_DRAM();
|
||||
pr_info("%s: end of DRAM %llx\n", __func__, mem);
|
||||
|
||||
/*
|
||||
* The msi-address-64 property, if it exists, indicates the physical
|
||||
|
@ -320,12 +347,14 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
|
||||
piwar |= ((mem_log - 1) & PIWAR_SZ_MASK);
|
||||
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwbar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
win_idx--;
|
||||
if (setup_inbound) {
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwbar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
}
|
||||
|
||||
win_idx--;
|
||||
hose->dma_window_base_cur = 0x00000000;
|
||||
hose->dma_window_size = (resource_size_t)sz;
|
||||
|
||||
|
@ -343,13 +372,15 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
|
||||
piwar = (piwar & ~PIWAR_SZ_MASK) | (mem_log - 1);
|
||||
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwbear,
|
||||
pci64_dma_offset >> 44);
|
||||
out_be32(&pci->piw[win_idx].piwbar,
|
||||
pci64_dma_offset >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
if (setup_inbound) {
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, 0x00000000);
|
||||
out_be32(&pci->piw[win_idx].piwbear,
|
||||
pci64_dma_offset >> 44);
|
||||
out_be32(&pci->piw[win_idx].piwbar,
|
||||
pci64_dma_offset >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
}
|
||||
|
||||
/*
|
||||
* install our own dma_set_mask handler to fixup dma_ops
|
||||
|
@ -362,12 +393,15 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
} else {
|
||||
u64 paddr = 0;
|
||||
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwbar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar, (piwar | (mem_log - 1)));
|
||||
win_idx--;
|
||||
if (setup_inbound) {
|
||||
/* Setup inbound memory window */
|
||||
out_be32(&pci->piw[win_idx].pitar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwbar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar,
|
||||
(piwar | (mem_log - 1)));
|
||||
}
|
||||
|
||||
win_idx--;
|
||||
paddr += 1ull << mem_log;
|
||||
sz -= 1ull << mem_log;
|
||||
|
||||
|
@ -375,11 +409,15 @@ static void setup_pci_atmu(struct pci_controller *hose)
|
|||
mem_log = ilog2(sz);
|
||||
piwar |= (mem_log - 1);
|
||||
|
||||
out_be32(&pci->piw[win_idx].pitar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwbar, paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
win_idx--;
|
||||
if (setup_inbound) {
|
||||
out_be32(&pci->piw[win_idx].pitar,
|
||||
paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwbar,
|
||||
paddr >> 12);
|
||||
out_be32(&pci->piw[win_idx].piwar, piwar);
|
||||
}
|
||||
|
||||
win_idx--;
|
||||
paddr += 1ull << mem_log;
|
||||
}
|
||||
|
||||
|
@ -1002,7 +1040,7 @@ int fsl_pci_mcheck_exception(struct pt_regs *regs)
|
|||
ret = probe_kernel_address((void *)regs->nip, inst);
|
||||
}
|
||||
|
||||
if (mcheck_handle_load(regs, inst)) {
|
||||
if (!ret && mcheck_handle_load(regs, inst)) {
|
||||
regs->nip += 4;
|
||||
return 1;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue