📄 head.s
字号:
/* * Startup code for use with the u-boot bootloader. * * Copyright (C) 2004-2006 Atmel Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */#include <asm/setup.h> /* * The kernel is loaded where we want it to be and all caches * have just been flushed. We get two parameters from u-boot: * * r12 contains a magic number (ATAG_MAGIC) * r11 points to a tag table providing information about * the system. */ .section .init.text,"ax" .global _start_start: /* Check if the boot loader actually provided a tag table */ lddpc r0, magic_number cp.w r12, r0 brne no_tag_table /* Initialize .bss */ lddpc r2, bss_start_addr lddpc r3, end_addr mov r0, 0 mov r1, 01: st.d r2++, r0 cp r2, r3 brlo 1b /* * Save the tag table address for later use. This must be done * _after_ .bss has been initialized... */ lddpc r0, tag_table_addr st.w r0[0], r11 /* Jump to loader-independent setup code */ rjmp kernel_entry .align 2magic_number: .long ATAG_MAGICtag_table_addr: .long bootloader_tagsbss_start_addr: .long __bss_startend_addr: .long _endno_tag_table: sub r12, pc, (. - 2f) bral panic2: .asciz "Boot loader didn't provide correct magic number\n"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -