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; 13ec3cf2ecSBecky Bruce 14cf562103SScott Wood void __init swiotlb_detect_4g(void) 15688ba1dbSJia Hongtao { 1625078dc1SChristoph Hellwig if ((memblock_end_of_DRAM() - 1) > 0xffffffff) 17688ba1dbSJia Hongtao ppc_swiotlb_enable = 1; 18688ba1dbSJia Hongtao } 19688ba1dbSJia Hongtao 2097884e00SDaniel Axtens static int __init check_swiotlb_enabled(void) 21688ba1dbSJia Hongtao { 2297884e00SDaniel Axtens if (ppc_swiotlb_enable) 23688ba1dbSJia Hongtao swiotlb_print_info(); 2497884e00SDaniel Axtens else 257f2c8bbdSChristoph Hellwig swiotlb_exit(); 26688ba1dbSJia Hongtao 27688ba1dbSJia Hongtao return 0; 28688ba1dbSJia Hongtao } 2997884e00SDaniel Axtens subsys_initcall(check_swiotlb_enabled); 30