You can subscribe to this list here.
2000 |
Jan
|
Feb
|
Mar
|
Apr
(12) |
May
(82) |
Jun
(72) |
Jul
(39) |
Aug
(104) |
Sep
(61) |
Oct
(55) |
Nov
(101) |
Dec
(48) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(52) |
Feb
(67) |
Mar
(18) |
Apr
(16) |
May
(33) |
Jun
(12) |
Jul
(102) |
Aug
(168) |
Sep
(65) |
Oct
(60) |
Nov
(43) |
Dec
(121) |
2002 |
Jan
(69) |
Feb
(32) |
Mar
(90) |
Apr
(59) |
May
(45) |
Jun
(43) |
Jul
(33) |
Aug
(21) |
Sep
(11) |
Oct
(20) |
Nov
(26) |
Dec
(3) |
2003 |
Jan
(12) |
Feb
(18) |
Mar
(11) |
Apr
(11) |
May
(41) |
Jun
(76) |
Jul
(77) |
Aug
(15) |
Sep
(38) |
Oct
(56) |
Nov
(19) |
Dec
(39) |
2004 |
Jan
(17) |
Feb
(52) |
Mar
(36) |
Apr
(34) |
May
(48) |
Jun
(85) |
Jul
(38) |
Aug
(42) |
Sep
(41) |
Oct
(77) |
Nov
(27) |
Dec
(19) |
2005 |
Jan
(32) |
Feb
(35) |
Mar
(29) |
Apr
(8) |
May
(7) |
Jun
(31) |
Jul
(46) |
Aug
(93) |
Sep
(65) |
Oct
(85) |
Nov
(219) |
Dec
(47) |
2006 |
Jan
(170) |
Feb
(103) |
Mar
(49) |
Apr
(43) |
May
(45) |
Jun
(29) |
Jul
(77) |
Aug
(82) |
Sep
(43) |
Oct
(45) |
Nov
(26) |
Dec
(85) |
2007 |
Jan
(42) |
Feb
(48) |
Mar
(64) |
Apr
(31) |
May
(88) |
Jun
(53) |
Jul
(175) |
Aug
(212) |
Sep
(91) |
Oct
(103) |
Nov
(110) |
Dec
(5) |
2008 |
Jan
(20) |
Feb
(11) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(5) |
Sep
(3) |
Oct
(12) |
Nov
|
Dec
|
From: Kristoffer E. <kri...@gm...> - 2007-11-13 22:48:10
|
Greetings, Just starting looking at pcmcia code again. When compairing to hd64465 code I found this segment: static void hs_mask_and_ack_irq(unsigned int irq) { hs_socket_disable_ireq(hs_mapped_irq[irq].sock); if (hs_mapped_irq[irq].old_handler != &no_irq_type) hs_mapped_irq[irq].chip->ack(irq); } Now, it says as a comment that this was used to get rid of some unexpected IRQ complaints. Im experiencing same issues with my hd64461 driver and been bugtracking this for a couple of weeks. I just can't understand why that code should be needed for hd64465 || hd64461? Could someone please put that code in a situation were it actually would make some good. To make the context clear: pcmcia driver uses IRQ 78 pcmcia_card gets IRQ 79 All interrupts are 78 and then demux translates them into pcmcia slot OR pcmcia card interrupt. |
From: Magnus D. <mag...@gm...> - 2007-11-13 10:46:33
|
On Nov 13, 2007 12:15 AM, shinkoi2005 <shi...@gm...> wrote: > > I'm glad that it works on your R2D-1. Both my R2D-1 boards do not have > > working CF. Just to double-check - are using a R2D with one or two pci > > slots? > My R2D-1 has two pci slots. > The picture is the following. > <http://tree.celinuxforum.org/pubwiki/moin.cgi/RTS7751R2DHandlingManual> Ok, that looks like the same model as I have. > > Can you please post the BVERREG and VERREG register values from your > > R2D-1? Then I'll post mine when I get back into the office. > My R2D-1's VERREG and BVERREG is the folloing. > R2D VERREG:0x0033, BVERREG:0x0011 My two R2D-1 boards say: R2D VERREG:0x0033, BVERREG:0x0011 (00:00:e1:6b:5f:c2) R2D VERREG:0x0034, BVERREG:0x0011 (00:00:87:6b:af:69) The boards do not work with the only CF card we have in the office at the moment. I'll bring a pile of different CF cards from home tomorrow to check if the actual CF card is strange. I've seen interrupt problems with certain older CF cards on other platforms earlier so this wouldn't surprise me at all. Thanks for your help! / magnus |
From: shinkoi2005 <shi...@gm...> - 2007-11-12 15:15:37
|
> I'm glad that it works on your R2D-1. Both my R2D-1 boards do not have > working CF. Just to double-check - are using a R2D with one or two pci > slots? My R2D-1 has two pci slots. The picture is the following. <http://tree.celinuxforum.org/pubwiki/moin.cgi/RTS7751R2DHandlingManual> > Can you please post the BVERREG and VERREG register values from your > R2D-1? Then I'll post mine when I get back into the office. My R2D-1's VERREG and BVERREG is the folloing. R2D VERREG:0x0033, BVERREG:0x0011 diff a/arch/sh/boards/renesas/rts7751r2d/irq.c b/arch/sh/boards/renesas/rts7751r2d/irq.c --- a/arch/sh/boards/renesas/rts7751r2d/irq.c +++ b/arch/sh/boards/renesas/rts7751r2d/irq.c @@ -129,8 +129,12 @@ int rts7751r2d_irq_demux(int irq) void __init init_rts7751r2d_IRQ(void) { struct intc_desc *d; + unsigned short ver = ctrl_inw(PA_VERREG); /* FPGA Revision */ + unsigned short bver = ctrl_inw(PA_BVERREG); /* Board Revision */ - switch (ctrl_inw(PA_VERREG) & 0xf0) { + printk(KERN_INFO "R2D VERREG:0x%04x, BVERREG:0x%04x\n", ver, bver); + + switch (ver & 0xf0) { #ifdef CONFIG_RTS7751R2D_PLUS case 0x10: printk(KERN_INFO "Using R2D-PLUS interrupt controller.\n"); @@ -148,7 +152,7 @@ void __init init_rts7751r2d_IRQ(void) #endif default: printk(KERN_INFO "Unknown R2D interrupt controller 0x%04x\n", - ctrl_inw(PA_VERREG)); + ver); return; } |
From: Bill T. <wm...@na...> - 2007-11-12 14:31:55
|
On Nov 12, 2007 4:30 AM, Paul Mundt <le...@li...> wrote: > We basically haven't been using SourceForge for anything but the > linuxsh-dev mailing list for a couple of years now, and we've already had > to make it subscribers only simply due to the sheer volume of spam that > comes in on a daily basis. This has been a constant source of irritation. > > David Miller has graciously set up a shiny new lin...@vg... > list for us to move to, which will also enable us to open it back up for > cross-posting with linux-kernel, which was previously something that > wasn't terribly effective (or encouraged). > > vger subscription etiquette bars a blind import of the existing subscribe > list, so everyone will have to manually resubscribe. Information on that > for those not familiar with majordomo is available here: > > http://vger.kernel.org/majordomo-info.html Here's a link directly to the linux-sh subscribe page: http://vger.kernel.org/vger-lists.html#linux-sh > > With this we can finally abandon SourceForge completely, and kill off a > spam-ridden mailing list that's otherwise served us well for the better > part of the last 8 years! > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Splunk Inc. > Still grepping through log files to find problems? Stop. > Now Search log events and configuration files using AJAX and a browser. > Download your FREE copy of Splunk now >> http://get.splunk.com/ > _______________________________________________ > linuxsh-dev mailing list > lin...@li... > https://lists.sourceforge.net/lists/listinfo/linuxsh-dev > |
From: Paul M. <le...@li...> - 2007-11-12 12:21:49
|
Currently there are a couple of performance issues with the __do_page_fault() implementation, which we've been hitting up against on SMP. The first issue is the page table lock, in practice this is read-side only, and there's no requirement to have the lock held across the page table walk. Presently if we build for < 4 CPUs this leads to the page_table_lock being needlessly contended, which is easily visible on heavily threaded applications. The second issue is the TLB flush, this ends up being painfully slow due to the P2 bounce, which also seems to be a sanity measure that has only been kept around because it's what we've always done, and can simply be done without. Killing this off doesn't have any impact on SMP, and as Stuart's fast-path assembly path doesn't seem to care about it either, I don't imagine it's something that is a big show-stopper for UP either. It would be good if people with legacy SH-4 devices could test their workloads with these optimizations in place, I'd like to get this pushed out and move the rest of it to an assembly fast-path derived from Stuart's patch. At least none of the SH-X, SH-X2, and SH-X3 parts see any regressions from this, and I'm assuming ST40 doesn't either. --- diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index f33cedb..60d74f7 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -258,9 +258,6 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, pmd_t *pmd; pte_t *pte; pte_t entry; - struct mm_struct *mm = current->mm; - spinlock_t *ptl = NULL; - int ret = 1; #ifdef CONFIG_SH_KGDB if (kgdb_nofault && kgdb_bus_err_hook) @@ -274,12 +271,11 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, */ if (address >= P3SEG && address < P3_ADDR_MAX) { pgd = pgd_offset_k(address); - mm = NULL; } else { - if (unlikely(address >= TASK_SIZE || !mm)) + if (unlikely(address >= TASK_SIZE || !current->mm)) return 1; - pgd = pgd_offset(mm, address); + pgd = pgd_offset(current->mm, address); } pud = pud_offset(pgd, address); @@ -289,34 +285,19 @@ asmlinkage int __kprobes __do_page_fault(struct pt_regs *regs, if (pmd_none_or_clear_bad(pmd)) return 1; - if (mm) - pte = pte_offset_map_lock(mm, pmd, address, &ptl); - else - pte = pte_offset_kernel(pmd, address); - + pte = pte_offset_kernel(pmd, address); entry = *pte; if (unlikely(pte_none(entry) || pte_not_present(entry))) - goto unlock; + return 1; if (unlikely(writeaccess && !pte_write(entry))) - goto unlock; + return 1; if (writeaccess) entry = pte_mkdirty(entry); entry = pte_mkyoung(entry); -#ifdef CONFIG_CPU_SH4 - /* - * ITLB is not affected by "ldtlb" instruction. - * So, we need to flush the entry by ourselves. - */ - local_flush_tlb_one(get_asid(), address & PAGE_MASK); -#endif - set_pte(pte, entry); update_mmu_cache(NULL, address, entry); - ret = 0; -unlock: - if (mm) - pte_unmap_unlock(pte, ptl); - return ret; + + return 0; } |
From: Paul M. <pau...@re...> - 2007-11-12 10:04:09
|
On Mon, Nov 12, 2007 at 09:47:57AM +0100, Heiko Schocher wrote: > Paul Mundt schrieb: > > On Sun, Nov 11, 2007 at 12:22:13PM +0100, Heiko Schocher wrote: > >> If I make a while (1); at the end of the function sh_cpu_init() in > >> arch/sh/kernel/cpu/init.c the cpu dont restart, the next function > >> called is start_kernel (). If I make there as first a while (1), the > >> cpu restarts ... dont see an SH7750R specific thing in > >> arch/sh/kernel/head.S on this place: > >> > > Sounds like something could be falling out as a result of the initial > > cache flush in cache_init(), possibly due to things left over from your > > boot loader. You might try playing with that a bit. > > Hmm.. didnt enable the cache in the bootloader ... > Hmm.. I have running code from a selfmade OS, with caches enabled. There > I set the CCR_CACHE_ORA bit in the CCR register, as I see in the > cache_init() > function, this bit is never set ... Doesnt Linux want this Bit to be set? > No, Linux doesn't want this bit set, and presumably neither do you. We used to have special casing for it, but its implementation varied too widely on different CPU subtypes (especially with the transition from 2 to 4-way set associative dcaches) to make it easy to support. The initial cache flush checks to see if the boot loader has set the ORA bit, in which case the flush can be optimized, as there's only half of the cache to flush. If you plan to use operand cache RAM mode under linux, you will have to handle the cache halving commonly, and account for the fact that the memory-mapped cache access varies depending on the CPU subtype (different subtypes use different ways for RAM mode, with and without EMODE). Also if your bootloader is not setting the CCR enable bit, the initial cache flush and subsequent ORA check should never be hit in the first place. |
From: Paul M. <le...@li...> - 2007-11-12 09:30:46
|
We basically haven't been using SourceForge for anything but the linuxsh-dev mailing list for a couple of years now, and we've already had to make it subscribers only simply due to the sheer volume of spam that comes in on a daily basis. This has been a constant source of irritation. David Miller has graciously set up a shiny new lin...@vg... list for us to move to, which will also enable us to open it back up for cross-posting with linux-kernel, which was previously something that wasn't terribly effective (or encouraged). vger subscription etiquette bars a blind import of the existing subscribe list, so everyone will have to manually resubscribe. Information on that for those not familiar with majordomo is available here: http://vger.kernel.org/majordomo-info.html With this we can finally abandon SourceForge completely, and kill off a spam-ridden mailing list that's otherwise served us well for the better part of the last 8 years! |
From: Heiko S. <hei...@in...> - 2007-11-12 08:47:49
|
Hello Paul, Paul Mundt schrieb: > On Sun, Nov 11, 2007 at 12:22:13PM +0100, Heiko Schocher wrote: >> If I make a while (1); at the end of the function sh_cpu_init() in >> arch/sh/kernel/cpu/init.c the cpu dont restart, the next function >> called is start_kernel (). If I make there as first a while (1), the >> cpu restarts ... dont see an SH7750R specific thing in >> arch/sh/kernel/head.S on this place: >> > [snip] > >> Any ideas? >> (damned, dont have a debugger ...) >> > Sounds like something could be falling out as a result of the initial > cache flush in cache_init(), possibly due to things left over from your > boot loader. You might try playing with that a bit. Hmm.. didnt enable the cache in the bootloader ... Hmm.. I have running code from a selfmade OS, with caches enabled. There I set the CCR_CACHE_ORA bit in the CCR register, as I see in the cache_init() function, this bit is never set ... Doesnt Linux want this Bit to be set? thanks bye Heiko |
From: Paul M. <le...@li...> - 2007-11-12 04:39:36
|
On Sun, Nov 11, 2007 at 12:22:13PM +0100, Heiko Schocher wrote: > Paul Mundt schrieb: > >Feel free to complain if you think the wiki page should be updated with > >some more information that might be helpful, this should be a fairly > >painless process, so we'd like to have all of the ambiguities addressed. > > > > Hmm.. I am using git, because I think thats the "standard" todays, > right? Couldnt find some informations about git on this page, maybe > this should be updated? > Well, the git trees aren't directly linked primarily because they're just a staging ground for the stuff that goes to Linus. I generally prefer people to use Linus's git tree directly, as I only bother syncing up if there's changing that need to be merged. I suppose the entry could use some more clarity though, I'll see about reworking it a bit. > If I make a while (1); at the end of the function sh_cpu_init() in > arch/sh/kernel/cpu/init.c the cpu dont restart, the next function > called is start_kernel (). If I make there as first a while (1), the > cpu restarts ... dont see an SH7750R specific thing in > arch/sh/kernel/head.S on this place: > [snip] > Any ideas? > (damned, dont have a debugger ...) > Sounds like something could be falling out as a result of the initial cache flush in cache_init(), possibly due to things left over from your boot loader. You might try playing with that a bit. Also, if you don't have a debugger, early printk should still be usable. If you're using sh-ipl+g then you don't have to do anything special for it, but if you want to use the SCIF directly and are using an alternate loader, you will have to plug in the I/O port and some various fixups for SH7750R (most of which you can just glean from sh-sci.[ch]). If you want to start debugging from sh_cpu_init() already and have sh-ipl+g, you can #include <asm/sh_bios.h> directly and use the write routine there. This causes a trap directly, and can be handled regardless of whether the MMU is enabled or not. Barring that, find an LED and start toggling.. this is how I do most of my debugging :-) |
From: Adrian M. <lkm...@gm...> - 2007-11-11 21:21:09
|
On 11/11/2007, Dmitry Adamushko <dmi...@gm...> wrote: > On 11/11/2007, Adrian McMenamin <lkm...@gm...> wrote > > I am writing a device driver for the Dreamcast CD Drive (the "GD Rom") > > and I am hitting what looks like some sort of race in > > kernel/irq/manage.c. Can anybody point me in the right direction or is > > there a bug here? > > > > This never seems to return in setup_irq: > > > > spin_unlock_irqrestore(&desc->lock, flags); > > > > (line 597) > > I guess, you are referring to setup_irq() (the line without a > particular kernel version doesn't make much sense). > Sorry, it was in the config: 2.6.24-rc2 > What do you mean by "never seems to return"? Does your machine hang? > > If so, the reason might be some kind of (logical) error in your ISR. > spin_unlock_irqrestore() unmasks the interrupts and your target device > might have already generated an interrupt by this moment (sure, it > depends on the initialization logic of your code and device spec.)... > --> ISR runs and due to some error e.g. loops endlessly/deadlocks/etc. > > Tried placing printk() at the beginning of ISR? > You are absolutely right. Sorry for wasting evetybody's time and thanks for the tip! |
From: Adrian M. <lkm...@gm...> - 2007-11-11 19:52:58
|
I am writing a device driver for the Dreamcast CD Drive (the "GD Rom") and I am hitting what looks like some sort of race in kernel/irq/manage.c. Can anybody point me in the right direction or is there a bug here? This never seems to return in setup_irq: spin_unlock_irqrestore(&desc->lock, flags); (line 597) I cannot see any reason why it would fail, though. And I know how difficult these things are to debug - but if I put a printk either side, it works for all interrupt set ups, but not this one. Here is the calling code: static int gdrom_set_command_interrupt_handler(void) { int err; #ifdef GDROMDEBUG printk("%s\n", __FUNCTION__); #endif /* need a queue to wait in */ init_waitqueue_head(&command_queue); err = request_irq(HW_EVENT_GDROM_CMD, gdrom_command_interrupt, IRQF_PROBE_SHARED, "gdrom", gd.disk); if (err) return -err; #ifdef GDROMDEBUG printk("Interrupt is registered\n"); #endif return 0; } Here is the .config file: # # Automatically generated make config: don't edit # Linux kernel version: 2.6.24-rc2 # Sun Nov 11 17:50:05 2007 # CONFIG_SUPERH=y CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_FIND_NEXT_BIT=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_SYS_SUPPORTS_PCI=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_LOCKDEP_SUPPORT=y # CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_ARCH_NO_VIRT_TO_BUS=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_BROKEN_ON_SMP=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y # CONFIG_POSIX_MQUEUE is not set CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_TASKSTATS is not set # CONFIG_USER_NS is not set # CONFIG_AUDIT is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=14 # CONFIG_CGROUPS is not set CONFIG_FAIR_GROUP_SCHED=y CONFIG_FAIR_USER_SCHED=y # CONFIG_FAIR_CGROUP_SCHED is not set CONFIG_SYSFS_DEPRECATED=y # CONFIG_RELAY is not set # CONFIG_BLK_DEV_INITRD is not set # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_EMBEDDED=y CONFIG_UID16=y # CONFIG_SYSCTL_SYSCALL is not set CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_KMOD=y CONFIG_BLOCK=y # CONFIG_LBD is not set # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set # CONFIG_BLK_DEV_BSG is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_DEFAULT_AS=y # CONFIG_DEFAULT_DEADLINE is not set # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="anticipatory" # # System type # CONFIG_CPU_SH4=y # CONFIG_CPU_SUBTYPE_SH7619 is not set # CONFIG_CPU_SUBTYPE_SH7206 is not set # CONFIG_CPU_SUBTYPE_SH7705 is not set # CONFIG_CPU_SUBTYPE_SH7706 is not set # CONFIG_CPU_SUBTYPE_SH7707 is not set # CONFIG_CPU_SUBTYPE_SH7708 is not set # CONFIG_CPU_SUBTYPE_SH7709 is not set # CONFIG_CPU_SUBTYPE_SH7710 is not set # CONFIG_CPU_SUBTYPE_SH7712 is not set # CONFIG_CPU_SUBTYPE_SH7720 is not set # CONFIG_CPU_SUBTYPE_SH7750 is not set CONFIG_CPU_SUBTYPE_SH7091=y # CONFIG_CPU_SUBTYPE_SH7750R is not set # CONFIG_CPU_SUBTYPE_SH7750S is not set # CONFIG_CPU_SUBTYPE_SH7751 is not set # CONFIG_CPU_SUBTYPE_SH7751R is not set # CONFIG_CPU_SUBTYPE_SH7760 is not set # CONFIG_CPU_SUBTYPE_SH4_202 is not set # CONFIG_CPU_SUBTYPE_SH7770 is not set # CONFIG_CPU_SUBTYPE_SH7780 is not set # CONFIG_CPU_SUBTYPE_SH7785 is not set # CONFIG_CPU_SUBTYPE_SHX3 is not set # CONFIG_CPU_SUBTYPE_SH7343 is not set # CONFIG_CPU_SUBTYPE_SH7722 is not set # # Memory management options # CONFIG_QUICKLIST=y CONFIG_MMU=y CONFIG_PAGE_OFFSET=0x80000000 CONFIG_MEMORY_START=0x0c000000 CONFIG_MEMORY_SIZE=0x01000000 CONFIG_VSYSCALL=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_MAX_ACTIVE_REGIONS=1 CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_PAGE_SIZE_4KB=y # CONFIG_PAGE_SIZE_8KB is not set # CONFIG_PAGE_SIZE_64KB is not set CONFIG_HUGETLB_PAGE_SIZE_64K=y # CONFIG_HUGETLB_PAGE_SIZE_256K is not set # CONFIG_HUGETLB_PAGE_SIZE_1MB is not set # CONFIG_HUGETLB_PAGE_SIZE_4MB is not set # CONFIG_HUGETLB_PAGE_SIZE_64MB is not set CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y # CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=0 CONFIG_NR_QUICK=2 # # Cache configuration # CONFIG_SH_DIRECT_MAPPED=y CONFIG_CACHE_WRITEBACK=y # CONFIG_CACHE_WRITETHROUGH is not set # CONFIG_CACHE_OFF is not set # # Processor features # CONFIG_CPU_LITTLE_ENDIAN=y # CONFIG_CPU_BIG_ENDIAN is not set CONFIG_SH_FPU=y CONFIG_SH_STORE_QUEUES=y CONFIG_CPU_HAS_INTEVT=y CONFIG_CPU_HAS_SR_RB=y CONFIG_CPU_HAS_PTEA=y CONFIG_CPU_HAS_FPU=y # # Board support # CONFIG_SH_DREAMCAST=y # # Timer and clock configuration # CONFIG_SH_TMU=y CONFIG_SH_TIMER_IRQ=16 CONFIG_SH_PCLK_FREQ=49876504 # CONFIG_TICK_ONESHOT is not set # CONFIG_NO_HZ is not set # CONFIG_HIGH_RES_TIMERS is not set CONFIG_GENERIC_CLOCKEVENTS_BUILD=y # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y # CONFIG_CPU_FREQ_DEBUG is not set # CONFIG_CPU_FREQ_STAT is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set # CONFIG_CPU_FREQ_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set CONFIG_SH_CPU_FREQ=y # # DMA support # CONFIG_SH_DMA_API=y CONFIG_SH_DMA=y CONFIG_NR_ONCHIP_DMA_CHANNELS=4 CONFIG_NR_DMA_CHANNELS_BOOL=y CONFIG_NR_DMA_CHANNELS=9 # # Companion Chips # # # Additional SuperH Device Drivers # # CONFIG_HEARTBEAT is not set # CONFIG_PUSH_SWITCH is not set # # Kernel features # # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=250 # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_PREEMPT_BKL=y CONFIG_GUSA=y # # Boot options # CONFIG_ZERO_PAGE_OFFSET=0x00001000 CONFIG_BOOT_LINK_OFFSET=0x00800000 # CONFIG_UBC_WAKEUP is not set CONFIG_CMDLINE_BOOL=y CONFIG_CMDLINE="console=ttySC1 panic=5 root=/dev/nf rw nfsaddrs=192.168.61.55:192.168.61.50:192.168.61.50: earlyprintk=serial video=pvr2fb:640x480-32@60" # # Bus options # CONFIG_MAPLE=y CONFIG_PCI=y CONFIG_SH_PCIDMA_NONCOHERENT=y CONFIG_PCI_AUTO=y # CONFIG_ARCH_SUPPORTS_MSI is not set CONFIG_PCI_LEGACY=y # CONFIG_PCCARD is not set # CONFIG_HOTPLUG_PCI is not set # # Executable file formats # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=y # CONFIG_PACKET_MMAP is not set CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set CONFIG_IP_FIB_HASH=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y # CONFIG_IP_PNP_BOOTP is not set # CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set # CONFIG_INET_TUNNEL is not set # CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set # CONFIG_INET_XFRM_MODE_BEET is not set # CONFIG_INET_LRO is not set # CONFIG_INET_DIAG is not set # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETFILTER is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set # # Wireless # # CONFIG_CFG80211 is not set # CONFIG_WIRELESS_EXT is not set # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" # CONFIG_STANDALONE is not set CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set # CONFIG_PARPORT is not set CONFIG_BLK_DEV=y CONFIG_GDROM=m # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set # CONFIG_BLK_DEV_LOOP is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_MISC_DEVICES is not set # CONFIG_IDE is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set # CONFIG_SCSI is not set # CONFIG_SCSI_DMA is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # # CONFIG_FIREWIRE is not set # CONFIG_IEEE1394 is not set # CONFIG_I2O is not set CONFIG_NETDEVICES=y # CONFIG_NETDEVICES_MULTIQUEUE is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set # CONFIG_VETH is not set # CONFIG_IP1000 is not set # CONFIG_ARCNET is not set # CONFIG_PHYLIB is not set CONFIG_NET_ETHERNET=y CONFIG_MII=y # CONFIG_STNIC is not set # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_SMC91X is not set # CONFIG_SMC911X is not set # CONFIG_NET_TULIP is not set # CONFIG_HP100 is not set # CONFIG_IBM_NEW_EMAC_ZMII is not set # CONFIG_IBM_NEW_EMAC_RGMII is not set # CONFIG_IBM_NEW_EMAC_TAH is not set # CONFIG_IBM_NEW_EMAC_EMAC4 is not set CONFIG_NET_PCI=y # CONFIG_PCNET32 is not set # CONFIG_AMD8111_ETH is not set # CONFIG_ADAPTEC_STARFIRE is not set # CONFIG_B44 is not set # CONFIG_FORCEDETH is not set # CONFIG_EEPRO100 is not set # CONFIG_E100 is not set # CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_8139CP is not set CONFIG_8139TOO=y # CONFIG_8139TOO_PIO is not set # CONFIG_8139TOO_TUNE_TWISTER is not set # CONFIG_8139TOO_8129 is not set # CONFIG_8139_OLD_RX_RESET is not set # CONFIG_SIS900 is not set # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set # CONFIG_VIA_RHINE is not set # CONFIG_SC92031 is not set # CONFIG_NETDEV_1000 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # # Wireless LAN # # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # # Userland interfaces # # CONFIG_INPUT_MOUSEDEV is not set # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_EVDEV is not set # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ATKBD is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set CONFIG_KEYBOARD_MAPLE=y # CONFIG_INPUT_MOUSE is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y # CONFIG_SERIO_I8042 is not set # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # # CONFIG_SERIAL_8250 is not set # # Non-8250 serial port support # CONFIG_SERIAL_SH_SCI=y CONFIG_SERIAL_SH_SCI_NR_UARTS=2 CONFIG_SERIAL_SH_SCI_CONSOLE=y CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_RAW_DRIVER is not set # CONFIG_TCG_TPM is not set CONFIG_DEVPORT=y # CONFIG_I2C is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set # CONFIG_W1 is not set # CONFIG_POWER_SUPPLY is not set # CONFIG_HWMON is not set CONFIG_WATCHDOG=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # # CONFIG_SOFT_WATCHDOG is not set # CONFIG_SH_WDT is not set # # PCI-based Watchdog Cards # # CONFIG_PCIPCWATCHDOG is not set # CONFIG_WDTPCI is not set # # Sonics Silicon Backplane # CONFIG_SSB_POSSIBLE=y # CONFIG_SSB is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # # Multimedia devices # # CONFIG_VIDEO_DEV is not set # CONFIG_DVB_CORE is not set # CONFIG_DAB is not set # # Graphics support # # CONFIG_DRM is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y CONFIG_FIRMWARE_EDID=y # CONFIG_FB_DDC is not set CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_SYS_FOPS is not set CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set # CONFIG_FB_MODE_HELPERS is not set # CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set CONFIG_FB_PVR2=y # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Display device support # # CONFIG_DISPLAY_SUPPORT is not set # # Console display driver support # CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y # CONFIG_LOGO_LINUX_MONO is not set # CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set # CONFIG_LOGO_SUPERH_MONO is not set # CONFIG_LOGO_SUPERH_VGA16 is not set CONFIG_LOGO_SUPERH_CLUT224=y # # Sound # CONFIG_SOUND=m # # Advanced Linux Sound Architecture # CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m # CONFIG_SND_SEQUENCER is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y # CONFIG_SND_DYNAMIC_MINORS is not set # CONFIG_SND_SUPPORT_OLD_API is not set CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set # # Generic devices # # CONFIG_SND_DUMMY is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set # # PCI devices # # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set # CONFIG_SND_HDA_INTEL is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set # CONFIG_SND_INTEL8X0 is not set # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # # SUPERH devices # CONFIG_SND_AICA=m # # System on Chip audio support # # CONFIG_SND_SOC is not set # # SoC Audio support for SuperH # # # Open Sound System # # CONFIG_SOUND_PRIME is not set # CONFIG_HID_SUPPORT is not set # CONFIG_USB_SUPPORT is not set # CONFIG_MMC is not set # CONFIG_NEW_LEDS is not set # CONFIG_INFINIBAND is not set # CONFIG_RTC_CLASS is not set # # Userspace I/O # # CONFIG_UIO is not set # # File systems # # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set # CONFIG_EXT4DEV_FS is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_FS_POSIX_ACL=y # CONFIG_XFS_FS is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_INOTIFY is not set # CONFIG_QUOTA is not set # CONFIG_DNOTIFY is not set # CONFIG_AUTOFS_FS is not set # CONFIG_AUTOFS4_FS is not set # CONFIG_FUSE_FS is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y # CONFIG_JOLIET is not set # CONFIG_ZISOFS is not set # CONFIG_UDF_FS is not set # # DOS/FAT/NT Filesystems # # CONFIG_MSDOS_FS is not set # CONFIG_VFAT_FS is not set # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y # CONFIG_TMPFS_POSIX_ACL is not set CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y # CONFIG_CONFIGFS_FS is not set # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_DIRECTIO is not set # CONFIG_NFSD is not set CONFIG_ROOT_NFS=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y # CONFIG_SUNRPC_BIND34 is not set CONFIG_RPCSEC_GSS_KRB5=y # CONFIG_RPCSEC_GSS_SPKM3 is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # # CONFIG_PARTITION_ADVANCED is not set CONFIG_MSDOS_PARTITION=y # CONFIG_NLS is not set # CONFIG_DLM is not set # CONFIG_INSTRUMENTATION is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y # CONFIG_MAGIC_SYSRQ is not set # CONFIG_UNUSED_SYMBOLS is not set # CONFIG_DEBUG_FS is not set # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_KERNEL is not set # CONFIG_DEBUG_BUGVERBOSE is not set # CONFIG_SAMPLES is not set # CONFIG_SH_STANDARD_BIOS is not set CONFIG_EARLY_SCIF_CONSOLE=y CONFIG_EARLY_SCIF_CONSOLE_PORT=0xffe80000 CONFIG_EARLY_PRINTK=y # CONFIG_SH_KGDB is not set # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set # CONFIG_SECURITY_FILE_CAPABILITIES is not set CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_MANAGER=y # CONFIG_CRYPTO_HMAC is not set # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_MD4 is not set CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_SHA1 is not set # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_WP512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_GF128MUL is not set # CONFIG_CRYPTO_ECB is not set CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_XTS is not set # CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_AES is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set # CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_ARC4 is not set # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_ANUBIS is not set # CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_TEST is not set # CONFIG_CRYPTO_AUTHENC is not set # CONFIG_CRYPTO_HW is not set # # Library routines # CONFIG_BITREVERSE=y # CONFIG_CRC_CCITT is not set # CONFIG_CRC16 is not set # CONFIG_CRC_ITU_T is not set CONFIG_CRC32=y # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y |
From: Adrian M. <ad...@ne...> - 2007-11-11 18:06:37
|
On Sun, 2007-11-11 at 13:54 +0000, Adrian McMenamin wrote: > I have this code: > ie it locks ups in the request for the interrupt. If I change > IRQF_DISABLED to, say IRQF_SHARED, it does retrun reporting an error: > > / # modprobe gdrom > [ 169.130924] init_gdrom This is the correct behaviour, of course, as I haven't specified a device. I'm looking further into this, and the lock up occurs in (or beneath) setup_irq |
From: Adrian M. <ad...@ne...> - 2007-11-11 13:55:01
|
I have this code: static int gdrom_set_command_interrupt_handler(void) { int err; #ifdef GDROMDEBUG printk("%s\n", __FUNCTION__); #endif /* need a queue to wait in */ init_waitqueue_head(&command_queue); err = request_irq(HW_EVENT_GDROM_CMD, gdrom_command_interrupt, IRQF_DISABLED, "gdrom", NULL); if (err) return -err; #ifdef GDROMDEBUG printk("Interrupt is registered\n"); #endif return 0; } Which, when run, produces this output... / # modprobe gdrom [ 32.383697] init_gdrom [ 32.444063] probe_gdrom [ 32.448559] gdrom_execute_diagnostic [ 33.949789] Completed: wait_clrbusy [ 33.953416] Completed: gdrom_wait_busy_sleeps [ 33.959472] gdrom_identifydevice [ 33.966199] Completed: wait_clrbusy [ 33.971730] Completed: wait_clrbusy [ 33.975238] Completed: gdrom_wait_busy_sleeps [ 33.982966] GDROM: CD-ROM DRIVE from SE with firmware 6.42 [ 33.991082] GDROM: Block device is registered with major number 254 [ 34.000370] Uniform CD-ROM driver Revision: 3.20 [ 34.006600] gdrom_set_command_interrupt_handler ie it locks ups in the request for the interrupt. If I change IRQF_DISABLED to, say IRQF_SHARED, it does retrun reporting an error: / # modprobe gdrom [ 169.130924] init_gdrom [ 169.190342] probe_gdrom [ 169.194487] gdrom_execute_diagnostic [ 170.742247] Completed: wait_clrbusy [ 170.747856] Completed: gdrom_wait_busy_sleeps [ 170.753782] gdrom_identifydevice [ 170.758586] Completed: wait_clrbusy [ 170.764557] Completed: wait_clrbusy [ 170.768066] Completed: gdrom_wait_busy_sleeps [ 170.775367] GDROM: CD-ROM DRIVE from SE with firmware 6.42 [ 170.783721] GDROM: Block device is registered with major number 254 [ 170.789969] Uniform CD-ROM driver Revision: 3.20 [ 170.799784] gdrom_set_command_interrupt_handler [ 170.804542] GDROM: Could not probe for device - error is 0x16 [ 170.813425] gdrom: probe of gdrom failed with error 22 The previous driver used SA_INTERRUPT, which is the same as IRQF_DISABLED iiuc Any ideas why it doesn't even return on IRQF_DISABLED? The kernel does not detect it as a soft lockup. |
From: Heiko S. <hei...@in...> - 2007-11-11 11:22:09
|
Hello Paul, Paul Mundt schrieb: > On Sat, Nov 10, 2007 at 08:00:58PM +0100, Heiko Schocher wrote: > >> Adrian McMenamin schrieb: >> > On Sat, 2007-11-10 at 18:06 +0100, Heiko Schocher wrote: >> >> I get the newest kernel from >> >> git clone git://newgolddream.dyndns.info/ >> > >> > Well, that's my Dreamcast git and it has some patches to get the kernel >> > to work with ST's compiler and that may well be the reason. By all means >> > use it but it has no official status and there is certainly no guarantee >> > it will work at any given time. >> > >> > Go to git.kernel.org instead. >> >> Ups, didnt know this. Thought this is the "SH linux kernel", which >> contains the newest special SH patches (like the patches from this >> mailinglist), before they go into the mainline ... >> Is there somewhere such a special sh-linux kernel? >> >> > I'm not sure where you got that idea from, this is documented on the > wiki: > > http://linux-sh.org/shwiki/Getting_source > Ahh, thanks. > I also have a number of SH-related git trees for development work, but > the current kernel bits are always pushed to Linus once a week or so on > average. > > You can browse http://git.kernel.org for different trees. > > Feel free to complain if you think the wiki page should be updated with > some more information that might be helpful, this should be a fairly > painless process, so we'd like to have all of the ambiguities addressed. > Hmm.. I am using git, because I think thats the "standard" todays, right? Couldnt find some informations about git on this page, maybe this should be updated? > >> BTW: >> I get this kernel compiling and running on a SH7750R based board without >> caches :-), following patch is additionally needed: >> >> diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h >> index b912461..9d528ad 100644 >> --- a/include/asm-sh/cacheflush.h >> +++ b/include/asm-sh/cacheflush.h >> @@ -43,7 +43,7 @@ extern void __flush_purge_region(void *start, int size); >> extern void __flush_invalidate_region(void *start, int size); >> #endif >> >> -#ifdef CONFIG_CPU_SH4 >> +#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_CACHE_OFF) >> extern void copy_to_user_page(struct vm_area_struct *vma, >> struct page *page, unsigned long vaddr, void *dst, const void *src, >> unsigned long len); >> >> I think, that has nothing to do with some special ST compiler, it should be >> fixed, or? (Same as my patch from today >> > > Hmm, yes, that's probably true. We can certainly use the generic routines > for this with CONFIG_CACHE_OFF=y. Anyways, the intent with the > kmap_coherent() interface was that we could gradually nop this out on the > platforms that don't care and then end up with a single set of page > copying routines, rather than having subtype-specific cruft. > > For 2.6.24 though, your patch is probably the best solution. I'll apply > it to my 2.6.24 tree. > > OK, thanks. Actually tried the tree from kernel.org, but my problem with the caches on my SH7750R based board isnt gone ... if I disable the cache, Linux runs fine. Actually, I think, yet found the place where my board restarts: If I make a while (1); at the end of the function sh_cpu_init() in arch/sh/kernel/cpu/init.c the cpu dont restart, the next function called is start_kernel (). If I make there as first a while (1), the cpu restarts ... dont see an SH7750R specific thing in arch/sh/kernel/head.S on this place: 10: ! Additional CPU initialization mov.l 6f, r0 jsr @r0 nop SYNCO() ! Wait for pending instructions.. ! Start kernel mov.l 5f, r0 jmp @r0 nop .balign 4 System-map: [...] 882550c0 T start_kernel [...] 88257840 T sh_cpu_init [...] Any ideas? (damned, dont have a debugger ...) bye Heiko |
From: Paul M. <le...@li...> - 2007-11-11 09:36:52
|
On Sun, Nov 11, 2007 at 10:06:21AM +0100, Adrian Bunk wrote: > Commit 8687991a734a67f1638782c968f46fff0f94bb1f causes the following > compile error on sh64: > > <-- snip --> > > ... > CC [M] drivers/net/ax88796.o > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c: In function 'ax_get_8390_hdr': > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c:187: error: implicit declaration of function 'readsw' > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c:189: error: implicit declaration of function 'readsb' > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c: In function 'ax_block_output': > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c:275: error: implicit declaration of function 'writesw' > /home/bunk/linux/kernel-2.6/git/linux-2.6/drivers/net/ax88796.c:277: error: implicit declaration of function 'writesb' > make[3]: *** [drivers/net/ax88796.o] Error 1 > > <-- snip --> > That's a pretty good argument for the PLAT_HAS_xxx stuff in the Kconfig space. We could have a if (CONFIG_SUPERH && !CONFIG_SUPERH64) thing here, but there's probably not much point. I'm planning on merging them in the 2.6.25 time period anyways, so adding a stop-gap solution to hide this driver's visibility doesn't really seem like a worthwhile endeavour. |
From: Paul M. <le...@li...> - 2007-11-11 04:04:16
|
On Sat, Nov 10, 2007 at 08:00:58PM +0100, Heiko Schocher wrote: > Adrian McMenamin schrieb: > > On Sat, 2007-11-10 at 18:06 +0100, Heiko Schocher wrote: > >> I get the newest kernel from > >> git clone git://newgolddream.dyndns.info/ > > > > Well, that's my Dreamcast git and it has some patches to get the kernel > > to work with ST's compiler and that may well be the reason. By all means > > use it but it has no official status and there is certainly no guarantee > > it will work at any given time. > > > > Go to git.kernel.org instead. > > Ups, didnt know this. Thought this is the "SH linux kernel", which > contains the newest special SH patches (like the patches from this > mailinglist), before they go into the mainline ... > Is there somewhere such a special sh-linux kernel? > I'm not sure where you got that idea from, this is documented on the wiki: http://linux-sh.org/shwiki/Getting_source I also have a number of SH-related git trees for development work, but the current kernel bits are always pushed to Linus once a week or so on average. You can browse http://git.kernel.org for different trees. Feel free to complain if you think the wiki page should be updated with some more information that might be helpful, this should be a fairly painless process, so we'd like to have all of the ambiguities addressed. > BTW: > I get this kernel compiling and running on a SH7750R based board without > caches :-), following patch is additionally needed: > > diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h > index b912461..9d528ad 100644 > --- a/include/asm-sh/cacheflush.h > +++ b/include/asm-sh/cacheflush.h > @@ -43,7 +43,7 @@ extern void __flush_purge_region(void *start, int size); > extern void __flush_invalidate_region(void *start, int size); > #endif > > -#ifdef CONFIG_CPU_SH4 > +#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_CACHE_OFF) > extern void copy_to_user_page(struct vm_area_struct *vma, > struct page *page, unsigned long vaddr, void *dst, const void *src, > unsigned long len); > > I think, that has nothing to do with some special ST compiler, it should be > fixed, or? (Same as my patch from today Hmm, yes, that's probably true. We can certainly use the generic routines for this with CONFIG_CACHE_OFF=y. Anyways, the intent with the kmap_coherent() interface was that we could gradually nop this out on the platforms that don't care and then end up with a single set of page copying routines, rather than having subtype-specific cruft. For 2.6.24 though, your patch is probably the best solution. I'll apply it to my 2.6.24 tree. |
From: Adrian M. <ad...@ne...> - 2007-11-10 19:07:08
|
On Sat, 2007-11-10 at 20:00 +0100, Heiko Schocher wrote: > Hello Adrian, > > Adrian McMenamin schrieb: > > On Sat, 2007-11-10 at 18:06 +0100, Heiko Schocher wrote: > >> Hello, > >> > >> I get the newest kernel from > >> git clone git://newgolddream.dyndns.info/ > > > > Well, that's my Dreamcast git and it has some patches to get the kernel > > to work with ST's compiler and that may well be the reason. By all means > > use it but it has no official status and there is certainly no guarantee > > it will work at any given time. > > > > Go to git.kernel.org instead. > > > > Ups, didnt know this. Thought this is the "SH linux kernel", which contains the > newest special SH patches (like the patches from this mailinglist), before they > go into the mainline ... > Is there somewhere such a special sh-linux kernel? > Well, the mainline kernel should compile for SH and work. Everything goes into mainline these days (eventually). Paul Mundt (the Linux SH maintainer) has his own git repo on the kernel.org server where he feeds things to Linus, but if you are looking for a booting kernel as opposed to developing stuff then 2.6.23 should work for you - ie just download the tarball and go (I'm assuming you have all the tools you need). > BTW: > I get this kernel compiling and running on a SH7750R based board without > caches :-), following patch is additionally needed: > > diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h > index b912461..9d528ad 100644 > --- a/include/asm-sh/cacheflush.h > +++ b/include/asm-sh/cacheflush.h > @@ -43,7 +43,7 @@ extern void __flush_purge_region(void *start, int size); > extern void __flush_invalidate_region(void *start, int size); > #endif > > -#ifdef CONFIG_CPU_SH4 > +#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_CACHE_OFF) > extern void copy_to_user_page(struct vm_area_struct *vma, > struct page *page, unsigned long vaddr, void *dst, const void *src, > unsigned long len); > > I think, that has nothing to do with some special ST compiler, it should be > fixed, or? (Same as my patch from today > Date: Sat, 10 Nov 2007 18:06:59 +0100) > No that's not the ST compiler issue - that was the missing symbols. Paul is the expert on the sort of stuff above - he'll see this I'm sure and reply in due course. > Now I trying the sources from git.kernel.org ... > > One more question, if I have my board finally running, against which > kernel have i do to make my patches? > Against Paul's most recent SH sources I'd guess. > bye > Heiko |
From: Heiko S. <hei...@in...> - 2007-11-10 19:01:23
|
Hello Adrian, Adrian McMenamin schrieb: > On Sat, 2007-11-10 at 18:06 +0100, Heiko Schocher wrote: >> Hello, >> >> I get the newest kernel from >> git clone git://newgolddream.dyndns.info/ > > Well, that's my Dreamcast git and it has some patches to get the kernel > to work with ST's compiler and that may well be the reason. By all means > use it but it has no official status and there is certainly no guarantee > it will work at any given time. > > Go to git.kernel.org instead. > Ups, didnt know this. Thought this is the "SH linux kernel", which contains the newest special SH patches (like the patches from this mailinglist), before they go into the mainline ... Is there somewhere such a special sh-linux kernel? BTW: I get this kernel compiling and running on a SH7750R based board without caches :-), following patch is additionally needed: diff --git a/include/asm-sh/cacheflush.h b/include/asm-sh/cacheflush.h index b912461..9d528ad 100644 --- a/include/asm-sh/cacheflush.h +++ b/include/asm-sh/cacheflush.h @@ -43,7 +43,7 @@ extern void __flush_purge_region(void *start, int size); extern void __flush_invalidate_region(void *start, int size); #endif -#ifdef CONFIG_CPU_SH4 +#if defined(CONFIG_CPU_SH4) && !defined(CONFIG_CACHE_OFF) extern void copy_to_user_page(struct vm_area_struct *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len); I think, that has nothing to do with some special ST compiler, it should be fixed, or? (Same as my patch from today Date: Sat, 10 Nov 2007 18:06:59 +0100) Now I trying the sources from git.kernel.org ... One more question, if I have my board finally running, against which kernel have i do to make my patches? bye Heiko |
From: Adrian M. <ad...@ne...> - 2007-11-10 18:43:30
|
Trivial, but it saves a line. Maple is no longer a module so this isn't needed. Remove include no longer needed Submitted by: Adrian McMenamin <ad...@mc...> --- diff --git a/drivers/sh/maple/maple.c b/drivers/sh/maple/maple.c index e52a629..37c0bf7 100644 --- a/drivers/sh/maple/maple.c +++ b/drivers/sh/maple/maple.c @@ -18,7 +18,6 @@ #include <linux/init.h> #include <linux/kernel.h> #include <linux/device.h> -#include <linux/module.h> #include <linux/interrupt.h> #include <linux/list.h> #include <linux/io.h> |
From: Adrian M. <ad...@ne...> - 2007-11-10 17:15:12
|
On Sat, 2007-11-10 at 18:06 +0100, Heiko Schocher wrote: > Hello, > > I get the newest kernel from > git clone git://newgolddream.dyndns.info/ Well, that's my Dreamcast git and it has some patches to get the kernel to work with ST's compiler and that may well be the reason. By all means use it but it has no official status and there is certainly no guarantee it will work at any given time. Go to git.kernel.org instead. |
From: Heiko S. <hei...@in...> - 2007-11-10 17:06:57
|
Hello, I get the newest kernel from git clone git://newgolddream.dyndns.info/ because I hoped to get rid of my problems, when I activate the cache on my SH7750R based board. When I compiled it without Cache (CONFIG_CACHE_OFF activated): I get the following error: UPD include/linux/compile.h CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 arch/sh/kernel/built-in.o:(__ksymtab+0xa8): undefined reference to `__udivsi3_i4i' arch/sh/kernel/built-in.o:(__ksymtab+0xb0): undefined reference to `__sdivsi3_i4i' mm/built-in.o: In function `access_process_vm': (.text+0x129a8): undefined reference to `copy_to_user_page' mm/built-in.o: In function `access_process_vm': (.text+0x129b8): undefined reference to `copy_from_user_page' make: *** [.tmp_vmlinux1] Fehler 1 hs@Zeus:~/Entwicklung/sh4/linux-sh-20071110> with CONFIG_CACHE_WRITETHROUGH=y I get CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 arch/sh/kernel/built-in.o:(__ksymtab+0xd0): undefined reference to `__udivsi3_i4i' arch/sh/kernel/built-in.o:(__ksymtab+0xd8): undefined reference to `__sdivsi3_i4i' make: *** [.tmp_vmlinux1] Fehler 1 hs@Zeus:~/Entwicklung/sh4/linux-sh-20071110> making the following changes: diff --git a/arch/sh/kernel/sh_ksyms.c b/arch/sh/kernel/sh_ksyms.c index 04365f6..b1c759f 100644 --- a/arch/sh/kernel/sh_ksyms.c +++ b/arch/sh/kernel/sh_ksyms.c @@ -110,8 +110,6 @@ DECLARE_EXPORT(__movstr); DECLARE_EXPORT(__movmem_i4_even); DECLARE_EXPORT(__movmem_i4_odd); DECLARE_EXPORT(__movmemSI12_i4); -DECLARE_EXPORT(__sdivsi3_i4i); -DECLARE_EXPORT(__udivsi3_i4i); #if (__GNUC_MINOR__ == 2 || defined(__GNUC_STM_RELEASE__)) /* @@ -119,6 +117,8 @@ DECLARE_EXPORT(__udivsi3_i4i); * compiler which include backported patches. */ DECLARE_EXPORT(__udiv_qrnnd_16); +DECLARE_EXPORT(__sdivsi3_i4i); +DECLARE_EXPORT(__udivsi3_i4i); #endif #else /* GCC 3.x */ DECLARE_EXPORT(__movstr_i4_even); and it compiles clean (with CONFIG_CACHE_WRITETHROUGH=y)... but I am not sure if this is correct. I use gcc: hs@Zeus:~/Entwicklung/sh4/linux-sh-20071110> sh4-linux-gcc --version sh-linux-gcc (GCC) 4.1.1 20061011 (Red Hat 4.1.1-30) Copyright (C) 2006 Free Software Foundation, Inc. Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. Nevertheless, with caches activated, Linux doesnt boot ... I am searching for this ... bye Heiko |
From: Paul M. <le...@li...> - 2007-11-10 15:30:23
|
On Sat, Nov 10, 2007 at 03:25:08PM +0000, Adrian McMenamin wrote: > On Sun, 2007-11-11 at 00:21 +0900, Paul Mundt wrote: > > The bogus address you're hitting is a result of the address wrapping > > around. So I suggest you change your DATA_REG to 0x05f7080 and see how > > that goes. > > I'm just going to write my own functions for this based on the SH64 ones > - or at least the ones that were in SH64 What on earth for? You should be letting ioport_map() take care of the segment offset for you, rather than trying to hack around it. Fix your register addresses, don't hack around them with bogus I/O routines. The SH64 ones are in the progress of switching over to the stock SH ones, primarily because of this reason (and the fact that P1/P2 assumptions are just bogus on quite a number of CPUs at this point, so having the generic routines do the right thing is the only portable way to go).. |
From: Adrian M. <ad...@ne...> - 2007-11-10 15:25:47
|
On Sun, 2007-11-11 at 00:21 +0900, Paul Mundt wrote: > > The bogus address you're hitting is a result of the address wrapping > around. So I suggest you change your DATA_REG to 0x05f7080 and see how > that goes. I'm just going to write my own functions for this based on the SH64 ones - or at least the ones that were in SH64 |
From: Paul M. <le...@li...> - 2007-11-10 15:22:38
|
On Sat, Nov 10, 2007 at 02:41:15PM +0000, Adrian McMenamin wrote: > I am investigating this further, but what seems like a perfectly good > command: > > insw(GDROM_DATA_REG, &sense, 10); > > Where GDROM_DATA_REG is 0xA5F7080, sense is an array of 5 shorts, is > oopsing after what looks like an odd translation of the port address - > anybody know more or do I need to parch? (Or have I got this all wrong). > That's your problem, insw goes through ioport_map(), which in the generic path wraps to the generic_io_base, which the Dreamcast sets to P2. The bogus address you're hitting is a result of the address wrapping around. So I suggest you change your DATA_REG to 0x05f7080 and see how that goes. |
From: Adrian M. <ad...@ne...> - 2007-11-10 14:41:42
|
I am investigating this further, but what seems like a perfectly good command: insw(GDROM_DATA_REG, &sense, 10); Where GDROM_DATA_REG is 0xA5F7080, sense is an array of 5 shorts, is oopsing after what looks like an odd translation of the port address - anybody know more or do I need to parch? (Or have I got this all wrong). / # cat /dev/gdrom [ 29.824304] gdrom_bdops_open [ 29.826695] GDROM open [ 29.832088] Completed: wait_clrbusy [ 29.835477] Completed: gdrom_wait_busy_sleeps [ 29.839529] gdrom_getsense [ 29.842306] Completed: wait_clrbusy [ 29.846006] gdrom_spicommand [ 29.848773] Completed: wait_clrbusy [ 29.852479] Unable to handle kernel paging request at virtual address 405f7080 [ 29.859919] pc = 8c00349c [ 29.862935] *pde = 00000000 [ 29.865463] Oops: 0000 [#1] [ 29.868263] Modules linked in: gdrom cdrom [ 29.872483] [ 29.874015] Pid : 1059, Comm: cat [ 29.878973] PC is at generic_insw+0x1c/0x40 [ 29.883273] PC : 8c00349c SP : 8c5c9cd0 SR : 40008000 TEA : 405f7080 Not tainted [ 29.891449] R0 : 405f7080 R1 : 8c2d9030 R2 : 00000000 R3 : a05f7080 [ 29.898276] R4 : a05f7080 R5 : 8c5c9ce2 R6 : 0000000a R7 : a05f7018 [ 29.905102] R8 : 0000000a R9 : 8c5c9ce2 R10 : 8c017a40 R11 : c0023370 [ 29.911926] R12 : 8cac0780 R13 : c0050728 R14 : 8c5c9cd0 [ 29.917406] MACH: 0000043e MACL: 00000668 GBR : 00000000 PR : 8c003494 [ 29.924221] [ 29.924234] Call trace: [ 29.928358] [<c00223e2>] gdrom_open+0x62/0x260 [gdrom] [ 29.933661] [<c004d2e8>] cdrom_open+0x308/0xb60 [cdrom] [ 29.939050] [<c004d32a>] cdrom_open+0x34a/0xb60 [cdrom] [ 29.944443] [<8c21aeca>] _spin_unlock+0xa/0x60 [ 29.949017] [<8c21aed0>] _spin_unlock+0x10/0x60 [ 29.953689] [<8c02cc54>] __rcu_process_callbacks+0x1d4/0x2c0 [ 29.959527] [<8c02cd58>] rcu_process_callbacks+0x18/0x40 [ 29.965008] [<8c02ca80>] __rcu_process_callbacks+0x0/0x2c0 [ 29.970663] [<8c01d696>] tasklet_action+0x76/0xe0 [ 29.975516] [<8c01d3da>] __do_softirq+0x7a/0x140 [ 29.980274] [<8c01d304>] _local_bh_enable+0x24/0x80 [ 29.985305] [<8c01d40e>] __do_softirq+0xae/0x140 [ 29.990066] [<8c01d526>] do_softirq+0x86/0xa0 [ 29.994563] [<8c01da18>] irq_exit+0x58/0x80 [ 29.998867] [<8c01da1c>] irq_exit+0x5c/0x80 [ 30.003180] [<8c003884>] do_IRQ+0x44/0xa0 [ 30.007313] [<8c0080e4>] ret_from_irq+0x0/0x18 [ 30.011893] [<8c016b00>] emit_log_char+0x0/0x80 [ 30.016562] [<8c003840>] do_IRQ+0x0/0xa0 [ 30.020615] [<8c016b00>] emit_log_char+0x0/0x80 [ 30.025277] [<8c00dccc>] __do_page_fault+0xcc/0x180 [ 30.030309] [<8c008024>] call_dpf+0x10/0x30 [ 30.034620] [<8c0080dc>] ret_from_exception+0x0/0x8 [ 30.039649] [<c004cfe0>] cdrom_open+0x0/0xb60 [cdrom] [ 30.044873] [<c00222e2>] gdrom_bdops_open+0x22/0x60 [gdrom] [ 30.050612] [<c00222e2>] gdrom_bdops_open+0x22/0x60 [gdrom] [ 30.056361] [<8c0a761e>] do_open+0x7e/0x400 [ 30.060672] [<8c0a7cae>] blkdev_open+0x2e/0xa0 [ 30.065247] [<8c0a7c80>] blkdev_open+0x0/0xa0 [ 30.069742] [<8c071ab0>] __dentry_open+0xf0/0x300 [ 30.074594] [<8c071dac>] nameidata_to_filp+0x4c/0x80 [ 30.079715] [<8c071e28>] do_filp_open+0x48/0x60 [ 30.084382] [<8c21b286>] _spin_lock_irqsave+0x26/0x40 [ 30.089588] [<8c21abd6>] _spin_lock+0x16/0x40 [ 30.094083] [<8c1272a0>] find_next_zero_bit+0x0/0xa0 [ 30.099198] [<8c21aeca>] _spin_unlock+0xa/0x60 [ 30.103780] [<8c21aed0>] _spin_unlock+0x10/0x60 [ 30.108452] [<8c071912>] get_unused_fd_flags+0xb2/0x140 [ 30.113843] [<8c071e70>] do_sys_open+0x30/0xc0 [ 30.118424] [<8c071e84>] do_sys_open+0x44/0xc0 [ 30.123005] [<8c071f34>] sys_open+0x14/0x20 [ 30.127319] [<8c071f20>] sys_open+0x0/0x20 [ 30.131534] [<8c008238>] syscall_call+0xc/0x10 [ 30.136135] [ 30.137647] Process: cat (pid: 1059, stack limit = 8c5c8001) [ 30.143485] Stack: (0x8c5c9cd0 to 0x8c5ca000) [ 30.147970] 9cc0: c00223e2 8c5c9ce0 8c5817e0 ffffff85 [ 30.156503] 9ce0: c004d2e8 8c5c9d00 c0050728 c004d32a 8c5c9d00 c0050728 8c492180 ffffff85 [ 30.165036] 9d00: 8c2df760 8c802094 8c2e0a48 8c21aeca 8c21aed0 8c5c9d18 8c02cc54 8c5c9d20 [ 30.173569] 9d20: 8c02cd58 8c5c9d34 8c2df784 00000000 8c02ca80 8c01d696 8c5c9d40 ffffff0f [ 30.182102] 9d40: 8c01d3da 8c01d304 8c5c9d4c 8c01d40e 8c5c9d54 8c01d526 8c5c9d74 00000023 [ 30.190635] 9d60: 00000012 8c2db2ac 00000000 8c2e4b00 000000f0 8c01da18 8c01da1c 8c5c9d80 [ 30.199168] 9d80: 8c003884 8c5c9d8c 0000001d 8c0080e4 8c5c9e00 8c016b00 8c003840 ffffffff [ 30.207701] 9da0: 00000000 00000000 40008000 8c4bbf70 00000001 8c280e68 00000000 00000001 [ 30.216235] 9dc0: 8c2db6a0 8c2a69bc 8c016b00 8c2db2ac 00000012 8c00dccc 8c5c9de8 8ca40140 [ 30.224768] 9de0: c0050728 0ca4953e 8c008024 8c5c9e88 c0050728 8cac0780 8c96a1b4 8c0080dc [ 30.233301] 9e00: c0050728 00000000 c004cfe0 00000168 8c5c8000 8c4bbf70 8c492180 8c802094 [ 30.241834] 9e20: 8cac0780 00000001 8c802094 8c492180 8c6ca160 8c96a1b4 00000000 00000000 [ 30.250367] 9e40: 00000000 00000000 00000000 c00222e2 40008001 00000000 00001bc7 32978c21 [ 30.258900] 9e60: ffffffff 00000040 c00222e2 8c5c9e88 8c80200c 8c802040 8c96a1b4 8c6ca160 [ 30.267433] 9e80: 8cac0780 8c802094 8c0a761e 8c5c9e98 8c802000 8cac0780 8c80207c 00000000 [ 30.275966] 9ea0: c00233e0 00000000 8c0a7cae 8c5c9ec8 8c0a7c80 00000018 8c96a1b4 fffffff4 [ 30.284499] 9ec0: 8c802000 8cac0780 8c071ab0 8c5c9edc 8c40cca0 00000000 8cac0780 8cac079c [ 30.293033] 9ee0: 8cac07fc 8c96dc94 8c071dac 8c5c9f0c fffff000 00000018 ffffff9c 8c98a000 [ 30.301566] 9f00: 8c5c9f18 8cac0780 00000000 8c071e28 8c5c9f18 00008000 8c96dc94 8c40cca0 [ 30.310099] 9f20: 8c21b286 8c21abd6 8c5c9f44 00000101 00000001 00000000 8c1272a0 8c21aeca [ 30.318632] 9f40: 8c21aed0 8c5c9f48 8c071912 8c5c9f50 00008000 8c4182e4 8c071e70 00008001 [ 30.327165] 9f60: 00000000 8cac0780 8c071e84 8c5c9f78 00000003 00008000 8c071f34 8c5c9f98 [ 30.335698] 9f80: 7bc60f95 00489964 ffffff0f 00000001 8c5c9ff8 8c071f20 8c008238 7bc60d78 [ 30.344231] 9fa0: 00000005 fffffffa 00000018 00000005 7bc60f95 00008000 00000018 004779e4 [ 30.352764] 9fc0: 7bc60dac 004a7008 00000002 fffffffe 00489964 7bc60f95 7bc60d78 7bc60d78 [ 30.361297] 9fe0: 00448158 00451da2 00008001 00000000 0000003d 0000006c 0000004c 00000160 Segmentation fault |