Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/sh/boot/compressed/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  head_32.S   Sprache: Sparc

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 *  linux/arch/sh/boot/compressed/head.S
 *
 *  Copyright (C) 1999 Stuart Menefy
 *  Copyright (C) 2003 SUGIOKA Toshinobu
 */


.text

#include <asm/page.h>

 .global startup
startup:
 /* Load initial status register */
 mov.l   init_sr, r1
 ldc     r1, sr

 /* Move myself to proper location if necessary */
 mova 1f, r0
 mov.l 1f, r2
 cmp/eq r2, r0
 bt clear_bss
 sub r0, r2
 mov.l bss_start_addr, r0
 mov #0xffffffe0, r1
 and r1, r0   ! align cache line
 mov.l text_start_addr, r3
 mov r0, r1
 sub r2, r1
3:
 mov.l @r1, r4
 mov.l @(4,r1), r5
 mov.l @(8,r1), r6
 mov.l @(12,r1), r7
 mov.l @(16,r1), r8
 mov.l @(20,r1), r9
 mov.l @(24,r1), r10
 mov.l @(28,r1), r11
 mov.l r4, @r0
 mov.l r5, @(4,r0)
 mov.l r6, @(8,r0)
 mov.l r7, @(12,r0)
 mov.l r8, @(16,r0)
 mov.l r9, @(20,r0)
 mov.l r10, @(24,r0)
 mov.l r11, @(28,r0)
#ifdef CONFIG_CPU_SH4
 ocbwb @r0
#endif
 cmp/hi r3, r0
 add #-32, r0
 bt/s 3b
  add #-32, r1
 mov.l 2f, r0
 jmp @r0
  nop

 .align 2
1: .long 1b
2: .long clear_bss
text_start_addr:
 .long startup

 /* Clear BSS */
clear_bss:
 mov.l end_addr, r1
 mov.l bss_start_addr, r2
 mov #0, r0
l1:
 mov.l r0, @-r1
 cmp/eq r1,r2
 bf l1

 /* Set the initial pointer. */
 mov.l init_stack_addr, r0
 mov.l @r0, r15

 /* Decompress the kernel */
 mov.l decompress_kernel_addr, r0
 jsr @r0
 nop

 /* Jump to the start of the decompressed kernel */
 mov.l kernel_start_addr, r0
 jmp @r0
 nop
 
 .align 2
bss_start_addr:
 .long __bss_start
end_addr:
 .long _end
init_sr:
 .long 0x500000F0 /* Privileged mode, Bank=0, Block=1, IMASK=0xF */
kexec_magic:
 .long 0x400000F0 /* magic used by kexec to parse zImage format */
init_stack_addr:
 .long stack_start
decompress_kernel_addr:
 .long decompress_kernel
kernel_start_addr:
#ifdef CONFIG_32BIT
 .long ___pa(_text+PAGE_SIZE)
#else
 .long _text+PAGE_SIZE
#endif

 .align 9
fake_headers_as_bzImage:
 .word 0
 .ascii "HdrS"  ! header signature
 .word 0x0202  ! header version number (>= 0x0105)
    ! or else old loadlin-1.5 will fail)
 .word 0  ! default_switch
 .word 0  ! SETUPSEG
 .word 0x1000
 .word 0  ! pointing to kernel version string
 .byte 0  ! = 0, old one (LILO, Loadlin,
    ! 0xTV: T=0 for LILO
    !       V = version
 .byte 1  ! Load flags bzImage=1
 .word 0x8000  ! size to move, when setup is not
 .long 0x100000 ! 0x100000 = default for big kernel
 .long 0  ! address of loaded ramdisk image
 .long 0  # its size in bytes

Messung V0.5
C=96 H=94 G=94

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.