[PATCHv4 07/13] ARM: s3c64xx: convert to MULTI_IRQ_HANDLER

Thomas Abraham thomas.abraham at linaro.org
Wed Nov 9 06:34:47 EST 2011


Hi Jamie,

On 9 November 2011 16:55, Thomas Abraham <thomas.abraham at linaro.org> wrote:
> Hi Jamie,
>
> On 4 November 2011 06:40, Jamie Iles <jamie at jamieiles.com> wrote:
>> Now that there is a generic IRQ handler for multiple VIC devices use it
>> for s3c64xx to help building multi platform kernels.
>>
>> Cc: Ben Dooks <ben-linux at fluff.org>
>> Signed-off-by: Jamie Iles <jamie at jamieiles.com>
>> ---
>>  arch/arm/Kconfig                                 |    1 +
>>  arch/arm/mach-s3c64xx/include/mach/entry-macro.S |    7 ++++---
>>  arch/arm/mach-s3c64xx/mach-anw6410.c             |    2 ++
>>  arch/arm/mach-s3c64xx/mach-crag6410.c            |    2 ++
>>  arch/arm/mach-s3c64xx/mach-hmt.c                 |    2 ++
>>  arch/arm/mach-s3c64xx/mach-mini6410.c            |    2 ++
>>  arch/arm/mach-s3c64xx/mach-ncp.c                 |    2 ++
>>  arch/arm/mach-s3c64xx/mach-real6410.c            |    2 ++
>>  arch/arm/mach-s3c64xx/mach-smartq5.c             |    2 ++
>>  arch/arm/mach-s3c64xx/mach-smartq7.c             |    2 ++
>>  arch/arm/mach-s3c64xx/mach-smdk6400.c            |    2 ++
>>  arch/arm/mach-s3c64xx/mach-smdk6410.c            |    2 ++
>>  12 files changed, 25 insertions(+), 3 deletions(-)
>>
>
> I have tested this patch series on smdk6410 board (s3c64xx) using the
> following repositorty and branch
>
> https://github.com/jamieiles/linux-2.6-ji.git  branch: vic-dt
>
> There is a crash while booting. Am I using the right tree and branch?
> The following is the boot log. Is there any other config option to be
> enabled?
>
> By hard resetting to commit id
> 'f7bf800e2c0c2947e9b5839f7d2702a36ddfb71a' (ARM: omap2plus: convert to
> CONFIG_MULTI_IRQ_HANDLER), the board boots up fine.

There is similar issue on smdkv210 (s5pv210) board as well.

Thanks,
Thomas.

>
> Thanks,
> Thomas.
>
>
> U-Boot 1.3.4-00009-g9da84bd (Jun  8 2010 - 09:46:01) for SMDK6410
>
>
> CPU:     S3C6410 at 532MHz
>         Fclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART
> (SYNC Mode)
> Board:   SMDK6410
> DRAM:    128 MB
> Flash:   0 kB
> SD/MMC:  SD/MMC channel0 is selected for booting device.
> 1886MB
> NAND:    0 MB
> do not support this address : 57e7c008
> In:      serial
> Out:     serial
> Err:     serial
> Net:     smc911x
> Hit any key to stop autoboot:  0
> SMDK6410 #
> SMDK6410 #
> SMDK6410 #
> SMDK6410 # setenv bootargs; setenv serverip 192.168.0.1; tftp 51000000
> small_root_v3.6.cramfs; tftp 50008000 zImage; bootm
> smc911x: initializing
> smc911x: detected LAN9115 controller
> smc911x: phy initialized
> smc911x: MAC 00:40:5c:26:0a:5b
> Using smc911x device
> TFTP from server 192.168.0.1; our IP address is 192.168.0.20
> Filename 'small_root_v3.6.cramfs'.
> Load address: 0x51000000
> Loading: T #################################################################
>         #################################################################
>         ################################################################
> done
> Bytes transferred = 2842624 (0x2b6000)
> smc911x: initializing
> smc911x: detected LAN9115 controller
> smc911x: phy initialized
> smc911x: MAC 00:40:5c:26:0a:5b
> Using smc911x device
> TFTP from server 192.168.0.1; our IP address is 192.168.0.20
> Filename 'zImage'.
> Load address: 0x50008000
> Loading: T #################################################################
>         ########################################
> done
> Bytes transferred = 1534176 (0x1768e0)
> Boot with zImage
> do not support this address : 50008000
>
> Starting kernel ...
>
> Uncompressing Linux... done, booting the kernel.
> <5>Linux version 3.2.0-rc1-00031-gcbd9857-dirty
> (thomas at localhost.localdomain) (gcc version 4.4.1 (Sourcery G++ Lite
> 2009q3-67) ) #7 Wed Nov 9 16:35:12 IST 2011
> CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
> CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
> Machine: SMDK6410
> <4>Ignoring unrecognised tag 0x41001099
> Memory policy: ECC disabled, Data cache writeback
> CPU S3C6410 (id 0x36410100)
> <7>s3c6410_init_clocks: initialising clocks
> <6>S3C24XX Clocks, Copyright 2004 Simtec Electronics
> <3>camera: no parent clock specified
> <7>s3c6400_setup_clocks: registering clocks
> <7>s3c6400_setup_clocks: clkdiv0 = 01043310
> <7>s3c6400_setup_clocks: xtal is 12000000
> <6>S3C64XX: PLL settings, A=532000000, M=532000000, E=24000000
> <6>S3C64XX: HCLK2=266000000, HCLK=133000000, PCLK=66500000
> <6>mout_apll: source is fout_apll (1), rate is 532000000
> <6>mout_epll: source is epll (1), rate is 24000000
> <6>mout_mpll: source is mpll (1), rate is 532000000
> <7>s3c64xx_clk_doutmpll_get_rate: parent is 532000000
> <6>mmc_bus: source is dout_mpll (1), rate is 24181818
> <6>mmc_bus: source is mout_epll (0), rate is 24000000
> <6>mmc_bus: source is mout_epll (0), rate is 24000000
> <6>usb-bus-host: source is clk_48m (0), rate is 48000000
> <7>s3c64xx_clk_doutmpll_get_rate: parent is 532000000
> <6>uclk1: source is dout_mpll (1), rate is 66500000
> <6>spi-bus: source is mout_epll (0), rate is 24000000
> <6>spi-bus: source is mout_epll (0), rate is 24000000
> <6>audio-bus: source is mout_epll (0), rate is 24000000
> <6>audio-bus: source is mout_epll (0), rate is 24000000
> <6>audio-bus: source is mout_epll (0), rate is 24000000
> <6>irda-bus: source is mout_epll (0), rate is 24000000
> <3>camera: no parent clock specified
> <7>On node 0 totalpages: 8192
> <7>free_area_init_node: node 0, pgdat c02ce184, node_mem_map c0300000
> <7>  Normal zone: 64 pages used for memmap
> <7>  Normal zone: 0 pages reserved
> <7>  Normal zone: 8128 pages, LIFO batch:0
> <6>CPU: found DTCM0 8k @ 0c002000, enabled
> <6>CPU: moved DTCM0 8k to fffe8000, enabled
> <6>CPU: found DTCM1 8k @ 0c004000, enabled
> <6>CPU: moved DTCM1 8k to fffea000, enabled
> <6>CPU: found ITCM0 8k @ 00000000, not enabled
> <6>CPU: moved ITCM0 8k to fffe0000, enabled
> <6>CPU: found ITCM1 8k @ 00000000, not enabled
> <6>CPU: moved ITCM1 8k to fffe2000, enabled
> <7>pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
> <7>pcpu-alloc: [0] 0
> Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 8128
> <5>Kernel command line: root=/dev/ram0 rw ramdisk=8192
> initrd=0x51000000,8M console=ttySAC0,115200 init=/linuxrc mem=32M
> <6>PID hash table entries: 128 (order: -3, 512 bytes)
> <6>Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
> <6>Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
> <6>Memory: 32MB = 32MB total
> <5>Memory: 21164k/21164k available, 11604k reserved, 0K highmem
> <5>Virtual kernel memory layout:
>    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
>    DTCM    : 0xfffe8000 - 0xfffec000   (  16 kB)
>    ITCM    : 0xfffe0000 - 0xfffe4000   (  16 kB)
>    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
>    vmalloc : 0xc2800000 - 0xf6000000   ( 824 MB)
>    lowmem  : 0xc0000000 - 0xc2000000   (  32 MB)
>    modules : 0xbf000000 - 0xc0000000   (  16 MB)
>      .text : 0xc0008000 - 0xc028c9a8   (2579 kB)
>      .init : 0xc028d000 - 0xc02a9000   ( 112 kB)
>      .data : 0xc02aa000 - 0xc02ce7e0   ( 146 kB)
>       .bss : 0xc02cf024 - 0xc02ff68c   ( 194 kB)
> <6>SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> <6>NR_IRQS:246
> <7>s3c64xx_init_irq: initialising interrupts
> <6>VIC @f6000000: id 0x00041192, vendor 0x41
> <1>Unable to handle kernel NULL pointer dereference at virtual address 00000000
> <1>pgd = c0004000
> <1>[00000000] *pgd=00000000
> <0>Internal error: Oops: 5 [#1]
> <d>Modules linked in:
> CPU: 0    Not tainted  (3.2.0-rc1-00031-gcbd9857-dirty #7)
> PC is at irq_domain_add+0x10/0x158
> LR is at s3c64xx_init_irq+0x2c/0x60
> pc : [<c005aa10>]    lr : [<c0293660>]    psr: 800001d3
> sp : c02abfa8  ip : ffffffff  fp : 00000000
> r10: 502a3620  r9 : 410fb766  r8 : 50004008
> r7 : 00000000  r6 : 8fffffff  r5 : ffffff7f  r4 : c02cf284
> r3 : 00000000  r2 : 00000000  r1 : c02cf260  r0 : c02cf284
> Flags: Nzcv  IRQs off  FIQs off  Mode SVC_32  ISA ARM  Segment kernel
> Control: 00c5387f  Table: 50004008  DAC: 00000017
> <0>Process swapper (pid: 0, stack limit = 0xc02aa268)
> <0>Stack: (0xc02abfa8 to 0xc02ac000)
> <0>bfa0:                   ffffffff ffffff7f 8fffffff c02ae77c 50004008 c0293660
> <0>bfc0: c02cf040 c02a4afc 8fffffff c028ff74 00000c00 c028d660 c028d2c0 00000000
> <0>bfe0: 00000000 c02a4afc 00c5387d c02ac084 c02a4af8 50008040 00000000 00000000
> [<c005aa10>] (irq_domain_add+0x10/0x158) from [<c0293660>]
> (s3c64xx_init_irq+0x2c/0x60)
> [<c0293660>] (s3c64xx_init_irq+0x2c/0x60) from [<c028ff74>] (init_IRQ+0x14/0x1c)
> [<c028ff74>] (init_IRQ+0x14/0x1c) from [<c028d660>] (start_kernel+0x15c/0x2c0)
> [<c028d660>] (start_kernel+0x15c/0x2c0) from [<50008040>] (0x50008040)
> <0>Code: e92d41f0 e1a04000 e5903014 e5907010 (e5933000)
> <4>---[ end trace 1b75b31a2719ed1c ]---
> <0>Kernel panic - not syncing: Attempted to kill the idle task!
> [<c0014978>] (unwind_backtrace+0x0/0xf4) from [<c01e9780>] (panic+0x58/0x188)
> [<c01e9780>] (panic+0x58/0x188) from [<c00297a0>] (do_exit+0x664/0x694)
> [<c00297a0>] (do_exit+0x664/0x694) from [<c0012728>] (die+0x11c/0x1d4)
> [<c0012728>] (die+0x11c/0x1d4) from [<c00161dc>] (__do_kernel_fault+0x64/0x84)
> [<c00161dc>] (__do_kernel_fault+0x64/0x84) from [<c0016340>]
> (do_page_fault+0x144/0x1e8)
> [<c0016340>] (do_page_fault+0x144/0x1e8) from [<c00084a0>]
> (do_DataAbort+0x34/0x98)
> [<c00084a0>] (do_DataAbort+0x34/0x98) from [<c000e6f8>] (__dabt_svc+0x38/0x60)
> Exception stack(0xc02abf60 to 0xc02abfa8)
> bf60: c02cf284 c02cf260 00000000 00000000 c02cf284 ffffff7f 8fffffff 00000000
> bf80: 50004008 410fb766 502a3620 00000000 ffffffff c02abfa8 c0293660 c005aa10
> bfa0: 800001d3 ffffffff
> [<c000e6f8>] (__dabt_svc+0x38/0x60) from [<c005aa10>]
> (irq_domain_add+0x10/0x158)
> [<c005aa10>] (irq_domain_add+0x10/0x158) from [<c0293660>]
> (s3c64xx_init_irq+0x2c/0x60)
> [<c0293660>] (s3c64xx_init_irq+0x2c/0x60) from [<c028ff74>] (init_IRQ+0x14/0x1c)
> [<c028ff74>] (init_IRQ+0x14/0x1c) from [<c028d660>] (start_kernel+0x15c/0x2c0)
> [<c028d660>] (start_kernel+0x15c/0x2c0) from [<50008040>] (0x50008040)
>
>
> [...]
>



More information about the linux-arm-kernel mailing list