Rev 3399 | Rev 3672 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3399 | Rev 3408 | ||
---|---|---|---|
Line 34... | Line 34... | ||
34 | #include <balloc.h> |
34 | #include <balloc.h> |
35 | #include <ofw.h> |
35 | #include <ofw.h> |
36 | #include <ofw_tree.h> |
36 | #include <ofw_tree.h> |
37 | #include "ofwarch.h" |
37 | #include "ofwarch.h" |
38 | #include <align.h> |
38 | #include <align.h> |
- | 39 | #include <string.h> |
|
39 | 40 | ||
40 | bootinfo_t bootinfo; |
41 | bootinfo_t bootinfo; |
41 | component_t components[COMPONENTS]; |
42 | component_t components[COMPONENTS]; |
42 | 43 | ||
43 | char *release = RELEASE; |
44 | char *release = RELEASE; |
Line 157... | Line 158... | ||
157 | * Claim and map the whole ramdisk as it may exceed the area |
158 | * Claim and map the whole ramdisk as it may exceed the area |
158 | * given to us by SILO. |
159 | * given to us by SILO. |
159 | */ |
160 | */ |
160 | (void) ofw_claim_phys(base + top, silo_ramdisk_size); |
161 | (void) ofw_claim_phys(base + top, silo_ramdisk_size); |
161 | (void) ofw_map(base + top, base + top, silo_ramdisk_size, -1); |
162 | (void) ofw_map(base + top, base + top, silo_ramdisk_size, -1); |
162 | /* |
- | |
163 | * FIXME If the source and destination overlap, it may be |
- | |
164 | * desirable to copy in reverse order, depending on how the two |
- | |
165 | * regions overlap. |
- | |
166 | */ |
- | |
167 | memcpy(base + top, (void *)((uintptr_t)silo_ramdisk_image), |
163 | memmove(base + top, (void *)((uintptr_t)silo_ramdisk_image), |
168 | silo_ramdisk_size); |
164 | silo_ramdisk_size); |
169 | printf("done.\n"); |
165 | printf("done.\n"); |
170 | top += silo_ramdisk_size; |
166 | top += silo_ramdisk_size; |
171 | } |
167 | } |
172 | skip_ramdisk: |
168 | skip_ramdisk: |