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: