Bug#651215: Kernel fails to boot on NSLU2
Hi Arnaud, I've uploaded a 3.1.5-1 with a patch which should fix the boot failure at http://www.rtp-net.org/misc/deb/. Can you please test it ? Yes, this fixed the problem. nslu2:~# uname -a Linux nslu2 3.1.0-1-ixp4xx #1 Tue Dec 13 05:00:03 CET 2011 armv5tel GNU/Linux nslu2:~# Thanks, Jochen -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#651215: Kernel fails to boot on NSLU2
Hi, I've uploaded a 3.1.5-1 with a patch which should fix the boot failure at http://www.rtp-net.org/misc/deb/. Can you please test it ? Thanks, Arnaud -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#651215: Kernel fails to boot on NSLU2
On Wed, 7 Dec 2011, Russell King - ARM Linux wrote: > On Wed, Dec 07, 2011 at 11:05:58PM +0100, Arnaud Patard wrote: > > I may be wrong but it seems that arm_dma_zone_size is used before being > > set. It would be interesting if someone can boot test a nslu2 kernel with > > appended patch. > > It does look like that's the case - arm_dma_zone_size is used in > arm_bootmem_free(), which is called from bootmem_init() and in turn > paging_init(). > > So, arm_dma_zone_size needs to be set before paging_init() is called. Oops, indeed. > I'd actually suggest moving it before: > > if (mdesc->restart_mode) > reboot_setup(&mdesc->restart_mode); > > so that it's set real early, to avoid any future problems with this. > The earlier these kinds of things are set, the less likely this kind > of bug will happen. Arnaud: please resubmit your patch moving the call as suggested by Russell and mark it with: Acked-by: Nicolas Pitre and CC: sta...@kernel.org Thanks Nicolas -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#651215: Kernel fails to boot on NSLU2
On Wed, Dec 07, 2011 at 11:05:58PM +0100, Arnaud Patard wrote: > I may be wrong but it seems that arm_dma_zone_size is used before being > set. It would be interesting if someone can boot test a nslu2 kernel with > appended patch. It does look like that's the case - arm_dma_zone_size is used in arm_bootmem_free(), which is called from bootmem_init() and in turn paging_init(). So, arm_dma_zone_size needs to be set before paging_init() is called. I'd actually suggest moving it before: if (mdesc->restart_mode) reboot_setup(&mdesc->restart_mode); so that it's set real early, to avoid any future problems with this. The earlier these kinds of things are set, the less likely this kind of bug will happen. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Bug#651215: Kernel fails to boot on NSLU2
Ben Hutchings writes: Hi, > On Tue, 2011-12-06 at 20:40 +0100, Jochen Friedrich wrote: >> Package: linux-image-3.1.0-1-ixp4xx >> Severity: normal >> >> While 3.0.0-6 booted OK on NSLU2 platform, 3.1.0-1 or -4 fails to do so. >> >> Boot log: > [...] >> [0.00] Linux version 3.1.0-1-ixp4xx (Debian 3.1.4-1) >> (wa...@debian.org) >> (gcc version 4.6.2 (Debian 4.6.2-4) ) #1 Wed Nov 30 06:35:38 UTC 2011 >> [0.00] CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE), >> cr=397f >> [0.00] CPU: VIVT data cache, VIVT instruction cache >> [0.00] Machine: Linksys NSLU2 > [...] >> [3.269860] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver >> [3.350596] PCI: enabling device :00:01.2 (0140 -> 0142) >> [3.356553] ehci_hcd :00:01.2: EHCI Host Controller >> [3.452053] ehci_hcd :00:01.2: new USB bus registered, assigned bus >> number 1 >> [3.459646] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller >> than system GFP_DMA mask 0x >> [3.570085] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller >> than system GFP_DMA mask 0x >> [3.680189] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller >> than system GFP_DMA mask 0x >> (repeated over and over) > > I assume that this has something to do with: > > commit 650320181a08b64d4421c65c639cf47ad8cc2cd6 > Author: Nicolas Pitre > Date: Mon Jul 18 15:05:10 2011 -0400 > > ARM: change ARM_DMA_ZONE_SIZE into a variable > > commit 7553ee777b513c3bc8f45bb9fc75fb1bbc584ba1 > Author: Nicolas Pitre > Date: Tue Jul 5 22:28:09 2011 -0400 > > ARM: mach-ixp4xx: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size > > It's clear that the DMA zone size is supposed to be 64 MB on this > machine and I don't see why the DMA mask hasn't propagated correctly. > Any idea, Nicholas? I may be wrong but it seems that arm_dma_zone_size is used before being set. It would be interesting if someone can boot test a nslu2 kernel with appended patch. Thanks, Arnaud Index: linux-2.6-3.2~rc4/arch/arm/kernel/setup.c === --- linux-2.6-3.2~rc4.orig/arch/arm/kernel/setup.c 2011-12-01 23:56:01.0 +0100 +++ linux-2.6-3.2~rc4/arch/arm/kernel/setup.c 2011-12-07 23:04:39.0 +0100 @@ -921,6 +921,12 @@ void __init setup_arch(char **cmdline_p) sanity_check_meminfo(); arm_memblock_init(&meminfo, mdesc); +#ifdef CONFIG_ZONE_DMA + if (mdesc->dma_zone_size) { + extern unsigned long arm_dma_zone_size; + arm_dma_zone_size = mdesc->dma_zone_size; + } +#endif paging_init(mdesc); request_standard_resources(mdesc); @@ -934,12 +940,6 @@ void __init setup_arch(char **cmdline_p) tcm_init(); -#ifdef CONFIG_ZONE_DMA - if (mdesc->dma_zone_size) { - extern unsigned long arm_dma_zone_size; - arm_dma_zone_size = mdesc->dma_zone_size; - } -#endif #ifdef CONFIG_MULTI_IRQ_HANDLER handle_arch_irq = mdesc->handle_irq; #endif
Bug#651215: Kernel fails to boot on NSLU2
On Tue, 2011-12-06 at 20:40 +0100, Jochen Friedrich wrote: > Package: linux-image-3.1.0-1-ixp4xx > Severity: normal > > While 3.0.0-6 booted OK on NSLU2 platform, 3.1.0-1 or -4 fails to do so. > > Boot log: [...] > [0.00] Linux version 3.1.0-1-ixp4xx (Debian 3.1.4-1) > (wa...@debian.org) > (gcc version 4.6.2 (Debian 4.6.2-4) ) #1 Wed Nov 30 06:35:38 UTC 2011 > [0.00] CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE), > cr=397f > [0.00] CPU: VIVT data cache, VIVT instruction cache > [0.00] Machine: Linksys NSLU2 [...] > [3.269860] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > [3.350596] PCI: enabling device :00:01.2 (0140 -> 0142) > [3.356553] ehci_hcd :00:01.2: EHCI Host Controller > [3.452053] ehci_hcd :00:01.2: new USB bus registered, assigned bus > number 1 > [3.459646] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller > than system GFP_DMA mask 0x > [3.570085] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller > than system GFP_DMA mask 0x > [3.680189] ehci_hcd :00:01.2: coherent DMA mask 0x3ff is smaller > than system GFP_DMA mask 0x > (repeated over and over) I assume that this has something to do with: commit 650320181a08b64d4421c65c639cf47ad8cc2cd6 Author: Nicolas Pitre Date: Mon Jul 18 15:05:10 2011 -0400 ARM: change ARM_DMA_ZONE_SIZE into a variable commit 7553ee777b513c3bc8f45bb9fc75fb1bbc584ba1 Author: Nicolas Pitre Date: Tue Jul 5 22:28:09 2011 -0400 ARM: mach-ixp4xx: move from ARM_DMA_ZONE_SIZE to mdesc->dma_zone_size It's clear that the DMA zone size is supposed to be 64 MB on this machine and I don't see why the DMA mask hasn't propagated correctly. Any idea, Nicholas? Ben. -- Ben Hutchings Absolutum obsoletum. (If it works, it's out of date.) - Stafford Beer signature.asc Description: This is a digitally signed message part
Bug#651215: Kernel fails to boot on NSLU2
Package: linux-image-3.1.0-1-ixp4xx Severity: normal While 3.0.0-6 booted OK on NSLU2 platform, 3.1.0-1 or -4 fails to do so. Boot log: Ethernet eth0: MAC address 00:14:bf:xx:yy:zz IP: 192.168.0.1/255.255.255.0, Gateway: 192.168.0.1 Default server: 0.0.0.0, DNS server IP: 0.0.0.0 RedBoot(tm) bootstrap and debug environment [ROMRAM] Red Hat certified release, version 1.92 - built 15:16:07, Feb 3 2004 Platform: IXDP425 Development Platform (XScale) Copyright (C) 2000, 2001, 2002, Red Hat, Inc. RAM: 0x-0x0200, 0x000723a0-0x01ff3000 available FLASH: 0x5000 - 0x5080, 64 blocks of 0x0002 bytes each. == Executing boot script in 2.000 seconds - enter ^C to abort RedBoot> boot;exec 0x01d0 have eRcOmM copy kernel code from flash to RAM copy ramdisk file from flash to RAM run kernel Using base address 0x01d0 and length 0xdc20 Ans APEX Boot Loader 1.6.10 -- Copyright (c) 2004-2008 Marc Singer compiled for Debian NSLU2 on 2009.Oct.06-18:59:32 APEX comes with ABSOLUTELY NO WARRANTY. It is free software and you are welcome to redistribute it under certain circumstances. For details, refer to the file COPYING in the program source. apex => mem:0x0020+0xdc10 (56336 bytes) env => nor:0x7c000+15k (empty) Use the command 'help help' to get started. # sdram-init 1 bank of 2 128Mib chips # memscan -u 0+256m 0x0 0x0200 (32 MiB) # copy -s $kernelsrc $bootaddr # copy -s fis://kernel 0x8000 |/-\|/-1441760 bytes transferred # copy -s $ramdisksrc $ramdiskaddr # copy -s fis://ramdisk 0x0100 \|/-\|/-\|/-\|/-\|/-\|6291440 bytes transferred # wait 10 Type ^C key to cancel autoboot. Type ^C key to cancel autoboot. /-\|/-\|# boot ARCH_ID: 597 (0x255) ATAG_HEADER ATAG_MEM: start 0x size 0x0200 ATAG_CMDLINE: (32 bytes) 'console=ttyS0,115200 noirqdebug' ATAG_INITRD2: start 0x0100 size 0x0050 ATAG_END Booting kernel at 0x8000... Uncompressing Linux... done, booting the kernel. [0.00] Initializing cgroup subsys cpuset [0.00] Initializing cgroup subsys cpu [0.00] Linux version 3.1.0-1-ixp4xx (Debian 3.1.4-1) (wa...@debian.org) (gcc version 4.6.2 (Debian 4.6.2-4) ) #1 Wed Nov 30 06:35:38 UTC 2011 [0.00] CPU: XScale-IXP42x Family [690541f1] revision 1 (ARMv5TE), cr=397f [0.00] CPU: VIVT data cache, VIVT instruction cache [0.00] Machine: Linksys NSLU2 [0.00] Memory policy: ECC disabled, Data cache writeback [0.00] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [0.00] Kernel command line: console=ttyS0,115200 noirqdebug [0.00] IRQ lockup detection disabled [0.00] PID hash table entries: 128 (order: -3, 512 bytes) [0.00] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [0.00] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [0.00] Memory: 32MB = 32MB total [0.00] Memory: 22160k/22160k available, 10608k reserved, 0K highmem [0.00] Virtual kernel memory layout: [0.00] vector : 0x - 0x1000 ( 4 kB) [0.00] fixmap : 0xfff0 - 0xfffe ( 896 kB) [0.00] DMA : 0xffc0 - 0xffe0 ( 2 MB) [0.00] vmalloc : 0xc280 - 0xff00 ( 968 MB) [0.00] lowmem : 0xc000 - 0xc200 ( 32 MB) [0.00] modules : 0xbf00 - 0xc000 ( 16 MB) [0.00] .text : 0xc0008000 - 0xc03712b4 (3493 kB) [0.00] .init : 0xc0372000 - 0xc0391000 ( 124 kB) [0.00] .data : 0xc0392000 - 0xc03c2e00 ( 196 kB) [0.00].bss : 0xc03c2e24 - 0xc040aa94 ( 288 kB) [0.00] NR_IRQS:64 [0.00] sched_clock: 32 bits at 66MHz, resolution 15ns, wraps every 65075ms [0.00] Console: colour dummy device 80x30 [0.000569] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) [0.070823] pid_max: default: 32768 minimum: 301 [0.071350] Security Framework initialized [0.071595] Mount-cache hash table entries: 512 [0.072597] Initializing cgroup subsys cpuacct [0.072673] Initializing cgroup subsys memory [0.072755] Initializing cgroup subsys devices [0.072789] Initializing cgroup subsys freezer [0.072819] Initializing cgroup subsys net_cls [0.072851] Initializing cgroup subsys blkio [0.073088] CPU: Testing write buffer coherency: ok [0.073890] hw perfevents: enabled with xscale2 PMU driver, 5 counters available [0.077148] devtmpfs: initialized [0.081279] print_constraints: dummy: [0.082011] NET: Registered protocol family 16 [0.083651] IXP4xx: Using 16MiB expansion bus window size [0.085289] NSLU2: Using MAC address 00:14:bf:xx:yy:zz for port 0 [0.085540] PCI: IXP4xx is host [0.085568] PCI: IXP4xx Using direct access for memory space [0.087363] PCI: bus0: Fast back to back transfers disabled [0.087449] pci :00:01.0: dmaboun