From owner-freebsd-arm@FreeBSD.ORG Sat Sep 26 05:47:43 2009 Return-Path: Delivered-To: freebsd-arm@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18DA5106566B; Sat, 26 Sep 2009 05:47:43 +0000 (UTC) (envelope-from tom@tomjudge.com) Received: from tomjudge.vm.bytemark.co.uk (tomjudge.vm.bytemark.co.uk [80.68.91.100]) by mx1.freebsd.org (Postfix) with ESMTP id 979008FC16; Sat, 26 Sep 2009 05:47:42 +0000 (UTC) Received: from localhost (localhost.localdomain [127.0.0.1]) by tomjudge.vm.bytemark.co.uk (Postfix) with ESMTP id 7864F48984; Sat, 26 Sep 2009 06:47:41 +0100 (BST) X-Virus-Scanned: Debian amavisd-new at tomjudge.vm.bytemark.co.uk Received: from tomjudge.vm.bytemark.co.uk ([127.0.0.1]) by localhost (tomjudge.vm.bytemark.co.uk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id r8SWGfOdOxCp; Sat, 26 Sep 2009 06:47:32 +0100 (BST) Received: from rita.nodomain (unknown [192.168.205.6]) by tomjudge.vm.bytemark.co.uk (Postfix) with ESMTP id 2240E48875; Sat, 26 Sep 2009 06:47:30 +0100 (BST) Message-ID: <4ABDAADC.6060008@tomjudge.com> Date: Sat, 26 Sep 2009 05:47:08 +0000 From: Tom Judge User-Agent: Thunderbird 2.0.0.23 (X11/20090822) MIME-Version: 1.0 To: Stanislav Sedov References: <4AB7A398.4040905@tomjudge.com> <5B269040-CEB8-4E07-9023-9605B04A62DA@gmail.com> <4ABCC0AA.7040003@tomjudge.com> <20090925172049.ebecbd64.stas@FreeBSD.org> <4ABCCB7D.9030503@tomjudge.com> <20090925181428.5cfc759f.stas@FreeBSD.org> In-Reply-To: <20090925181428.5cfc759f.stas@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Rui Paulo , freebsd-arm@freebsd.org Subject: Re: Adding support for the Intel SS4000-E NAS aka the EM-7210 X-BeenThere: freebsd-arm@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the StrongARM Processor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Sep 2009 05:47:43 -0000 <> Hi, Stanislav, Rue first thanks for your help with this. I have since relised the errors in my ways and now have a booting kernel that I can load at 0x01008000. It seems the first mistake that I made was to use the ep80219 as the base for my port. I should have read the linux notes more carefully as it states that they can boot the iq31244 kernel on this board. I have since then migrated the code to use the iq31244 as the base, and have a kernel that kind of boots. Fist thing I have noticed is I get this error while booting: pmap_bootstrap: WARNING! wrong cache mode for L2 pte @ 0xc1003c00 I don't really know how to fix this so some pointers would be welcome. The next problem is that I get the following error when either em or ata are compiled into my kernel: Fatal kernel mode data abort: 'External Linefetch Abort (P)' If I remove both ata and em from the kernel then the kernel gets to trying to mount the rootfs and fails because it wants to mount an NFS root from em0. Bellow is a full backtrace for the em crash and a backtrace for the ata crash can be found here: http://www.tomjudge.com/index.php/SS4000-E/Notes And my current code can be found as a patch here: http://www.tomjudge.com/tmp/em7210.patch Thanks in advance for the help Tom RedBoot> load -b 0x01008000 kernel Using default protocol (TFTP) Address offset = 0x40000000 Entry point: 0x01008100, address range: 0x01008000-0x01337274 RedBoot> go pmap_bootstrap: WARNING! wrong cache mode for L2 pte @ 0xc1003c00 KDB: debugger backends: ddb KDB: current backend: ddb Copyright (c) 1992-2009 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 9.0-CURRENT #14: Sat Sep 26 05:30:30 UTC 2009 root@rita.nodomain:/data/arm_build/arm/usr/src/sys/EM-7210 CPU: i80219 400MHz step A-0 (XScale core) DC enabled IC enabled WB enabled LABT branch prediction enabled 32KB/32B 32-way Instruction cache 32KB/32B 32-way write-back-locking Data cache real memory = 536870912 (512 MB) avail memory = 503738368 (480 MB) iq0: on motherboard obio0 on iq0 uart0: <16550 or compatible> on obio0 uart0: [FILTER] uart0: console (115200,n,8,1) itimer0: on iq0 iopwdog0: on iq0 pcib0: on iq0 pci0: on pcib0 Device 1 routed to irq 27 Device 2 routed to irq 30 Device 3 routed to irq 29 Device 5 routed to irq 30 Device 5 routed to irq 29 Device 5 routed to irq 27 em0: port 0xfe400000-0xfe40003f mem 0-0x1ffff,0x20000-0x3ffff irq 27 at device 1.0 on pci0 Fatal kernel mode data abort: 'External Linefetch Abort (P)' trapframe: 0xc00faae4 FSR=00000406, FAR=Invalid, spsr=200000d3 r0 =c13e3c00, r1 =cd5b9000, r2 =00000010, r3 =0000000a r4 =c317e008, r5 =cd5b9000, r6 =c13e3c00, r7 =c128d4fc r8 =c317e008, r9 =c1397280, r10=c317e000, r11=c00fab54 r12=c00fab58, ssp=c00fab30, slr=c1022a88, pc =c1022a84 [thread pid 0 tid 100000 ] Stopped at e1000_init_script_state_82541+0x24c: blx r7 db> bt Tracing pid 0 tid 100000 td 0xc133b240 db_trace_thread() at db_trace_thread+0xc scp=0xc1291910 rlv=0xc100d0f0 (db_command_init+0x2a8) rsp=0xc00fa7e0 rfp=0xc00fa7fc r10=0x00000001 r9=0xc1340d94 r8=0xc13385c4 r7=0x00000062 r6=0x00000002 r5=0x00000010 r4=0xc133b240 db_command_init() at db_command_init+0x1d0 scp=0xc100d018 rlv=0xc100cba0 (db_skip_to_eol+0x49c) rsp=0xc00fa800 rfp=0xc00fa8a4 r5=0x00000000 r4=0xc13188d0 db_skip_to_eol() at db_skip_to_eol+0x1d0 scp=0xc100c8d4 rlv=0xc100cd0c (db_command_loop+0x60) rsp=0xc00fa8a8 rfp=0xc00fa8b4 r10=0x00000000 r8=0x00000406 r7=0xc00faae4 r6=0xc1340d90 r5=0x600000d3 r4=0xc00fa8c0 db_command_loop() at db_command_loop+0xc scp=0xc100ccb8 rlv=0xc100f050 (X_db_sym_numargs+0xf4) rsp=0xc00fa8b8 rfp=0xc00fa9d4 X_db_sym_numargs() at X_db_sym_numargs+0x14 scp=0xc100ef70 rlv=0xc10fc0c4 (kdb_trap+0xa4) rsp=0xc00fa9d8 rfp=0xc00faa00 r4=0x000000c0 kdb_trap() at kdb_trap+0xc scp=0xc10fc02c rlv=0xc12a1dc4 (badaddr_read+0x280) rsp=0xc00faa04 rfp=0xc00faa20 r10=0x00000000 r9=0xc1397280 r8=0xc00faae4 r7=0x00000406 r6=0x00000000 r5=0x00000406 r4=0xc00faae4 badaddr_read() at badaddr_read+0xfc scp=0xc12a1c40 rlv=0xc12a225c (prefetch_abort_handler+0x440) rsp=0xc00faa24 rfp=0xc00faa44 r6=0xc133b240 r5=0xc00faef8 r4=0xc00faae4 prefetch_abort_handler() at prefetch_abort_handler+0x378 scp=0xc12a2194 rlv=0xc12a2428 (data_abort_handler+0x110) rsp=0xc00faa48 rfp=0xc00faae0 r7=0xc133b240 r6=0xc13e3c00 r5=0xc00faef8 r4=0xc133af78 data_abort_handler() at data_abort_handler+0xc scp=0xc12a2324 rlv=0xc129334c (address_exception_entry+0x50) rsp=0xc00faae4 rfp=0xc00fab54 r10=0xc317e000 r9=0xc1397280 r8=0xc317e008 r7=0xc128d4fc r6=0xc13e3c00 r5=0xffff1004 r4=0xc317e008 e1000_init_script_state_82541() at e1000_init_script_state_82541+0x20c scp=0xc1022a44 rlv=0xc10319d0 (e1000_init_nvm_params+0x24) rsp=0xc00fab58 rfp=0xc00fab64 r7=0xc0000002 r6=0x00000001 r5=0xc317e008 r4=0x00000000 e1000_init_nvm_params() at e1000_init_nvm_params+0xc scp=0xc10319b8 rlv=0xc1032914 (e1000_setup_init_funcs+0x150) rsp=0xc00fab68 rfp=0xc00fab80 e1000_setup_init_funcs() at e1000_setup_init_funcs+0xc scp=0xc10327d0 rlv=0xc101d8e0 (db_write_cmd+0xa85c) rsp=0xc00fab84 rfp=0xc00fac0c r6=0x0000443c r5=0xc1397280 r4=0x00004400 db_write_cmd() at db_write_cmd+0x9ee8 scp=0xc101cf6c rlv=0xc10f6d1c (device_attach+0x2c8) rsp=0xc00fac10 rfp=0xc00fac4c r10=0xc1397280 r9=0x00000009 r8=0xffffffff r7=0xc10f53c4 r6=0xc13972cc r5=0x80000000 r4=0xc1397300 device_attach() at device_attach+0xc scp=0xc10f6a60 rlv=0xc10f80e0 (device_probe_and_attach+0x34) rsp=0xc00fac50 rfp=0xc00fac60 r10=0xc1397300 r8=0xffffffff r7=0xc10f53c4 r6=0x00000000 r5=0x00000000 r4=0xc1397280 device_probe_and_attach() at device_probe_and_attach+0xc scp=0xc10f80b8 rlv=0xc10f8104 (bus_generic_attach+0x20) rsp=0xc00fac64 rfp=0xc00fac74 r4=0xc1397280 bus_generic_attach() at bus_generic_attach+0xc scp=0xc10f80f0 rlv=0xc105c318 (pci_add_children+0x240) rsp=0xc00fac78 rfp=0xc00fac98 r4=0xc1397300 pci_add_children() at pci_add_children+0x154 scp=0xc105c22c rlv=0xc10f6d1c (device_attach+0x2c8) rsp=0xc00fac9c rfp=0xc00facd8 r6=0xc139734c r5=0x80000000 r4=0xc13da400 device_attach() at device_attach+0xc scp=0xc10f6a60 rlv=0xc10f80e0 (device_probe_and_attach+0x34) rsp=0xc00facdc rfp=0xc00facec r10=0xc13da400 r8=0xffffffff r7=0x00000000 r6=0xc13da400 r5=0xc13b6318 r4=0xc1397300 device_probe_and_attach() at device_probe_and_attach+0xc scp=0xc10f80b8 rlv=0xc10f8104 (bus_generic_attach+0x20) rsp=0xc00facf0 rfp=0xc00fad00 r4=0xc1397300 bus_generic_attach() at bus_generic_attach+0xc scp=0xc10f80f0 rlv=0xc12a7824 (i80321_sdram_bounds+0x860) rsp=0xc00fad04 rfp=0xc00fad20 r4=0xc13b6360 i80321_sdram_bounds() at i80321_sdram_bounds+0x6f4 scp=0xc12a76b8 rlv=0xc10f6d1c (device_attach+0x2c8) rsp=0xc00fad24 rfp=0xc00fad60 r7=0xc10f53c4 r6=0xc13da44c r5=0x80000000 r4=0xc13da680 device_attach() at device_attach+0xc scp=0xc10f6a60 rlv=0xc10f80e0 (device_probe_and_attach+0x34) rsp=0xc00fad64 rfp=0xc00fad74 r10=0xc13da680 r8=0xc13da680 r7=0x40000004 r6=0xc13e3c00 r5=0x00000000 r4=0xc13da400 device_probe_and_attach() at device_probe_and_attach+0xc scp=0xc10f80b8 rlv=0xc10f8104 (bus_generic_attach+0x20) rsp=0xc00fad78 rfp=0xc00fad88 r4=0xc13da400 bus_generic_attach() at bus_generic_attach+0xc scp=0xc10f80f0 rlv=0xc12a8460 (iq80321_attach+0x370) rsp=0xc00fad8c rfp=0xc00fadb8 r4=0xc12de3c8 iq80321_attach() at iq80321_attach+0xc scp=0xc12a80fc rlv=0xc10f6d1c (device_attach+0x2c8) rsp=0xc00fadbc rfp=0xc00fadf8 r8=0xffffffff r7=0xc10f53c4 r6=0xc13da6cc r5=0x80000000 r4=0xc13da700 device_attach() at device_attach+0xc scp=0xc10f6a60 rlv=0xc10f80e0 (device_probe_and_attach+0x34) rsp=0xc00fadfc rfp=0xc00fae0c r10=0xc13da700 r8=0xffffffff r7=0xc10f53c4 r6=0xc13da74c r5=0x80000000 r4=0xc13da680 device_probe_and_attach() at device_probe_and_attach+0xc scp=0xc10f80b8 rlv=0xc10f8104 (bus_generic_attach+0x20) rsp=0xc00fae10 rfp=0xc00fae20 r4=0xc13da680 bus_generic_attach() at bus_generic_attach+0xc scp=0xc10f80f0 rlv=0xc1296270 (minidumpsys+0xaf4) rsp=0xc00fae24 rfp=0xc00fae34 r4=0xc13da700 minidumpsys() at minidumpsys+0xae4 scp=0xc1296260 rlv=0xc10f6d1c (device_attach+0x2c8) rsp=0xc00fae38 rfp=0xc00fae74 r4=0xc12d1318 device_attach() at device_attach+0xc scp=0xc10f6a60 rlv=0xc10f80e0 (device_probe_and_attach+0x34) rsp=0xc00fae78 rfp=0xc00fae88 r10=0x0000000a r8=0x00000000 r7=0xa10081a4 r6=0xc13dab80 r5=0xc1335374 r4=0xc13da700 device_probe_and_attach() at device_probe_and_attach+0xc scp=0xc10f80b8 rlv=0xc10f83c4 (bus_generic_new_pass+0xe4) rsp=0xc00fae8c rfp=0xc00faea4 r4=0xc13da700 bus_generic_new_pass() at bus_generic_new_pass+0xc scp=0xc10f82ec rlv=0xc10f43c0 (bus_set_pass+0x98) rsp=0xc00faea8 rfp=0xc00faec0 r6=0x7fffffff r5=0xc13dab80 r4=0xc13f1a80 bus_set_pass() at bus_set_pass+0xc scp=0xc10f4334 rlv=0xc10f4408 (root_bus_configure+0x14) rsp=0xc00faec4 rfp=0xc00faed0 r6=0x00000006 r5=0xa10081b0 r4=0xc12e0358 root_bus_configure() at root_bus_configure+0xc scp=0xc10f4400 rlv=0xc128c310 (xdr_sizeof+0x1d0) rsp=0xc00faed4 rfp=0xc00faee0 xdr_sizeof() at xdr_sizeof+0x1cc scp=0xc128c30c rlv=0xc1083620 (mi_startup+0xdc) rsp=0xc00faee4 rfp=0xc00faef4 mi_startup() at mi_startup+0xc scp=0xc1083550 rlv=0xc1008248 (btext+0x148) rsp=0xc00faef8 rfp=0x00000000 r4=0xa1008288 db>