Changeset 75a3095 in mainline


Ignore:
Timestamp:
2006-03-12T17:16:47Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
3998ab2
Parents:
91aba7f
Message:

fix various ppc32 bootloader bugs

Location:
arch/ppc32
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • arch/ppc32/Makefile.inc

    r91aba7f r75a3095  
    3131image.boot: kernel
    3232        make -C arch/$(ARCH)/loader COMPILER=$(COMPILER) KERNEL=../../../$(KERNELDIR)/kernel.bin
     33        cp arch/$(ARCH)/loader/image.boot image.boot
    3334
    3435clean: clean_kernel
    3536        make -C arch/$(ARCH)/loader clean
     37        -rm -f image.boot
    3638
    3739arch_distclean: distclean_kernel
  • arch/ppc32/loader/Makefile

    r91aba7f r75a3095  
    6161.PHONY: all clean depend
    6262
    63 all: ../image.boot
     63all: image.boot
    6464
    6565-include Makefile.depend
    6666
    67 ../image.boot: depend $(OBJECTS) kernel.o
     67image.boot: depend $(OBJECTS) kernel.o
    6868        $(LD) -no-check-sections -N -T _link.ld $(OBJECTS) kernel.o -o $@
    6969
     
    7272
    7373clean:
    74         -rm -f $(OBJECTS) ../image.boot kernel.o Makefile.depend
     74        -rm -f $(OBJECTS) image.boot kernel.o Makefile.depend
    7575
    7676kernel.o: $(KERNEL)
  • arch/ppc32/loader/asm.S

    r91aba7f r75a3095  
    3333
    3434flush_buffer:
    35         .space 4
     35        .space (L1_CACHE_LINES * L1_CACHE_BYTES)
    3636
    3737.text
     
    185185
    186186jump_to_kernel:
    187         mfmsr r4
    188         andis. r4, r4, (~MSR_DR | MSR_IR) >> 16
    189187        mtspr SPRN_SRR0, r3
    190         mtspr SPRN_SRR1, r4
     188        mfmsr r3
     189        andi. r3, r3, ~(MSR_IR | MSR_DR)@l
     190        mtspr SPRN_SRR1, r3
    191191        bl flush_instruction_cache
    192192        rfi
  • arch/ppc32/loader/main.c

    r91aba7f r75a3095  
    3939void bootstrap(void)
    4040{
    41         printf("\nHelenOS PPC Bootloader\nKernel size %d bytes, load address %L\n", KERNEL_SIZE, KERNEL_LOAD_ADDRESS);
     41        printf("\nHelenOS PPC Bootloader\nLoaded at %L\nKernel size %d bytes, load address %L\n", &start, KERNEL_SIZE, KERNEL_LOAD_ADDRESS);
    4242       
    4343        void *addr = ofw_claim((void *) KERNEL_LOAD_ADDRESS, KERNEL_SIZE, 1);
     
    4646                halt();
    4747        }
     48        printf("Claimed memory at %L\n", addr);
    4849        memcpy(addr, KERNEL_START, KERNEL_SIZE);
    4950       
  • arch/ppc32/loader/main.h

    r91aba7f r75a3095  
    3232extern int _binary_____________kernel_kernel_bin_start;
    3333extern int _binary_____________kernel_kernel_bin_end;
     34extern void start(void);
    3435extern void bootstrap(void);
    3536
  • arch/ppc32/loader/spr.h

    r91aba7f r75a3095  
    3030#define __SPR_H__
    3131
    32 #define MSR_DR (1 << 27)
    33 #define MSR_IR (1 << 26)
     32#define MSR_DR (1 << 4)
     33#define MSR_IR (1 << 5)
    3434
    3535#define SPRN_SRR0  0x1a
Note: See TracChangeset for help on using the changeset viewer.