Atmel at91x40 ("EB01" eval board) resurected

Phil Budne phil at ultimate.com
Thu Dec 22 22:18:53 EST 2011


I'm new here, so please excuse any protocol violations!

I decided to see if I could bring up current kernel sources under
skyeye  (at91x40 simulation).
I've also been working on a port to the more modern AT91SAM7SE using QEMU.

Attached are:

diffs from sources from git://github.com/at91linux/linux-at91.git
 master branch (current as of 12/21/11)
 many of the changes are in generic arch/arm files.

Tested on Simulated at91x40xxx "EB01" board
kernel built using attached defconfig file.
4M of RAM at 0x1000000
XIP kernel loaded in 4M (of "flash") at 0x1400000
root filesystem is a compiled in initramfs
  too much pain to build ROMfs and map;
   (drivers/mtd/maps/uclinux.c requires rootfs appended after kernel
    "uClinux" 11/11/11 dist uclinux.c allows rootfs image at fixed location)


new file attached: mach/arm/mach-at91/at91x40_devices.c

Runs on locally modified skyeye
 based on skyeye-v1.2_Rel.tar (had trouble building latest release)
 adds interrupt driven UART output
 tweaked for programmed I/O UART input
 fix for loading XIP data section (load at physical, not virtual address)

Problems:
 repeated "free" commands show loss of 12K each time (see atached typescript)
 same sh binary (from skyeye test suite)
   does not exhibit this on 2.6 and 2.4 kernels (from the skyeye test suite).
 breakpointing sys_munmap shows len==0 (could it be an ABI issue?)
-------------- next part --------------
Script started on Wed 21 Dec 2011 06:04:55 PM EST
phil at phil-laptop:~/arm/git/linux-at91$ head -5 Makefile
VERSION = 3
PATCHLEVEL = 2
SUBLEVEL = 0
EXTRAVERSION = -rc3
NAME = Saber-toothed Squirrel
phil at phil-laptop:~/arm/git/linux-at91$ size x40/vmlinux
   text	   data	    bss	    dec	    hex	filename
 827292	 171320	  25280	1023892	  f9f94	x40/vmlinux
phil at phil-laptop:~/arm/git/linux-at91$ ./skyeye -e x40/vmlinux
arch: arm
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0 
mach info: name at91, mach_init addr 0x8057760
SKYEYE: use arm7100 mmu ops
exec file "x40/vmlinux"'s format is elf32-little.
load section .head.text: addr = 0x01400000  size = 0x0000005c.
load section .text: addr = 0x01400060  size = 0x000a0000.
load section .rodata: addr = 0x014a1000  size = 0x0001e780.
load section __param: addr = 0x014bf780  size = 0x00000080.
not load section __modver: addr = 0x014bf800  size = 0x00000800 .
load section .init.text: addr = 0x014c0000  size = 0x0000b534.
load section .init.proc.info: addr = 0x014cb534  size = 0x0000016c.
load section .init.arch.info: addr = 0x014cb6a0  size = 0x0000003c.
load section .init.tagtable: addr = 0x014cb6dc  size = 0x00000040.
load section .init.data: addr = 0x014cb71c  size = 0x0001a538.
load section .data: lma = 0x014e6000 (vma = 0x01008000)  size = 0x0000f800.
load section .notes: addr = 0x01017800  size = 0x00000024.
not load section .bss: addr = 0x01017840  size = 0x00005ac0 .
not load section .comment: addr = 0x00000000  size = 0x0000002a .
not load section .ARM.attributes: addr = 0x00000000  size = 0x0000002a .
not load section .debug_line: addr = 0x00000000  size = 0x0007e2af .
not load section .debug_info: addr = 0x00000000  size = 0x0063a524 .
not load section .debug_abbrev: addr = 0x00000000  size = 0x0004afc4 .
not load section .debug_aranges: addr = 0x00000000  size = 0x000033c0 .
not load section .debug_ranges: addr = 0x00000000  size = 0x0001d7c8 .
not load section .debug_pubnames: addr = 0x00000000  size = 0x000122dd .
not load section .debug_pubtypes: addr = 0x00000000  size = 0x000a9c57 .
not load section .debug_str: addr = 0x00000000  size = 0x00036622 .
not load section .debug_frame: addr = 0x00000000  size = 0x00029b90 .
not load section .debug_loc: addr = 0x00000000  size = 0x0010e6e5 .
start addr is set to 0x01400000 by exec file.
Linux version 3.2.0-rc3-12776-g401d006-dirty (phil at phil-laptop) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu3) ) #63 Wed Dec 21 18:01:29 EST 2011
CPU: ARM7TDMI [41807700] revision 0 (ARMv4T), cr=00000000
CPU: VIVT data cache, VIVT instruction cache
Machine: Atmel AT91 EB01
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 1016
Kernel command line: 
PID hash table entries: 16 (order: -6, 64 bytes)
Dentry cache hash table entries: 1024 (order: 0, 4096 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 4MB = 4MB total
Memory: 3924k/3924k available, 172k reserved, 0K highmem
Virtual kernel memory layout:
    vector  : 0x00000000 - 0x00001000   (   4 kB)
    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
    vmalloc : 0x00000000 - 0xffffffff   (4095 MB)
    lowmem  : 0x01000000 - 0x01400000   (   4 MB)
    modules : 0x01000000 - 0x01400000   (   4 MB)
      .text : 0x01400000 - 0x014c0000   ( 768 kB)
      .init : 0x0100a000 - 0x0100d000   (  12 kB)
      .data : 0x01008000 - 0x01017800   (  62 kB)
       .bss : 0x01017824 - 0x0101d300   (  23 kB)
NR_IRQS:192
AT91: 0 gpio irqs in 0 banks
Calibrating delay loop... 15.79 BogoMIPS (lpj=78976)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
atmel_usart.1: ttyS0 at MMIO 0xfffd0000 (irq = 2) is a ATMEL_SERIAL
console [ttyS0] enabled
atmel_usart.2: ttyS1 at MMIO 0xfffcc000 (irq = 3) is a ATMEL_SERIAL
Freeing init memory: 12K
Shell invoked to run file: /etc/rc
Command: 
Command: hostname skyeye
Command: mount -t proc proc /proc
Command: mkdir /var/lock /var/log /var/run /var/tmp
Command: cat /etc/motd
Welcome to
          ____ _  _
         /  __| ||_|                 
    _   _| |  | | _ ____  _   _  _  _ 
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|

For further information check:
http://www.uclinux.org/

Execution Finished, Exiting

Sash command shell (version 1.1.1)
/> free
MemTotal:           3936 kB
MemFree:            3308 kB
Buffers:               0 kB
/> free
MemTotal:           3936 kB
MemFree:            3296 kB
Buffers:               0 kB
/> free
MemTotal:           3936 kB
MemFree:            3284 kB
Buffers:               0 kB
/> ls -l /*

/bin:
-rwxr-xr-x  1 1000     1000        32152  Dec 20 2011  init
-rwxr-xr-x  1 1000     1000        70264  Dec 20 2011  sh

/dev:
crw-------  1 1000     0          5,   1  Jan  1 00:00 console
crw-------  1 1000     0          5,  64  Dec 21 2011  cua0
crw-------  1 1000     0          5,  65  Dec 21 2011  cua1
crw-------  1 1000     0          1,   2  Dec 21 2011  kmem
crw-------  1 1000     0          1,   1  Dec 21 2011  mem
crw-------  1 1000     0          1,   3  Dec 21 2011  null
crw-------  1 1000     0          1,   8  Dec 21 2011  random
crw-------  1 1000     0          5,   0  Dec 21 2011  tty
crw-------  1 1000     0          4,   0  Dec 21 2011  tty0
crw-------  1 1000     0          4,   1  Dec 21 2011  tty1
crw-------  1 1000     0          4,   2  Dec 21 2011  tty2
crw-------  1 1000     0          4,   3  Dec 21 2011  tty3
crw-------  1 1000     0          4,  64  Dec 21 2011  ttyS0
crw-------  1 1000     0          4,  65  Dec 21 2011  ttyS1
crw-------  1 1000     0          4,  66  Dec 21 2011  ttyS2
crw-------  1 1000     0          4,  67  Dec 21 2011  ttyS3
crw-------  1 1000     0          1,   9  Dec 21 2011  urandom
crw-------  1 1000     0          1,   5  Dec 21 2011  zero

/etc:
-rw-r--r--  1 1000     1000           49  Dec 21 2011  inittab
-rw-r--r--  1 1000     1000          296  Dec 11 2011  motd
-rw-r--r--  1 1000     1000           21  Dec 11 2011  passwd
-rwxr-xr-x  1 1000     1000          134  Dec 20 2011  rc
lrwxrwxrwx  1 1000     1000            8  Dec 21 2011  /init -> bin/init

/proc:
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 1
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 10
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 11
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 13
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 2
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 3
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 4
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 5
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 6
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 7
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 8
dr-xr-xr-x  6 0        0               0  Jan  1 00:00 9
-r--r--r--  1 0        0               0  Jan  1 00:00 buddyinfo
dr-xr-xr-x  2 0        0               0  Jan  1 00:00 bus
-r--r--r--  1 0        0               0  Jan  1 00:00 cmdline
-r--r--r--  1 0        0               0  Jan  1 00:00 consoles
-r--r--r--  1 0        0               0  Jan  1 00:00 cpuinfo
-r--r--r--  1 0        0               0  Jan  1 00:00 devices
dr-xr-xr-x  2 0        0               0  Jan  1 00:00 driver
-r--r--r--  1 0        0               0  Jan  1 00:00 execdomains
-r--r--r--  1 0        0               0  Jan  1 00:00 filesystems
dr-xr-xr-x  3 0        0               0  Jan  1 00:00 fs
-r--r--r--  1 0        0               0  Jan  1 00:00 interrupts
-r--r--r--  1 0        0               0  Jan  1 00:00 iomem
-r--r--r--  1 0        0               0  Jan  1 00:00 ioports
dr-xr-xr-x 34 0        0               0  Jan  1 00:00 irq
-r--r--r--  1 0        0               0  Jan  1 00:00 kallsyms
-r--------  1 0        0               0  Jan  1 00:00 kmsg
-r--r--r--  1 0        0               0  Jan  1 00:00 loadavg
-r--r--r--  1 0        0               0  Jan  1 00:00 locks
-r--r--r--  1 0        0               0  Jan  1 00:00 maps
-r--r--r--  1 0        0               0  Jan  1 00:00 meminfo
-r--r--r--  1 0        0               0  Jan  1 00:00 misc
lrwxrwxrwx  1 0        0              11  Jan  1 00:00 mounts
-r--r--r--  1 0        0               0  Jan  1 00:00 pagetypeinfo
lrwxrwxrwx  1 0        0              64  Jan  1 00:00 self
-r--r--r--  1 0        0               0  Jan  1 00:00 softirqs
-r--r--r--  1 0        0               0  Jan  1 00:00 stat
dr-xr-xr-x  1 0        0               0  Jan  1 00:00 sys
-r--r--r--  1 0        0               0  Jan  1 00:00 timer_list
dr-xr-xr-x  4 0        0               0  Jan  1 00:00 tty
-r--r--r--  1 0        0               0  Jan  1 00:00 uptime
-r--r--r--  1 0        0               0  Jan  1 00:00 version
-r--r--r--  1 0        0               0  Jan  1 00:00 vmstat
-r--r--r--  1 0        0               0  Jan  1 00:00 zoneinfo
lrwxrwxrwx  1 1000     1000            4  Dec 21 2011  /sbin -> /bin
lrwxrwxrwx  1 1000     1000            8  Dec 21 2011  /tmp -> /var/tmp

/var:
drwxr-xr-x  2 0        0               0  Jan  1 00:00 lock
drwxr-xr-x  2 0        0               0  Jan  1 00:00 log
drwxr-xr-x  2 0        0               0  Jan  1 00:00 run
drwxr-xr-x  2 0        0               0  Jan  1 00:00 tmp
/> cat /etc/inittab 
# inet:unknown:/bin/inetd
# boa:unknown:/bin/boa
/> cat /etc/rc
#!/bin/sh

hostname skyeye
mount -t proc proc /proc
#mount -t tmpfs tmp /var
mkdir /var/lock /var/log /var/run /var/tmp
cat /etc/motd

/> ^C
phil at phil-laptop:~/arm/git/linux-at91$ exit

Script done on Wed 21 Dec 2011 06:07:20 PM EST

-------------- next part --------------
A non-text attachment was scrubbed...
Name: diff
Type: application/octet-stream
Size: 6118 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20111222/f072d61d/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: defconfig
Type: application/octet-stream
Size: 1557 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20111222/f072d61d/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: at91x40_devices.c
Type: text/x-csrc
Size: 3814 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20111222/f072d61d/attachment-0001.bin>


More information about the linux-arm-kernel mailing list