projects
/
coreboot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move C labels to start-of-line
[coreboot.git]
/
src
/
boot
/
selfboot.c
diff --git
a/src/boot/selfboot.c
b/src/boot/selfboot.c
index fe566539232b5518a41bc314e6400d56736aa1a5..99b1493ed7c39d0d6ed3db78a7845bb6bf41ed5c 100644
(file)
--- a/
src/boot/selfboot.c
+++ b/
src/boot/selfboot.c
@@
-45,8
+45,6
@@
static const unsigned long lb_end = (unsigned long)&_eram_seg;
struct segment {
struct segment *next;
struct segment *prev;
struct segment {
struct segment *next;
struct segment *prev;
- struct segment *phdr_next;
- struct segment *phdr_prev;
unsigned long s_dstaddr;
unsigned long s_srcaddr;
unsigned long s_memsz;
unsigned long s_dstaddr;
unsigned long s_srcaddr;
unsigned long s_memsz;
@@
-226,11
+224,6
@@
static int relocate_segment(unsigned long buffer, struct segment *seg)
new->prev = seg->prev;
seg->prev->next = new;
seg->prev = new;
new->prev = seg->prev;
seg->prev->next = new;
seg->prev = new;
- /* Order by original program header order */
- new->phdr_next = seg;
- new->phdr_prev = seg->phdr_prev;
- seg->phdr_prev->phdr_next = new;
- seg->phdr_prev = new;
/* compute the new value of start */
start = seg->s_dstaddr;
/* compute the new value of start */
start = seg->s_dstaddr;
@@
-266,11
+259,6
@@
static int relocate_segment(unsigned long buffer, struct segment *seg)
new->prev = seg;
seg->next->prev = new;
seg->next = new;
new->prev = seg;
seg->next->prev = new;
seg->next = new;
- /* Order by original program header order */
- new->phdr_next = seg->phdr_next;
- new->phdr_prev = seg;
- seg->phdr_next->phdr_prev = new;
- seg->phdr_next = new;
printk(BIOS_SPEW, " late: [0x%016lx, 0x%016lx, 0x%016lx)\n",
new->s_dstaddr,
printk(BIOS_SPEW, " late: [0x%016lx, 0x%016lx, 0x%016lx)\n",
new->s_dstaddr,
@@
-304,7
+292,6
@@
static int build_self_segment_list(
struct segment *ptr;
struct cbfs_payload_segment *segment, *first_segment;
memset(head, 0, sizeof(*head));
struct segment *ptr;
struct cbfs_payload_segment *segment, *first_segment;
memset(head, 0, sizeof(*head));
- head->phdr_next = head->phdr_prev = head;
head->next = head->prev = head;
first_segment = segment = &payload->segments;
head->next = head->prev = head;
first_segment = segment = &payload->segments;
@@
-367,9
+354,10
@@
static int build_self_segment_list(
return -1;
}
return -1;
}
+ /* We have found another CODE, DATA or BSS segment */
segment++;
segment++;
- /
/ FIXME: Explain what this is
+ /
* Find place where to insert our segment */
for(ptr = head->next; ptr != head; ptr = ptr->next) {
if (new->s_srcaddr < ntohll(segment->load_addr))
break;
for(ptr = head->next; ptr != head; ptr = ptr->next) {
if (new->s_srcaddr < ntohll(segment->load_addr))
break;
@@
-380,12
+368,6
@@
static int build_self_segment_list(
new->prev = ptr->prev;
ptr->prev->next = new;
ptr->prev = new;
new->prev = ptr->prev;
ptr->prev->next = new;
ptr->prev = new;
-
- /* Order by original program header order */
- new->phdr_next = head;
- new->phdr_prev = head->phdr_prev;
- head->phdr_prev->phdr_next = new;
- head->phdr_prev = new;
}
return 1;
}
return 1;
@@
-400,7
+382,8
@@
static int load_self_segments(
unsigned long bounce_high = lb_end;
for(ptr = head->next; ptr != head; ptr = ptr->next) {
unsigned long bounce_high = lb_end;
for(ptr = head->next; ptr != head; ptr = ptr->next) {
- if (!overlaps_coreboot(ptr)) continue;
+ if (!overlaps_coreboot(ptr))
+ continue;
if (ptr->s_dstaddr + ptr->s_memsz > bounce_high)
bounce_high = ptr->s_dstaddr + ptr->s_memsz;
}
if (ptr->s_dstaddr + ptr->s_memsz > bounce_high)
bounce_high = ptr->s_dstaddr + ptr->s_memsz;
}
@@
-528,7
+511,7
@@
static int selfboot(struct lb_memory *mem, struct cbfs_payload *payload)
jmp_to_elf_entry((void*)entry, bounce_buffer, bounce_size);
return 1;
jmp_to_elf_entry((void*)entry, bounce_buffer, bounce_size);
return 1;
-
out:
+out:
return 0;
}
return 0;
}