···22# Makefile for the RTS7751R2D specific parts of the kernel33#4455-obj-y := setup.o io.o irq.o55+obj-y := setup.o irq.o
-302
arch/sh/boards/renesas/rts7751r2d/io.c
···11-/*22- * Copyright (C) 2001 Ian da Silva, Jeremy Siegel33- * Based largely on io_se.c.44- *55- * I/O routine for Renesas Technology sales RTS7751R2D.66- *77- * Initial version only to support LAN access; some88- * placeholder code from io_rts7751r2d.c left in with the99- * expectation of later SuperIO and PCMCIA access.1010- */1111-#include <linux/kernel.h>1212-#include <linux/types.h>1313-#include <linux/pci.h>1414-#include <linux/io.h>1515-#include <asm/rts7751r2d.h>1616-#include <asm/addrspace.h>1717-1818-/*1919- * The 7751R RTS7751R2D uses the built-in PCI controller (PCIC)2020- * of the 7751R processor, and has a SuperIO accessible via the PCI.2121- * The board also includes a PCMCIA controller on its memory bus,2222- * like the other Solution Engine boards.2323- */2424-2525-static inline unsigned long port2adr(unsigned int port)2626-{2727- if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)2828- if (port == 0x3f6)2929- return (PA_AREA5_IO + 0x80c);3030- else3131- return (PA_AREA5_IO + 0x1000 + ((port-0x1f0) << 1));3232- else3333- maybebadio((unsigned long)port);3434-3535- return port;3636-}3737-3838-static inline unsigned long port88796l(unsigned int port, int flag)3939-{4040- unsigned long addr;4141-4242- if (flag)4343- addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1);4444- else4545- addr = PA_AX88796L + ((port - AX88796L_IO_BASE) << 1) + 0x1000;4646-4747- return addr;4848-}4949-5050-/* The 7751R RTS7751R2D seems to have everything hooked */5151-/* up pretty normally (nothing on high-bytes only...) so this */5252-/* shouldn't be needed */5353-static inline int shifted_port(unsigned long port)5454-{5555- /* For IDE registers, value is not shifted */5656- if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)5757- return 0;5858- else5959- return 1;6060-}6161-6262-#if defined(CONFIG_NE2000) || defined(CONFIG_NE2000_MODULE)6363-#define CHECK_AX88796L_PORT(port) \6464- ((port >= AX88796L_IO_BASE) && (port < (AX88796L_IO_BASE+0x20)))6565-#else6666-#define CHECK_AX88796L_PORT(port) (0)6767-#endif6868-6969-/*7070- * General outline: remap really low stuff [eventually] to SuperIO,7171- * stuff in PCI IO space (at or above window at pci.h:PCIBIOS_MIN_IO)7272- * is mapped through the PCI IO window. Stuff with high bits (PXSEG)7373- * should be way beyond the window, and is used w/o translation for7474- * compatibility.7575- */7676-unsigned char rts7751r2d_inb(unsigned long port)7777-{7878- if (CHECK_AX88796L_PORT(port))7979- return (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;8080- else if (PXSEG(port))8181- return *(volatile unsigned char *)port;8282- else if (is_pci_ioaddr(port) || shifted_port(port))8383- return *(volatile unsigned char *)pci_ioaddr(port);8484- else8585- return (*(volatile unsigned short *)port2adr(port) & 0xff);8686-}8787-8888-unsigned char rts7751r2d_inb_p(unsigned long port)8989-{9090- unsigned char v;9191-9292- if (CHECK_AX88796L_PORT(port))9393- v = (*(volatile unsigned short *)port88796l(port, 0)) & 0xff;9494- else if (PXSEG(port))9595- v = *(volatile unsigned char *)port;9696- else if (is_pci_ioaddr(port) || shifted_port(port))9797- v = *(volatile unsigned char *)pci_ioaddr(port);9898- else9999- v = (*(volatile unsigned short *)port2adr(port) & 0xff);100100-101101- ctrl_delay();102102-103103- return v;104104-}105105-106106-unsigned short rts7751r2d_inw(unsigned long port)107107-{108108- if (CHECK_AX88796L_PORT(port))109109- maybebadio(port);110110- else if (PXSEG(port))111111- return *(volatile unsigned short *)port;112112- else if (is_pci_ioaddr(port) || shifted_port(port))113113- return *(volatile unsigned short *)pci_ioaddr(port);114114- else115115- maybebadio(port);116116-117117- return 0;118118-}119119-120120-unsigned int rts7751r2d_inl(unsigned long port)121121-{122122- if (CHECK_AX88796L_PORT(port))123123- maybebadio(port);124124- else if (PXSEG(port))125125- return *(volatile unsigned long *)port;126126- else if (is_pci_ioaddr(port) || shifted_port(port))127127- return *(volatile unsigned long *)pci_ioaddr(port);128128- else129129- maybebadio(port);130130-131131- return 0;132132-}133133-134134-void rts7751r2d_outb(unsigned char value, unsigned long port)135135-{136136- if (CHECK_AX88796L_PORT(port))137137- *((volatile unsigned short *)port88796l(port, 0)) = value;138138- else if (PXSEG(port))139139- *(volatile unsigned char *)port = value;140140- else if (is_pci_ioaddr(port) || shifted_port(port))141141- *(volatile unsigned char *)pci_ioaddr(port) = value;142142- else143143- *(volatile unsigned short *)port2adr(port) = value;144144-}145145-146146-void rts7751r2d_outb_p(unsigned char value, unsigned long port)147147-{148148- if (CHECK_AX88796L_PORT(port))149149- *((volatile unsigned short *)port88796l(port, 0)) = value;150150- else if (PXSEG(port))151151- *(volatile unsigned char *)port = value;152152- else if (is_pci_ioaddr(port) || shifted_port(port))153153- *(volatile unsigned char *)pci_ioaddr(port) = value;154154- else155155- *(volatile unsigned short *)port2adr(port) = value;156156-157157- ctrl_delay();158158-}159159-160160-void rts7751r2d_outw(unsigned short value, unsigned long port)161161-{162162- if (CHECK_AX88796L_PORT(port))163163- maybebadio(port);164164- else if (PXSEG(port))165165- *(volatile unsigned short *)port = value;166166- else if (is_pci_ioaddr(port) || shifted_port(port))167167- *(volatile unsigned short *)pci_ioaddr(port) = value;168168- else169169- maybebadio(port);170170-}171171-172172-void rts7751r2d_outl(unsigned int value, unsigned long port)173173-{174174- if (CHECK_AX88796L_PORT(port))175175- maybebadio(port);176176- else if (PXSEG(port))177177- *(volatile unsigned long *)port = value;178178- else if (is_pci_ioaddr(port) || shifted_port(port))179179- *(volatile unsigned long *)pci_ioaddr(port) = value;180180- else181181- maybebadio(port);182182-}183183-184184-void rts7751r2d_insb(unsigned long port, void *addr, unsigned long count)185185-{186186- unsigned long a = (unsigned long)addr;187187- volatile __u8 *bp;188188- volatile __u16 *p;189189-190190- if (CHECK_AX88796L_PORT(port)) {191191- p = (volatile unsigned short *)port88796l(port, 0);192192- while (count--)193193- ctrl_outb(*p & 0xff, a++);194194- } else if (PXSEG(port))195195- while (count--)196196- ctrl_outb(ctrl_inb(port), a++);197197- else if (is_pci_ioaddr(port) || shifted_port(port)) {198198- bp = (__u8 *)pci_ioaddr(port);199199- while (count--)200200- ctrl_outb(*bp, a++);201201- } else {202202- p = (volatile unsigned short *)port2adr(port);203203- while (count--)204204- ctrl_outb(*p & 0xff, a++);205205- }206206-}207207-208208-void rts7751r2d_insw(unsigned long port, void *addr, unsigned long count)209209-{210210- unsigned long a = (unsigned long)addr;211211- volatile __u16 *p;212212-213213- if (CHECK_AX88796L_PORT(port))214214- p = (volatile unsigned short *)port88796l(port, 1);215215- else if (PXSEG(port))216216- p = (volatile unsigned short *)port;217217- else if (is_pci_ioaddr(port) || shifted_port(port))218218- p = (volatile unsigned short *)pci_ioaddr(port);219219- else220220- p = (volatile unsigned short *)port2adr(port);221221- while (count--)222222- ctrl_outw(*p, a++);223223-}224224-225225-void rts7751r2d_insl(unsigned long port, void *addr, unsigned long count)226226-{227227- if (CHECK_AX88796L_PORT(port))228228- maybebadio(port);229229- else if (is_pci_ioaddr(port) || shifted_port(port)) {230230- unsigned long a = (unsigned long)addr;231231-232232- while (count--) {233233- ctrl_outl(ctrl_inl(pci_ioaddr(port)), a);234234- a += 4;235235- }236236- } else237237- maybebadio(port);238238-}239239-240240-void rts7751r2d_outsb(unsigned long port, const void *addr, unsigned long count)241241-{242242- unsigned long a = (unsigned long)addr;243243- volatile __u8 *bp;244244- volatile __u16 *p;245245-246246- if (CHECK_AX88796L_PORT(port)) {247247- p = (volatile unsigned short *)port88796l(port, 0);248248- while (count--)249249- *p = ctrl_inb(a++);250250- } else if (PXSEG(port))251251- while (count--)252252- ctrl_outb(a++, port);253253- else if (is_pci_ioaddr(port) || shifted_port(port)) {254254- bp = (__u8 *)pci_ioaddr(port);255255- while (count--)256256- *bp = ctrl_inb(a++);257257- } else {258258- p = (volatile unsigned short *)port2adr(port);259259- while (count--)260260- *p = ctrl_inb(a++);261261- }262262-}263263-264264-void rts7751r2d_outsw(unsigned long port, const void *addr, unsigned long count)265265-{266266- unsigned long a = (unsigned long)addr;267267- volatile __u16 *p;268268-269269- if (CHECK_AX88796L_PORT(port))270270- p = (volatile unsigned short *)port88796l(port, 1);271271- else if (PXSEG(port))272272- p = (volatile unsigned short *)port;273273- else if (is_pci_ioaddr(port) || shifted_port(port))274274- p = (volatile unsigned short *)pci_ioaddr(port);275275- else276276- p = (volatile unsigned short *)port2adr(port);277277-278278- while (count--) {279279- ctrl_outw(*p, a);280280- a += 2;281281- }282282-}283283-284284-void rts7751r2d_outsl(unsigned long port, const void *addr, unsigned long count)285285-{286286- if (CHECK_AX88796L_PORT(port))287287- maybebadio(port);288288- else if (is_pci_ioaddr(port) || shifted_port(port)) {289289- unsigned long a = (unsigned long)addr;290290-291291- while (count--) {292292- ctrl_outl(ctrl_inl(a), pci_ioaddr(port));293293- a += 4;294294- }295295- } else296296- maybebadio(port);297297-}298298-299299-unsigned long rts7751r2d_isa_port2addr(unsigned long offset)300300-{301301- return port2adr(offset);302302-}
+19-61
arch/sh/boards/renesas/rts7751r2d/irq.c
···99 * Atom Create Engineering Co., Ltd. 2002.1010 */1111#include <linux/init.h>1212+#include <linux/interrupt.h>1213#include <linux/irq.h>1414+#include <linux/interrupt.h>1315#include <linux/io.h>1416#include <asm/rts7751r2d.h>1517···2422extern int voyagergx_irq_demux(int irq);2523extern void setup_voyagergx_irq(void);26242727-static void enable_rts7751r2d_irq(unsigned int irq);2828-static void disable_rts7751r2d_irq(unsigned int irq);2929-3030-/* shutdown is same as "disable" */3131-#define shutdown_rts7751r2d_irq disable_rts7751r2d_irq3232-3333-static void ack_rts7751r2d_irq(unsigned int irq);3434-static void end_rts7751r2d_irq(unsigned int irq);3535-3636-static unsigned int startup_rts7751r2d_irq(unsigned int irq)2525+static void enable_rts7751r2d_irq(unsigned int irq)3726{3838- enable_rts7751r2d_irq(irq);3939- return 0; /* never anything pending */2727+ /* Set priority in IPR back to original value */2828+ ctrl_outw(ctrl_inw(IRLCNTR1) | (1 << mask_pos[irq]), IRLCNTR1);4029}41304231static void disable_rts7751r2d_irq(unsigned int irq)4332{4444- unsigned short val;4545- unsigned short mask = 0xffff ^ (0x0001 << mask_pos[irq]);4646-4733 /* Set the priority in IPR to 0 */4848- val = ctrl_inw(IRLCNTR1);4949- val &= mask;5050- ctrl_outw(val, IRLCNTR1);5151-}5252-5353-static void enable_rts7751r2d_irq(unsigned int irq)5454-{5555- unsigned short val;5656- unsigned short value = (0x0001 << mask_pos[irq]);5757-5858- /* Set priority in IPR back to original value */5959- val = ctrl_inw(IRLCNTR1);6060- val |= value;6161- ctrl_outw(val, IRLCNTR1);3434+ ctrl_outw(ctrl_inw(IRLCNTR1) & (0xffff ^ (1 << mask_pos[irq])),3535+ IRLCNTR1);6236}63376438int rts7751r2d_irq_demux(int irq)6539{6666- int demux_irq;6767-6868- demux_irq = voyagergx_irq_demux(irq);6969- return demux_irq;4040+ return voyagergx_irq_demux(irq);7041}71427272-static void ack_rts7751r2d_irq(unsigned int irq)7373-{7474- disable_rts7751r2d_irq(irq);7575-}7676-7777-static void end_rts7751r2d_irq(unsigned int irq)7878-{7979- if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))8080- enable_rts7751r2d_irq(irq);8181-}8282-8383-static struct hw_interrupt_type rts7751r2d_irq_type = {8484- .typename = "RTS7751R2D IRQ",8585- .startup = startup_rts7751r2d_irq,8686- .shutdown = shutdown_rts7751r2d_irq,8787- .enable = enable_rts7751r2d_irq,8888- .disable = disable_rts7751r2d_irq,8989- .ack = ack_rts7751r2d_irq,9090- .end = end_rts7751r2d_irq,4343+static struct irq_chip rts7751r2d_irq_chip __read_mostly = {4444+ .name = "rts7751r2d",4545+ .mask = disable_rts7751r2d_irq,4646+ .unmask = enable_rts7751r2d_irq,4747+ .mask_ack = disable_rts7751r2d_irq,9148};9292-9393-static void make_rts7751r2d_irq(unsigned int irq)9494-{9595- disable_irq_nosync(irq);9696- irq_desc[irq].chip = &rts7751r2d_irq_type;9797- disable_rts7751r2d_irq(irq);9898-}994910050/*10151 * Initialize IRQ setting···73119 * IRL14=Extention #374120 */751217676- for (i=0; i<15; i++)7777- make_rts7751r2d_irq(i);122122+ for (i=0; i<15; i++) {123123+ disable_irq_nosync(i);124124+ set_irq_chip_and_handler_name(i, &rts7751r2d_irq_chip,125125+ handle_level_irq, "level");126126+ enable_rts7751r2d_irq(i);127127+ }7812879129 setup_voyagergx_irq();80130}
···2828 unsigned long val;2929 unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);30303131- pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);3232- val = inl(VOYAGER_INT_MASK);3333- val &= ~mask;3434- outl(val, VOYAGER_INT_MASK);3131+ pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);3232+ val = readl((void __iomem *)VOYAGER_INT_MASK);3333+ val &= ~mask;3434+ writel(val, (void __iomem *)VOYAGER_INT_MASK);3535}36363737static void enable_voyagergx_irq(unsigned int irq)3838{3939- unsigned long val;4040- unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);3939+ unsigned long val;4040+ unsigned long mask = 1 << (irq - VOYAGER_IRQ_BASE);41414242- pr_debug("disable_voyagergx_irq(%d): mask=%lx\n", irq, mask);4343- val = inl(VOYAGER_INT_MASK);4444- val |= mask;4545- outl(val, VOYAGER_INT_MASK);4242+ pr_debug("disable_voyagergx_irq(%d): mask=%x\n", irq, mask);4343+ val = readl((void __iomem *)VOYAGER_INT_MASK);4444+ val |= mask;4545+ writel(val, (void __iomem *)VOYAGER_INT_MASK);4646}47474848static void mask_and_ack_voyagergx(unsigned int irq)···6868}69697070static struct hw_interrupt_type voyagergx_irq_type = {7171- .typename = "VOYAGERGX-IRQ",7272- .startup = startup_voyagergx_irq,7373- .shutdown = shutdown_voyagergx_irq,7474- .enable = enable_voyagergx_irq,7575- .disable = disable_voyagergx_irq,7676- .ack = mask_and_ack_voyagergx,7777- .end = end_voyagergx_irq,7171+ .typename = "VOYAGERGX-IRQ",7272+ .startup = startup_voyagergx_irq,7373+ .shutdown = shutdown_voyagergx_irq,7474+ .enable = enable_voyagergx_irq,7575+ .disable = disable_voyagergx_irq,7676+ .ack = mask_and_ack_voyagergx,7777+ .end = end_voyagergx_irq,7878};79798080static irqreturn_t voyagergx_interrupt(int irq, void *dev_id)8181{8282 printk(KERN_INFO8383 "VoyagerGX: spurious interrupt, status: 0x%x\n",8484- inl(INT_STATUS));8484+ (unsigned int)readl((void __iomem *)INT_STATUS));8585 return IRQ_HANDLED;8686}8787···9393void voyagergx_register_irq_demux(int irq,9494 int (*demux)(int irq, void *dev), void *dev)9595{9696- voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;9797- voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;9696+ voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = demux;9797+ voyagergx_demux[irq - VOYAGER_IRQ_BASE].dev = dev;9898}9999100100void voyagergx_unregister_irq_demux(int irq)101101{102102- voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;102102+ voyagergx_demux[irq - VOYAGER_IRQ_BASE].func = 0;103103}104104105105int voyagergx_irq_demux(int irq)···107107108108 if (irq == IRQ_VOYAGER ) {109109 unsigned long i = 0, bit __attribute__ ((unused));110110- unsigned long val = inl(INT_STATUS);111111-#if 1112112- if ( val & ( 1 << 1 )){110110+ unsigned long val = readl((void __iomem *)INT_STATUS);111111+112112+ if (val & (1 << 1))113113 i = 1;114114- } else if ( val & ( 1 << 2 )){114114+ else if (val & (1 << 2))115115 i = 2;116116- } else if ( val & ( 1 << 6 )){116116+ else if (val & (1 << 6))117117 i = 6;118118- } else if( val & ( 1 << 10 )){118118+ else if (val & (1 << 10))119119 i = 10;120120- } else if( val & ( 1 << 11 )){120120+ else if (val & (1 << 11))121121 i = 11;122122- } else if( val & ( 1 << 12 )){122122+ else if (val & (1 << 12))123123 i = 12;124124- } else if( val & ( 1 << 17 )){124124+ else if (val & (1 << 17))125125 i = 17;126126- } else {126126+ else127127 printk("Unexpected IRQ irq = %d status = 0x%08lx\n", irq, val);128128- }129129- pr_debug("voyagergx_irq_demux %ld\n", i);130130-#else131131- for (bit = 1, i = 0 ; i < VOYAGER_IRQ_NUM ; bit <<= 1, i++)132132- if (val & bit)133133- break;134134-#endif128128+ pr_debug("voyagergx_irq_demux %d \n", i);135129 if (i < VOYAGER_IRQ_NUM) {136130 irq = VOYAGER_IRQ_BASE + i;137131 if (voyagergx_demux[i].func != 0)
+2-2
arch/sh/cchips/voyagergx/setup.c
···1919{2020 unsigned long val;21212222- val = inl(DRAM_CTRL);2222+ val = readl((void __iomem *)DRAM_CTRL);2323 val |= (DRAM_CTRL_CPU_COLUMN_SIZE_256 |2424 DRAM_CTRL_CPU_ACTIVE_PRECHARGE |2525 DRAM_CTRL_CPU_RESET |···2929 DRAM_CTRL_ACTIVE_PRECHARGE |3030 DRAM_CTRL_RESET |3131 DRAM_CTRL_REMAIN_ACTIVE);3232- outl(val, DRAM_CTRL);3232+ writel(val, (void __iomem *)DRAM_CTRL);33333434 return 0;3535}
+258-54
arch/sh/configs/rts7751r2d_defconfig
···11#22# Automatically generated make config: don't edit33-# Linux kernel version: 2.6.1844-# Tue Oct 3 11:38:36 200633+# Linux kernel version: 2.6.2044+# Thu Feb 15 17:17:29 200755#66CONFIG_SUPERH=y77CONFIG_RWSEM_GENERIC_SPINLOCK=y88CONFIG_GENERIC_FIND_NEXT_BIT=y99CONFIG_GENERIC_HWEIGHT=y1010CONFIG_GENERIC_HARDIRQS=y1111+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y1112CONFIG_GENERIC_IRQ_PROBE=y1213CONFIG_GENERIC_CALIBRATE_DELAY=y1414+# CONFIG_GENERIC_TIME is not set1515+CONFIG_STACKTRACE_SUPPORT=y1616+CONFIG_LOCKDEP_SUPPORT=y1717+# CONFIG_ARCH_HAS_ILOG2_U32 is not set1818+# CONFIG_ARCH_HAS_ILOG2_U64 is not set1319CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"14201521#···3933# CONFIG_UTS_NS is not set4034# CONFIG_AUDIT is not set4135# CONFIG_IKCONFIG is not set3636+CONFIG_SYSFS_DEPRECATED=y4237# CONFIG_RELAY is not set4343-CONFIG_INITRAMFS_SOURCE=""4438# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set4539CONFIG_SYSCTL=y4640CONFIG_EMBEDDED=y···10397# CONFIG_SH_73180_SOLUTION_ENGINE is not set10498# CONFIG_SH_7751_SYSTEMH is not set10599# CONFIG_SH_HP6XX is not set106106-# CONFIG_SH_EC3104 is not set107100# CONFIG_SH_SATURN is not set108101# CONFIG_SH_DREAMCAST is not set109109-# CONFIG_SH_BIGSUR is not set110102# CONFIG_SH_MPC1211 is not set111103# CONFIG_SH_SH03 is not set112104# CONFIG_SH_SECUREEDGE5410 is not set···117113# CONFIG_SH_LANDISK is not set118114# CONFIG_SH_TITAN is not set119115# CONFIG_SH_SHMIN is not set116116+# CONFIG_SH_7206_SOLUTION_ENGINE is not set117117+# CONFIG_SH_7619_SOLUTION_ENGINE is not set118118+# CONFIG_SH_ASDAP310 is not set120119# CONFIG_SH_UNKNOWN is not set121120122121#···131124# SH-2 Processor Support132125#133126# CONFIG_CPU_SUBTYPE_SH7604 is not set127127+# CONFIG_CPU_SUBTYPE_SH7619 is not set128128+129129+#130130+# SH-2A Processor Support131131+#132132+# CONFIG_CPU_SUBTYPE_SH7206 is not set134133135134#136135# SH-3 Processor Support···172159#173160# CONFIG_CPU_SUBTYPE_SH7770 is not set174161# CONFIG_CPU_SUBTYPE_SH7780 is not set162162+# CONFIG_CPU_SUBTYPE_SH7785 is not set175163176164#177165# SH4AL-DSP Processor Support178166#179167# CONFIG_CPU_SUBTYPE_SH73180 is not set180168# CONFIG_CPU_SUBTYPE_SH7343 is not set169169+# CONFIG_CPU_SUBTYPE_SH7722 is not set181170182171#183172# Memory management options···189174CONFIG_MEMORY_START=0x0c000000190175CONFIG_MEMORY_SIZE=0x04000000191176CONFIG_VSYSCALL=y177177+CONFIG_PAGE_SIZE_4KB=y178178+# CONFIG_PAGE_SIZE_8KB is not set179179+# CONFIG_PAGE_SIZE_64KB is not set192180CONFIG_SELECT_MEMORY_MODEL=y193181CONFIG_FLATMEM_MANUAL=y194182# CONFIG_DISCONTIGMEM_MANUAL is not set···201183# CONFIG_SPARSEMEM_STATIC is not set202184CONFIG_SPLIT_PTLOCK_CPUS=4203185# CONFIG_RESOURCES_64BIT is not set186186+CONFIG_ZONE_DMA_FLAG=0204187205188#206189# Cache configuration···214195# Processor features215196#216197CONFIG_CPU_LITTLE_ENDIAN=y198198+# CONFIG_CPU_BIG_ENDIAN is not set217199CONFIG_SH_FPU=y218200# CONFIG_SH_DSP is not set219201# CONFIG_SH_STORE_QUEUES is not set220202CONFIG_CPU_HAS_INTEVT=y203203+CONFIG_CPU_HAS_IPR_IRQ=y221204CONFIG_CPU_HAS_SR_RB=y205205+CONFIG_CPU_HAS_PTEA=y222206223207#224208# Timer support···232210# RTS7751R2D options233211#234212CONFIG_RTS7751R2D_REV11=y213213+CONFIG_SH_TIMER_IRQ=16214214+# CONFIG_NO_IDLE_HZ is not set235215CONFIG_SH_PCLK_FREQ=60000000236216237217#···256232CONFIG_HEARTBEAT=y257233258234#235235+# Additional SuperH Device Drivers236236+#237237+# CONFIG_PUSH_SWITCH is not set238238+239239+#259240# Kernel features260241#261242# CONFIG_HZ_100 is not set262243CONFIG_HZ_250=y244244+# CONFIG_HZ_300 is not set263245# CONFIG_HZ_1000 is not set264246CONFIG_HZ=250265247# CONFIG_KEXEC is not set···281251CONFIG_BOOT_LINK_OFFSET=0x00800000282252# CONFIG_UBC_WAKEUP is not set283253CONFIG_CMDLINE_BOOL=y284284-CONFIG_CMDLINE="mem=64M console=ttySC0,115200 root=/dev/hda1"254254+CONFIG_CMDLINE="console=ttySC0,115200 root=/dev/sda1"285255286256#287257# Bus options···290260CONFIG_SH_PCIDMA_NONCOHERENT=y291261CONFIG_PCI_AUTO=y292262CONFIG_PCI_AUTO_UPDATE_RESOURCES=y293293-# CONFIG_PCI_MULTITHREAD_PROBE is not set294263295264#296265# PCCARD (PCMCIA/CardBus) support···331302CONFIG_XFRM=y332303# CONFIG_XFRM_USER is not set333304# CONFIG_XFRM_SUB_POLICY is not set305305+# CONFIG_XFRM_MIGRATE is not set334306# CONFIG_NET_KEY is not set335307CONFIG_INET=y336308# CONFIG_IP_MULTICAST is not set···349319# CONFIG_INET_TUNNEL is not set350320CONFIG_INET_XFRM_MODE_TRANSPORT=y351321CONFIG_INET_XFRM_MODE_TUNNEL=y322322+CONFIG_INET_XFRM_MODE_BEET=y352323CONFIG_INET_DIAG=y353324CONFIG_INET_TCP_DIAG=y354325# CONFIG_TCP_CONG_ADVANCED is not set355326CONFIG_TCP_CONG_CUBIC=y356327CONFIG_DEFAULT_TCP_CONG="cubic"328328+# CONFIG_TCP_MD5SIG is not set357329# CONFIG_IPV6 is not set358330# CONFIG_INET6_XFRM_TUNNEL is not set359331# CONFIG_INET6_TUNNEL is not set···412380#413381CONFIG_STANDALONE=y414382CONFIG_PREVENT_FIRMWARE_BUILD=y415415-# CONFIG_FW_LOADER is not set383383+CONFIG_FW_LOADER=m416384# CONFIG_SYS_HYPERVISOR is not set417385418386#···454422# CONFIG_ATA_OVER_ETH is not set455423456424#425425+# Misc devices426426+#427427+# CONFIG_SGI_IOC4 is not set428428+# CONFIG_TIFM_CORE is not set429429+430430+#457431# ATA/ATAPI/MFM/RLL support458432#459459-CONFIG_IDE=y460460-CONFIG_IDE_MAX_HWIFS=4461461-CONFIG_BLK_DEV_IDE=y462462-463463-#464464-# Please see Documentation/ide.txt for help/info on IDE drives465465-#466466-# CONFIG_BLK_DEV_IDE_SATA is not set467467-CONFIG_BLK_DEV_IDEDISK=y468468-# CONFIG_IDEDISK_MULTI_MODE is not set469469-# CONFIG_BLK_DEV_IDECD is not set470470-# CONFIG_BLK_DEV_IDETAPE is not set471471-# CONFIG_BLK_DEV_IDEFLOPPY is not set472472-# CONFIG_IDE_TASK_IOCTL is not set473473-474474-#475475-# IDE chipset support/bugfixes476476-#477477-CONFIG_IDE_GENERIC=y478478-# CONFIG_BLK_DEV_IDEPCI is not set479479-# CONFIG_IDE_ARM is not set480480-# CONFIG_BLK_DEV_IDEDMA is not set481481-# CONFIG_IDEDMA_AUTO is not set482482-# CONFIG_BLK_DEV_HD is not set433433+# CONFIG_IDE is not set483434484435#485436# SCSI device support486437#487438# CONFIG_RAID_ATTRS is not set488488-# CONFIG_SCSI is not set439439+CONFIG_SCSI=y440440+# CONFIG_SCSI_TGT is not set489441# CONFIG_SCSI_NETLINK is not set442442+CONFIG_SCSI_PROC_FS=y443443+444444+#445445+# SCSI support type (disk, tape, CD-ROM)446446+#447447+CONFIG_BLK_DEV_SD=y448448+# CONFIG_CHR_DEV_ST is not set449449+# CONFIG_CHR_DEV_OSST is not set450450+# CONFIG_BLK_DEV_SR is not set451451+# CONFIG_CHR_DEV_SG is not set452452+# CONFIG_CHR_DEV_SCH is not set453453+454454+#455455+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs456456+#457457+# CONFIG_SCSI_MULTI_LUN is not set458458+# CONFIG_SCSI_CONSTANTS is not set459459+# CONFIG_SCSI_LOGGING is not set460460+# CONFIG_SCSI_SCAN_ASYNC is not set461461+462462+#463463+# SCSI Transports464464+#465465+# CONFIG_SCSI_SPI_ATTRS is not set466466+# CONFIG_SCSI_FC_ATTRS is not set467467+# CONFIG_SCSI_ISCSI_ATTRS is not set468468+# CONFIG_SCSI_SAS_ATTRS is not set469469+# CONFIG_SCSI_SAS_LIBSAS is not set470470+471471+#472472+# SCSI low-level drivers473473+#474474+# CONFIG_ISCSI_TCP is not set475475+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set476476+# CONFIG_SCSI_3W_9XXX is not set477477+# CONFIG_SCSI_ACARD is not set478478+# CONFIG_SCSI_AACRAID is not set479479+# CONFIG_SCSI_AIC7XXX is not set480480+# CONFIG_SCSI_AIC7XXX_OLD is not set481481+# CONFIG_SCSI_AIC79XX is not set482482+# CONFIG_SCSI_AIC94XX is not set483483+# CONFIG_SCSI_DPT_I2O is not set484484+# CONFIG_SCSI_ARCMSR is not set485485+# CONFIG_MEGARAID_NEWGEN is not set486486+# CONFIG_MEGARAID_LEGACY is not set487487+# CONFIG_MEGARAID_SAS is not set488488+# CONFIG_SCSI_HPTIOP is not set489489+# CONFIG_SCSI_DMX3191D is not set490490+# CONFIG_SCSI_FUTURE_DOMAIN is not set491491+# CONFIG_SCSI_IPS is not set492492+# CONFIG_SCSI_INITIO is not set493493+# CONFIG_SCSI_INIA100 is not set494494+# CONFIG_SCSI_STEX is not set495495+# CONFIG_SCSI_SYM53C8XX_2 is not set496496+# CONFIG_SCSI_IPR is not set497497+# CONFIG_SCSI_QLOGIC_1280 is not set498498+# CONFIG_SCSI_QLA_FC is not set499499+# CONFIG_SCSI_QLA_ISCSI is not set500500+# CONFIG_SCSI_LPFC is not set501501+# CONFIG_SCSI_DC395x is not set502502+# CONFIG_SCSI_DC390T is not set503503+# CONFIG_SCSI_NSP32 is not set504504+# CONFIG_SCSI_DEBUG is not set505505+# CONFIG_SCSI_SRP is not set490506491507#492508# Serial ATA (prod) and Parallel ATA (experimental) drivers493509#494494-# CONFIG_ATA is not set510510+CONFIG_ATA=y511511+# CONFIG_ATA_NONSTANDARD is not set512512+# CONFIG_SATA_AHCI is not set513513+# CONFIG_SATA_SVW is not set514514+# CONFIG_ATA_PIIX is not set515515+# CONFIG_SATA_MV is not set516516+# CONFIG_SATA_NV is not set517517+# CONFIG_PDC_ADMA is not set518518+# CONFIG_SATA_QSTOR is not set519519+# CONFIG_SATA_PROMISE is not set520520+# CONFIG_SATA_SX4 is not set521521+# CONFIG_SATA_SIL is not set522522+# CONFIG_SATA_SIL24 is not set523523+# CONFIG_SATA_SIS is not set524524+# CONFIG_SATA_ULI is not set525525+# CONFIG_SATA_VIA is not set526526+# CONFIG_SATA_VITESSE is not set527527+# CONFIG_SATA_INIC162X is not set528528+# CONFIG_PATA_ALI is not set529529+# CONFIG_PATA_AMD is not set530530+# CONFIG_PATA_ARTOP is not set531531+# CONFIG_PATA_ATIIXP is not set532532+# CONFIG_PATA_CMD64X is not set533533+# CONFIG_PATA_CS5520 is not set534534+# CONFIG_PATA_CS5530 is not set535535+# CONFIG_PATA_CYPRESS is not set536536+# CONFIG_PATA_EFAR is not set537537+# CONFIG_ATA_GENERIC is not set538538+# CONFIG_PATA_HPT366 is not set539539+# CONFIG_PATA_HPT37X is not set540540+# CONFIG_PATA_HPT3X2N is not set541541+# CONFIG_PATA_HPT3X3 is not set542542+# CONFIG_PATA_IT821X is not set543543+# CONFIG_PATA_IT8213 is not set544544+# CONFIG_PATA_JMICRON is not set545545+# CONFIG_PATA_TRIFLEX is not set546546+# CONFIG_PATA_MARVELL is not set547547+# CONFIG_PATA_MPIIX is not set548548+# CONFIG_PATA_OLDPIIX is not set549549+# CONFIG_PATA_NETCELL is not set550550+# CONFIG_PATA_NS87410 is not set551551+# CONFIG_PATA_OPTI is not set552552+# CONFIG_PATA_OPTIDMA is not set553553+# CONFIG_PATA_PDC_OLD is not set554554+# CONFIG_PATA_RADISYS is not set555555+# CONFIG_PATA_RZ1000 is not set556556+# CONFIG_PATA_SC1200 is not set557557+# CONFIG_PATA_SERVERWORKS is not set558558+# CONFIG_PATA_PDC2027X is not set559559+# CONFIG_PATA_SIL680 is not set560560+# CONFIG_PATA_SIS is not set561561+# CONFIG_PATA_VIA is not set562562+# CONFIG_PATA_WINBOND is not set563563+CONFIG_PATA_PLATFORM=y495564496565#497566# Multi-device support (RAID and LVM)···603470# Fusion MPT device support604471#605472# CONFIG_FUSION is not set473473+# CONFIG_FUSION_SPI is not set474474+# CONFIG_FUSION_FC is not set475475+# CONFIG_FUSION_SAS is not set606476607477#608478# IEEE 1394 (FireWire) support···676540# CONFIG_SUNDANCE is not set677541# CONFIG_TLAN is not set678542# CONFIG_VIA_RHINE is not set543543+# CONFIG_SC92031 is not set679544680545#681546# Ethernet (1000 Mbit)···696559# CONFIG_TIGON3 is not set697560# CONFIG_BNX2 is not set698561# CONFIG_QLA3XXX is not set562562+# CONFIG_ATL1 is not set699563700564#701565# Ethernet (10000 Mbit)702566#703567# CONFIG_CHELSIO_T1 is not set568568+# CONFIG_CHELSIO_T3 is not set704569# CONFIG_IXGB is not set705570# CONFIG_S2IO is not set706571# CONFIG_MYRI10GE is not set572572+# CONFIG_NETXEN_NIC is not set707573708574#709575# Token Ring devices···751611# CONFIG_HIPPI is not set752612# CONFIG_PPP is not set753613# CONFIG_SLIP is not set614614+# CONFIG_NET_FC is not set754615# CONFIG_SHAPER is not set755616# CONFIG_NETCONSOLE is not set756617# CONFIG_NETPOLL is not set···787646#788647# Serial drivers789648#790790-# CONFIG_SERIAL_8250 is not set649649+CONFIG_SERIAL_8250=y650650+# CONFIG_SERIAL_8250_CONSOLE is not set651651+CONFIG_SERIAL_8250_PCI=y652652+CONFIG_SERIAL_8250_NR_UARTS=4653653+CONFIG_SERIAL_8250_RUNTIME_UARTS=4654654+# CONFIG_SERIAL_8250_EXTENDED is not set791655792656#793657# Non-8250 serial port support794658#795795-# CONFIG_SERIAL_SH_SCI is not set659659+CONFIG_SERIAL_SH_SCI=y660660+CONFIG_SERIAL_SH_SCI_NR_UARTS=1661661+CONFIG_SERIAL_SH_SCI_CONSOLE=y662662+CONFIG_SERIAL_CORE=y663663+CONFIG_SERIAL_CORE_CONSOLE=y796664# CONFIG_SERIAL_JSM is not set797797-# CONFIG_UNIX98_PTYS is not set665665+CONFIG_UNIX98_PTYS=y798666CONFIG_LEGACY_PTYS=y799667CONFIG_LEGACY_PTY_COUNT=256800668···821671# CONFIG_DTLK is not set822672# CONFIG_R3964 is not set823673# CONFIG_APPLICOM is not set824824-825825-#826826-# Ftape, the floppy tape device driver827827-#828674# CONFIG_DRM is not set829675# CONFIG_RAW_DRIVER is not set830676···828682# TPM devices829683#830684# CONFIG_TCG_TPM is not set831831-# CONFIG_TELCLOCK is not set832685833686#834687# I2C support···843698#844699# Dallas's 1-wire bus845700#701701+# CONFIG_W1 is not set846702847703#848704# Hardware Monitoring support···852706# CONFIG_HWMON_VID is not set853707# CONFIG_SENSORS_ABITUGURU is not set854708# CONFIG_SENSORS_F71805F is not set709709+# CONFIG_SENSORS_PC87427 is not set855710# CONFIG_SENSORS_VT1211 is not set856711# CONFIG_HWMON_DEBUG_CHIP is not set857857-858858-#859859-# Misc devices860860-#861712862713#863714# Multimedia devices864715#865716# CONFIG_VIDEO_DEV is not set866866-CONFIG_VIDEO_V4L2=y867717868718#869719# Digital Video Broadcasting Devices···901759CONFIG_SND_MPU401_UART=m902760CONFIG_SND_OPL3_LIB=m903761CONFIG_SND_AC97_CODEC=m904904-CONFIG_SND_AC97_BUS=m905762# CONFIG_SND_DUMMY is not set906763# CONFIG_SND_MTPAV is not set907764# CONFIG_SND_SERIAL_U16550 is not set···923782# CONFIG_SND_CMIPCI is not set924783# CONFIG_SND_CS4281 is not set925784# CONFIG_SND_CS46XX is not set785785+# CONFIG_SND_DARLA20 is not set786786+# CONFIG_SND_GINA20 is not set787787+# CONFIG_SND_LAYLA20 is not set788788+# CONFIG_SND_DARLA24 is not set789789+# CONFIG_SND_GINA24 is not set790790+# CONFIG_SND_LAYLA24 is not set791791+# CONFIG_SND_MONA is not set792792+# CONFIG_SND_MIA is not set793793+# CONFIG_SND_ECHO3G is not set794794+# CONFIG_SND_INDIGO is not set795795+# CONFIG_SND_INDIGOIO is not set796796+# CONFIG_SND_INDIGODJ is not set926797# CONFIG_SND_EMU10K1 is not set927798# CONFIG_SND_EMU10K1X is not set928799# CONFIG_SND_ENS1370 is not set···954801# CONFIG_SND_MIXART is not set955802# CONFIG_SND_NM256 is not set956803# CONFIG_SND_PCXHR is not set804804+# CONFIG_SND_RIPTIDE is not set957805# CONFIG_SND_RME32 is not set958806# CONFIG_SND_RME96 is not set959807# CONFIG_SND_RME9652 is not set···967813# CONFIG_SND_AC97_POWER_SAVE is not set968814969815#816816+# SoC audio support817817+#818818+# CONFIG_SND_SOC is not set819819+820820+#970821# Open Sound System971822#972823CONFIG_SOUND_PRIME=m973973-# CONFIG_OSS_OBSOLETE_DRIVER is not set824824+# CONFIG_OBSOLETE_OSS is not set974825# CONFIG_SOUND_BT878 is not set975975-# CONFIG_SOUND_ES1371 is not set976826# CONFIG_SOUND_ICH is not set977827# CONFIG_SOUND_TRIDENT is not set978828# CONFIG_SOUND_MSNDCLAS is not set979829# CONFIG_SOUND_MSNDPIN is not set980830# CONFIG_SOUND_VIA82CXXX is not set831831+CONFIG_AC97_BUS=m981832982833#983834# USB support···1031872#1032873# Real Time Clock1033874#10341034-# CONFIG_RTC_CLASS is not set875875+CONFIG_RTC_LIB=y876876+CONFIG_RTC_CLASS=y877877+CONFIG_RTC_HCTOSYS=y878878+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"879879+# CONFIG_RTC_DEBUG is not set880880+881881+#882882+# RTC interfaces883883+#884884+CONFIG_RTC_INTF_SYSFS=y885885+CONFIG_RTC_INTF_PROC=y886886+CONFIG_RTC_INTF_DEV=y887887+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set888888+889889+#890890+# RTC drivers891891+#892892+# CONFIG_RTC_DRV_DS1553 is not set893893+# CONFIG_RTC_DRV_DS1742 is not set894894+# CONFIG_RTC_DRV_M48T86 is not set895895+CONFIG_RTC_DRV_SH=y896896+# CONFIG_RTC_DRV_TEST is not set897897+# CONFIG_RTC_DRV_V3020 is not set10358981036899#1037900# DMA Engine support···1069888#10708891071890#891891+# Auxiliary Display support892892+#893893+894894+#895895+# Virtualization896896+#897897+898898+#1072899# File systems1073900#1074901CONFIG_EXT2_FS=y1075902# CONFIG_EXT2_FS_XATTR is not set1076903# CONFIG_EXT2_FS_XIP is not set1077904# CONFIG_EXT3_FS is not set905905+# CONFIG_EXT4DEV_FS is not set1078906# CONFIG_REISERFS_FS is not set1079907# CONFIG_JFS_FS is not set1080908# CONFIG_FS_POSIX_ACL is not set1081909# CONFIG_XFS_FS is not set910910+# CONFIG_GFS2_FS is not set1082911# CONFIG_OCFS2_FS is not set1083912CONFIG_MINIX_FS=y1084913# CONFIG_ROMFS_FS is not set···1123932CONFIG_PROC_KCORE=y1124933CONFIG_PROC_SYSCTL=y1125934CONFIG_SYSFS=y11261126-# CONFIG_TMPFS is not set935935+CONFIG_TMPFS=y936936+# CONFIG_TMPFS_POSIX_ACL is not set1127937# CONFIG_HUGETLBFS is not set1128938# CONFIG_HUGETLB_PAGE is not set1129939CONFIG_RAMFS=y···12101018# CONFIG_NLS_UTF8 is not set1211101912121020#10211021+# Distributed Lock Manager10221022+#10231023+# CONFIG_DLM is not set10241024+10251025+#12131026# Profiling support12141027#12151028CONFIG_PROFILING=y···12231026#12241027# Kernel hacking12251028#10291029+CONFIG_TRACE_IRQFLAGS_SUPPORT=y12261030# CONFIG_PRINTK_TIME is not set12271031CONFIG_ENABLE_MUST_CHECK=y12281032# CONFIG_MAGIC_SYSRQ is not set12291033# CONFIG_UNUSED_SYMBOLS is not set10341034+# CONFIG_DEBUG_FS is not set10351035+# CONFIG_HEADERS_CHECK is not set12301036# CONFIG_DEBUG_KERNEL is not set12311037CONFIG_LOG_BUF_SHIFT=1412321038# CONFIG_DEBUG_BUGVERBOSE is not set12331233-# CONFIG_DEBUG_FS is not set12341039# CONFIG_SH_STANDARD_BIOS is not set12351235-# CONFIG_EARLY_SCIF_CONSOLE is not set10401040+CONFIG_EARLY_SCIF_CONSOLE=y10411041+CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe8000010421042+CONFIG_EARLY_PRINTK=y12361043# CONFIG_KGDB is not set1237104412381045#···12531052#12541053# Library routines12551054#10551055+CONFIG_BITREVERSE=y12561056# CONFIG_CRC_CCITT is not set12571057# CONFIG_CRC16 is not set12581058CONFIG_CRC32=y12591059# CONFIG_LIBCRC32C is not set12601060CONFIG_PLIST=y10611061+CONFIG_HAS_IOMEM=y10621062+CONFIG_HAS_IOPORT=y
···11-/* $Id: io_generic.c,v 1.2 2003/05/04 19:29:53 lethal Exp $22- *33- * linux/arch/sh/kernel/io_generic.c11+/*22+ * arch/sh/kernel/io_generic.c43 *54 * Copyright (C) 2000 Niibe Yutaka66- * Copyright (C) 2005 Paul Mundt55+ * Copyright (C) 2005 - 2007 Paul Mundt76 *87 * Generic I/O routine. These can be used where a machine specific version98 * is not required.···1213 * for more details.1314 */1415#include <linux/module.h>1515-#include <asm/io.h>1616+#include <linux/io.h>1617#include <asm/machvec.h>1818+#include <asm/cacheflush.h>17191820#ifdef CONFIG_CPU_SH31921/* SH3 has a PCMCIA bug that needs a dummy read from area 6 for a···9696 while (count--)9797 *buf++ = *port_addr;98989999+ flush_dcache_all();99100 dummy_read();100101}101102···171170 while (count--)172171 *port_addr = *buf++;173172173173+ flush_dcache_all();174174 dummy_read();175175}176176