diff --git a/src/lib/rmodule.ld b/src/lib/rmodule.ld
index 0cdbb2f..9222f3b 100644
--- a/src/lib/rmodule.ld
+++ b/src/lib/rmodule.ld
@@ -1,19 +1,15 @@
-OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
-OUTPUT_ARCH(i386)
-
 /*
  * This linker script is used to link rmodules (relocatable modules).  It
  * links at zero so that relocation fixups are easy when placing the binaries
  * anywhere in the address space.
  *
  * NOTE:  The program's loadable sections (text, module_params, and data) are
- * packed into the flat blob using the AT directive. The rmodule loader assumes
- * the entire program resides in one contiguous address space. Therefore,
- * alignment for a given section (if required) needs to be done at the end of
- * the preceeding section. e.g. if the data section should be aligned to an 8
- * byte address the text section should have ALIGN(8) at the end of its section.
- * Otherwise there won't be a consistent mapping between the flat blob and the
- * loaded program.
+ * packed into the flat blob. The rmodule loader assumes the entire program
+ * resides in one contiguous address space. Therefore, alignment for a given
+ * section (if required) needs to be done at the end of the preceeding section.
+ * e.g. if the data section should be aligned to an 8 byte address the text
+ * section should have ALIGN(8) at the end of its section.  Otherwise there
+ * won't be a consistent mapping between the flat blob and the loaded program.
  */
 
 BASE_ADDRESS = 0x00000;
@@ -22,21 +18,9 @@
 {
 	. = BASE_ADDRESS;
 
-	.header : AT (0) {
-		*(.module_header);
-		. = ALIGN(8);
-	}
-
-	/* Align the start of the module program to a large enough alignment
-	 * so that any data in the program with an alignement property is met.
-	 * Essentially, this alignment is the maximum possible data alignment
-	 * property a program can have. */
-	. = ALIGN(4096);
-	_module_link_start_addr = .;
-	_payload_begin_offset  = LOADADDR(.header) + SIZEOF(.header);
-
-	.payload : AT (_payload_begin_offset) {
+	.payload :  {
 		/* C code of the module. */
+		_ram_seg = .;
 		*(.textfirst);
 		*(.text);
 		*(.text.*);
@@ -88,9 +72,6 @@
 		. = ALIGN(8);
 	}
 
-	/* _payload_end marks the end of the module's code and data. */
-	_payload_end_offset = LOADADDR(.payload) + SIZEOF(.payload);
-
 	.bss (NOLOAD) : {
 		/* C uninitialized data of the module. */
 		_bss = .;
@@ -107,38 +88,11 @@
 		_heap = .;
 		. = . + __heap_size;
 		_eheap = .;
+		_eram_seg = .;
 	}
 
-	/* _module_program_size is the total memory used by the program. */
-	_module_program_size = _eheap - _module_link_start_addr;
-
-	/* coreboot's ramstage uses the _ram_seg and _eram_seg symbols
-	 * for determining its load location. Provide those to help it out.
-	 * It's a nop for any non-ramstage rmodule. */
-	_ram_seg = _module_link_start_addr;
-	_eram_seg = _module_link_start_addr + _module_program_size;
-
-	/* The relocation information is linked on top of the BSS section
-	 * because the BSS section takes no space on disk. The relocation data
-	 * resides directly after the data section in the flat binary. */
-	.relocations ADDR(.bss) : AT (_payload_end_offset) {
-		*(.rel.*);
-	}
-	_relocations_begin_offset = LOADADDR(.relocations);
-	_relocations_end_offset  = _relocations_begin_offset +
-	                           SIZEOF(.relocations);
-
 	/DISCARD/ : {
-		/* Drop unnecessary sections. Since these modules are linked
-		 * as shared objects there are dynamic sections. These sections
-		 * aren't needed so drop them. */
-		*(.comment);
-		*(.note);
-		*(.note.*);
-		*(.dynamic);
-		*(.dynsym);
-		*(.dynstr);
-		*(.gnu.hash);
+		/* Drop unnecessary sections. */
 		*(.eh_frame);
 	}
 }
