arch/arm/boot/compressed/misc-ep93xx.h
Source file repositories/reference/linux-study-clean/arch/arm/boot/compressed/misc-ep93xx.h
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/boot/compressed/misc-ep93xx.h- Extension
.h- Size
- 2756 bytes
- Lines
- 88
- Domain
- Architecture Layer
- Bucket
- arch/arm
- 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
- No C-style include directives detected by the generator.
Detected Declarations
function Copyrightfunction __raw_writebfunction __raw_writelfunction ep93xx_ethernet_resetfunction ts72xx_watchdog_disablefunction ep93xx_decomp_setup
Annotated Snippet
#define machine_is_bk3() (__machine_arch_type == 1880)
#define machine_is_edb9301() (__machine_arch_type == 462)
#define machine_is_edb9302a() (__machine_arch_type == 1127)
#define machine_is_edb9302() (__machine_arch_type == 538)
#define machine_is_edb9307a() (__machine_arch_type == 1128)
#define machine_is_edb9307() (__machine_arch_type == 607)
#define machine_is_edb9312() (__machine_arch_type == 451)
#define machine_is_edb9315a() (__machine_arch_type == 772)
#define machine_is_edb9315() (__machine_arch_type == 463)
#define machine_is_ts72xx() (__machine_arch_type == 673)
#define machine_is_vision_ep9307() (__machine_arch_type == 1578)
static inline unsigned int __raw_readl(unsigned int ptr)
{
return *((volatile unsigned int *)ptr);
}
static inline void __raw_writeb(unsigned char value, unsigned int ptr)
{
*((volatile unsigned char *)ptr) = value;
}
static inline void __raw_writel(unsigned int value, unsigned int ptr)
{
*((volatile unsigned int *)ptr) = value;
}
/*
* Some bootloaders don't turn off DMA from the ethernet MAC before
* jumping to linux, which means that we might end up with bits of RX
* status and packet data scribbled over the uncompressed kernel image.
* Work around this by resetting the ethernet MAC before we uncompress.
*/
#define PHYS_ETH_SELF_CTL 0x80010020
#define ETH_SELF_CTL_RESET 0x00000001
static inline void ep93xx_ethernet_reset(void)
{
unsigned int v;
/* Reset the ethernet MAC. */
v = __raw_readl(PHYS_ETH_SELF_CTL);
__raw_writel(v | ETH_SELF_CTL_RESET, PHYS_ETH_SELF_CTL);
/* Wait for reset to finish. */
while (__raw_readl(PHYS_ETH_SELF_CTL) & ETH_SELF_CTL_RESET)
;
}
#define TS72XX_WDT_CONTROL_PHYS_BASE 0x23800000
#define TS72XX_WDT_FEED_PHYS_BASE 0x23c00000
#define TS72XX_WDT_FEED_VAL 0x05
static inline void __maybe_unused ts72xx_watchdog_disable(void)
{
__raw_writeb(TS72XX_WDT_FEED_VAL, TS72XX_WDT_FEED_PHYS_BASE);
__raw_writeb(0, TS72XX_WDT_CONTROL_PHYS_BASE);
}
static inline void ep93xx_decomp_setup(void)
{
if (machine_is_ts72xx())
ts72xx_watchdog_disable();
if (machine_is_edb9301() ||
machine_is_edb9302() ||
machine_is_edb9302a() ||
machine_is_edb9307() ||
machine_is_edb9307a() ||
machine_is_edb9312() ||
machine_is_edb9315() ||
machine_is_edb9315a() ||
machine_is_ts72xx() ||
machine_is_bk3() ||
machine_is_vision_ep9307())
ep93xx_ethernet_reset();
}
Annotation
- Detected declarations: `function Copyright`, `function __raw_writeb`, `function __raw_writel`, `function ep93xx_ethernet_reset`, `function ts72xx_watchdog_disable`, `function ep93xx_decomp_setup`.
- Atlas domain: Architecture Layer / arch/arm.
- 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.