[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: aranym vs atafb



Hi,

On Tuesday 1. January 2008, Michael Schmitz wrote:

> I'm getting a bit confused - the good old mach_max_dma_address variable
> does not seem to get used in the recent kernels anymore at all. Could a mm
> expert please unravel this mystery?

It suffered from bit rot, as atari was the only real user.
With the old virtual mapping it was also a bit bogus, as nothing guaranteed 
the order of how the memory chunks were mapped. With the new mapping it 
should be easy to add back. OTOH I would prefer the alternative approach by 
reserving a bit of ST-RAM.

>  	for (i = 0; i < m68k_num_memory; i++) {
> -		zones_size[ZONE_DMA] = m68k_memory[i].size >> PAGE_SHIFT;
> +	/* MSch Hack */
> +		if ( m68k_memory[i].addr < mach_max_dma_addr
> +		 && (m68k_memory[i].addr+m68k_memory[i].size) <= mach_max_dma_addr ) {
> +		 	zones_size[ZONE_DMA]    = m68k_memory[i].size >> PAGE_SHIFT;
> +		 	zones_size[ZONE_NORMAL] = 0;
> +		} else {
> +			zones_size[ZONE_DMA]    = 0;
> +			zones_size[ZONE_NORMAL] = m68k_memory[i].size >> PAGE_SHIFT;
> +		}
>  		free_area_init_node(i, pg_data_map + i, zones_size,
>  				    m68k_memory[i].addr >> PAGE_SHIFT, NULL);
>  	}

How big is the ST-RAM area? If it's 16MB this may not work as expected, as 
mach_max_dma_address is set to 0xffffff (0x1000000 <= 0xffffff).

bye, Roman


Reply to: