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

Attachment: 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

Reply via email to