/boot/trunk/arch/ppc64/loader/ofw.c |
---|
176,15 → 176,15 |
{ |
ofw_arg_t result[3]; |
if (ofw_call("call-method", 4, 4, result, "translate", ofw_mmu, virt, 1) != 0) { |
if (ofw_call("call-method", 4, 4, result, "translate", ofw_mmu, (unsigned long) virt, 1) != 0) { |
puts("Error: MMU method translate() failed, halting.\n"); |
halt(); |
} |
return (void *) result[2]; |
return (void *) (unsigned long) result[2]; |
} |
int ofw_map(const void *phys, const void *virt, const int size, const int mode) |
int ofw_map(const void *phys, const void *virt, const long size, const int mode) |
{ |
return ofw_call("call-method", 6, 1, NULL, "map", ofw_mmu, mode, size, virt, phys); |
} |
204,7 → 204,7 |
map->total = 0; |
map->count = 0; |
for (pos = 0; (pos < ret / sizeof(unsigned int)) && (map->count < MEMMAP_MAX_RECORDS); pos += ac + sc) { |
void * start = (void *) buf[pos + ac - 1]; |
void * start = (void *) (unsigned long) buf[pos + ac - 1]; |
unsigned int size = buf[pos + ac + sc - 1]; |
if (size > 0) { |
/boot/trunk/arch/ppc64/loader/Makefile |
---|
29,7 → 29,7 |
## Toolchain configuration |
# |
TARGET = ppc-linux-gnu |
TARGET = ppc64-linux-gnu |
TOOLCHAIN_DIR = /usr/local/ppc64/bin |
ifeq ($(COMPILER),native) |
/boot/trunk/arch/ppc64/loader/pack |
---|
45,7 → 45,9 |
*(BOOTSTRAP); |
*(REALMODE); |
*(.text); |
*(.toc); |
*(.opd); |
*(.rodata); |
*(.rodata.*); |
*(.data); /* initialized data */ |
91,7 → 93,7 |
#define ${MACRO}_END ((void *) &${SYMBOL}_end) |
#define ${MACRO}_SIZE ((unsigned long) ${MACRO}_END - (unsigned long) ${MACRO}_START)" >> "$HEADER" |
"$OBJCOPY" -I binary -O elf32-powerpc -B powerpc:common --rename-section ".data=.${BASENAME}_image" "$TASK" "$OBJECT" |
"$OBJCOPY" -I binary -O elf64-powerpc -B powerpc:common64 --rename-section ".data=.${BASENAME}_image" "$TASK" "$OBJECT" |
DATA="${DATA} |
components[$COUNT].name = \"${BASENAME}\"; |
101,7 → 103,11 |
COUNT="`expr "$COUNT" + 1`" |
done |
echo ' } |
echo '} |
/DISCARD/ : { |
*(*); |
} |
}' >> "$LINK" |
echo " |