/* * Copyright (C) 2016 Chen-Yu Tsai * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual * licensing only applies to this file, and not this project as a * whole. * * a) This file is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This file is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * Or, alternatively, * * b) Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ #ifndef _DT_BINDINGS_RST_SUN6I_A31_H_ #define _DT_BINDINGS_RST_SUN6I_A31_H_ #define RST_USB_PHY0 0 #define RST_USB_PHY1 1 #define RST_USB_PHY2 2 #define RST_AHB1_MIPI_DSI 3 #define RST_AHB1_SS 4 #define RST_AHB1_DMA 5 #define RST_AHB1_MMC0 6 #define RST_AHB1_MMC1 7 #define RST_AHB1_MMC2 8 #define RST_AHB1_MMC3 9 #define RST_AHB1_NAND1 10 #define RST_AHB1_NAND0 11 #define RST_AHB1_SDRAM 12 #define RST_AHB1_EMAC 13 #define RST_AHB1_TS 14 #define RST_AHB1_HSTIMER 15 #define RST_AHB1_SPI0 16 #define RST_AHB1_SPI1 17 #define RST_AHB1_SPI2 18 #define RST_AHB1_SPI3 19 #define RST_AHB1_OTG 20 #define RST_AHB1_EHCI0 21 #define RST_AHB1_EHCI1 22 #define RST_AHB1_OHCI0 23 #define RST_AHB1_OHCI1 24 #define RST_AHB1_OHCI2 25 #define RST_AHB1_VE 26 #define RST_AHB1_LCD0 27 #define RST_AHB1_LCD1 28 #define RST_AHB1_CSI 29 #define RST_AHB1_HDMI 30 #define RST_AHB1_BE0 31 #define RST_AHB1_BE1 32 #define RST_AHB1_FE0 33 #define RST_AHB1_FE1 34 #define RST_AHB1_MP 35 #define RST_AHB1_GPU 36 #define RST_AHB1_DEU0 37 #define RST_AHB1_DEU1 38 #define RST_AHB1_DRC0 39 #define RST_AHB1_DRC1 40 #define RST_AHB1_LVDS 41 #define RST_APB1_CODEC 42 #define RST_APB1_SPDIF 43 #define RST_APB1_DIGITAL_MIC 44 #define RST_APB1_DAUDIO0 45 #define RST_APB1_DAUDIO1 46 #define RST_APB2_I2C0 47 #define RST_APB2_I2C1 48 #define RST_APB2_I2C2 49 #define RST_APB2_I2C3 50 #define RST_APB2_UART0 51 #define RST_APB2_UART1 52 #define RST_APB2_UART2 53 #define RST_APB2_UART3 54 #define RST_APB2_UART4 55 #define RST_APB2_UART5 56 #endif /* _DT_BINDINGS_RST_SUN6I_A31_H_ */ this.form.submit();'>space:mode:
authorJiri Kosina <jkosina@suse.cz>2017-01-27 22:25:52 +0000
committerIngo Molnar <mingo@kernel.org>2017-01-28 09:18:56 +0100
commitbf29bddf0417a4783da3b24e8c9e017ac649326f (patch)
tree54a05a4883b73f80e4e1d8c4b15750aa01c39932 /drivers/usb/host/ehci-exynos.c
parent883af14e67e8b8702b5560aa64c888c0cd0bd66c (diff)
x86/efi: Always map the first physical page into the EFI pagetables
Commit: 129766708 ("x86/efi: Only map RAM into EFI page tables if in mixed-mode") stopped creating 1:1 mappings for all RAM, when running in native 64-bit mode. It turns out though that there are 64-bit EFI implementations in the wild (this particular problem has been reported on a Lenovo Yoga 710-11IKB), which still make use of the first physical page for their own private use, even though they explicitly mark it EFI_CONVENTIONAL_MEMORY in the memory map. In case there is no mapping for this particular frame in the EFI pagetables, as soon as firmware tries to make use of it, a triple fault occurs and the system reboots (in case of the Yoga 710-11IKB this is very early during bootup). Fix that by always mapping the first page of physical memory into the EFI pagetables. We're free to hand this page to the BIOS, as trim_bios_range() will reserve the first page and isolate it away from memory allocators anyway. Note that just reverting 129766708 alone is not enough on v4.9-rc1+ to fix the regression on affected hardware, as this commit: ab72a27da ("x86/efi: Consolidate region mapping logic") later made the first physical frame not to be mapped anyway. Reported-by: Hanka Pavlikova <hanka@ucw.cz> Signed-off-by: Jiri Kosina <jkosina@suse.cz> Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Borislav Petkov <bp@alien8.de> Cc: Borislav Petkov <bp@suse.de> Cc: Laura Abbott <labbott@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vojtech Pavlik <vojtech@ucw.cz> Cc: Waiman Long <waiman.long@hpe.com> Cc: linux-efi@vger.kernel.org Cc: stable@kernel.org # v4.8+ Fixes: 129766708 ("x86/efi: Only map RAM into EFI page tables if in mixed-mode") Link: http://lkml.kernel.org/r/20170127222552.22336-1-matt@codeblueprint.co.uk [ Tidied up the changelog and the comment. ] Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/usb/host/ehci-exynos.c')