xref: /openbmc/linux/arch/x86/boot/setup.ld (revision 96ae6ea0)
196ae6ea0SThomas Gleixner/*
296ae6ea0SThomas Gleixner * setup.ld
396ae6ea0SThomas Gleixner *
496ae6ea0SThomas Gleixner * Linker script for the i386 setup code
596ae6ea0SThomas Gleixner */
696ae6ea0SThomas GleixnerOUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
796ae6ea0SThomas GleixnerOUTPUT_ARCH(i386)
896ae6ea0SThomas GleixnerENTRY(_start)
996ae6ea0SThomas Gleixner
1096ae6ea0SThomas GleixnerSECTIONS
1196ae6ea0SThomas Gleixner{
1296ae6ea0SThomas Gleixner	. = 0;
1396ae6ea0SThomas Gleixner	.bstext		: { *(.bstext) }
1496ae6ea0SThomas Gleixner	.bsdata		: { *(.bsdata) }
1596ae6ea0SThomas Gleixner
1696ae6ea0SThomas Gleixner	. = 497;
1796ae6ea0SThomas Gleixner	.header		: { *(.header) }
1896ae6ea0SThomas Gleixner	.inittext	: { *(.inittext) }
1996ae6ea0SThomas Gleixner	.initdata	: { *(.initdata) }
2096ae6ea0SThomas Gleixner	.text		: { *(.text*) }
2196ae6ea0SThomas Gleixner
2296ae6ea0SThomas Gleixner	. = ALIGN(16);
2396ae6ea0SThomas Gleixner	.rodata		: { *(.rodata*) }
2496ae6ea0SThomas Gleixner
2596ae6ea0SThomas Gleixner	.videocards	: {
2696ae6ea0SThomas Gleixner		video_cards = .;
2796ae6ea0SThomas Gleixner		*(.videocards)
2896ae6ea0SThomas Gleixner		video_cards_end = .;
2996ae6ea0SThomas Gleixner	}
3096ae6ea0SThomas Gleixner
3196ae6ea0SThomas Gleixner	. = ALIGN(16);
3296ae6ea0SThomas Gleixner	.data		: { *(.data*) }
3396ae6ea0SThomas Gleixner
3496ae6ea0SThomas Gleixner	.signature	: {
3596ae6ea0SThomas Gleixner		setup_sig = .;
3696ae6ea0SThomas Gleixner		LONG(0x5a5aaa55)
3796ae6ea0SThomas Gleixner	}
3896ae6ea0SThomas Gleixner
3996ae6ea0SThomas Gleixner
4096ae6ea0SThomas Gleixner	. = ALIGN(16);
4196ae6ea0SThomas Gleixner	.bss		:
4296ae6ea0SThomas Gleixner	{
4396ae6ea0SThomas Gleixner		__bss_start = .;
4496ae6ea0SThomas Gleixner		*(.bss)
4596ae6ea0SThomas Gleixner		__bss_end = .;
4696ae6ea0SThomas Gleixner	}
4796ae6ea0SThomas Gleixner	. = ALIGN(16);
4896ae6ea0SThomas Gleixner	_end = .;
4996ae6ea0SThomas Gleixner
5096ae6ea0SThomas Gleixner	/DISCARD/ : { *(.note*) }
5196ae6ea0SThomas Gleixner
5296ae6ea0SThomas Gleixner	. = ASSERT(_end <= 0x8000, "Setup too big!");
5396ae6ea0SThomas Gleixner	. = ASSERT(hdr == 0x1f1, "The setup header has the wrong offset!");
5496ae6ea0SThomas Gleixner}
55