Hello, I already mailed about this but I'm stuck and I would need a solution or something !
I'm working actually on an arm946es based board, which has 64k of internal ram and 16Mo of SDRAM at 0x80000000. The peripherals are accessed from 0xE0000000 to 0xEBFFFFFF. I started porting linux-2.6.21 with the uClinux-big patch and a cpu-arm946.S given on the mailing list, everything looks OK, interrupts are fine, timer is fine and the calibration founds 52.86 BogoMIPS (lpj=26432). I made a serial driver from scratch with a console driver, and it works well. The problem is that when I try to start an init binary from an initramfs, it starts but outputs nothing ! I'm using a Lauterbach JTAG and Trace32 to load a home-made loader (who initializes the ddl and calibrates the memory, and all the clocks) and the kernel (setting all the registers and the ATAG structure). When I break after the start_thread, I find PC in the _exit part of the binary ! Is there a trick about the init program ? Did I miss something about consoles ? I tried to backport all my work on dslinux's 2.6.14 kernel, but it stays quiet the same way ! (And missing all the new platform_driver, platform_device, ... is bad !) Here is the last output : (Setting some flags in trace32 made appear some vector exeptions) : Setting Kernel Parameters : 'init=/init debug initcall_debug' Starting Kernel [ 0.000000] Linux version 2.6.21-uc0-np4 ([EMAIL PROTECTED]) (gcc version 4.0.4) #62 Tue Jul 31 17:57:07 CEST 2007 [ 0.000000] CPU: ARM946E [41059461] revision 1 (ARMv5TE), cr=0000107d [ 0.000000] Machine: Neotion NP4 [ 0.000000] On node 0 totalpages: 1024 [ 0.000000] Normal zone: 8 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 1016 pages, LIFO batch:0 [ 0.000000] CPU0: D VIVT write-back cache [ 0.000000] CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets [ 0.000000] CPU0: D cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets [ 0.000000] Built 1 zonelists. Total pages: 1016 [ 0.000000] Kernel command line: init=/init debug initcall_debug [ 0.000000] NP4 IRQ Init: 32 [ 0.000000] PID hash table entries: 16 (order: 4, 64 bytes) [ 0.000000] NP4 Timer 0 Init. : Freq 108000000 Prescaler 256 Period 422 HZ 1000 [ 0.000000] Registering basic NP4 UART Console [ 0.000000] NP4 UART Console Setup [ 0.001000] ------------------------ [ 0.002000] | Locking API testsuite: ... [ 0.233000] -------------------------------------------------------- [ 0.234000] 145 out of 218 testcases failed, as expected. | [ 0.235000] ---------------------------------------------------- [ 0.236000] Dentry cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.237000] Inode-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.239000] Memory: 4MB = 4MB total [ 0.241000] Memory: 2744KB available (1112K code, 81K data, 108K init) [ 0.246000] Calibrating delay loop... 52.86 BogoMIPS (lpj=26432) [ 0.266000] Mount-cache hash table entries: 512 [ 0.274000] DEV: registering device: ID = 'platform' [ 0.275000] bus type 'platform' registered [ 0.276000] Registering sysdev class '<NULL>' [ 0.278000] Calling initcall 0x800042f0: ptrace_break_init+0x0/0x2c() [ 0.281000] Calling initcall 0x80006998: helper_init+0x0/0x4c() [ 0.284000] Calling initcall 0x80006bb8: init_jiffies_clocksource+0x0/0x1c() [ 0.287000] Calling initcall 0x80008bd0: filelock_init+0x0/0x54() [ 0.289000] Calling initcall 0x800096d8: init_script_binfmt+0x0/0x1c() [ 0.291000] Calling initcall 0x800096f4: init_flat_binfmt+0x0/0x1c() [ 0.294000] Calling initcall 0x80009e98: random32_init+0x0/0x2c() [ 0.297000] Calling initcall 0x8000ad94: sock_init+0x0/0x84() [ 0.300000] Calling initcall 0x8000b340: netlink_proto_init+0x0/0x178() [ 0.303000] NET: Registered protocol family 16 [ 0.304000] Calling initcall 0x8000a058: tty_class_init+0x0/0x3c() [ 0.306000] device class 'tty': registering [ 0.307000] Calling initcall 0x80004640: customize_machine+0x0/0x2c() [ 0.309000] NP4 Board Init. [ 0.310000] Calling initcall 0x80005498: np4_devices_init+0x0/0x2c() [ 0.312000] NP4 Devices Init. [ 0.313000] NP4 UART Init. [ 0.314000] Registering platform device 'np4_serial.0'. Parent at platform [ 0.315000] DEV: registering device: ID = 'np4_serial.0' [ 0.316000] bus platform: add device np4_serial.0 [ 0.317000] Registering platform device 'np4_serial.1'. Parent at platform [ 0.318000] DEV: registering device: ID = 'np4_serial.1' [ 0.319000] bus platform: add device np4_serial.1 [ 0.320000] NP4 Macb ETH Init. [ 0.321000] Registering platform device 'macb'. Parent at platform [ 0.322000] DEV: registering device: ID = 'macb' [ 0.323000] bus platform: add device macb [ 0.324000] Calling initcall 0x8000466c: topology_init+0x0/0x30() [ 0.327000] Registering sys device 'cpu0' [ 0.328000] Calling initcall 0x80009408: init_bio+0x0/0x148() [ 0.339000] Calling initcall 0x80009d3c: genhd_device_init+0x0/0x64() [ 0.344000] Calling initcall 0x8000a18c: misc_init+0x0/0x9c() [ 0.346000] device class 'misc': registering [ 0.347000] Calling initcall 0x8000abdc: serio_init+0x0/0x98() [ 0.349000] bus type 'serio' registered [ 0.350000] Calling initcall 0x8000ac74: input_init+0x0/0x120() [ 0.352000] device class 'input': registering [ 0.354000] Calling initcall 0x8000ae94: proto_init+0x0/0x48() [ 0.356000] Calling initcall 0x8000b034: net_dev_init+0x0/0x1d0() [ 0.359000] Calling initcall 0x8000b4b8: genl_init+0x0/0xc4() [ 0.361000] Calling initcall 0x80006afc: clocksource_done_booting+0x0/0x24() [ 0.363000] Calling initcall 0x80008b30: init_pipe_fs+0x0/0x54() [ 0.365000] Calling initcall 0x80009f28: chr_dev_init+0x0/0x98() [ 0.367000] device class 'mem': registering [ 0.368000] DEV: registering device: ID = 'mem' [ 0.369000] DEV: registering device: ID = 'kmem' [ 0.371000] DEV: registering device: ID = 'null' [ 0.372000] DEV: registering device: ID = 'zero' [ 0.373000] DEV: registering device: ID = 'full' [ 0.374000] DEV: registering device: ID = 'random' [ 0.375000] DEV: registering device: ID = 'urandom' [ 0.376000] DEV: registering device: ID = 'kmsg' [ 0.377000] Calling initcall 0x8000befc: inet_init+0x0/0x370() [ 0.380000] NET: Registered protocol family 2 [ 0.390000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.392000] TCP established hash table entries: 512 (order: 0, 4096 bytes) [ 0.393000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.394000] TCP: Hash tables configured (established 512 bind 1024) [ 0.395000] TCP reno registered [ 0.399000] Calling initcall 0x80003b34: populate_rootfs+0x0/0xb4() [ 0.515000] Calling initcall 0x80004bf0: timer_init_sysfs+0x0/0x40() [ 0.517000] Registering sysdev class '<NULL>' [ 0.518000] Registering sys device 'timer0' [ 0.519000] Calling initcall 0x80005fe4: create_proc_profile+0x0/0x70() [ 0.521000] Calling initcall 0x8000618c: ioresources_init+0x0/0x5c() [ 0.523000] Calling initcall 0x800062c0: timekeeping_init_device+0x0/0x38() [ 0.526000] Registering sysdev class '<NULL>' [ 0.527000] Registering sys device 'timekeeping0' [ 0.528000] Calling initcall 0x80006590: uid_cache_init+0x0/0xb0() [ 0.530000] Calling initcall 0x800068d8: init_posix_timers+0x0/0xc0() [ 0.533000] Calling initcall 0x800069e4: init_posix_cpu_timers+0x0/0x84() [ 0.535000] Calling initcall 0x80006ac4: latency_init+0x0/0x38() [ 0.537000] Calling initcall 0x80006bd4: init_timer_list_procfs+0x0/0x40() [ 0.539000] Calling initcall 0x80006c14: init+0x0/0x80() [ 0.542000] Calling initcall 0x80006c94: kallsyms_init+0x0/0x38() [ 0.544000] Calling initcall 0x80007be8: init_per_zone_pages_min+0x0/0x50() [ 0.546000] Calling initcall 0x80008274: pdflush_init+0x0/0x24() [ 0.549000] Calling initcall 0x800082d0: kswapd_init+0x0/0x34() [ 0.553000] Calling initcall 0x80008304: init_tmpfs+0x0/0x5c() [ 0.557000] Calling initcall 0x80008404: cpucache_init+0x0/0x1c() [ 0.559000] Calling initcall 0x80008b84: fasync_init+0x0/0x4c() [ 0.562000] Calling initcall 0x800092fc: aio_setup+0x0/0x98() [ 0.565000] Calling initcall 0x800095f8: eventpoll_init+0x0/0xe0() [ 0.568000] Calling initcall 0x80009710: proc_nommu_init+0x0/0x2c() [ 0.570000] Calling initcall 0x80009afc: init_ext2_fs+0x0/0x80() [ 0.573000] Calling initcall 0x80009b7c: init_ramfs_fs+0x0/0x1c() [ 0.575000] Calling initcall 0x80009da0: noop_init+0x0/0x1c() [ 0.577000] io scheduler noop registered [ 0.578000] Calling initcall 0x80009dbc: deadline_init+0x0/0x1c() [ 0.580000] io scheduler deadline registered (default) [ 0.581000] Calling initcall 0x80009fdc: rand_initialize+0x0/0x38() [ 0.583000] Calling initcall 0x8000a094: tty_init+0x0/0xf8() [ 0.587000] DEV: registering device: ID = 'tty' [ 0.588000] DEV: registering device: ID = 'console' [ 0.589000] Calling initcall 0x8000a228: np4_serial_init+0x0/0x50() [ 0.592000] np4_serial: Registered serial driver [ 0.593000] bus platform: add driver np4_serial [ 0.594000] platform: Matched Device np4_serial.0 with Driver np4_serial [ 0.595000] platform: Probing driver np4_serial with device np4_serial.0 [ 0.596000] np4_serial.0: Port Request [ 0.597000] np4_serial.0: ttyS0 at MMIO 0xe0020000 (irq = 3) is a np4_serial [ 0.598000] DEV: registering device: ID = 'ttyS0' [ 0.599000] np4_serial: Registered serial line 0 [ 0.600000] bound device 'np4_serial.0' to driver 'np4_serial' [ 0.601000] platform: Bound Device np4_serial.0 to Driver np4_serial [ 0.602000] platform: Matched Device np4_serial.1 with Driver np4_serial [ 0.603000] platform: Probing driver np4_serial with device np4_serial.1 [ 0.604000] np4_serial.1: Port Request [ 0.605000] np4_serial.1: ttyS1 at MMIO 0xe0024000 (irq = 4) is a np4_serial [ 0.606000] DEV: registering device: ID = 'ttyS1' [ 0.607000] np4_serial: Registered serial line 1 [ 0.608000] bound device 'np4_serial.1' to driver 'np4_serial' [ 0.609000] platform: Bound Device np4_serial.1 to Driver np4_serial [ 0.610000] Calling initcall 0x8000a608: net_olddevs_init+0x0/0xcc() [ 0.613000] Calling initcall 0x8000a6d4: loopback_init+0x0/0x1c() [ 0.616000] Calling initcall 0x8000a6f0: macb_init+0x0/0x1c() [ 0.620000] bus platform: add driver macb [ 0.621000] platform: Matched Device macb with Driver macb [ 0.622000] platform: Probing driver macb with device macb [ 0.625000] macb macb: detected PHY at address 15 (ID 0007:c0a3) [ 0.627000] eth0: Atmel MACB at 0xe0050000 irq 8 (00:00:00:00:00:00) [ 0.628000] bound device 'macb' to driver 'macb' [ 0.629000] platform: Bound Device macb to Driver macb [ 0.630000] Calling initcall 0x8000c5a4: cubictcp_register+0x0/0x90() [ 0.632000] TCP cubic registered [ 0.633000] Calling initcall 0x80004c9c: arm_mrc_hook_init+0x0/0x20() [ 0.635000] Calling initcall 0x80009ec4: random32_reseed+0x0/0x34() [ 0.637000] Calling initcall 0x80009fc0: seqgen_init+0x0/0x1c() [ 0.640000] Calling initcall 0x8000bc90: tcp_congestion_default+0x0/0x1c() [ 0.643000] Freeing init memory: 108K [ 0.645000] np4_serial.0: Port Startup [ 0.647000] BINFMT_FLAT: Loading file: /init [ 0.653000] Mapping is 801a0000, Entry point is 44, data_start is 34a8 [ 0.654000] Load /init: TEXT=801a0040-801a34a8 DATA=801a34ac-801a3704 BSS=801a3704-801a5744 [ 0.655000] p=801a7ffc [ 0.656000] start_thread(regs=0x80169f24, entry=0x801a0044, start_stack=0x801a7fb8) [ 0.657000] Unhandled fault: vector exception (0x000) at 0x00000000 [ 0.658000] Unhandled fault: vector exception (0x000) at 0x00000000 ... Thanks, Neil
signature.asc
Description: OpenPGP digital signature
_______________________________________________ uClinux-dev mailing list [email protected] http://mailman.uclinux.org/mailman/listinfo/uclinux-dev This message was resent by [email protected] To unsubscribe see: http://mailman.uclinux.org/mailman/options/uclinux-dev
