[Skyeye-developer] Booting linux-2.6.14 for at91rm9200
Michael.Kang
blackfin.kang at gmail.com
Wed Jul 18 17:54:14 CST 2007
hi
The patch in the attachment can fix some issues of
at91rm9200 simulation. Though still not completely work, but you can
see linux can run to its end. I will fix it further. The simple
instruction is in the following section:
1.Build your own kernel
Download linux-2.6.20 source and use linux-2_6_20-at91rm9200-config
in the attachment as your linux config file (copy it to linux source
dir , named it .config) , then build your kernel.
2. Apply the patch in the attachment
download skyeye_1_2_3_Rel package and decompress it.
enter the source dir of skyeye_1_2_3_Rel and run the following command:
cat ../skyeye_1_2_3-at91rm9200-1.diff |patch -p1
Then run make to get skyeye executive file.
3. Run your kernel
use skyeye -e vmlinux to run kernel image built in the first step. The
output as the following:
ksh at ksh:/opt/source/build-2.6.20-at91rm9200>
/home/ksh/downloads/skyeye_1_2_3_Rel/binary/skyeye -e vmlinux
big_endian is false.
arch: arm
cpu info: armv4, arm920t, 41009200, ff00fff0, 2
mach info: name at91rm92, mach_init addr 0x80681f0
uart_mod:0, desc_in:, desc_out:, converter:
SKYEYE: use arm920t mmu ops
Loaded RAM ./initrd.img
exec file "vmlinux"'s format is elf32-littlearm.
load section .init: addr = 0xc0008000 size = 0x00016000.
load section .text: addr = 0xc001e000 size = 0x0018b5fc.
not load section .rodata: addr = 0xc01aa000 size = 0x00000000 .
not load section .pci_fixup: addr = 0xc01aa000 size = 0x00000000 .
not load section .rio_route: addr = 0xc01aa000 size = 0x00000000 .
load section __ksymtab: addr = 0xc01aa000 size = 0x00003840.
load section __ksymtab_gpl: addr = 0xc01ad840 size = 0x00000c40.
not load section __ksymtab_unused: addr = 0xc01ae480 size = 0x00000000 .
not load section __ksymtab_unused_gpl: addr = 0xc01ae480 size = 0x00000000 .
not load section __ksymtab_gpl_future: addr = 0xc01ae480 size = 0x00000000 .
not load section __kcrctab: addr = 0xc01ae480 size = 0x00000000 .
not load section __kcrctab_gpl: addr = 0xc01ae480 size = 0x00000000 .
not load section __kcrctab_unused: addr = 0xc01ae480 size = 0x00000000 .
not load section __kcrctab_unused_gpl: addr = 0xc01ae480 size = 0x00000000 .
not load section __kcrctab_gpl_future: addr = 0xc01ae480 size = 0x00000000 .
load section __ksymtab_strings: addr = 0xc01ae480 size = 0x00009a98.
load section __param: addr = 0xc01b7f18 size = 0x0000017c.
load section .data: addr = 0xc01ba000 size = 0x000155e4.
not load section .bss: addr = 0xc01cf600 size = 0x000176d0 .
not load section .comment: addr = 0x00000000 size = 0x00001d52 .
not load section .debug_abbrev: addr = 0x00000000 size = 0x0006e7cb .
not load section .debug_info: addr = 0x00000000 size = 0x00bf9381 .
not load section .debug_line: addr = 0x00000000 size = 0x000ca8a1 .
not load section .debug_pubnames: addr = 0x00000000 size = 0x00015c49 .
not load section .debug_str: addr = 0x00000000 size = 0x00059301 .
not load section .debug_aranges: addr = 0x00000000 size = 0x00004168 .
not load section .debug_frame: addr = 0x00000000 size = 0x0003938c .
not load section .debug_loc: addr = 0x00000000 size = 0x0015c520 .
not load section .debug_ranges: addr = 0x00000000 size = 0x000418a8 .
start addr is set to 0xc0008000 by exec file.
Linux version 2.6.20 (ksh at ksh) (gcc version 4.1.0) #7 Wed Jul 18
17:06:49 CST 2007
CPU: ARM920T [41009200] revision 0 (ARMvundefined/unknown), cr=00003177
Machine: Atmel AT91RM9200-EK
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
Clocks: CPU 0 MHz, master 0 MHz, main 18.432 MHz
CPU0: D VIVT write-back cache
CPU0: I cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
CPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 sets
Built 1 zonelists. Total pages: 4064
Kernel command line: root=/dev/ram0 initrd=0xc0200000,0x00500000 rw
console=ttyS0
AT91: 128 gpio irqs in 4 banks
PID hash table entries: 64 (order: 6, 256 bytes)
Console: colour dummy device 80x30
Division by zero in kernel.
Division by zero in kernel.
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 16MB = 16MB total
Memory: 9164KB available (1644K code, 179K data, 88K init)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
checking if image is initramfs...it isn't (bad gzip magic numbers);
looks like an initrd
Freeing initrd memory: 5120K
NetWinder Floating Point Emulator V0.97 (double precision)
io scheduler noop registered
io scheduler anticipatory registered (default)
AT91 Watchdog Timer enabled (5 seconds, nowayout)
atmel_usart.0: ttyS0 at MMIO 0xfefff200 (irq = 1) is a ATMEL_SERIAL
atmel_usart.1: ttyS1 at MMIO 0xfffc4000 (irq = 7) is a ATMEL_SERIAL
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
at91_ether: probe of at91_ether failed with error -1
physmap platform flash device: 00200000 at 10000000
physmap-flash physmap-flash.0: map_probe failed
mice: PS/2 mouse device common for all mice
i2c /dev entries driver
at91_i2c at91_i2c: AT91 i2c bus driver.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 2048KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem).
Freeing init memory: 88K
Division by zero in kernel.
Division by zero in kernel.
Division by zero in kernel.
Division by zero in kernel.
Division by zero in kernel.
##################### end of output #########################
The content of skyeye.conf is as the following:
ksh at ksh:/opt/source/build-2.6.20-at91rm9200> cat skyeye.conf
cpu: arm920t
mach: at91rm92
mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
mem_bank: map=M, type=R, addr=0x00100000, size=0x00010000
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000
mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00500000, file=./initrd.img
mem_bank: map=M, type=RW, addr=0xc0700000, size=0x00900000
mem_bank: map=I, type=RW, addr=0xfffa0000, size=0x00060000
#dbct:state=on
################## end of skyeye.conf #####################
-- Thanks
-- Michael.Kang
On 7/18/07, Jesus Lopez <jesus.jelomer at gmail.com> wrote:
> Hello,
> I've compiled linux-2.6.14 for at91rm9200 using this document
> (http://skyeye.wiki.sourceforge.net/Linux) as basis to
> modify source code. I've changed AT91_SDRAM_BASE from 0x20000000 to
> 0xc0000000 in include/asm/arch-at91rm9200/hardware.h
> (PHYS_OFFSET is defined as AT91_SDRAM_BASE). Any attempt to boot has been
> unsuccessful. I've enabled JTAG DCC in order to get more info about what was
> going bad and I´ve got next message:
>
> # skyeye -e vmlinux -c skyeye.conf
> arch: arm
> cpu info: armv4, arm920t, 41009200, ff00fff0, 2
> mach info: name at91rm92, mach_init addr 0x805b720
> uart_mod:0, desc_in:, desc_out:
> SKYEYE: use arm920t mmu ops
> Loaded RAM ./initrd.img
> exec file "vmlinux"'s format is elf32-little.
> load section .init: addr = 0xc0008000 size = 0x00015000.
> load section .text: addr = 0xc001d000 size = 0x0013a254.
> not load section .pci_fixup: addr = 0xc0157254 size = 0x00000000 .
> load section __ksymtab: addr = 0xc0157254 size = 0x000030b0.
> load section __ksymtab_gpl: addr = 0xc015a304 size = 0x00000730.
> not load section __kcrctab: addr = 0xc015aa34 size = 0x00000000 .
> not load section __kcrctab_gpl: addr = 0xc015aa34 size = 0x00000000 .
> load section __ksymtab_strings: addr = 0xc015aa34 size = 0x00007b18.
> load section __param: addr = 0xc016254c size = 0x000000dc.
> load section .data: addr = 0xc0164000 size = 0x0000fa40.
> not load section .bss: addr = 0xc0173a40 size = 0x000175a8 .
> not load section .comment: addr = 0x00000000 size = 0x0000188a .
> start addr is set to 0xc0008000 by exec file.
> SKYEYE ARMul_MRC,CANT UndefInstr CPnum is e, instr ee103e10
>
> My skyeye.conf looks like this:
> cpu: arm920t
> mach: at91rm92
> mem_bank: map=M, type=RW, addr=0x00000000, size=0x00004000
> mem_bank: map=M, type=R, addr=0x00100000, size=0x00010000
> mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00200000
> mem_bank: map=M, type=RW, addr=0xc0200000, size=0x00500000,
> file=./initrd.img
> mem_bank: map=M, type=RW, addr=0xc0700000, size=0x00900000
> mem_bank: map=I, type=RW, addr=0xfffa0000, size=0x00060000
> uart: mod=stdio, converter=dcc
>
> Any idea what's going wrong?
>
> Thanks in advance
>
>
> _______________________________________________
> Skyeye-developer mailing list
> Skyeye-developer at lists.gro.clinux.org
> http://lists.gro.clinux.org/cgi-bin/mailman/listinfo/skyeye-developer
>
>
--
www.skyeye.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux-2_6_20-at91rm9200-config
Type: application/octet-stream
Size: 19215 bytes
Desc: not available
Url : http://lists.gro.clinux.org/pipermail/skyeye-developer/attachments/20070718/69670be0/linux-2_6_20-at91rm9200-config-0001.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: skyeye_1_2_3-at91rm9200-1.diff
Type: application/octet-stream
Size: 5681 bytes
Desc: not available
Url : http://lists.gro.clinux.org/pipermail/skyeye-developer/attachments/20070718/69670be0/skyeye_1_2_3-at91rm9200-1-0001.obj
More information about the Skyeye-developer
mailing list