~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm/boot/compressed/misc-ep93xx.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 /*
  3  * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
  4  */
  5 
  6 #include <asm/mach-types.h>
  7 
  8 static inline unsigned int __raw_readl(unsigned int ptr)
  9 {
 10         return *((volatile unsigned int *)ptr);
 11 }
 12 
 13 static inline void __raw_writeb(unsigned char value, unsigned int ptr)
 14 {
 15         *((volatile unsigned char *)ptr) = value;
 16 }
 17 
 18 static inline void __raw_writel(unsigned int value, unsigned int ptr)
 19 {
 20         *((volatile unsigned int *)ptr) = value;
 21 }
 22 
 23 /*
 24  * Some bootloaders don't turn off DMA from the ethernet MAC before
 25  * jumping to linux, which means that we might end up with bits of RX
 26  * status and packet data scribbled over the uncompressed kernel image.
 27  * Work around this by resetting the ethernet MAC before we uncompress.
 28  */
 29 #define PHYS_ETH_SELF_CTL               0x80010020
 30 #define ETH_SELF_CTL_RESET              0x00000001
 31 
 32 static inline void ep93xx_ethernet_reset(void)
 33 {
 34         unsigned int v;
 35 
 36         /* Reset the ethernet MAC.  */
 37         v = __raw_readl(PHYS_ETH_SELF_CTL);
 38         __raw_writel(v | ETH_SELF_CTL_RESET, PHYS_ETH_SELF_CTL);
 39 
 40         /* Wait for reset to finish.  */
 41         while (__raw_readl(PHYS_ETH_SELF_CTL) & ETH_SELF_CTL_RESET)
 42                 ;
 43 }
 44 
 45 #define TS72XX_WDT_CONTROL_PHYS_BASE    0x23800000
 46 #define TS72XX_WDT_FEED_PHYS_BASE       0x23c00000
 47 #define TS72XX_WDT_FEED_VAL             0x05
 48 
 49 static inline void __maybe_unused ts72xx_watchdog_disable(void)
 50 {
 51         __raw_writeb(TS72XX_WDT_FEED_VAL, TS72XX_WDT_FEED_PHYS_BASE);
 52         __raw_writeb(0, TS72XX_WDT_CONTROL_PHYS_BASE);
 53 }
 54 
 55 static inline void ep93xx_decomp_setup(void)
 56 {
 57         if (machine_is_ts72xx())
 58                 ts72xx_watchdog_disable();
 59 
 60         if (machine_is_edb9301() ||
 61             machine_is_edb9302() ||
 62             machine_is_edb9302a() ||
 63             machine_is_edb9302a() ||
 64             machine_is_edb9307() ||
 65             machine_is_edb9307a() ||
 66             machine_is_edb9307a() ||
 67             machine_is_edb9312() ||
 68             machine_is_edb9315() ||
 69             machine_is_edb9315a() ||
 70             machine_is_edb9315a() ||
 71             machine_is_ts72xx() ||
 72             machine_is_bk3() ||
 73             machine_is_vision_ep9307())
 74                 ep93xx_ethernet_reset();
 75 }
 76 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php