浏览代码

MIPS: u-boot.lds: merge all BSS sections and introduce symbols __bss_[start|end]

These symbols are used in later patches for as addresses for
clearing the BSS area in the relocated U-Boot image.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Daniel Schwierzeck 12 年之前
父节点
当前提交
a52852c5a6
共有 2 个文件被更改,包括 18 次插入5 次删除
  1. 6 5
      arch/mips/cpu/u-boot.lds
  2. 12 0
      arch/mips/include/asm/u-boot-mips.h

+ 6 - 5
arch/mips/cpu/u-boot.lds

@@ -70,13 +70,14 @@ SECTIONS
 	uboot_end_data = .;
 
 	. = ALIGN(4);
-	.sbss : {
-		*(.sbss*)
-	}
-
 	.bss : {
-		*(.bss*)
+		__bss_start = .;
+		*(.sbss.*)
+		*(.bss.*)
+		*(COMMON)
 		. = ALIGN(4);
+		__bss_end = .;
 	}
+
 	uboot_end = .;
 }

+ 12 - 0
arch/mips/include/asm/u-boot-mips.h

@@ -8,4 +8,16 @@
 extern ulong uboot_end_data;
 extern ulong uboot_end;
 
+static inline unsigned long bss_start(void)
+{
+	extern ulong __bss_start;
+	return (unsigned long) &__bss_start;
+}
+
+static inline unsigned long bss_end(void)
+{
+	extern ulong __bss_end;
+	return (unsigned long) &__bss_end;
+}
+
 extern int incaip_set_cpuclk(void);