6 /* 这里是我们的高半核初始化代码段和数据段 */
7 .boot.text BLOCK(4K) : {
12 .boot.bss BLOCK(4K) : {
16 .boot.data BLOCK(4K) : {
20 .boot.rodata BLOCK(4K) : {
24 .boot.bss BLOCK(4K) : {
27 __kexec_boot_end = ALIGN(4K);
29 /* ---- boot end ---- */
31 /* ---- kernel start ---- */
36 .text BLOCK(4K) : AT ( ADDR(.text) - 0xC0000000 ) {
38 PROVIDE(__kexec_text_start = .);
42 PROVIDE(__kexec_text_end = .);
45 .data BLOCK(4K) : AT ( ADDR(.data) - 0xC0000000 ) {
49 .rodata BLOCK(4K) : AT ( ADDR(.rodata) - 0xC0000000 ) {
53 .kpg BLOCK(4K) : AT ( ADDR(.kpg) - 0xC0000000 ) {
59 /* for generated array, we align to address line size */
61 .lga BLOCK(4K) : AT ( ADDR(.lga) - 0xC0000000 ) {
62 PROVIDE(__lga_twiplugin_inits_start = .);
64 KEEP(*(.lga.twiplugin_inits));
66 PROVIDE(__lga_twiplugin_inits_end = .);
70 /* align to 8 bytes, so it can cover both 32 and 64 bits address line*/
73 PROVIDE(__lga_devdefs_start = .);
75 KEEP(*(.lga.devdefs));
77 PROVIDE(__lga_devdefs_end = .);
83 PROVIDE(__lga_dev_ld_kboot_start = .);
85 KEEP(*(.lga.devdefs.ld_kboot));
87 PROVIDE(__lga_dev_ld_kboot_end = .);
93 PROVIDE(__lga_dev_ld_sysconf_start = .);
95 KEEP(*(.lga.devdefs.ld_sysconf));
97 PROVIDE(__lga_dev_ld_sysconf_end = .);
103 PROVIDE(__lga_dev_ld_timedev_start = .);
105 KEEP(*(.lga.devdefs.ld_timedev));
107 PROVIDE(__lga_dev_ld_timedev_end = .);
113 PROVIDE(__lga_dev_ld_post_start = .);
115 KEEP(*(.lga.devdefs.ld_post));
117 PROVIDE(__lga_dev_ld_post_end = .);
123 PROVIDE(__lga_fs_start = .);
127 PROVIDE(__lga_fs_end = .);
133 PROVIDE(__lga_lunainit_call_on_boot_start = .);
135 KEEP(*(.lga.lunainit.c_boot));
137 PROVIDE(__lga_lunainit_call_on_boot_end = .);
143 PROVIDE(__lga_lunainit_call_on_postboot_start = .);
145 KEEP(*(.lga.lunainit.c_postboot));
147 PROVIDE(__lga_lunainit_call_on_postboot_end = .);
151 .bss BLOCK(4K) : AT ( ADDR(.bss) - 0xC0000000 ) {
155 __kexec_end = ALIGN(4K);