12874c5fdSThomas Gleixner // SPDX-License-Identifier: GPL-2.0-or-later 2ec3cf2ecSBecky Bruce /* 3ec3cf2ecSBecky Bruce * Contains routines needed to support swiotlb for ppc. 4ec3cf2ecSBecky Bruce * 5b8b14c66SKumar Gala * Copyright (C) 2009-2010 Freescale Semiconductor, Inc. 6b8b14c66SKumar Gala * Author: Becky Bruce 7ec3cf2ecSBecky Bruce */ 8beacc6daSMichael Ellerman #include <linux/memblock.h> 9ec3cf2ecSBecky Bruce #include <asm/machdep.h> 10ec3cf2ecSBecky Bruce #include <asm/swiotlb.h> 11ec3cf2ecSBecky Bruce 12ec3cf2ecSBecky Bruce unsigned int ppc_swiotlb_enable; 13*8ba2ed1bSChristoph Hellwig unsigned int ppc_swiotlb_flags; 14ec3cf2ecSBecky Bruce swiotlb_detect_4g(void)15cf562103SScott Woodvoid __init swiotlb_detect_4g(void) 16688ba1dbSJia Hongtao { 1725078dc1SChristoph Hellwig if ((memblock_end_of_DRAM() - 1) > 0xffffffff) 18688ba1dbSJia Hongtao ppc_swiotlb_enable = 1; 19688ba1dbSJia Hongtao } 20688ba1dbSJia Hongtao check_swiotlb_enabled(void)2197884e00SDaniel Axtensstatic int __init check_swiotlb_enabled(void) 22688ba1dbSJia Hongtao { 2397884e00SDaniel Axtens if (ppc_swiotlb_enable) 24688ba1dbSJia Hongtao swiotlb_print_info(); 2597884e00SDaniel Axtens else 267f2c8bbdSChristoph Hellwig swiotlb_exit(); 27688ba1dbSJia Hongtao 28688ba1dbSJia Hongtao return 0; 29688ba1dbSJia Hongtao } 3097884e00SDaniel Axtens subsys_initcall(check_swiotlb_enabled); 31