[uClinux-dev] Arm946ES Target
Neil Armstrong
neil.armstrong at polytech.unice.fr
Wed Aug 1 03:35:28 EDT 2007
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 (narmstrong at miro) (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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
Url : http://mailman.uclinux.org/pipermail/uclinux-dev/attachments/20070801/d6d1fc0a/signature.pgp
More information about the uClinux-dev
mailing list