Rev 1057 | Rev 1222 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1057 | Rev 1132 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | # |
27 | # |
28 | 28 | ||
29 | #include <arch/asm/regname.h> |
29 | #include <arch/asm/regname.h> |
30 | #include <arch/boot/boot.h> |
30 | #include <arch/boot/boot.h> |
31 | #include <arch/boot/memmap.h> |
- | |
32 | 31 | ||
33 | .section K_TEXT_START, "ax" |
32 | .section K_TEXT_START, "ax" |
34 | 33 | ||
35 | .global kernel_image_start |
34 | .global kernel_image_start |
36 | kernel_image_start: |
35 | kernel_image_start: |
Line 38... | Line 37... | ||
38 | # load temporary stack |
37 | # load temporary stack |
39 | 38 | ||
40 | lis sp, end_stack@ha |
39 | lis sp, end_stack@ha |
41 | addi sp, sp, end_stack@l |
40 | addi sp, sp, end_stack@l |
42 | 41 | ||
43 | # r10 contains physical address to memmap_t |
42 | # r3 contains physical address of bootinfo_t |
44 | # from boot loader |
43 | # r4 contains size of bootinfo_t |
45 | 44 | ||
46 | lis r31, 0x80000000@ha |
45 | lis r31, 0x80000000@ha |
47 | addi r31, r31, 0x80000000@l |
46 | addi r31, r31, 0x80000000@l |
48 | 47 | ||
49 | add r3, r3, r31 |
48 | add r3, r3, r31 |
50 | 49 | ||
51 | lis r31, memmap@ha |
50 | lis r31, bootinfo@ha |
52 | addi r31, r31, memmap@l # r31 = memmap |
51 | addi r31, r31, bootinfo@l # r31 = bootinfo |
53 | 52 | ||
54 | lwz r30, 0(r3) # memmap->total |
53 | cmpwi r4, 0 |
55 | stw r30, 0(r31) |
54 | beq bootinfo_end |
56 | 55 | ||
57 | lwzu r30, 4(r3) # memmap->count |
- | |
58 | stwu r30, 4(r31) |
- | |
59 | - | ||
60 | cmpwi r30, 0 |
- | |
61 | beq memmap_end |
- | |
62 | - | ||
63 | mtctr r30 |
- | |
64 | memmap_loop: |
56 | bootinfo_loop: |
65 | - | ||
66 | lwzu r30, 4(r3) # memmap->zones[i].start |
- | |
67 | stwu r30, 4(r31) |
- | |
68 | 57 | ||
69 | lwzu r30, 4(r3) # memmap->zones[i].size |
58 | lwz r30, 0(r3) |
70 | stwu r30, 4(r31) |
59 | stw r30, 0(r31) |
- | 60 | ||
- | 61 | addi r3, r3, 4 |
|
- | 62 | addi r31, r31, 4 |
|
- | 63 | subi r4, r4, 4 |
|
71 | 64 | ||
- | 65 | cmpwi r4, 0 |
|
72 | bdnz memmap_loop |
66 | bgt bootinfo_loop |
- | 67 | ||
73 | memmap_end: |
68 | bootinfo_end: |
74 | 69 | ||
75 | b main_bsp |
70 | b main_bsp |
76 | 71 | ||
77 | .section K_DATA_START, "aw", @progbits |
72 | .section K_DATA_START, "aw", @progbits |
78 | 73 |