From owner-freebsd-ppc@FreeBSD.ORG Sun Sep 23 12:44:12 2012 Return-Path: Delivered-To: freebsd-ppc@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AFF29106564A for ; Sun, 23 Sep 2012 12:44:12 +0000 (UTC) (envelope-from aleksey.v.fedorov@gmail.com) Received: from mail-vc0-f182.google.com (mail-vc0-f182.google.com [209.85.220.182]) by mx1.freebsd.org (Postfix) with ESMTP id 684488FC0C for ; Sun, 23 Sep 2012 12:44:12 +0000 (UTC) Received: by vcbfw7 with SMTP id fw7so6908437vcb.13 for ; Sun, 23 Sep 2012 05:44:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=eqvq9jQrF3hvw/Z1iEwxfn+DuhTv4GCeEtVP+JKHSXU=; b=OxgWEvoIFGyPKnQt3p6AI76Cu9Lb1XzZuXJ2uE4MFBYHnuMlsdsUaVeg+LalBqHiaQ z2vYLsrg8a3iNjcWAMtttiEi0D97NQCgqlhgLjkTQOUnEP5V0eF0htV/u0KIh8C86u7Y EJ+iOKmIxs00d37+wJZ1XvZF2IOdDQ+y5/7IRxB0QPRdc5jlzEXAE5Y4HN6uaiSYmTBK Aq0AnTgDdg2bHF0shsKi09t5aGZudhboDiEynIpFw0lEkmIEmTf84QONO1MH612QHE1m 2eaU6rK+Fa6uN+G0Lb9qIkLIfRttrlXjV2RxBDt0TLLVLE4PC4R2KxmuxPATxPmG+NhY wyGw== MIME-Version: 1.0 Received: by 10.52.67.144 with SMTP id n16mr4746449vdt.131.1348404251620; Sun, 23 Sep 2012 05:44:11 -0700 (PDT) Received: by 10.58.91.49 with HTTP; Sun, 23 Sep 2012 05:44:11 -0700 (PDT) In-Reply-To: <39077F2D-B518-4EE4-ACE0-E8EB804E245B@semihalf.com> References: <39077F2D-B518-4EE4-ACE0-E8EB804E245B@semihalf.com> Date: Sun, 23 Sep 2012 16:44:11 +0400 Message-ID: From: Aleksey Fedorov To: Rafal Jaworowski Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-ppc@freebsd.org Subject: Re: FreeBSD on e500mc 36bit physical addressing X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Sep 2012 12:44:12 -0000 > Hi Aleksey, > FreeBSD/powerpc does not support the 36-bit physical addr space for Book-E PowerPC as of yet. > > Rafal > I make some changes to start in 36-bit mode. Now the problem is 'interrupts' property handling during fdtbus probing. I use dts file from linux. Does FreeBSD require some special dts file layout compared to linux? Debug output from kenel boot: GDB: no debug ports present KDB: debugger backends: ddb KDB: current backend: ddb mmu_booke_bootstrap: entered msgbufp at 0xc0751000 end = 0xc0769000 ptbl_bufs at 0xc0769000 end = 0xc076f000 kernel ptbls: 224 kernel pdir at 0xc076f000 end = 0xc092f000 data_end: 0xc092f000 updated data_end: 0xc1000000 zero_page_va = 0xc1000000 zero_page_idle_va = 0xc1001000 copy_page_src_va = 0xc1002000 copy_page_dst_va = 0xc1003000 ptbl_buf_pool_vabase = 0xc1004000 end = 0xc2004000 kernel image and allocated data: kernload = 0x0000000001000000 kernstart = 0xc0000000 kernsize = 0x01000000 processing avail regions: 0000000000100000-0000000100000000 -> 0000000000100000-0000000001000000 = f00000 0000000002000000-0000000100000000 -> 0000000002000000-0000000100000000 = fe000000 fill in phys_avail: region: 0x0000000000100000 - 0x0000000000ffc000 (0x0000000000efc000) region: 0x0000000002000000 - 0x0000000100000000 (0x00000000fe000000) Maxmem = 0x0000000000100000 phys_avail_count = 2 physsz = 0x00000000feefc000 physmem = 1044220 (0x000feefc) kernel_pmap = 0xc06820ac kptbl_min = 768, kernel_ptbls = 224 kernel pdir range: 0xc0000000 - 0xf7ffffff kstack_sz = 0x00004000 kstack0_phys at 0x0000000000ffc000 - 0x0000000001000000 kstack0 at 0xc2005000 - 0xc2009000 virtual_avail = c2009000 virtual_end = f8000000 mmu_booke_bootstrap: exit L1 D-cache enabled L1 I-cache enabled powerpc_smp_first_cpu: cpuid 0 powerpc_smp_next_cpu: cpuid 1 powerpc_smp_next_cpu: cpuid 2 powerpc_smp_next_cpu: cpuid 3 powerpc_smp_next_cpu: cpuid 4 powerpc_smp_next_cpu: cpuid 5 powerpc_smp_next_cpu: cpuid 6 powerpc_smp_next_cpu: cpuid 7 Copyright (c) 1992-2012 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD is a registered trademark of The FreeBSD Foundation. FreeBSD 10.0-CURRENT #134 r239991=44c70c6-dirty: Sun Sep 23 16:18:53 MSK 2012 avf@avfh:/usr/obj/powerpc.powerpc/root/freebsd-head/sys/N710 powerpc WARNING: WITNESS option enabled, expect reduced performance. Preloaded elf kernel "/boot/kernel/kernel" at 0xc074f000. cpu0: Freescale e500mc core revision 2.0 cpu0: Features 84000000 cpu0: HID0 c0800080 real memory = 4277125120 (4078 MB) Physical memory chunk(s): 0x0000000000100000 - 0x0000000000ffbfff, 15712256 bytes (3836 pages) 0x0000000002000000 - 0x00000000fafc4fff, 4177285120 bytes (1019845 pages) avail memory = 4189515776 (3995 MB) powerpc_smp_first_cpu: cpuid 0 powerpc_smp_next_cpu: cpuid 1 powerpc_smp_next_cpu: cpuid 2 powerpc_smp_next_cpu: cpuid 3 powerpc_smp_next_cpu: cpuid 4 powerpc_smp_next_cpu: cpuid 5 powerpc_smp_next_cpu: cpuid 6 powerpc_smp_next_cpu: cpuid 7 FreeBSD/SMP: Multiprocessor System Detected: 8 CPUs cpu0: dev=0 (BSP) cpu1: dev=1 cpu2: dev=2 cpu3: dev=3 cpu4: dev=4 cpu5: dev=5 cpu6: dev=6 cpu7: dev=7 random device not loaded; using insecure entropy random: nfslock: pseudo-device crypto: mem: openfirm: null: nexus0 fdtbus_identify(): fdtbus_identify(driver=0xc04d717c, parent=0xc9e74400) fdtbus_probe(): fdtbus_probe(dev=0xc9d24a00); pass=2147483647 fdtbus_probe(): fdtbus_probe(dev=0xc9d24a00); pass=2147483647 fdtbus0: on nexus0 newbus_device_from_fdt_node(): skipping instantiating FDT device='chosen' newbus_device_from_fdt_node(): skipping instantiating FDT device='aliases' fdt_reg_to_rl64(): addr_cells = 2, size_cells = 2 fdt_reg_to_rl64(): tuples = -1, tuple size = 16 newbus_device_create(): added child name='cpus', node=0x1070 newbus_device_from_fdt_node(): skipping instantiating FDT device='memory' fdt_reg_to_rl64(): addr_cells = 2, size_cells = 2 fdt_reg_to_rl64(): tuples = -1, tuple size = 16 newbus_device_create(): added child name='bman-portals@ff4000000', node=0x1650 fdt_reg_to_rl64(): addr_cells = 2, size_cells = 2 fdt_reg_to_rl64(): tuples = -1, tuple size = 16 newbus_device_create(): added child name='qman-portals@ff4200000', node=0x1da4 fdt_reg_to_rl64(): addr_cells = 2, size_cells = 2 fdt_reg_to_rl64(): tuples = 1, tuple size = 16 fdt_reg_to_rl64(): reg addr start = c00089b0, end = c00099af, count = 1000 newbus_device_create(): added child name='soc@ffe000000', node=0x30b8 fdt_reg_to_rl64(): addr_cells = 2, size_cells = 2 fdt_reg_to_rl64(): tuples = 1, tuple size = 16 fdt_reg_to_rl64(): reg addr start = c012c9b0, end = c012d9af, count = 1000 fdt_intr_to_rl(): no intr-parent phandle fdt_intr_to_rl(): no intr-cells defined, defaulting to 1 fdt_intr_to_rl(): intr_num=4 unknown: could not process 'interrupts' property for 'localbus@ffe124000' fatal kernel trap: exception = 0x2 (data storage interrupt) virtual address = 0x00000004 srr0 = 0xc00a7a54 srr1 = 0x00001200 curthread = 0xc0504bd0 pid = 0, comm = kernel [ thread pid 0 tid 100000 ] Stopped at newbus_device_destroy+0x2c: lwz r3, r3, 0x4 db> localbus@ffe124000 node in dts file is: localbus@ffe124000 { compatible = "fsl,p4080-elbc", "fsl,elbc", "simple-bus"; reg = <0xf 0xfe124000 0 0x1000>; interrupts = <25 2 0 0>; interrupt-parent = <&mpic>; #address-cells = <2>; #size-cells = <1>; ranges = <0 0 0xf 0xe8000000 0x08000000 3 0 0xf 0xffdf0000 0x00008000>; flash@0,0 { compatible = "cfi-flash"; reg = <0 0 0x08000000>; bank-width = <2>; device-width = <2>; }; board-control@3,0 { compatible = "fsl,n710cpld"; reg = <3 0 0x20>; }; }; mpic node is: mpic: pic@40000 { clock-frequency = <0>; interrupt-controller; #address-cells = <0>; #interrupt-cells = <4>; reg = <0x40000 0x40000>; compatible = "chrp,open-pic"; device_type = "open-pic"; big-endian; message@1400 { compatible = "fsl,mpic-msg"; interrupts = < 0xb0 2 0 0 0xb1 2 0 0 0xb2 2 0 0 0xb3 2 0 0>; }; }; Why fdt_intr_to_rl() can't find interrupt-parent mpic?