Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k into next

Pull m68k updates from Geert Uytterhoeven:
"Highlights:
- support for running kernels in fast TT-RAM instead of slow ST-RAM
on Atari
- multi-platform EARLY_PRINTK
- better support for machines with lots of RAM (think ARAnyM), and
for running kernels larger than 4 MiB (think multi-platform)"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
m68k/hp300: Convert printk to pr_foo()
m68k/apollo: Convert printk to pr_foo()
m68k/amiga: Convert printk(foo to pr_foo()
m68k: Increase initial mapping to 8 or 16 MiB if possible
m68k: Update defconfigs for v3.15-rc2
m68k/atari: fix SCC initialization for debug console
m68k/mvme16x: Adopt common boot console
m68k: Multi-platform EARLY_PRINTK
m68k: Toward platform agnostic framebuffer debug logging
m68k/atari - atari_scsi: use correct virt/phys translation for DMA buffer
m68k/atari - ataflop: use correct virt/phys translation for DMA buffer
m68k/atari - atafb: convert allocation of fb ram to new interface
m68k/atari - stram: alloc ST-RAM pool even if kernel not in ST-RAM

+331 -264
+1 -1
Documentation/kernel-parameters.txt
··· 892 892 (mmio) or 32-bit (mmio32). 893 893 The options are the same as for ttyS, above. 894 894 895 - earlyprintk= [X86,SH,BLACKFIN,ARM] 895 + earlyprintk= [X86,SH,BLACKFIN,ARM,M68k] 896 896 earlyprintk=vga 897 897 earlyprintk=efi 898 898 earlyprintk=xen
+7 -2
arch/m68k/Kconfig.debug
··· 12 12 13 13 config EARLY_PRINTK 14 14 bool "Early printk" 15 - depends on MVME16x || MAC 15 + depends on !(SUN3 || M68360 || M68000 || COLDFIRE) 16 16 help 17 17 Write kernel log output directly to a serial port. 18 + Where implemented, output goes to the framebuffer as well. 19 + PROM console functionality on Sun 3x is not affected by this option. 20 + 21 + Pass "earlyprintk" on the kernel command line to get a 22 + boot console. 18 23 19 24 This is useful for kernel debugging when your machine crashes very 20 - early before the console code is initialized. 25 + early, i.e. before the normal console driver is loaded. 21 26 You should normally say N here, unless you want to debug such a crash. 22 27 23 28 if !MMU
+1 -1
arch/m68k/amiga/amisound.c
··· 51 51 52 52 snd_data = amiga_chip_alloc_res(sizeof(sine_data), &beep_res); 53 53 if (!snd_data) { 54 - printk (KERN_CRIT "amiga init_sound: failed to allocate chipmem\n"); 54 + pr_crit("amiga init_sound: failed to allocate chipmem\n"); 55 55 return; 56 56 } 57 57 memcpy (snd_data, sine_data, sizeof(sine_data));
+10 -10
arch/m68k/amiga/config.c
··· 183 183 dev->boardaddr = be32_to_cpu(cd->cd_BoardAddr); 184 184 dev->boardsize = be32_to_cpu(cd->cd_BoardSize); 185 185 } else 186 - printk("amiga_parse_bootinfo: too many AutoConfig devices\n"); 186 + pr_warn("amiga_parse_bootinfo: too many AutoConfig devices\n"); 187 187 #endif /* CONFIG_ZORRO */ 188 188 break; 189 189 ··· 209 209 210 210 memset(&amiga_hw_present, 0, sizeof(amiga_hw_present)); 211 211 212 - printk("Amiga hardware found: "); 212 + pr_info("Amiga hardware found: "); 213 213 if (amiga_model >= AMI_500 && amiga_model <= AMI_DRACO) { 214 - printk("[%s] ", amiga_models[amiga_model-AMI_500]); 214 + pr_cont("[%s] ", amiga_models[amiga_model-AMI_500]); 215 215 strcat(amiga_model_name, amiga_models[amiga_model-AMI_500]); 216 216 } 217 217 ··· 322 322 323 323 #define AMIGAHW_ANNOUNCE(name, str) \ 324 324 if (AMIGAHW_PRESENT(name)) \ 325 - printk(str) 325 + pr_cont(str) 326 326 327 327 AMIGAHW_ANNOUNCE(AMI_VIDEO, "VIDEO "); 328 328 AMIGAHW_ANNOUNCE(AMI_BLITTER, "BLITTER "); ··· 354 354 AMIGAHW_ANNOUNCE(MAGIC_REKICK, "MAGIC_REKICK "); 355 355 AMIGAHW_ANNOUNCE(PCMCIA, "PCMCIA "); 356 356 if (AMIGAHW_PRESENT(ZORRO)) 357 - printk("ZORRO%s ", AMIGAHW_PRESENT(ZORRO3) ? "3" : ""); 358 - printk("\n"); 357 + pr_cont("ZORRO%s ", AMIGAHW_PRESENT(ZORRO3) ? "3" : ""); 358 + pr_cont("\n"); 359 359 360 360 #undef AMIGAHW_ANNOUNCE 361 361 } ··· 424 424 if (m68k_memory[i].addr < 16*1024*1024) { 425 425 if (i == 0) { 426 426 /* don't cut off the branch we're sitting on */ 427 - printk("Warning: kernel runs in Zorro II memory\n"); 427 + pr_warn("Warning: kernel runs in Zorro II memory\n"); 428 428 continue; 429 429 } 430 430 disabled_z2mem += m68k_memory[i].size; ··· 435 435 } 436 436 } 437 437 if (disabled_z2mem) 438 - printk("%dK of Zorro II memory will not be used as system memory\n", 439 - disabled_z2mem>>10); 438 + pr_info("%dK of Zorro II memory will not be used as system memory\n", 439 + disabled_z2mem>>10); 440 440 } 441 441 442 442 /* request all RAM */ ··· 475 475 jiffy_ticks = DIV_ROUND_CLOSEST(amiga_eclock, HZ); 476 476 477 477 if (request_resource(&mb_resources._ciab, &sched_res)) 478 - printk("Cannot allocate ciab.ta{lo,hi}\n"); 478 + pr_warn("Cannot allocate ciab.ta{lo,hi}\n"); 479 479 ciab.cra &= 0xC0; /* turn off timer A, continuous mode, from Eclk */ 480 480 ciab.talo = jiffy_ticks % 256; 481 481 ciab.tahi = jiffy_ticks / 256;
+10 -10
arch/m68k/apollo/config.c
··· 65 65 66 66 static void __init dn_setup_model(void) 67 67 { 68 - printk("Apollo hardware found: "); 69 - printk("[%s]\n", apollo_models[apollo_model - APOLLO_DN3000]); 68 + pr_info("Apollo hardware found: [%s]\n", 69 + apollo_models[apollo_model - APOLLO_DN3000]); 70 70 71 71 switch(apollo_model) { 72 72 case APOLLO_UNKNOWN: ··· 197 197 *(volatile unsigned char *)(pica+1)&=(~8); 198 198 199 199 #if 0 200 - printk("*(0x10803) %02x\n",*(volatile unsigned char *)(apollo_timer + 0x3)); 201 - printk("*(0x10803) %02x\n",*(volatile unsigned char *)(apollo_timer + 0x3)); 200 + pr_info("*(0x10803) %02x\n", 201 + *(volatile unsigned char *)(apollo_timer + 0x3)); 202 + pr_info("*(0x10803) %02x\n", 203 + *(volatile unsigned char *)(apollo_timer + 0x3)); 202 204 #endif 203 205 204 206 if (request_irq(IRQ_APOLLO, dn_timer_int, 0, "time", timer_routine)) ··· 238 236 239 237 } 240 238 241 - int dn_dummy_set_clock_mmss(unsigned long nowtime) { 242 - 243 - printk("set_clock_mmss\n"); 244 - 245 - return 0; 246 - 239 + int dn_dummy_set_clock_mmss(unsigned long nowtime) 240 + { 241 + pr_info("set_clock_mmss\n"); 242 + return 0; 247 243 } 248 244 249 245 void dn_dummy_reset(void) {
+56 -19
arch/m68k/atari/stram.c
··· 47 47 48 48 static unsigned long pool_size = 1024*1024; 49 49 50 + static unsigned long stram_virt_offset; 50 51 51 52 static int __init atari_stram_setup(char *arg) 52 53 { ··· 68 67 void __init atari_stram_init(void) 69 68 { 70 69 int i; 71 - void *stram_start; 72 70 73 71 /* 74 72 * determine whether kernel code resides in ST-RAM 75 73 * (then ST-RAM is the first memory block at virtual 0x0) 76 74 */ 77 - stram_start = phys_to_virt(0); 78 - kernel_in_stram = (stram_start == 0); 75 + kernel_in_stram = (m68k_memory[0].addr == 0); 79 76 80 77 for (i = 0; i < m68k_num_memory; ++i) { 81 78 if (m68k_memory[i].addr == 0) { ··· 88 89 89 90 /* 90 91 * This function is called from setup_arch() to reserve the pages needed for 91 - * ST-RAM management. 92 + * ST-RAM management, if the kernel resides in ST-RAM. 92 93 */ 93 94 void __init atari_stram_reserve_pages(void *start_mem) 94 95 { 95 - /* 96 - * always reserve first page of ST-RAM, the first 2 KiB are 97 - * supervisor-only! 98 - */ 99 - if (!kernel_in_stram) 100 - reserve_bootmem(0, PAGE_SIZE, BOOTMEM_DEFAULT); 101 - 102 - stram_pool.start = (resource_size_t)alloc_bootmem_low_pages(pool_size); 103 - stram_pool.end = stram_pool.start + pool_size - 1; 104 - request_resource(&iomem_resource, &stram_pool); 105 - 106 - pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", 107 - pool_size, &stram_pool); 96 + if (kernel_in_stram) { 97 + pr_debug("atari_stram pool: kernel in ST-RAM, using alloc_bootmem!\n"); 98 + stram_pool.start = (resource_size_t)alloc_bootmem_low_pages(pool_size); 99 + stram_pool.end = stram_pool.start + pool_size - 1; 100 + request_resource(&iomem_resource, &stram_pool); 101 + stram_virt_offset = 0; 102 + pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", 103 + pool_size, &stram_pool); 104 + pr_debug("atari_stram pool: stram_virt_offset = %lx\n", 105 + stram_virt_offset); 106 + } 108 107 } 108 + 109 + 110 + /* 111 + * This function is called as arch initcall to reserve the pages needed for 112 + * ST-RAM management, if the kernel does not reside in ST-RAM. 113 + */ 114 + int __init atari_stram_map_pages(void) 115 + { 116 + if (!kernel_in_stram) { 117 + /* 118 + * Skip page 0, as the fhe first 2 KiB are supervisor-only! 119 + */ 120 + pr_debug("atari_stram pool: kernel not in ST-RAM, using ioremap!\n"); 121 + stram_pool.start = PAGE_SIZE; 122 + stram_pool.end = stram_pool.start + pool_size - 1; 123 + request_resource(&iomem_resource, &stram_pool); 124 + stram_virt_offset = (unsigned long) ioremap(stram_pool.start, 125 + resource_size(&stram_pool)) - stram_pool.start; 126 + pr_debug("atari_stram pool: size = %lu bytes, resource = %pR\n", 127 + pool_size, &stram_pool); 128 + pr_debug("atari_stram pool: stram_virt_offset = %lx\n", 129 + stram_virt_offset); 130 + } 131 + return 0; 132 + } 133 + arch_initcall(atari_stram_map_pages); 134 + 135 + 136 + void *atari_stram_to_virt(unsigned long phys) 137 + { 138 + return (void *)(phys + stram_virt_offset); 139 + } 140 + EXPORT_SYMBOL(atari_stram_to_virt); 141 + 142 + 143 + unsigned long atari_stram_to_phys(void *virt) 144 + { 145 + return (unsigned long)(virt - stram_virt_offset); 146 + } 147 + EXPORT_SYMBOL(atari_stram_to_phys); 109 148 110 149 111 150 void *atari_stram_alloc(unsigned long size, const char *owner) ··· 171 134 } 172 135 173 136 pr_debug("atari_stram_alloc: returning %pR\n", res); 174 - return (void *)res->start; 137 + return atari_stram_to_virt(res->start); 175 138 } 176 139 EXPORT_SYMBOL(atari_stram_alloc); 177 140 178 141 179 142 void atari_stram_free(void *addr) 180 143 { 181 - unsigned long start = (unsigned long)addr; 144 + unsigned long start = atari_stram_to_phys(addr); 182 145 struct resource *res; 183 146 unsigned long size; 184 147
+4 -1
arch/m68k/configs/amiga_defconfig
··· 159 159 CONFIG_IP_SET_BITMAP_IPMAC=m 160 160 CONFIG_IP_SET_BITMAP_PORT=m 161 161 CONFIG_IP_SET_HASH_IP=m 162 + CONFIG_IP_SET_HASH_IPMARK=m 162 163 CONFIG_IP_SET_HASH_IPPORT=m 163 164 CONFIG_IP_SET_HASH_IPPORTIP=m 164 165 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 228 227 CONFIG_BATMAN_ADV=m 229 228 CONFIG_BATMAN_ADV_DAT=y 230 229 CONFIG_BATMAN_ADV_NC=y 230 + CONFIG_BATMAN_ADV_MCAST=y 231 231 CONFIG_NETLINK_DIAG=m 232 232 CONFIG_NET_MPLS_GSO=m 233 233 # CONFIG_WIRELESS is not set ··· 281 279 CONFIG_DM_SNAPSHOT=m 282 280 CONFIG_DM_THIN_PROVISIONING=m 283 281 CONFIG_DM_CACHE=m 282 + CONFIG_DM_ERA=m 284 283 CONFIG_DM_MIRROR=m 285 284 CONFIG_DM_RAID=m 286 285 CONFIG_DM_ZERO=m ··· 308 305 CONFIG_A2065=y 309 306 CONFIG_ARIADNE=y 310 307 # CONFIG_NET_VENDOR_ARC is not set 311 - # CONFIG_NET_CADENCE is not set 312 308 # CONFIG_NET_VENDOR_BROADCOM is not set 313 309 # CONFIG_NET_VENDOR_CIRRUS is not set 314 310 # CONFIG_NET_VENDOR_HP is not set ··· 317 315 CONFIG_HYDRA=y 318 316 CONFIG_APNE=y 319 317 CONFIG_ZORRO8390=y 318 + # CONFIG_NET_VENDOR_SAMSUNG is not set 320 319 # CONFIG_NET_VENDOR_SEEQ is not set 321 320 # CONFIG_NET_VENDOR_SMSC is not set 322 321 # CONFIG_NET_VENDOR_STMICRO is not set
+4 -1
arch/m68k/configs/apollo_defconfig
··· 157 157 CONFIG_IP_SET_BITMAP_IPMAC=m 158 158 CONFIG_IP_SET_BITMAP_PORT=m 159 159 CONFIG_IP_SET_HASH_IP=m 160 + CONFIG_IP_SET_HASH_IPMARK=m 160 161 CONFIG_IP_SET_HASH_IPPORT=m 161 162 CONFIG_IP_SET_HASH_IPPORTIP=m 162 163 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 226 225 CONFIG_BATMAN_ADV=m 227 226 CONFIG_BATMAN_ADV_DAT=y 228 227 CONFIG_BATMAN_ADV_NC=y 228 + CONFIG_BATMAN_ADV_MCAST=y 229 229 CONFIG_NETLINK_DIAG=m 230 230 CONFIG_NET_MPLS_GSO=m 231 231 # CONFIG_WIRELESS is not set ··· 263 261 CONFIG_DM_SNAPSHOT=m 264 262 CONFIG_DM_THIN_PROVISIONING=m 265 263 CONFIG_DM_CACHE=m 264 + CONFIG_DM_ERA=m 266 265 CONFIG_DM_MIRROR=m 267 266 CONFIG_DM_RAID=m 268 267 CONFIG_DM_ZERO=m ··· 287 284 CONFIG_NETCONSOLE_DYNAMIC=y 288 285 CONFIG_VETH=m 289 286 # CONFIG_NET_VENDOR_ARC is not set 290 - # CONFIG_NET_CADENCE is not set 291 287 # CONFIG_NET_VENDOR_BROADCOM is not set 292 288 # CONFIG_NET_VENDOR_INTEL is not set 293 289 # CONFIG_NET_VENDOR_MARVELL is not set 294 290 # CONFIG_NET_VENDOR_MICREL is not set 295 291 # CONFIG_NET_VENDOR_NATSEMI is not set 292 + # CONFIG_NET_VENDOR_SAMSUNG is not set 296 293 # CONFIG_NET_VENDOR_SEEQ is not set 297 294 # CONFIG_NET_VENDOR_STMICRO is not set 298 295 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/atari_defconfig
··· 156 156 CONFIG_IP_SET_BITMAP_IPMAC=m 157 157 CONFIG_IP_SET_BITMAP_PORT=m 158 158 CONFIG_IP_SET_HASH_IP=m 159 + CONFIG_IP_SET_HASH_IPMARK=m 159 160 CONFIG_IP_SET_HASH_IPPORT=m 160 161 CONFIG_IP_SET_HASH_IPPORTIP=m 161 162 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 225 224 CONFIG_BATMAN_ADV=m 226 225 CONFIG_BATMAN_ADV_DAT=y 227 226 CONFIG_BATMAN_ADV_NC=y 227 + CONFIG_BATMAN_ADV_MCAST=y 228 228 CONFIG_NETLINK_DIAG=m 229 229 CONFIG_NET_MPLS_GSO=m 230 230 # CONFIG_WIRELESS is not set ··· 271 269 CONFIG_DM_SNAPSHOT=m 272 270 CONFIG_DM_THIN_PROVISIONING=m 273 271 CONFIG_DM_CACHE=m 272 + CONFIG_DM_ERA=m 274 273 CONFIG_DM_MIRROR=m 275 274 CONFIG_DM_RAID=m 276 275 CONFIG_DM_ZERO=m ··· 296 293 CONFIG_VETH=m 297 294 CONFIG_ATARILANCE=y 298 295 # CONFIG_NET_VENDOR_ARC is not set 299 - # CONFIG_NET_CADENCE is not set 300 296 # CONFIG_NET_VENDOR_BROADCOM is not set 301 297 # CONFIG_NET_VENDOR_INTEL is not set 302 298 # CONFIG_NET_VENDOR_MARVELL is not set 303 299 # CONFIG_NET_VENDOR_MICREL is not set 300 + # CONFIG_NET_VENDOR_SAMSUNG is not set 304 301 # CONFIG_NET_VENDOR_SEEQ is not set 305 302 # CONFIG_NET_VENDOR_STMICRO is not set 306 303 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/bvme6000_defconfig
··· 155 155 CONFIG_IP_SET_BITMAP_IPMAC=m 156 156 CONFIG_IP_SET_BITMAP_PORT=m 157 157 CONFIG_IP_SET_HASH_IP=m 158 + CONFIG_IP_SET_HASH_IPMARK=m 158 159 CONFIG_IP_SET_HASH_IPPORT=m 159 160 CONFIG_IP_SET_HASH_IPPORTIP=m 160 161 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 224 223 CONFIG_BATMAN_ADV=m 225 224 CONFIG_BATMAN_ADV_DAT=y 226 225 CONFIG_BATMAN_ADV_NC=y 226 + CONFIG_BATMAN_ADV_MCAST=y 227 227 CONFIG_NETLINK_DIAG=m 228 228 CONFIG_NET_MPLS_GSO=m 229 229 # CONFIG_WIRELESS is not set ··· 262 260 CONFIG_DM_SNAPSHOT=m 263 261 CONFIG_DM_THIN_PROVISIONING=m 264 262 CONFIG_DM_CACHE=m 263 + CONFIG_DM_ERA=m 265 264 CONFIG_DM_MIRROR=m 266 265 CONFIG_DM_RAID=m 267 266 CONFIG_DM_ZERO=m ··· 286 283 CONFIG_NETCONSOLE_DYNAMIC=y 287 284 CONFIG_VETH=m 288 285 # CONFIG_NET_VENDOR_ARC is not set 289 - # CONFIG_NET_CADENCE is not set 290 286 # CONFIG_NET_VENDOR_BROADCOM is not set 291 287 CONFIG_BVME6000_NET=y 292 288 # CONFIG_NET_VENDOR_MARVELL is not set 293 289 # CONFIG_NET_VENDOR_MICREL is not set 294 290 # CONFIG_NET_VENDOR_NATSEMI is not set 291 + # CONFIG_NET_VENDOR_SAMSUNG is not set 295 292 # CONFIG_NET_VENDOR_SEEQ is not set 296 293 # CONFIG_NET_VENDOR_STMICRO is not set 297 294 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/hp300_defconfig
··· 157 157 CONFIG_IP_SET_BITMAP_IPMAC=m 158 158 CONFIG_IP_SET_BITMAP_PORT=m 159 159 CONFIG_IP_SET_HASH_IP=m 160 + CONFIG_IP_SET_HASH_IPMARK=m 160 161 CONFIG_IP_SET_HASH_IPPORT=m 161 162 CONFIG_IP_SET_HASH_IPPORTIP=m 162 163 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 226 225 CONFIG_BATMAN_ADV=m 227 226 CONFIG_BATMAN_ADV_DAT=y 228 227 CONFIG_BATMAN_ADV_NC=y 228 + CONFIG_BATMAN_ADV_MCAST=y 229 229 CONFIG_NETLINK_DIAG=m 230 230 CONFIG_NET_MPLS_GSO=m 231 231 # CONFIG_WIRELESS is not set ··· 263 261 CONFIG_DM_SNAPSHOT=m 264 262 CONFIG_DM_THIN_PROVISIONING=m 265 263 CONFIG_DM_CACHE=m 264 + CONFIG_DM_ERA=m 266 265 CONFIG_DM_MIRROR=m 267 266 CONFIG_DM_RAID=m 268 267 CONFIG_DM_ZERO=m ··· 288 285 CONFIG_VETH=m 289 286 CONFIG_HPLANCE=y 290 287 # CONFIG_NET_VENDOR_ARC is not set 291 - # CONFIG_NET_CADENCE is not set 292 288 # CONFIG_NET_VENDOR_BROADCOM is not set 293 289 # CONFIG_NET_VENDOR_INTEL is not set 294 290 # CONFIG_NET_VENDOR_MARVELL is not set 295 291 # CONFIG_NET_VENDOR_MICREL is not set 296 292 # CONFIG_NET_VENDOR_NATSEMI is not set 293 + # CONFIG_NET_VENDOR_SAMSUNG is not set 297 294 # CONFIG_NET_VENDOR_SEEQ is not set 298 295 # CONFIG_NET_VENDOR_STMICRO is not set 299 296 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/mac_defconfig
··· 156 156 CONFIG_IP_SET_BITMAP_IPMAC=m 157 157 CONFIG_IP_SET_BITMAP_PORT=m 158 158 CONFIG_IP_SET_HASH_IP=m 159 + CONFIG_IP_SET_HASH_IPMARK=m 159 160 CONFIG_IP_SET_HASH_IPPORT=m 160 161 CONFIG_IP_SET_HASH_IPPORTIP=m 161 162 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 228 227 CONFIG_BATMAN_ADV=m 229 228 CONFIG_BATMAN_ADV_DAT=y 230 229 CONFIG_BATMAN_ADV_NC=y 230 + CONFIG_BATMAN_ADV_MCAST=y 231 231 CONFIG_NETLINK_DIAG=m 232 232 CONFIG_NET_MPLS_GSO=m 233 233 # CONFIG_WIRELESS is not set ··· 272 270 CONFIG_DM_SNAPSHOT=m 273 271 CONFIG_DM_THIN_PROVISIONING=m 274 272 CONFIG_DM_CACHE=m 273 + CONFIG_DM_ERA=m 275 274 CONFIG_DM_MIRROR=m 276 275 CONFIG_DM_RAID=m 277 276 CONFIG_DM_ZERO=m ··· 304 301 CONFIG_VETH=m 305 302 CONFIG_MACMACE=y 306 303 # CONFIG_NET_VENDOR_ARC is not set 307 - # CONFIG_NET_CADENCE is not set 308 304 # CONFIG_NET_VENDOR_BROADCOM is not set 309 305 CONFIG_MAC89x0=y 310 306 # CONFIG_NET_VENDOR_INTEL is not set ··· 311 309 # CONFIG_NET_VENDOR_MICREL is not set 312 310 CONFIG_MACSONIC=y 313 311 CONFIG_MAC8390=y 312 + # CONFIG_NET_VENDOR_SAMSUNG is not set 314 313 # CONFIG_NET_VENDOR_SEEQ is not set 315 314 # CONFIG_NET_VENDOR_SMSC is not set 316 315 # CONFIG_NET_VENDOR_STMICRO is not set
+4 -1
arch/m68k/configs/multi_defconfig
··· 165 165 CONFIG_IP_SET_BITMAP_IPMAC=m 166 166 CONFIG_IP_SET_BITMAP_PORT=m 167 167 CONFIG_IP_SET_HASH_IP=m 168 + CONFIG_IP_SET_HASH_IPMARK=m 168 169 CONFIG_IP_SET_HASH_IPPORT=m 169 170 CONFIG_IP_SET_HASH_IPPORTIP=m 170 171 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 237 236 CONFIG_BATMAN_ADV=m 238 237 CONFIG_BATMAN_ADV_DAT=y 239 238 CONFIG_BATMAN_ADV_NC=y 239 + CONFIG_BATMAN_ADV_MCAST=y 240 240 CONFIG_NETLINK_DIAG=m 241 241 CONFIG_NET_MPLS_GSO=m 242 242 # CONFIG_WIRELESS is not set ··· 304 302 CONFIG_DM_SNAPSHOT=m 305 303 CONFIG_DM_THIN_PROVISIONING=m 306 304 CONFIG_DM_CACHE=m 305 + CONFIG_DM_ERA=m 307 306 CONFIG_DM_MIRROR=m 308 307 CONFIG_DM_RAID=m 309 308 CONFIG_DM_ZERO=m ··· 343 340 CONFIG_SUN3LANCE=y 344 341 CONFIG_MACMACE=y 345 342 # CONFIG_NET_VENDOR_ARC is not set 346 - # CONFIG_NET_CADENCE is not set 347 343 # CONFIG_NET_VENDOR_BROADCOM is not set 348 344 CONFIG_MAC89x0=y 349 345 # CONFIG_NET_VENDOR_HP is not set ··· 356 354 CONFIG_NE2000=m 357 355 CONFIG_APNE=y 358 356 CONFIG_ZORRO8390=y 357 + # CONFIG_NET_VENDOR_SAMSUNG is not set 359 358 # CONFIG_NET_VENDOR_SEEQ is not set 360 359 # CONFIG_NET_VENDOR_STMICRO is not set 361 360 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/mvme147_defconfig
··· 154 154 CONFIG_IP_SET_BITMAP_IPMAC=m 155 155 CONFIG_IP_SET_BITMAP_PORT=m 156 156 CONFIG_IP_SET_HASH_IP=m 157 + CONFIG_IP_SET_HASH_IPMARK=m 157 158 CONFIG_IP_SET_HASH_IPPORT=m 158 159 CONFIG_IP_SET_HASH_IPPORTIP=m 159 160 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 223 222 CONFIG_BATMAN_ADV=m 224 223 CONFIG_BATMAN_ADV_DAT=y 225 224 CONFIG_BATMAN_ADV_NC=y 225 + CONFIG_BATMAN_ADV_MCAST=y 226 226 CONFIG_NETLINK_DIAG=m 227 227 CONFIG_NET_MPLS_GSO=m 228 228 # CONFIG_WIRELESS is not set ··· 261 259 CONFIG_DM_SNAPSHOT=m 262 260 CONFIG_DM_THIN_PROVISIONING=m 263 261 CONFIG_DM_CACHE=m 262 + CONFIG_DM_ERA=m 264 263 CONFIG_DM_MIRROR=m 265 264 CONFIG_DM_RAID=m 266 265 CONFIG_DM_ZERO=m ··· 286 283 CONFIG_VETH=m 287 284 CONFIG_MVME147_NET=y 288 285 # CONFIG_NET_VENDOR_ARC is not set 289 - # CONFIG_NET_CADENCE is not set 290 286 # CONFIG_NET_VENDOR_BROADCOM is not set 291 287 # CONFIG_NET_VENDOR_INTEL is not set 292 288 # CONFIG_NET_VENDOR_MARVELL is not set 293 289 # CONFIG_NET_VENDOR_MICREL is not set 294 290 # CONFIG_NET_VENDOR_NATSEMI is not set 291 + # CONFIG_NET_VENDOR_SAMSUNG is not set 295 292 # CONFIG_NET_VENDOR_SEEQ is not set 296 293 # CONFIG_NET_VENDOR_STMICRO is not set 297 294 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/mvme16x_defconfig
··· 155 155 CONFIG_IP_SET_BITMAP_IPMAC=m 156 156 CONFIG_IP_SET_BITMAP_PORT=m 157 157 CONFIG_IP_SET_HASH_IP=m 158 + CONFIG_IP_SET_HASH_IPMARK=m 158 159 CONFIG_IP_SET_HASH_IPPORT=m 159 160 CONFIG_IP_SET_HASH_IPPORTIP=m 160 161 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 224 223 CONFIG_BATMAN_ADV=m 225 224 CONFIG_BATMAN_ADV_DAT=y 226 225 CONFIG_BATMAN_ADV_NC=y 226 + CONFIG_BATMAN_ADV_MCAST=y 227 227 CONFIG_NETLINK_DIAG=m 228 228 CONFIG_NET_MPLS_GSO=m 229 229 # CONFIG_WIRELESS is not set ··· 262 260 CONFIG_DM_SNAPSHOT=m 263 261 CONFIG_DM_THIN_PROVISIONING=m 264 262 CONFIG_DM_CACHE=m 263 + CONFIG_DM_ERA=m 265 264 CONFIG_DM_MIRROR=m 266 265 CONFIG_DM_RAID=m 267 266 CONFIG_DM_ZERO=m ··· 286 283 CONFIG_NETCONSOLE_DYNAMIC=y 287 284 CONFIG_VETH=m 288 285 # CONFIG_NET_VENDOR_ARC is not set 289 - # CONFIG_NET_CADENCE is not set 290 286 # CONFIG_NET_VENDOR_BROADCOM is not set 291 287 CONFIG_MVME16x_NET=y 292 288 # CONFIG_NET_VENDOR_MARVELL is not set 293 289 # CONFIG_NET_VENDOR_MICREL is not set 294 290 # CONFIG_NET_VENDOR_NATSEMI is not set 291 + # CONFIG_NET_VENDOR_SAMSUNG is not set 295 292 # CONFIG_NET_VENDOR_SEEQ is not set 296 293 # CONFIG_NET_VENDOR_STMICRO is not set 297 294 # CONFIG_NET_VENDOR_VIA is not set
+4 -1
arch/m68k/configs/q40_defconfig
··· 155 155 CONFIG_IP_SET_BITMAP_IPMAC=m 156 156 CONFIG_IP_SET_BITMAP_PORT=m 157 157 CONFIG_IP_SET_HASH_IP=m 158 + CONFIG_IP_SET_HASH_IPMARK=m 158 159 CONFIG_IP_SET_HASH_IPPORT=m 159 160 CONFIG_IP_SET_HASH_IPPORTIP=m 160 161 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 224 223 CONFIG_BATMAN_ADV=m 225 224 CONFIG_BATMAN_ADV_DAT=y 226 225 CONFIG_BATMAN_ADV_NC=y 226 + CONFIG_BATMAN_ADV_MCAST=y 227 227 CONFIG_NETLINK_DIAG=m 228 228 CONFIG_NET_MPLS_GSO=m 229 229 # CONFIG_WIRELESS is not set ··· 268 266 CONFIG_DM_SNAPSHOT=m 269 267 CONFIG_DM_THIN_PROVISIONING=m 270 268 CONFIG_DM_CACHE=m 269 + CONFIG_DM_ERA=m 271 270 CONFIG_DM_MIRROR=m 272 271 CONFIG_DM_RAID=m 273 272 CONFIG_DM_ZERO=m ··· 294 291 # CONFIG_NET_VENDOR_3COM is not set 295 292 # CONFIG_NET_VENDOR_AMD is not set 296 293 # CONFIG_NET_VENDOR_ARC is not set 297 - # CONFIG_NET_CADENCE is not set 298 294 # CONFIG_NET_VENDOR_BROADCOM is not set 299 295 # CONFIG_NET_VENDOR_CIRRUS is not set 300 296 # CONFIG_NET_VENDOR_HP is not set ··· 301 299 # CONFIG_NET_VENDOR_MARVELL is not set 302 300 # CONFIG_NET_VENDOR_MICREL is not set 303 301 CONFIG_NE2000=m 302 + # CONFIG_NET_VENDOR_SAMSUNG is not set 304 303 # CONFIG_NET_VENDOR_SEEQ is not set 305 304 # CONFIG_NET_VENDOR_SMSC is not set 306 305 # CONFIG_NET_VENDOR_STMICRO is not set
+4 -1
arch/m68k/configs/sun3_defconfig
··· 152 152 CONFIG_IP_SET_BITMAP_IPMAC=m 153 153 CONFIG_IP_SET_BITMAP_PORT=m 154 154 CONFIG_IP_SET_HASH_IP=m 155 + CONFIG_IP_SET_HASH_IPMARK=m 155 156 CONFIG_IP_SET_HASH_IPPORT=m 156 157 CONFIG_IP_SET_HASH_IPPORTIP=m 157 158 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 221 220 CONFIG_BATMAN_ADV=m 222 221 CONFIG_BATMAN_ADV_DAT=y 223 222 CONFIG_BATMAN_ADV_NC=y 223 + CONFIG_BATMAN_ADV_MCAST=y 224 224 CONFIG_NETLINK_DIAG=m 225 225 CONFIG_NET_MPLS_GSO=m 226 226 # CONFIG_WIRELESS is not set ··· 259 257 CONFIG_DM_SNAPSHOT=m 260 258 CONFIG_DM_THIN_PROVISIONING=m 261 259 CONFIG_DM_CACHE=m 260 + CONFIG_DM_ERA=m 262 261 CONFIG_DM_MIRROR=m 263 262 CONFIG_DM_RAID=m 264 263 CONFIG_DM_ZERO=m ··· 284 281 CONFIG_VETH=m 285 282 CONFIG_SUN3LANCE=y 286 283 # CONFIG_NET_VENDOR_ARC is not set 287 - # CONFIG_NET_CADENCE is not set 288 284 CONFIG_SUN3_82586=y 289 285 # CONFIG_NET_VENDOR_MARVELL is not set 290 286 # CONFIG_NET_VENDOR_MICREL is not set 291 287 # CONFIG_NET_VENDOR_NATSEMI is not set 288 + # CONFIG_NET_VENDOR_SAMSUNG is not set 292 289 # CONFIG_NET_VENDOR_SEEQ is not set 293 290 # CONFIG_NET_VENDOR_STMICRO is not set 294 291 # CONFIG_NET_VENDOR_SUN is not set
+4 -1
arch/m68k/configs/sun3x_defconfig
··· 152 152 CONFIG_IP_SET_BITMAP_IPMAC=m 153 153 CONFIG_IP_SET_BITMAP_PORT=m 154 154 CONFIG_IP_SET_HASH_IP=m 155 + CONFIG_IP_SET_HASH_IPMARK=m 155 156 CONFIG_IP_SET_HASH_IPPORT=m 156 157 CONFIG_IP_SET_HASH_IPPORTIP=m 157 158 CONFIG_IP_SET_HASH_IPPORTNET=m ··· 221 220 CONFIG_BATMAN_ADV=m 222 221 CONFIG_BATMAN_ADV_DAT=y 223 222 CONFIG_BATMAN_ADV_NC=y 223 + CONFIG_BATMAN_ADV_MCAST=y 224 224 CONFIG_NETLINK_DIAG=m 225 225 CONFIG_NET_MPLS_GSO=m 226 226 # CONFIG_WIRELESS is not set ··· 259 257 CONFIG_DM_SNAPSHOT=m 260 258 CONFIG_DM_THIN_PROVISIONING=m 261 259 CONFIG_DM_CACHE=m 260 + CONFIG_DM_ERA=m 262 261 CONFIG_DM_MIRROR=m 263 262 CONFIG_DM_RAID=m 264 263 CONFIG_DM_ZERO=m ··· 284 281 CONFIG_VETH=m 285 282 CONFIG_SUN3LANCE=y 286 283 # CONFIG_NET_VENDOR_ARC is not set 287 - # CONFIG_NET_CADENCE is not set 288 284 # CONFIG_NET_VENDOR_BROADCOM is not set 289 285 # CONFIG_NET_VENDOR_INTEL is not set 290 286 # CONFIG_NET_VENDOR_MARVELL is not set 291 287 # CONFIG_NET_VENDOR_MICREL is not set 292 288 # CONFIG_NET_VENDOR_NATSEMI is not set 289 + # CONFIG_NET_VENDOR_SAMSUNG is not set 293 290 # CONFIG_NET_VENDOR_SEEQ is not set 294 291 # CONFIG_NET_VENDOR_STMICRO is not set 295 292 # CONFIG_NET_VENDOR_VIA is not set
+6 -5
arch/m68k/hp300/config.c
··· 87 87 /* serial port address: ignored here */ 88 88 break; 89 89 90 - default: 90 + default: 91 91 unknown = 1; 92 92 } 93 93 ··· 262 262 #endif 263 263 mach_max_dma_address = 0xffffffff; 264 264 265 - if (hp300_model >= HP_330 && hp300_model <= HP_433S && hp300_model != HP_350) { 266 - printk(KERN_INFO "Detected HP9000 model %s\n", hp300_models[hp300_model-HP_320]); 265 + if (hp300_model >= HP_330 && hp300_model <= HP_433S && 266 + hp300_model != HP_350) { 267 + pr_info("Detected HP9000 model %s\n", 268 + hp300_models[hp300_model-HP_320]); 267 269 strcat(hp300_model_name, hp300_models[hp300_model-HP_320]); 268 - } 269 - else { 270 + } else { 270 271 panic("Unknown HP9000 Model"); 271 272 } 272 273 #ifdef CONFIG_SERIAL_8250_CONSOLE
+2
arch/m68k/include/asm/atari_stram.h
··· 8 8 /* public interface */ 9 9 void *atari_stram_alloc(unsigned long size, const char *owner); 10 10 void atari_stram_free(void *); 11 + void *atari_stram_to_virt(unsigned long phys); 12 + unsigned long atari_stram_to_phys(void *); 11 13 12 14 /* functions called internally by other parts of the kernel */ 13 15 void atari_stram_init(void);
+2
arch/m68k/kernel/Makefile
··· 25 25 obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o 26 26 obj-$(CONFIG_BOOTINFO_PROC) += bootinfo_proc.o 27 27 28 + obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 29 +
+67
arch/m68k/kernel/early_printk.c
··· 1 + /* 2 + * This file is subject to the terms and conditions of the GNU General Public 3 + * License. See the file "COPYING" in the main directory of this archive 4 + * for more details. 5 + * 6 + * Copyright (c) 2014 Finn Thain 7 + */ 8 + 9 + #include <linux/kernel.h> 10 + #include <linux/console.h> 11 + #include <linux/init.h> 12 + #include <linux/string.h> 13 + #include <asm/setup.h> 14 + 15 + extern void mvme16x_cons_write(struct console *co, 16 + const char *str, unsigned count); 17 + 18 + asmlinkage void __init debug_cons_nputs(const char *s, unsigned n); 19 + 20 + static void __ref debug_cons_write(struct console *c, 21 + const char *s, unsigned n) 22 + { 23 + #if !(defined(CONFIG_SUN3) || defined(CONFIG_M68360) || \ 24 + defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)) 25 + if (MACH_IS_MVME16x) 26 + mvme16x_cons_write(c, s, n); 27 + else 28 + debug_cons_nputs(s, n); 29 + #endif 30 + } 31 + 32 + static struct console early_console_instance = { 33 + .name = "debug", 34 + .write = debug_cons_write, 35 + .flags = CON_PRINTBUFFER | CON_BOOT, 36 + .index = -1 37 + }; 38 + 39 + static int __init setup_early_printk(char *buf) 40 + { 41 + if (early_console || buf) 42 + return 0; 43 + 44 + early_console = &early_console_instance; 45 + register_console(early_console); 46 + 47 + return 0; 48 + } 49 + early_param("earlyprintk", setup_early_printk); 50 + 51 + /* 52 + * debug_cons_nputs() defined in arch/m68k/kernel/head.S cannot be called 53 + * after init sections are discarded (for platforms that use it). 54 + */ 55 + #if !(defined(CONFIG_SUN3) || defined(CONFIG_M68360) || \ 56 + defined(CONFIG_M68000) || defined(CONFIG_COLDFIRE)) 57 + 58 + static int __init unregister_early_console(void) 59 + { 60 + if (!early_console || MACH_IS_MVME16x) 61 + return 0; 62 + 63 + return unregister_console(early_console); 64 + } 65 + late_initcall(unregister_early_console); 66 + 67 + #endif
+86 -121
arch/m68k/kernel/head.S
··· 153 153 * ------------ 154 154 * The console is also able to be turned off. The console in head.S 155 155 * is specifically for debugging and can be very useful. It is surrounded by 156 - * #ifdef CONSOLE/#endif clauses so it doesn't have to ship in known-good 156 + * #ifdef / #endif clauses so it doesn't have to ship in known-good 157 157 * kernels. It's basic algorithm is to determine the size of the screen 158 158 * (in height/width and bit depth) and then use that information for 159 159 * displaying an 8x8 font or an 8x16 (widthxheight). I prefer the 8x8 for ··· 198 198 * CONFIG_xxx: These are the obvious machine configuration defines created 199 199 * during configuration. These are defined in autoconf.h. 200 200 * 201 - * CONSOLE: There is support for head.S console in this file. This 202 - * console can talk to a Mac frame buffer, but could easily be extrapolated 203 - * to extend it to support other platforms. 201 + * CONSOLE_DEBUG: Only supports a Mac frame buffer but could easily be 202 + * extended to support other platforms. 204 203 * 205 204 * TEST_MMU: This is a test harness for running on any given machine but 206 205 * getting an MMU dump for another class of machine. The classes of machines ··· 221 222 * MMU_PRINT: There is a routine built into head.S that can display the 222 223 * MMU data structures. It outputs its result through the serial_putc 223 224 * interface. So where ever that winds up driving data, that's where the 224 - * mmu struct will appear. On the Macintosh that's typically the console. 225 + * mmu struct will appear. 225 226 * 226 227 * SERIAL_DEBUG: There are a series of putc() macro statements 227 228 * scattered through out the code to give progress of status to the ··· 249 250 * USE_MFP: Use the ST-MFP port (Modem1) for serial debug. 250 251 * 251 252 * Macintosh constants: 252 - * MAC_USE_SCC_A: Use SCC port A (modem) for serial debug and early console. 253 - * MAC_USE_SCC_B: Use SCC port B (printer) for serial debug and early console. 253 + * MAC_USE_SCC_A: Use SCC port A (modem) for serial debug. 254 + * MAC_USE_SCC_B: Use SCC port B (printer) for serial debug. 254 255 */ 255 256 256 257 #include <linux/linkage.h> ··· 267 268 #include <asm/pgtable.h> 268 269 #include <asm/page.h> 269 270 #include <asm/asm-offsets.h> 270 - 271 271 #ifdef CONFIG_MAC 272 - 273 - #include <asm/machw.h> 274 - 275 - #ifdef CONFIG_FRAMEBUFFER_CONSOLE 276 - #define CONSOLE 272 + # include <asm/machw.h> 277 273 #endif 278 274 279 275 #ifdef CONFIG_EARLY_PRINTK 280 - #define SERIAL_DEBUG 281 - #else 282 - #undef SERIAL_DEBUG 276 + # define SERIAL_DEBUG 277 + # if defined(CONFIG_MAC) && defined(CONFIG_FONT_SUPPORT) 278 + # define CONSOLE_DEBUG 279 + # endif 283 280 #endif 284 - 285 - #else /* !CONFIG_MAC */ 286 - 287 - #define SERIAL_DEBUG 288 - 289 - #endif /* !CONFIG_MAC */ 290 281 291 282 #undef MMU_PRINT 292 283 #undef MMU_NOCACHE_KERNEL ··· 292 303 293 304 .globl kernel_pg_dir 294 305 .globl availmem 306 + .globl m68k_init_mapped_size 295 307 .globl m68k_pgtable_cachemode 296 308 .globl m68k_supervisor_cachemode 297 309 #ifdef CONFIG_MVME16x ··· 470 480 func_define console_putc,1 471 481 472 482 func_define console_init 473 - func_define console_put_stats 474 483 func_define console_put_penguin 475 484 func_define console_plot_pixel,3 476 485 func_define console_scroll 477 486 478 487 .macro putc ch 479 - #if defined(CONSOLE) || defined(SERIAL_DEBUG) 488 + #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG) 480 489 pea \ch 481 490 #endif 482 - #ifdef CONSOLE 491 + #ifdef CONSOLE_DEBUG 483 492 func_call console_putc 484 493 #endif 485 494 #ifdef SERIAL_DEBUG 486 495 func_call serial_putc 487 496 #endif 488 - #if defined(CONSOLE) || defined(SERIAL_DEBUG) 497 + #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG) 489 498 addql #4,%sp 490 499 #endif 491 500 .endm ··· 504 515 .endm 505 516 506 517 .macro puts string 507 - #if defined(CONSOLE) || defined(SERIAL_DEBUG) 518 + #if defined(CONSOLE_DEBUG) || defined(SERIAL_DEBUG) 508 519 __INITDATA 509 520 .Lstr\@: 510 521 .string "\string" ··· 640 651 lea %pc@(L(mac_rowbytes)),%a1 641 652 movel %a0@,%a1@ 642 653 643 - #ifdef SERIAL_DEBUG 644 654 get_bi_record BI_MAC_SCCBASE 645 655 lea %pc@(L(mac_sccbase)),%a1 646 656 movel %a0@,%a1@ 647 - #endif 648 657 649 658 L(test_notmac): 650 659 #endif /* CONFIG_MAC */ ··· 872 885 */ 873 886 #ifdef CONFIG_MAC 874 887 is_not_mac(L(nocon)) 875 - # ifdef CONSOLE 888 + # ifdef CONSOLE_DEBUG 876 889 console_init 877 890 # ifdef CONFIG_LOGO 878 891 console_put_penguin 879 892 # endif /* CONFIG_LOGO */ 880 - console_put_stats 881 - # endif /* CONSOLE */ 893 + # endif /* CONSOLE_DEBUG */ 882 894 L(nocon): 883 895 #endif /* CONFIG_MAC */ 884 896 ··· 908 922 * 909 923 * This block of code does what's necessary to map in the various kinds 910 924 * of machines for execution of Linux. 911 - * First map the first 4 MB of kernel code & data 925 + * First map the first 4, 8, or 16 MB of kernel code & data 912 926 */ 913 927 914 - mmu_map #PAGE_OFFSET,%pc@(L(phys_kernel_start)),#4*1024*1024,\ 928 + get_bi_record BI_MEMCHUNK 929 + movel %a0@(4),%d0 930 + movel #16*1024*1024,%d1 931 + cmpl %d0,%d1 932 + jls 1f 933 + lsrl #1,%d1 934 + cmpl %d0,%d1 935 + jls 1f 936 + lsrl #1,%d1 937 + 1: 938 + movel %d1,m68k_init_mapped_size 939 + mmu_map #PAGE_OFFSET,%pc@(L(phys_kernel_start)),%d1,\ 915 940 %pc@(m68k_supervisor_cachemode) 916 941 917 942 putc 'C' ··· 1393 1396 andl L(mac_videobase),%d0 1394 1397 addl #VIDEOMEMBASE,%d0 1395 1398 movel %d0,L(mac_videobase) 1396 - #if defined(CONSOLE) 1399 + #ifdef CONSOLE_DEBUG 1397 1400 movel %pc@(L(phys_kernel_start)),%d0 1398 1401 subl #PAGE_OFFSET,%d0 1399 1402 subl %d0,L(console_font) 1400 1403 subl %d0,L(console_font_data) 1401 1404 #endif 1402 - #ifdef SERIAL_DEBUG 1403 1405 orl #0x50000000,L(mac_sccbase) 1404 - #endif 1405 1406 1: 1406 1407 #endif 1407 1408 ··· 2729 2734 */ 2730 2735 2731 2736 #ifdef CONFIG_MAC 2737 + /* You may define either or both of these. */ 2738 + #define MAC_USE_SCC_A /* Modem port */ 2739 + #define MAC_USE_SCC_B /* Printer port */ 2732 2740 2741 + #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B) 2742 + /* Initialisation table for SCC with 3.6864 MHz PCLK */ 2733 2743 L(scc_initable_mac): 2734 2744 .byte 4,0x44 /* x16, 1 stopbit, no parity */ 2735 2745 .byte 3,0xc0 /* receiver: 8 bpc */ ··· 2748 2748 .byte -1 2749 2749 .even 2750 2750 #endif 2751 + #endif /* CONFIG_MAC */ 2751 2752 2752 2753 #ifdef CONFIG_ATARI 2753 2754 /* #define USE_PRINTER */ ··· 2757 2756 #define USE_MFP 2758 2757 2759 2758 #if defined(USE_SCC_A) || defined(USE_SCC_B) 2760 - #define USE_SCC 2761 - /* Initialisation table for SCC */ 2762 - L(scc_initable): 2763 - .byte 9,12 /* Reset */ 2759 + /* Initialisation table for SCC with 7.9872 MHz PCLK */ 2760 + /* PCLK == 8.0539 gives baud == 9680.1 */ 2761 + L(scc_initable_atari): 2764 2762 .byte 4,0x44 /* x16, 1 stopbit, no parity */ 2765 2763 .byte 3,0xc0 /* receiver: 8 bpc */ 2766 2764 .byte 5,0xe2 /* transmitter: 8 bpc, assert dtr/rts */ 2767 - .byte 9,0 /* no interrupts */ 2768 2765 .byte 10,0 /* NRZ */ 2769 2766 .byte 11,0x50 /* use baud rate generator */ 2770 2767 .byte 12,24,13,0 /* 9600 baud */ ··· 2811 2812 */ 2812 2813 2813 2814 /* 2814 - * Initialize serial port hardware for 9600/8/1 2815 + * Initialize serial port hardware 2815 2816 */ 2816 2817 func_start serial_init,%d0/%d1/%a0/%a1 2817 2818 /* ··· 2821 2822 * d0 = boot info offset 2822 2823 * CONFIG_ATARI 2823 2824 * a0 = address of SCC 2824 - * a1 = Liobase address/address of scc_initable 2825 + * a1 = Liobase address/address of scc_initable_atari 2825 2826 * d0 = init data for serial port 2826 2827 * CONFIG_MAC 2827 2828 * a0 = address of SCC ··· 2842 2843 | movew #61,CUSTOMBASE+C_SERPER-ZTWOBASE 2843 2844 1: 2844 2845 #endif 2846 + 2845 2847 #ifdef CONFIG_ATARI 2846 2848 is_not_atari(4f) 2847 2849 movel %pc@(L(iobase)),%a1 ··· 2857 2857 moveb %a1@(LPSG_READ),%d0 2858 2858 bset #5,%d0 2859 2859 moveb %d0,%a1@(LPSG_WRITE) 2860 - #elif defined(USE_SCC) 2860 + #elif defined(USE_SCC_A) || defined(USE_SCC_B) 2861 2861 lea %a1@(LSCC_CTRL),%a0 2862 - lea %pc@(L(scc_initable)),%a1 2862 + /* Reset SCC register pointer */ 2863 + moveb %a0@,%d0 2864 + /* Reset SCC device: write register pointer then register value */ 2865 + moveb #9,%a0@ 2866 + moveb #0xc0,%a0@ 2867 + /* Wait for 5 PCLK cycles, which is about 63 CPU cycles */ 2868 + /* 5 / 7.9872 MHz = approx. 0.63 us = 63 / 100 MHz */ 2869 + movel #32,%d0 2870 + 2: 2871 + subq #1,%d0 2872 + jne 2b 2873 + /* Initialize channel */ 2874 + lea %pc@(L(scc_initable_atari)),%a1 2863 2875 2: moveb %a1@+,%d0 2864 2876 jmi 3f 2865 2877 moveb %d0,%a0@ ··· 2889 2877 jra L(serial_init_done) 2890 2878 4: 2891 2879 #endif 2880 + 2892 2881 #ifdef CONFIG_MAC 2893 2882 is_not_mac(L(serial_init_not_mac)) 2894 - 2895 - #ifdef SERIAL_DEBUG 2896 - 2897 - /* You may define either or both of these. */ 2898 - #define MAC_USE_SCC_A /* Modem port */ 2899 - #define MAC_USE_SCC_B /* Printer port */ 2900 - 2883 + #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B) 2901 2884 #define mac_scc_cha_b_ctrl_offset 0x0 2902 2885 #define mac_scc_cha_a_ctrl_offset 0x2 2903 2886 #define mac_scc_cha_b_data_offset 0x4 2904 2887 #define mac_scc_cha_a_data_offset 0x6 2905 - 2906 - #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B) 2907 2888 movel %pc@(L(mac_sccbase)),%a0 2908 2889 /* Reset SCC register pointer */ 2909 2890 moveb %a0@(mac_scc_cha_a_ctrl_offset),%d0 ··· 2910 2905 subq #1,%d0 2911 2906 jne 5b 2912 2907 #endif 2913 - 2914 2908 #ifdef MAC_USE_SCC_A 2915 2909 /* Initialize channel A */ 2916 2910 lea %pc@(L(scc_initable_mac)),%a1 ··· 2920 2916 jra 5b 2921 2917 6: 2922 2918 #endif /* MAC_USE_SCC_A */ 2923 - 2924 2919 #ifdef MAC_USE_SCC_B 2925 2920 /* Initialize channel B */ 2926 2921 lea %pc@(L(scc_initable_mac)),%a1 ··· 2930 2927 jra 7b 2931 2928 8: 2932 2929 #endif /* MAC_USE_SCC_B */ 2933 - 2934 - #endif /* SERIAL_DEBUG */ 2935 - 2936 2930 jra L(serial_init_done) 2937 2931 L(serial_init_not_mac): 2938 2932 #endif /* CONFIG_MAC */ ··· 2957 2957 tas %a1@ 2958 2958 /*nodbg: q40_do_debug is 0 by default*/ 2959 2959 2: 2960 + #endif 2961 + 2962 + #ifdef CONFIG_MVME16x 2963 + is_not_mvme16x(L(serial_init_not_mvme16x)) 2964 + moveb #0x10,M167_PCSCCMICR 2965 + moveb #0x10,M167_PCSCCTICR 2966 + moveb #0x10,M167_PCSCCRICR 2967 + jra L(serial_init_done) 2968 + L(serial_init_not_mvme16x): 2960 2969 #endif 2961 2970 2962 2971 #ifdef CONFIG_APOLLO ··· 3007 2998 3008 2999 #ifdef CONFIG_MAC 3009 3000 is_not_mac(5f) 3010 - 3011 - #ifdef SERIAL_DEBUG 3012 - 3013 3001 #if defined(MAC_USE_SCC_A) || defined(MAC_USE_SCC_B) 3014 3002 movel %pc@(L(mac_sccbase)),%a1 3015 3003 #endif 3016 - 3017 3004 #ifdef MAC_USE_SCC_A 3018 3005 3: btst #2,%a1@(mac_scc_cha_a_ctrl_offset) 3019 3006 jeq 3b 3020 3007 moveb %d0,%a1@(mac_scc_cha_a_data_offset) 3021 3008 #endif /* MAC_USE_SCC_A */ 3022 - 3023 3009 #ifdef MAC_USE_SCC_B 3024 3010 4: btst #2,%a1@(mac_scc_cha_b_ctrl_offset) 3025 3011 jeq 4b 3026 3012 moveb %d0,%a1@(mac_scc_cha_b_data_offset) 3027 3013 #endif /* MAC_USE_SCC_B */ 3028 - 3029 - #endif /* SERIAL_DEBUG */ 3030 - 3031 3014 jra L(serial_putc_done) 3032 3015 5: 3033 3016 #endif /* CONFIG_MAC */ ··· 3040 3039 nop 3041 3040 bset #5,%d0 3042 3041 moveb %d0,%a1@(LPSG_WRITE) 3043 - #elif defined(USE_SCC) 3042 + #elif defined(USE_SCC_A) || defined(USE_SCC_B) 3044 3043 3: btst #2,%a1@(LSCC_CTRL) 3045 3044 jeq 3b 3046 3045 moveb %d0,%a1@(LSCC_DATA) ··· 3196 3195 movel ARG1,%a0 3197 3196 jra 2f 3198 3197 1: 3199 - #ifdef CONSOLE 3198 + #ifdef CONSOLE_DEBUG 3200 3199 console_putc %d0 3201 3200 #endif 3202 3201 #ifdef SERIAL_DEBUG ··· 3225 3224 jls 2f 3226 3225 addb #'A'-('9'+1),%d2 3227 3226 2: 3228 - #ifdef CONSOLE 3227 + #ifdef CONSOLE_DEBUG 3229 3228 console_putc %d2 3230 3229 #endif 3231 3230 #ifdef SERIAL_DEBUG ··· 3235 3234 3236 3235 func_return putn 3237 3236 3238 - #ifdef CONFIG_MAC 3237 + #ifdef CONFIG_EARLY_PRINTK 3239 3238 /* 3240 - * mac_early_print 3241 - * 3242 3239 * This routine takes its parameters on the stack. It then 3243 3240 * turns around and calls the internal routines. This routine 3244 3241 * is used by the boot console. 3245 3242 * 3246 3243 * The calling parameters are: 3247 - * void mac_early_print(const char *str, unsigned length); 3244 + * void debug_cons_nputs(const char *str, unsigned length) 3248 3245 * 3249 3246 * This routine does NOT understand variable arguments only 3250 3247 * simple strings! 3251 3248 */ 3252 - ENTRY(mac_early_print) 3249 + ENTRY(debug_cons_nputs) 3253 3250 moveml %d0/%d1/%a0,%sp@- 3254 3251 movew %sr,%sp@- 3255 3252 ori #0x0700,%sr ··· 3255 3256 movel %sp@(22),%d1 /* fetch parameter */ 3256 3257 jra 2f 3257 3258 1: 3258 - #ifdef CONSOLE 3259 + #ifdef CONSOLE_DEBUG 3259 3260 console_putc %d0 3260 3261 #endif 3261 3262 #ifdef SERIAL_DEBUG ··· 3269 3270 movew %sp@+,%sr 3270 3271 moveml %sp@+,%d0/%d1/%a0 3271 3272 rts 3272 - #endif /* CONFIG_MAC */ 3273 + #endif /* CONFIG_EARLY_PRINTK */ 3273 3274 3274 3275 #if defined(CONFIG_HP300) || defined(CONFIG_APOLLO) 3275 3276 func_start set_leds,%d0/%a0 ··· 3291 3292 func_return set_leds 3292 3293 #endif 3293 3294 3294 - #ifdef CONSOLE 3295 + #ifdef CONSOLE_DEBUG 3295 3296 /* 3296 3297 * For continuity, see the data alignment 3297 3298 * to which this structure is tied. ··· 3394 3395 */ 3395 3396 1: 3396 3397 func_return console_init 3397 - 3398 - func_start console_put_stats,%a0/%d7 3399 - /* 3400 - * Some of the register usage that follows 3401 - * a0 = pointer to boot_info 3402 - * d7 = value of boot_info fields 3403 - */ 3404 - puts "\nMacLinux\n" 3405 - 3406 - #ifdef SERIAL_DEBUG 3407 - puts "\n vidaddr:" 3408 - putn %pc@(L(mac_videobase)) /* video addr. */ 3409 - 3410 - puts "\n _stext:" 3411 - lea %pc@(_stext),%a0 3412 - putn %a0 3413 - 3414 - puts "\nbootinfo:" 3415 - lea %pc@(_end),%a0 3416 - putn %a0 3417 - 3418 - puts "\n cpuid:" 3419 - putn %pc@(L(cputype)) 3420 - 3421 - # ifdef CONFIG_MAC 3422 - puts "\n sccbase:" 3423 - putn %pc@(L(mac_sccbase)) 3424 - # endif 3425 - # ifdef MMU_PRINT 3426 - putc '\n' 3427 - jbsr mmu_print_machine_cpu_types 3428 - # endif 3429 - #endif /* SERIAL_DEBUG */ 3430 - 3431 - putc '\n' 3432 - 3433 - func_return console_put_stats 3434 3398 3435 3399 #ifdef CONFIG_LOGO 3436 3400 func_start console_put_penguin,%a0-%a1/%d0-%d7 ··· 3736 3774 3737 3775 L(console_plot_pixel_exit): 3738 3776 func_return console_plot_pixel 3739 - #endif /* CONSOLE */ 3777 + #endif /* CONSOLE_DEBUG */ 3740 3778 3741 3779 3742 3780 __INITDATA 3743 3781 .align 4 3782 + 3783 + m68k_init_mapped_size: 3784 + .long 0 3744 3785 3745 3786 #if defined(CONFIG_ATARI) || defined(CONFIG_AMIGA) || \ 3746 3787 defined(CONFIG_HP300) || defined(CONFIG_APOLLO) ··· 3752 3787 .long 0 3753 3788 #endif 3754 3789 3755 - #if defined(CONSOLE) 3790 + #ifdef CONSOLE_DEBUG 3756 3791 L(console_globals): 3757 3792 .long 0 /* cursor column */ 3758 3793 .long 0 /* cursor row */ ··· 3763 3798 .long 0 /* pointer to console font (struct font_desc) */ 3764 3799 L(console_font_data): 3765 3800 .long 0 /* pointer to console font data */ 3766 - #endif /* CONSOLE */ 3801 + #endif /* CONSOLE_DEBUG */ 3767 3802 3768 3803 #if defined(MMU_PRINT) 3769 3804 L(mmu_print_data): ··· 3803 3838 M167_CYLICR = 0xfff45026 3804 3839 M167_CYTEOIR = 0xfff45085 3805 3840 M167_CYTDR = 0xfff450f8 3841 + M167_PCSCCMICR = 0xfff4201d 3806 3842 M167_PCSCCTICR = 0xfff4201e 3843 + M167_PCSCCRICR = 0xfff4201f 3807 3844 M167_PCTPIACKR = 0xfff42025 3808 3845 #endif 3809 3846 ··· 3823 3856 .long 0 3824 3857 L(mac_rowbytes): 3825 3858 .long 0 3826 - #ifdef SERIAL_DEBUG 3827 3859 L(mac_sccbase): 3828 3860 .long 0 3829 - #endif 3830 3861 #endif /* CONFIG_MAC */ 3831 3862 3832 3863 #if defined (CONFIG_APOLLO)
-29
arch/m68k/mac/config.c
··· 71 71 static void mac_identify(void); 72 72 static void mac_report_hardware(void); 73 73 74 - #ifdef CONFIG_EARLY_PRINTK 75 - asmlinkage void __init mac_early_print(const char *s, unsigned n); 76 - 77 - static void __init mac_early_cons_write(struct console *con, 78 - const char *s, unsigned n) 79 - { 80 - mac_early_print(s, n); 81 - } 82 - 83 - static struct console __initdata mac_early_cons = { 84 - .name = "early", 85 - .write = mac_early_cons_write, 86 - .flags = CON_PRINTBUFFER | CON_BOOT, 87 - .index = -1 88 - }; 89 - 90 - int __init mac_unregister_early_cons(void) 91 - { 92 - /* mac_early_print can't be used after init sections are discarded */ 93 - return unregister_console(&mac_early_cons); 94 - } 95 - 96 - late_initcall(mac_unregister_early_cons); 97 - #endif 98 - 99 74 static void __init mac_sched_init(irq_handler_t vector) 100 75 { 101 76 via_init_clock(vector); ··· 163 188 mach_max_dma_address = 0xffffffff; 164 189 #if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE) 165 190 mach_beep = mac_mksound; 166 - #endif 167 - 168 - #ifdef CONFIG_EARLY_PRINTK 169 - register_console(&mac_early_cons); 170 191 #endif 171 192 172 193 /*
+6 -4
arch/m68k/mm/motorola.c
··· 45 45 #endif 46 46 47 47 /* size of memory already mapped in head.S */ 48 - #define INIT_MAPPED_SIZE (4UL<<20) 48 + extern __initdata unsigned long m68k_init_mapped_size; 49 49 50 50 extern unsigned long availmem; 51 51 ··· 271 271 */ 272 272 addr = m68k_memory[0].addr; 273 273 size = m68k_memory[0].size; 274 - free_bootmem_node(NODE_DATA(0), availmem, min(INIT_MAPPED_SIZE, size) - (availmem - addr)); 274 + free_bootmem_node(NODE_DATA(0), availmem, 275 + min(m68k_init_mapped_size, size) - (availmem - addr)); 275 276 map_node(0); 276 - if (size > INIT_MAPPED_SIZE) 277 - free_bootmem_node(NODE_DATA(0), addr + INIT_MAPPED_SIZE, size - INIT_MAPPED_SIZE); 277 + if (size > m68k_init_mapped_size) 278 + free_bootmem_node(NODE_DATA(0), addr + m68k_init_mapped_size, 279 + size - m68k_init_mapped_size); 278 280 279 281 for (i = 1; i < m68k_num_memory; i++) 280 282 map_node(i);
+1 -25
arch/m68k/mvme16x/config.c
··· 213 213 #define CySCRH (0x22) 214 214 #define CyTFTC (0x80) 215 215 216 - static void cons_write(struct console *co, const char *str, unsigned count) 216 + void mvme16x_cons_write(struct console *co, const char *str, unsigned count) 217 217 { 218 218 volatile unsigned char *base_addr = (u_char *)CD2401_ADDR; 219 219 volatile u_char sink; ··· 268 268 base_addr[CyIER] = ier; 269 269 } 270 270 271 - static struct console cons_info = 272 - { 273 - .name = "sercon", 274 - .write = cons_write, 275 - .flags = CON_PRINTBUFFER | CON_BOOT, 276 - .index = -1, 277 - }; 278 - 279 - static void __init mvme16x_early_console(void) 280 - { 281 - register_console(&cons_info); 282 - 283 - printk(KERN_INFO "MVME16x: early console registered\n"); 284 - } 285 271 #endif 286 272 287 273 void __init config_mvme16x(void) ··· 322 336 else 323 337 { 324 338 mvme16x_config = MVME16x_CONFIG_GOT_LP | MVME16x_CONFIG_GOT_CD2401; 325 - 326 - /* Dont allow any interrupts from the CD2401 until the interrupt */ 327 - /* handlers are installed */ 328 - 329 - pcc2chip[PccSCCMICR] = 0x10; 330 - pcc2chip[PccSCCTICR] = 0x10; 331 - pcc2chip[PccSCCRICR] = 0x10; 332 - #ifdef CONFIG_EARLY_PRINTK 333 - mvme16x_early_console(); 334 - #endif 335 339 } 336 340 } 337 341
+1 -1
drivers/block/ataflop.c
··· 1952 1952 goto Enomem; 1953 1953 } 1954 1954 TrackBuffer = DMABuffer + 512; 1955 - PhysDMABuffer = virt_to_phys(DMABuffer); 1955 + PhysDMABuffer = atari_stram_to_phys(DMABuffer); 1956 1956 PhysTrackBuffer = virt_to_phys(TrackBuffer); 1957 1957 BufferDrive = BufferSide = BufferTrack = -1; 1958 1958
+1 -1
drivers/scsi/atari_scsi.c
··· 639 639 "double buffer\n"); 640 640 return 0; 641 641 } 642 - atari_dma_phys_buffer = virt_to_phys(atari_dma_buffer); 642 + atari_dma_phys_buffer = atari_stram_to_phys(atari_dma_buffer); 643 643 atari_dma_orig_addr = 0; 644 644 } 645 645 #endif
+26 -23
drivers/video/fbdev/atafb.c
··· 191 191 }; 192 192 193 193 static void *screen_base; /* base address of screen */ 194 - static void *real_screen_base; /* (only for Overscan) */ 194 + static unsigned long phys_screen_base; /* (only for Overscan) */ 195 195 196 196 static int screen_len; 197 197 ··· 213 213 */ 214 214 static unsigned int external_depth; 215 215 static int external_pmode; 216 - static void *external_addr; 216 + static void *external_screen_base; 217 + static unsigned long external_addr; 217 218 static unsigned long external_len; 218 219 static unsigned long external_vgaiobase; 219 220 static unsigned int external_bitspercol = 6; ··· 593 592 int mode; 594 593 595 594 strcpy(fix->id, "Atari Builtin"); 596 - fix->smem_start = (unsigned long)real_screen_base; 595 + fix->smem_start = phys_screen_base; 597 596 fix->smem_len = screen_len; 598 597 fix->type = FB_TYPE_INTERLEAVED_PLANES; 599 598 fix->type_aux = 2; ··· 791 790 addr = ((shifter.bas_hi & 0xff) << 16) | 792 791 ((shifter.bas_md & 0xff) << 8) | 793 792 ((shifter.bas_lo & 0xff)); 794 - par->screen_base = phys_to_virt(addr); 793 + par->screen_base = atari_stram_to_virt(addr); 795 794 } 796 795 797 796 static void tt_set_par(struct atafb_par *par) ··· 889 888 struct atafb_par *par) 890 889 { 891 890 strcpy(fix->id, "Atari Builtin"); 892 - fix->smem_start = (unsigned long)real_screen_base; 891 + fix->smem_start = phys_screen_base; 893 892 fix->smem_len = screen_len; 894 893 fix->type = FB_TYPE_INTERLEAVED_PLANES; 895 894 fix->type_aux = 2; ··· 1585 1584 addr = (shifter.bas_hi & 0xff) << 16 | 1586 1585 (shifter.bas_md & 0xff) << 8 | 1587 1586 (shifter.bas_lo & 0xff); 1588 - par->screen_base = phys_to_virt(addr); 1587 + par->screen_base = atari_stram_to_virt(addr); 1589 1588 1590 1589 /* derived parameters */ 1591 1590 hw->ste_mode = (hw->f_shift & 0x510) == 0 && hw->st_shift == 0x100; ··· 1815 1814 int mode; 1816 1815 1817 1816 strcpy(fix->id, "Atari Builtin"); 1818 - fix->smem_start = (unsigned long)real_screen_base; 1817 + fix->smem_start = phys_screen_base; 1819 1818 fix->smem_len = screen_len; 1820 1819 fix->type = FB_TYPE_INTERLEAVED_PLANES; 1821 1820 fix->type_aux = 2; ··· 1981 1980 ((shifter.bas_md & 0xff) << 8); 1982 1981 if (ATARIHW_PRESENT(EXTD_SHIFTER)) 1983 1982 addr |= (shifter.bas_lo & 0xff); 1984 - par->screen_base = phys_to_virt(addr); 1983 + par->screen_base = atari_stram_to_virt(addr); 1985 1984 } 1986 1985 1987 1986 static void stste_set_par(struct atafb_par *par) ··· 2040 2039 static void stste_set_screen_base(void *s_base) 2041 2040 { 2042 2041 unsigned long addr; 2043 - addr = virt_to_phys(s_base); 2042 + addr = atari_stram_to_phys(s_base); 2044 2043 /* Setup Screen Memory */ 2045 2044 shifter.bas_hi = (unsigned char)((addr & 0xff0000) >> 16); 2046 2045 shifter.bas_md = (unsigned char)((addr & 0x00ff00) >> 8); ··· 2114 2113 static int ext_encode_fix(struct fb_fix_screeninfo *fix, struct atafb_par *par) 2115 2114 { 2116 2115 strcpy(fix->id, "Unknown Extern"); 2117 - fix->smem_start = (unsigned long)external_addr; 2116 + fix->smem_start = external_addr; 2118 2117 fix->smem_len = PAGE_ALIGN(external_len); 2119 2118 if (external_depth == 1) { 2120 2119 fix->type = FB_TYPE_PACKED_PIXELS; ··· 2214 2213 2215 2214 static void ext_get_par(struct atafb_par *par) 2216 2215 { 2217 - par->screen_base = external_addr; 2216 + par->screen_base = external_screen_base; 2218 2217 } 2219 2218 2220 2219 static void ext_set_par(struct atafb_par *par) ··· 2287 2286 { 2288 2287 unsigned long addr; 2289 2288 2290 - addr = virt_to_phys(s_base); 2289 + addr = atari_stram_to_phys(s_base); 2291 2290 /* Setup Screen Memory */ 2292 2291 shifter.bas_hi = (unsigned char)((addr & 0xff0000) >> 16); 2293 2292 shifter.bas_md = (unsigned char)((addr & 0x00ff00) >> 8); ··· 2434 2433 atafb_get_var(&info->var, info); 2435 2434 atafb_get_fix(&info->fix, info); 2436 2435 2437 - info->screen_base = (void *)info->fix.smem_start; 2436 + /* Note: smem_start derives from phys_screen_base, not screen_base! */ 2437 + info->screen_base = (external_addr ? external_screen_base : 2438 + atari_stram_to_virt(info->fix.smem_start)); 2438 2439 } 2439 2440 2440 2441 static int atafb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, ··· 2907 2904 external_yres = yres; 2908 2905 external_depth = depth; 2909 2906 external_pmode = planes; 2910 - external_addr = (void *)addr; 2907 + external_addr = addr; 2911 2908 external_len = len; 2912 2909 2913 2910 if (external_card_type == IS_MV300) { ··· 3169 3166 memset(screen_base, 0, mem_req); 3170 3167 pad = -(unsigned long)screen_base & (PAGE_SIZE - 1); 3171 3168 screen_base += pad; 3172 - real_screen_base = screen_base + ovsc_offset; 3169 + phys_screen_base = atari_stram_to_phys(screen_base + ovsc_offset); 3173 3170 screen_len = (mem_req - pad - ovsc_offset) & PAGE_MASK; 3174 3171 st_ovsc_switch(); 3175 3172 if (CPU_IS_040_OR_060) { 3176 3173 /* On a '040+, the cache mode of video RAM must be set to 3177 3174 * write-through also for internal video hardware! */ 3178 - cache_push(virt_to_phys(screen_base), screen_len); 3175 + cache_push(atari_stram_to_phys(screen_base), screen_len); 3179 3176 kernel_set_cachemode(screen_base, screen_len, 3180 3177 IOMAP_WRITETHROUGH); 3181 3178 } 3182 - printk("atafb: screen_base %p real_screen_base %p screen_len %d\n", 3183 - screen_base, real_screen_base, screen_len); 3179 + printk("atafb: screen_base %p phys_screen_base %lx screen_len %d\n", 3180 + screen_base, phys_screen_base, screen_len); 3184 3181 #ifdef ATAFB_EXT 3185 3182 } else { 3186 3183 /* Map the video memory (physical address given) to somewhere 3187 3184 * in the kernel address space. 3188 3185 */ 3189 - external_addr = ioremap_writethrough((unsigned long)external_addr, 3186 + external_screen_base = ioremap_writethrough(external_addr, 3190 3187 external_len); 3191 3188 if (external_vgaiobase) 3192 3189 external_vgaiobase = 3193 3190 (unsigned long)ioremap(external_vgaiobase, 0x10000); 3194 - screen_base = 3195 - real_screen_base = external_addr; 3191 + screen_base = external_screen_base; 3192 + phys_screen_base = external_addr; 3196 3193 screen_len = external_len & PAGE_MASK; 3197 3194 memset (screen_base, 0, external_len); 3198 3195 } ··· 3238 3235 if (register_framebuffer(&fb_info) < 0) { 3239 3236 #ifdef ATAFB_EXT 3240 3237 if (external_addr) { 3241 - iounmap(external_addr); 3242 - external_addr = NULL; 3238 + iounmap(external_screen_base); 3239 + external_addr = 0; 3243 3240 } 3244 3241 if (external_vgaiobase) { 3245 3242 iounmap((void*)external_vgaiobase);