limine/common/linker_bios.ld.in
mintsuki c0fd295cf4 serial: Add baudrate setting for BIOS
Co-authored-by: Bryce Lanham <blanham@gmail.com>
2024-02-08 09:30:59 +01:00

109 lines
2.0 KiB
Plaintext

OUTPUT_FORMAT(elf32-i386)
OUTPUT_ARCH(i386)
ENTRY(_start)
PHDRS
{
text_s2 PT_LOAD FLAGS((1 << 0) | (1 << 2)) ;
rodata_s2 PT_LOAD FLAGS((1 << 2)) ;
data_s2 PT_LOAD FLAGS((1 << 1) | (1 << 2)) ;
text_s3 PT_LOAD FLAGS((1 << 0) | (1 << 2)) ;
rodata_s3 PT_LOAD FLAGS((1 << 2)) ;
data_s3 PT_LOAD FLAGS((1 << 1) | (1 << 2)) ;
}
SECTIONS
{
. = 0xf000;
.text.stage2 : {
*(.entry)
*(.realmode)
*.s2.o(.text .text.*)
} :text_s2
.rodata.stage2 : {
*.s2.o(.rodata .rodata.*)
build_id_s2 = .;
KEEP(*build-id.s2.o(*))
#ifdef LINKER_STAGE2ONLY
/* stage2 missing symbols overrides */
stage2_map = .;
stage3_common = .;
build_id_s3 = .;
full_map = .;
getchar = .;
menu = .;
flanterm_write = .;
term_backend = .;
term_fallback = .;
term_notready = .;
terms = .;
terms_i = .;
serial_out = .;
stage3_addr = .;
#else
#ifdef LINKER_NOS2MAP
stage2_map = .;
#else
*(.stage2_map)
#endif
#endif
} :rodata_s2
.data.stage2 : {
s2_data_begin = .;
*.s2.o(.data .data.*)
s2_data_end = .;
*.s2.o(.no_unwind)
} :data_s2
#ifndef LINKER_STAGE2ONLY
.text.stage3 : {
stage3_addr = .;
*(.text .text.*)
} :text_s3
.rodata.stage3 : {
*(.rodata .rodata.*)
build_id_s3 = .;
KEEP(*build-id.s3.o(*))
#ifdef LINKER_NOMAP
full_map = .;
#else
*(.full_map)
#endif
} :rodata_s3
.data.stage3 : {
data_begin = .;
*(.data .data.*)
data_end = .;
*(.no_unwind)
} :data_s3
#endif
.note.gnu.build-id : {
*(.note.gnu.build-id)
limine_bios_sys_size = . - 0xf000;
} :data_s3
.bss : {
bss_begin = .;
*(.bss .bss.*)
*(COMMON)
bss_end = .;
} :data_s3
/DISCARD/ : {
*(.eh_frame)
*(.note .note.*)
}
}