On Tue, 11 Mar 2014, Michael Schmitz wrote: > > People that need to use ST RAM because the have too little TT RAM, could > > still use the -s kernel option and enable ST RAM for kernel. > > > > Perhaps an option to specify the video RAM adress space is easier to > > implement to the existing memory model? > > The address space set aside for video still needs to be mapped. The current > stram_alloc() interface does reqire that mapping to be set up by the generic > memory map initialization first. That's what I mentioned below - I haven't > found a quick and easy way to change that at first glance. Suggestions welcome > - I can't spend much time on this at present.
Does the hack below (not even compile-tested) work? It maps pool_size (default 1 MiB) of ST-RAM and makes the pool use that. Make sure the ST-RAM is not mentioned in your memfile. diff --git a/arch/m68k/atari/stram.c b/arch/m68k/atari/stram.c index e8e797e672e0..f658421e9a08 100644 --- a/arch/m68k/atari/stram.c +++ b/arch/m68k/atari/stram.c @@ -66,25 +66,17 @@ early_param("stram_pool", atari_stram_setup); */ void __init atari_stram_init(void) { - int i; - void *stram_start; - /* - * determine whether kernel code resides in ST-RAM - * (then ST-RAM is the first memory block at virtual 0x0) + * Skip page 0, as the fhe first 2 KiB are supervisor-only! */ - stram_start = phys_to_virt(0); - kernel_in_stram = (stram_start == 0); -return; - - for (i = 0; i < m68k_num_memory; ++i) { - if (m68k_memory[i].addr == 0) { - return; - } - } + void *stram_start = ioremap(PAGE_SIZE, pool_size); + + stram_pool.start = (resource_size_t)stram_start; + stram_pool.end = stram_pool.start + pool_size - 1; + request_resource(&iomem_resource, &stram_pool); - /* Should never come here! (There is always ST-Ram!) */ - panic("atari_stram_init: no ST-RAM found!"); + pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", + pool_size, &stram_pool); } @@ -94,19 +86,6 @@ return; */ void __init atari_stram_reserve_pages(void *start_mem) { - /* - * always reserve first page of ST-RAM, the first 2 KiB are - * supervisor-only! - */ - if (!kernel_in_stram) - reserve_bootmem(0, PAGE_SIZE, BOOTMEM_DEFAULT); - - stram_pool.start = (resource_size_t)alloc_bootmem_low_pages(pool_size); - stram_pool.end = stram_pool.start + pool_size - 1; - request_resource(&iomem_resource, &stram_pool); - - pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", - pool_size, &stram_pool); } Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To UNSUBSCRIBE, email to debian-68k-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/alpine.deb.2.02.1403110924010.29...@ayla.of.borg