!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/src/linux-headers-5.4.0-204/arch/mips/include/asm/mach-malta/   drwxr-xr-x
Free 13.21 GB of 57.97 GB (22.79%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     kernel-entry-init.h (3.46 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/*
 * This file is subject to the terms and conditions of the GNU General Public
 * License.  See the file "COPYING" in the main directory of this archive
 * for more details.
 *
 * Chris Dearman (chris@mips.com)
 * Copyright (C) 2007 Mips Technologies, Inc.
 * Copyright (C) 2014 Imagination Technologies Ltd.
 */
#ifndef __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H
#define __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H

#include <asm/regdef.h>
#include <asm/mipsregs.h>

    /*
     * Prepare segments for EVA boot:
     *
     * This is in case the processor boots in legacy configuration
     * (SI_EVAReset is de-asserted and CONFIG5.K == 0)
     *
     * ========================= Mappings =============================
     * Virtual memory           Physical memory           Mapping
     * 0x00000000 - 0x7fffffff  0x80000000 - 0xfffffffff   MUSUK (kuseg)
     *                          Flat 2GB physical memory
     *
     * 0x80000000 - 0x9fffffff  0x00000000 - 0x1ffffffff   MUSUK (kseg0)
     * 0xa0000000 - 0xbf000000  0x00000000 - 0x1ffffffff   MUSUK (kseg1)
     * 0xc0000000 - 0xdfffffff             -                 MK  (kseg2)
     * 0xe0000000 - 0xffffffff             -                 MK  (kseg3)
     *
     *
     * Lowmem is expanded to 2GB
     *
     * The following code uses the t0, t1, t2 and ra registers without
     * previously preserving them.
     *
     */
    .macro    platform_eva_init

    .set    push
    .set    reorder
    /*
     * Get Config.K0 value and use it to program
     * the segmentation registers
     */
    mfc0    t1, CP0_CONFIG
    andi    t1, 0x7 /* CCA */
    move    t2, t1
    ins    t2, t1, 16, 3
    /* SegCtl0 */
    li      t0, ((MIPS_SEGCFG_MK << MIPS_SEGCFG_AM_SHIFT) |        \
        (0 << MIPS_SEGCFG_PA_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) |                \
        (((MIPS_SEGCFG_MK << MIPS_SEGCFG_AM_SHIFT) |        \
        (0 << MIPS_SEGCFG_PA_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
    or    t0, t2
    mtc0    t0, CP0_SEGCTL0

    /* SegCtl1 */
    li      t0, ((MIPS_SEGCFG_MUSUK << MIPS_SEGCFG_AM_SHIFT) |    \
        (0 << MIPS_SEGCFG_PA_SHIFT) |                \
        (2 << MIPS_SEGCFG_C_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) |                \
        (((MIPS_SEGCFG_MUSUK << MIPS_SEGCFG_AM_SHIFT) |        \
        (0 << MIPS_SEGCFG_PA_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
    ins    t0, t1, 16, 3
    mtc0    t0, CP0_SEGCTL1

    /* SegCtl2 */
    li    t0, ((MIPS_SEGCFG_MUSUK << MIPS_SEGCFG_AM_SHIFT) |    \
        (6 << MIPS_SEGCFG_PA_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) |                \
        (((MIPS_SEGCFG_MUSUK << MIPS_SEGCFG_AM_SHIFT) |        \
        (4 << MIPS_SEGCFG_PA_SHIFT) |                \
        (1 << MIPS_SEGCFG_EU_SHIFT)) << 16)
    or    t0, t2
    mtc0    t0, CP0_SEGCTL2

    jal    mips_ihb
    mfc0    t0, $16, 5
    li      t2, 0x40000000      /* K bit */
    or      t0, t0, t2
    mtc0    t0, $16, 5
    sync
    jal    mips_ihb

    .set    pop
    .endm

    .macro    kernel_entry_setup

#ifdef CONFIG_EVA
    sync
    ehb

    mfc0    t1, CP0_CONFIG
    bgez    t1, 9f
    mfc0    t0, CP0_CONFIG, 1
    bgez    t0, 9f
    mfc0    t0, CP0_CONFIG, 2
    bgez    t0, 9f
    mfc0    t0, CP0_CONFIG, 3
    sll     t0, t0, 6   /* SC bit */
    bgez    t0, 9f

    platform_eva_init
    b       0f
9:
    /* Assume we came from YAMON... */
    PTR_LA    v0, 0x9fc00534    /* YAMON print */
    lw    v0, (v0)
    move    a0, zero
    PTR_LA  a1, nonsc_processor
    jal    v0

    PTR_LA    v0, 0x9fc00520    /* YAMON exit */
    lw    v0, (v0)
    li    a0, 1
    jal    v0

1:    b    1b
    nop
    __INITDATA
nonsc_processor:
    .asciz  "EVA kernel requires a MIPS core with Segment Control implemented\n"
    __FINIT
#endif /* CONFIG_EVA */
0:
    .endm

/*
 * Do SMP slave processor setup necessary before we can safely execute C code.
 */
    .macro    smp_slave_setup
#ifdef CONFIG_EVA
    sync
    ehb
    platform_eva_init
#endif
    .endm

#endif /* __ASM_MACH_MIPS_KERNEL_ENTRY_INIT_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0186 ]--