arch/mips/pic32/common/reset.c
Source file repositories/reference/linux-study-clean/arch/mips/pic32/common/reset.c
File Facts
- System
- Linux kernel
- Corpus path
arch/mips/pic32/common/reset.c- Extension
.c- Size
- 1000 bytes
- Lines
- 56
- Domain
- Architecture Layer
- Bucket
- arch/mips
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
Dependency Surface
linux/init.hlinux/io.hlinux/platform_data/pic32.hlinux/pm.hasm/reboot.h
Detected Declarations
function Copyrightfunction pic32_machine_restartfunction pic32_machine_haltfunction mips_reboot_setup
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-only
/*
* Joshua Henderson <joshua.henderson@microchip.com>
* Copyright (C) 2015 Microchip Technology Inc. All rights reserved.
*/
#include <linux/init.h>
#include <linux/io.h>
#include <linux/platform_data/pic32.h>
#include <linux/pm.h>
#include <asm/reboot.h>
#define PIC32_RSWRST 0x10
static void pic32_halt(void)
{
while (1) {
__asm__(".set push;\n"
".set arch=r4000;\n"
"wait;\n"
".set pop;\n"
);
}
}
static void pic32_machine_restart(char *command)
{
void __iomem *reg =
ioremap(PIC32_BASE_RESET + PIC32_RSWRST, sizeof(u32));
pic32_syskey_unlock();
/* magic write/read */
__raw_writel(1, reg);
(void)__raw_readl(reg);
pic32_halt();
}
static void pic32_machine_halt(void)
{
local_irq_disable();
pic32_halt();
}
static int __init mips_reboot_setup(void)
{
_machine_restart = pic32_machine_restart;
_machine_halt = pic32_machine_halt;
pm_power_off = pic32_machine_halt;
return 0;
}
arch_initcall(mips_reboot_setup);
Annotation
- Immediate include surface: `linux/init.h`, `linux/io.h`, `linux/platform_data/pic32.h`, `linux/pm.h`, `asm/reboot.h`.
- Detected declarations: `function Copyright`, `function pic32_machine_restart`, `function pic32_machine_halt`, `function mips_reboot_setup`.
- Atlas domain: Architecture Layer / arch/mips.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.