18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * realmode.lds.S 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Linker script for the real-mode code 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <asm/page_types.h> 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#undef i386 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ciOUTPUT_FORMAT("elf32-i386") 138c2ecf20Sopenharmony_ciOUTPUT_ARCH(i386) 148c2ecf20Sopenharmony_ciENTRY(pa_text_start) 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciSECTIONS 178c2ecf20Sopenharmony_ci{ 188c2ecf20Sopenharmony_ci real_mode_seg = 0; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci . = 0; 218c2ecf20Sopenharmony_ci .header : { 228c2ecf20Sopenharmony_ci pa_real_mode_base = .; 238c2ecf20Sopenharmony_ci *(.header) 248c2ecf20Sopenharmony_ci } 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci . = ALIGN(4); 278c2ecf20Sopenharmony_ci .rodata : { 288c2ecf20Sopenharmony_ci *(.rodata) 298c2ecf20Sopenharmony_ci *(.rodata.*) 308c2ecf20Sopenharmony_ci . = ALIGN(16); 318c2ecf20Sopenharmony_ci video_cards = .; 328c2ecf20Sopenharmony_ci *(.videocards) 338c2ecf20Sopenharmony_ci video_cards_end = .; 348c2ecf20Sopenharmony_ci } 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci . = ALIGN(PAGE_SIZE); 378c2ecf20Sopenharmony_ci pa_text_start = .; 388c2ecf20Sopenharmony_ci .text : { 398c2ecf20Sopenharmony_ci *(.text) 408c2ecf20Sopenharmony_ci *(.text.*) 418c2ecf20Sopenharmony_ci } 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci .text32 : { 448c2ecf20Sopenharmony_ci *(.text32) 458c2ecf20Sopenharmony_ci *(.text32.*) 468c2ecf20Sopenharmony_ci } 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci .text64 : { 498c2ecf20Sopenharmony_ci *(.text64) 508c2ecf20Sopenharmony_ci *(.text64.*) 518c2ecf20Sopenharmony_ci } 528c2ecf20Sopenharmony_ci pa_ro_end = .; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci . = ALIGN(PAGE_SIZE); 558c2ecf20Sopenharmony_ci .data : { 568c2ecf20Sopenharmony_ci *(.data) 578c2ecf20Sopenharmony_ci *(.data.*) 588c2ecf20Sopenharmony_ci } 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci . = ALIGN(128); 618c2ecf20Sopenharmony_ci .bss : { 628c2ecf20Sopenharmony_ci *(.bss*) 638c2ecf20Sopenharmony_ci } 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci /* End signature for integrity checking */ 668c2ecf20Sopenharmony_ci . = ALIGN(4); 678c2ecf20Sopenharmony_ci .signature : { 688c2ecf20Sopenharmony_ci *(.signature) 698c2ecf20Sopenharmony_ci } 708c2ecf20Sopenharmony_ci 718c2ecf20Sopenharmony_ci /DISCARD/ : { 728c2ecf20Sopenharmony_ci *(.note*) 738c2ecf20Sopenharmony_ci *(.debug*) 748c2ecf20Sopenharmony_ci } 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci#include "pasyms.h" 778c2ecf20Sopenharmony_ci} 78