Subversion Repositories HelenOS-historic

Compare Revisions

Regard whitespace Rev 1779 → Rev 1782

/boot/trunk/genarch/ofw.c
29,6 → 29,7
#include "ofw.h"
#include <printf.h>
#include <asm.h>
#include <types.h>
 
#define MAX_OFW_ARGS 10
 
167,22 → 168,41
 
void *ofw_translate(const void *virt)
{
ofw_arg_t result[3];
ofw_arg_t result[4];
int shift;
if (ofw_call("call-method", 4, 4, result, "translate", ofw_mmu, virt, 1) != 0) {
if (ofw_call("call-method", 3, 5, result, "translate", ofw_mmu, virt) != 0) {
puts("Error: MMU method translate() failed, halting.\n");
halt();
}
return (void *) result[2];
 
if (sizeof(unative_t) == 8)
shift = 32;
else
shift = 0;
return (void *) (((result[2]&0xffffffff)<<shift)|((result[3])&0xffffffff));
}
 
 
int ofw_map(const void *phys, const void *virt, const int size, const int mode)
{
return ofw_call("call-method", 6, 1, NULL, "map", ofw_mmu, mode, size, virt, phys);
uintptr_t phys_hi, phys_lo;
 
if (sizeof(unative_t) == 8) {
int shift = 32;
phys_hi = (uintptr_t) phys >> shift;
phys_lo = (uintptr_t) phys & 0xffffffff;
} else {
phys_hi = 0;
phys_lo = (uintptr_t) phys;
}
 
return ofw_call("call-method", 7, 1, NULL, "map", ofw_mmu, mode, size, virt,
phys_hi, phys_lo);
}
 
 
int ofw_memmap(memmap_t *map)
{
unsigned long buf[BUF_SIZE];
238,4 → 258,3
return true;
}
 
/boot/trunk/arch/sparc64/loader/main.c
30,15 → 30,17
#include <printf.h>
#include "asm.h"
#include "_components.h"
#include <ofw.h>
 
#define KERNEL_VIRTUAL_ADDRESS 0x400000
 
bootinfo_t bootinfo;
 
void bootstrap(void)
{
printf("HelenOS SPARC64 Bootloader\n");
component_t components[COMPONENTS];
bootinfo_t bootinfo;
init_components(components);
printf("\nMemory statistics\n");
49,6 → 51,12
for (i = 0; i < COMPONENTS; i++)
printf(" %L: %s image (size %d bytes)\n", components[i].start, components[i].name, components[i].size);
screen_t scr;
ofw_screen(&scr);
printf("\n%P: fb, %dx%dx%d\n", ofw_translate(scr.addr), scr.width, scr.height, scr.bpp);
 
printf("\nCopying components\n");
unsigned int top = 0;
bootinfo.cnt = 0;