@ -71,7 +71,7 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max)
/* 4GB maximum for 32-bit only capable devices */
/* 4GB maximum for 32-bit only capable devices */
if ( IS_ENABLED ( CONFIG_ZONE_DMA ) ) {
if ( IS_ENABLED ( CONFIG_ZONE_DMA ) ) {
unsigned long max_dma_phys =
unsigned long max_dma_phys =
( unsigned long ) dma_to_phys ( NULL , DMA_BIT_MASK ( 32 ) + 1 ) ;
( unsigned long ) ( dma_to_phys ( NULL , DMA_BIT_MASK ( 32 ) ) + 1 ) ;
max_dma = max ( min , min ( max , max_dma_phys > > PAGE_SHIFT ) ) ;
max_dma = max ( min , min ( max , max_dma_phys > > PAGE_SHIFT ) ) ;
zone_size [ ZONE_DMA ] = max_dma - min ;
zone_size [ ZONE_DMA ] = max_dma - min ;
}
}
@ -126,6 +126,8 @@ static void arm64_memory_present(void)
void __init arm64_memblock_init ( void )
void __init arm64_memblock_init ( void )
{
{
phys_addr_t dma_phys_limit = 0 ;
/* Register the kernel text, kernel data and initrd with memblock */
/* Register the kernel text, kernel data and initrd with memblock */
memblock_reserve ( __pa ( _text ) , _end - _text ) ;
memblock_reserve ( __pa ( _text ) , _end - _text ) ;
# ifdef CONFIG_BLK_DEV_INITRD
# ifdef CONFIG_BLK_DEV_INITRD
@ -141,7 +143,11 @@ void __init arm64_memblock_init(void)
memblock_reserve ( __pa ( idmap_pg_dir ) , IDMAP_DIR_SIZE ) ;
memblock_reserve ( __pa ( idmap_pg_dir ) , IDMAP_DIR_SIZE ) ;
early_init_fdt_scan_reserved_mem ( ) ;
early_init_fdt_scan_reserved_mem ( ) ;
dma_contiguous_reserve ( 0 ) ;
/* 4GB maximum for 32-bit only capable devices */
if ( IS_ENABLED ( CONFIG_ZONE_DMA ) )
dma_phys_limit = dma_to_phys ( NULL , DMA_BIT_MASK ( 32 ) ) + 1 ;
dma_contiguous_reserve ( dma_phys_limit ) ;
memblock_allow_resize ( ) ;
memblock_allow_resize ( ) ;
memblock_dump_all ( ) ;
memblock_dump_all ( ) ;