Changeset 5d684e4 in mainline for boot


Ignore:
Timestamp:
2006-09-23T13:12:10Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
6ff1f1e
Parents:
28ecadb
Message:

Convert sparc64 framebuffer code to configure from the OpenFirmware device tree memory representation.

Location:
boot/arch/sparc64/loader
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • boot/arch/sparc64/loader/main.c

    r28ecadb r5d684e4  
    5858        }
    5959       
    60         if (!ofw_screen(&bootinfo.screen)) {
    61                 printf("Error: unable to get screen properties, halting.\n");
    62                 halt();
    63         }
    64         bootinfo.screen.addr = ofw_translate(bootinfo.screen.addr);
    65         /* transform scanline to bytes with respect to potential alignment */
    66         bootinfo.screen.scanline = bootinfo.screen.scanline*bpp2align[bootinfo.screen.bpp >> 3];
    67        
    6860        if (!ofw_cpu(&bootinfo.cpu))
    6961                printf("Error: unable to get cpu properties\n");
    7062
    71         printf("\nDevice statistics\n");
     63        printf("\nDevice info\n");
    7264        printf(" cpu: %dMHz\n", bootinfo.cpu.clock_frequency/1000000);
    7365        printf(" memory: %dM\n", bootinfo.memmap.total>>20);
    74         printf(" screen at %P, resolution %dx%d, %d bpp (scanline %d bytes)\n", (uintptr_t) bootinfo.screen.addr, bootinfo.screen.width, bootinfo.screen.height, bootinfo.screen.bpp, bootinfo.screen.scanline);
    7566
    7667        printf("\nMemory statistics\n");
  • boot/arch/sparc64/loader/main.h

    r28ecadb r5d684e4  
    5454        taskmap_t taskmap;
    5555        memmap_t memmap;
    56         screen_t screen;
    5756        cpu_t cpu;
    5857        ballocs_t ballocs;
  • boot/arch/sparc64/loader/ofwarch.c

    r28ecadb r5d684e4  
    3838#include "main.h"
    3939
    40 int bpp2align[] = {
    41         [0] = 0,                /** Invalid bpp. */
    42         [1] = 1,                /** 8bpp is not aligned. */
    43         [2] = 2,                /** 16bpp is naturally aligned. */
    44         [3] = 4,                /** 24bpp is aligned on 4 byte boundary. */
    45         [4] = 4,                /** 32bpp is naturally aligned. */
    46 };
    47 
    4840void write(const char *str, const int len)
    4941{
     
    6052{
    6153        return flag != -1;
    62 }
    63 
    64 int ofw_keyboard(keyboard_t *keyboard)
    65 {
    66         char device_name[BUF_SIZE];
    67         uint32_t virtaddr;
    68                
    69         if (ofw_get_property(ofw_aliases, "keyboard", device_name, sizeof(device_name)) <= 0)
    70                 return false;
    71                                        
    72         phandle device = ofw_find_device(device_name);
    73         if (device == -1)
    74                 return false;
    75                                                                        
    76         if (ofw_get_property(device, "address", &virtaddr, sizeof(virtaddr)) <= 0)
    77                 return false;
    78                                                                                                
    79         if (!(keyboard->addr = ofw_translate((void *) ((uintptr_t) virtaddr))))
    80                 return false;
    81 
    82         return true;
    8354}
    8455
Note: See TracChangeset for help on using the changeset viewer.