Changeset 8424198 in mainline
- Timestamp:
- 2006-05-18T21:45:16Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 35f3b8c
- Parents:
- 59477e3
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia32/src/drivers/vesa.c
r59477e3 r8424198 59 59 } 60 60 61 static count_t vesa_frame_order(void)62 {63 __u32 x = vesa_scanline*vesa_height;64 if (x <= FRAME_SIZE)65 return 0;66 67 return (fnzb32(x - 1) + 1) - FRAME_WIDTH;68 }69 70 61 void vesa_init(void) 71 62 { 72 int a; 73 __address vram_lin_addr; 74 75 vram_lin_addr = PA2KA(PFN2ADDR(frame_alloc(vesa_frame_order(), FRAME_KA))); 76 /* Map videoram */ 77 for (a = 0; a < ((vesa_scanline * vesa_height + PAGE_SIZE - 1) >> PAGE_WIDTH); a++) 78 page_mapping_insert(AS_KERNEL, vram_lin_addr + a*PAGE_SIZE, vesa_ph_addr + a*FRAME_SIZE, 79 PAGE_NOT_CACHEABLE); 80 81 fb_init(vram_lin_addr, vesa_width, vesa_height, vesa_bpp, vesa_scanline); 82 83 fb_register(); 84 sysinfo_set_item_val("fb.address.physical", NULL, vesa_ph_addr); 63 fb_init(vesa_ph_addr, vesa_width, vesa_height, vesa_bpp, vesa_scanline); 85 64 } 86 65 -
arch/ppc32/Makefile.inc
r59477e3 r8424198 62 62 63 63 ARCH_SOURCES = \ 64 arch/$(ARCH)/src/console.c \65 64 arch/$(ARCH)/src/context.S \ 66 65 arch/$(ARCH)/src/debug/panic.s \ -
arch/ppc32/include/exception.h
r59477e3 r8424198 79 79 static inline void istate_set_retaddr(istate_t *istate, __address retaddr) 80 80 { 81 /* TODO */81 istate->pc = retaddr; 82 82 } 83 83 -
arch/ppc32/src/ppc32.c
r59477e3 r8424198 58 58 /* Start decrementer */ 59 59 start_decrementer(); 60 61 ppc32_console_init();62 60 cuda_init(); 63 61 } … … 66 64 { 67 65 if (config.cpu_active == 1) { 66 fb_init(bootinfo.screen.addr, bootinfo.screen.width, bootinfo.screen.height, bootinfo.screen.bpp, bootinfo.screen.scanline); 67 68 68 /* Merge all zones to 1 big zone */ 69 69 zone_merge_all(); -
genarch/include/fb/fb.h
r59477e3 r8424198 35 35 extern spinlock_t fb_lock; 36 36 void fb_init(__address addr, unsigned int x, unsigned int y, unsigned int bpp, unsigned int scan); 37 void fb_register(void);38 37 39 38 #endif -
genarch/src/fb/fb.c
r59477e3 r8424198 33 33 #include <sysinfo/sysinfo.h> 34 34 #include <mm/slab.h> 35 #include <mm/as.h> 36 #include <bitops.h> 37 #include <align.h> 35 38 #include <panic.h> 36 39 #include <memstr.h> … … 313 316 /** Initialize framebuffer as a chardev output device 314 317 * 315 * @param addr Address of theframebuffer318 * @param addr Physical address of the framebuffer 316 319 * @param x Screen width in pixels 317 320 * @param y Screen height in pixels … … 346 349 panic("Unsupported bpp"); 347 350 } 348 349 fbaddress = (unsigned char *) addr; 351 352 unsigned int fbsize = scan * y; 353 unsigned int fborder; 354 355 if (fbsize <= FRAME_SIZE) 356 fborder = 0; 357 else 358 fborder = (fnzb32(fbsize - 1) + 1) - FRAME_WIDTH; 359 360 /* Map the framebuffer */ 361 fbaddress = (__u8 *) PA2KA(PFN2ADDR(frame_alloc(fborder, FRAME_KA))); 362 363 pfn_t i; 364 for (i = 0; i < ADDR2PFN(ALIGN_UP(fbsize, PAGE_SIZE)); i++) 365 page_mapping_insert(AS_KERNEL, (__address) fbaddress + PFN2ADDR(i), addr + PFN2ADDR(i), PAGE_NOT_CACHEABLE); 366 350 367 xres = x; 351 368 yres = y; … … 362 379 chardev_initialize("fb", &framebuffer, &fb_ops); 363 380 stdout = &framebuffer; 364 } 365 366 367 /** Register framebuffer in sysinfo 368 * 369 */ 370 void fb_register(void) 371 { 381 372 382 sysinfo_set_item_val("fb", NULL, true); 373 sysinfo_set_item_val("fb.width", NULL, x res);374 sysinfo_set_item_val("fb.height", NULL, y res);375 sysinfo_set_item_val("fb. scanline", NULL, scanline);376 sysinfo_set_item_val("fb. bpp", NULL, bitspp);377 sysinfo_set_item_val("fb.address. virtual", NULL, (__address) fbaddress);378 } 383 sysinfo_set_item_val("fb.width", NULL, x); 384 sysinfo_set_item_val("fb.height", NULL, y); 385 sysinfo_set_item_val("fb.bpp", NULL, bpp); 386 sysinfo_set_item_val("fb.scanline", NULL, scan); 387 sysinfo_set_item_val("fb.address.physical", NULL, addr); 388 }
Note:
See TracChangeset
for help on using the changeset viewer.