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

TOMOYO Linux Cross Reference
Linux/arch/mips/rb532/setup.c

Version: ~ [ linux-5.9 ] ~ [ linux-5.8.14 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.70 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.150 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.200 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.238 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.238 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.140 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.85 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ 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.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * setup.c - boot time setup code
  3  */
  4 
  5 #include <linux/init.h>
  6 #include <linux/export.h>
  7 
  8 #include <asm/bootinfo.h>
  9 #include <asm/reboot.h>
 10 #include <asm/time.h>
 11 #include <linux/ioport.h>
 12 
 13 #include <asm/mach-rc32434/rb.h>
 14 #include <asm/mach-rc32434/pci.h>
 15 
 16 struct pci_reg __iomem *pci_reg;
 17 EXPORT_SYMBOL(pci_reg);
 18 
 19 static struct resource pci0_res[] = {
 20         {
 21                 .name = "pci_reg0",
 22                 .start = PCI0_BASE_ADDR,
 23                 .end = PCI0_BASE_ADDR + sizeof(struct pci_reg),
 24                 .flags = IORESOURCE_MEM,
 25         }
 26 };
 27 
 28 static void rb_machine_restart(char *command)
 29 {
 30         /* just jump to the reset vector */
 31         writel(0x80000001, IDT434_REG_BASE + RST);
 32         ((void (*)(void)) KSEG1ADDR(0x1FC00000u))();
 33 }
 34 
 35 static void rb_machine_halt(void)
 36 {
 37         for (;;)
 38                 continue;
 39 }
 40 
 41 void __init plat_mem_setup(void)
 42 {
 43         u32 val;
 44 
 45         _machine_restart = rb_machine_restart;
 46         _machine_halt = rb_machine_halt;
 47         pm_power_off = rb_machine_halt;
 48 
 49         set_io_port_base(KSEG1);
 50 
 51         pci_reg = ioremap_nocache(pci0_res[0].start,
 52                                 pci0_res[0].end - pci0_res[0].start);
 53         if (!pci_reg) {
 54                 printk(KERN_ERR "Could not remap PCI registers\n");
 55                 return;
 56         }
 57 
 58         val = __raw_readl(&pci_reg->pcic);
 59         val &= 0xFFFFFF7;
 60         __raw_writel(val, (void *)&pci_reg->pcic);
 61 
 62 #ifdef CONFIG_PCI
 63         /* Enable PCI interrupts in EPLD Mask register */
 64         *epld_mask = 0x0;
 65         *(epld_mask + 1) = 0x0;
 66 #endif
 67         write_c0_wired(0);
 68 }
 69 
 70 const char *get_system_type(void)
 71 {
 72         switch (mips_machtype) {
 73         case MACH_MIKROTIK_RB532A:
 74                 return "Mikrotik RB532A";
 75                 break;
 76         default:
 77                 return "Mikrotik RB532";
 78                 break;
 79         }
 80 }
 81 

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

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | 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.

osdn.jp