162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * realmode.lds.S 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Linker script for the real-mode code 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci#include <asm/page_types.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#undef i386 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ciOUTPUT_FORMAT("elf32-i386") 1362306a36Sopenharmony_ciOUTPUT_ARCH(i386) 1462306a36Sopenharmony_ciENTRY(pa_text_start) 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ciSECTIONS 1762306a36Sopenharmony_ci{ 1862306a36Sopenharmony_ci real_mode_seg = 0; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci . = 0; 2162306a36Sopenharmony_ci .header : { 2262306a36Sopenharmony_ci pa_real_mode_base = .; 2362306a36Sopenharmony_ci *(.header) 2462306a36Sopenharmony_ci } 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci . = ALIGN(4); 2762306a36Sopenharmony_ci .rodata : { 2862306a36Sopenharmony_ci *(.rodata) 2962306a36Sopenharmony_ci *(.rodata.*) 3062306a36Sopenharmony_ci . = ALIGN(16); 3162306a36Sopenharmony_ci video_cards = .; 3262306a36Sopenharmony_ci *(.videocards) 3362306a36Sopenharmony_ci video_cards_end = .; 3462306a36Sopenharmony_ci } 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci . = ALIGN(PAGE_SIZE); 3762306a36Sopenharmony_ci pa_text_start = .; 3862306a36Sopenharmony_ci .text : { 3962306a36Sopenharmony_ci *(.text) 4062306a36Sopenharmony_ci *(.text.*) 4162306a36Sopenharmony_ci } 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci .text32 : { 4462306a36Sopenharmony_ci *(.text32) 4562306a36Sopenharmony_ci *(.text32.*) 4662306a36Sopenharmony_ci } 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci .text64 : { 4962306a36Sopenharmony_ci *(.text64) 5062306a36Sopenharmony_ci *(.text64.*) 5162306a36Sopenharmony_ci } 5262306a36Sopenharmony_ci pa_ro_end = .; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci . = ALIGN(PAGE_SIZE); 5562306a36Sopenharmony_ci .data : { 5662306a36Sopenharmony_ci *(.data) 5762306a36Sopenharmony_ci *(.data.*) 5862306a36Sopenharmony_ci } 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci . = ALIGN(128); 6162306a36Sopenharmony_ci .bss : { 6262306a36Sopenharmony_ci *(.bss*) 6362306a36Sopenharmony_ci } 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci /* End signature for integrity checking */ 6662306a36Sopenharmony_ci . = ALIGN(4); 6762306a36Sopenharmony_ci .signature : { 6862306a36Sopenharmony_ci *(.signature) 6962306a36Sopenharmony_ci } 7062306a36Sopenharmony_ci 7162306a36Sopenharmony_ci /DISCARD/ : { 7262306a36Sopenharmony_ci *(.note*) 7362306a36Sopenharmony_ci *(.debug*) 7462306a36Sopenharmony_ci } 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci#include "pasyms.h" 7762306a36Sopenharmony_ci} 78