Subversion Repositories HelenOS

Rev

Rev 1787 | Rev 1790 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1787 Rev 1789
Line 29... Line 29...
29
#include "main.h" 
29
#include "main.h" 
30
#include <printf.h>
30
#include <printf.h>
31
#include "asm.h"
31
#include "asm.h"
32
#include "_components.h"
32
#include "_components.h"
33
#include <ofw.h>
33
#include <ofw.h>
-
 
34
#include <align.h>
34
 
35
 
35
#define KERNEL_VIRTUAL_ADDRESS 0x400000
36
#define KERNEL_VIRTUAL_ADDRESS 0x400000
36
 
37
 
37
bootinfo_t bootinfo;
38
bootinfo_t bootinfo;
38
 
39
 
Line 41... Line 42...
41
    printf("HelenOS SPARC64 Bootloader\n");
42
    printf("HelenOS SPARC64 Bootloader\n");
42
 
43
 
43
    component_t components[COMPONENTS];
44
    component_t components[COMPONENTS];
44
    init_components(components);
45
    init_components(components);
45
 
46
 
-
 
47
    if (!ofw_memmap(&bootinfo.memmap)) {
-
 
48
        printf("Error: unable to get memory map, halting.\n");
-
 
49
        halt();
-
 
50
    }
-
 
51
   
-
 
52
    if (bootinfo.memmap.total == 0) {
-
 
53
        printf("Error: no memory detected, halting.\n");
-
 
54
        halt();
-
 
55
    }
-
 
56
   
-
 
57
    if (!ofw_screen(&bootinfo.screen)) {
-
 
58
        printf("Error: unable to get screen properties, halting.\n");
-
 
59
        halt();
-
 
60
    }
-
 
61
    bootinfo.screen.addr = ofw_translate(bootinfo.screen.addr);
-
 
62
   
-
 
63
    if (!ofw_keyboard(&bootinfo.keyboard)) {
-
 
64
        printf("Error: unable to get keyboard properties, halting.\n");
-
 
65
        halt();
-
 
66
    }
-
 
67
   
-
 
68
    printf("\nDevice statistics\n");
-
 
69
    printf(" memory: %dM\n", bootinfo.memmap.total>>20);
-
 
70
    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);
-
 
71
    printf(" keyboard at %P (size %d bytes)\n", (uintptr_t) bootinfo.keyboard.addr, bootinfo.keyboard.size);
-
 
72
 
46
    printf("\nMemory statistics\n");
73
    printf("\nMemory statistics\n");
47
    printf(" kernel entry point at %L\n", KERNEL_VIRTUAL_ADDRESS);
74
    printf(" kernel entry point at %P\n", KERNEL_VIRTUAL_ADDRESS);
48
    printf(" %L: boot info structure\n", &bootinfo);
75
    printf(" %P: boot info structure\n", &bootinfo);
49
   
76
   
50
    unsigned int i;
77
    unsigned int i;
51
    for (i = 0; i < COMPONENTS; i++)
78
    for (i = 0; i < COMPONENTS; i++)
52
        printf(" %L: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size);
79
        printf(" %P: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size);
53
 
80
 
54
    printf("\nCopying components\n");
81
    printf("\nCopying components\n");
55
    unsigned int top = 0;
82
    unsigned int top = 0;
56
    bootinfo.cnt = 0;
83
    bootinfo.cnt = 0;
57
    for (i = 0; i < COMPONENTS; i++) {
84
    for (i = 0; i < COMPONENTS; i++) {