ts-7000
[Top] [All Lists]

Re: [ts-7000] new TS-7000 bootloader (Linux booting Linux)

To:
Subject: Re: [ts-7000] new TS-7000 bootloader (Linux booting Linux)
From:
Date: Fri, 1 Dec 2006 08:38:16 -0600

I tried to load bootloader.o with insmod and got the following:
(I'm running ts7250 2.4.26-ts11 #3)

----------------------------------
/sbin/insmod bootloader.o

Using bootloader.o
Warning: loading bootloader will taint the kerneUnable to handle kernel NULL pointer dereference at virtual address 00000010
l: non-GPL lpgd = c4094000
icense - Pro[00000010] *pgd=prietary
  050b4801See http://w, *pmd = ww.tux.org/l050b4801kml/#export-, *pte = tainted for 00000000information , *ppte = 00000000about tainte
d modules
Internal error: Oops: 7
CPU: 0
pc : [<c03400c4>]    lr : [<c02be93c>]    Tainted: P
sp : c10a7ee8  ip : 00000000  fp : c50fa380
r10: 0018a1c0  r9 : c10a6000  r8 : ffffffea
r7 : c0372404  r6 : c037241c  r5 : d4028b4c  r4 : c039733c
r3 : 00000002  r2 : 80000013  r1 : 0000002f  r0 : 00000010
Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  Segment user
Control: C000317F  Table: 04094000  DAC: 00000015
Process insmod (pid: 86, stack limit = 0xc10a6368)
Stack: (0xc10a7ee8 to 0xc10a8000)
7ee0:                   00000060 ffffffea 00000000 d4028000 00000000 d4028000
7f00: d10b1000 00000060 d4028380 00000000 c023b530 0000000a d10b1000 c50ac000
7f20: d4036000 00000060 d402c000 d4028060 00000ca0 00000000 00000000 00000000
7f40: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
7f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
7f80: 00000000 00000028 00000ca0 0018a1c0 00000080 c022d704 c10a6000 00000ca0
7fa0: 00000000 c022d560 00000ca0 0018a1c0 00900080 0017f3f8 0018a1c0 00000000
7fc0: 00000028 00000ca0 0018a1c0 d4028000 0017f3f8 0008b0a0 00000ca0 7ffffe54
7fe0: 7fffda4c 7fffda40 0006aecc 2ac3f130 60000010 00900080 00000000 003bc001
Backtrace:
Backtrace aborted due to bad frame pointer <c50fa380>
Code: e1a00000 e1a00000 e1a00000 e20110ff (e4d02001)
Segmentation fault
----------------------------------

 



"Jesse Off" <>
Sent by:

11/29/2006 04:33 PM
Please respond to

To
cc
Subject
[ts-7000] new TS-7000 bootloader (Linux booting Linux)





Hey all,

We've just written a utility to allow arbitrary loading and
execution of kernels within an already booted Linux.  We believe
this is the perfect complement to the already super-fast Linux
bootstrap on the TS-7xxx.  Our opinion is that instead of using or
developing another high functionality bootloader (uBoot, RedBoot,
GRUB, etc..), we'd just as well use Linux itself as the bootloader
of choice!  

This utility will work on all of our TS-7000 boards and is comprised
of two files:

ftp://ftp.embeddedarm.com/bootloader.o - Linux kernel module
ftp://ftp.embeddedarm.com/bootload - Linux executable

The 'bootload' program "--help" output is provided below:

$ bootload --help
Usage: bootload [OPTION] FILE
Linux to Linux bootloader - (re)boots a TS-7xxx board to another
kernel, OS
image, or raw executable by replacing the running Linux kernel.

General options:
 -c, --cmdline=CMD       Use CMD as the Linux kernel boot args
 -r, --initrd=FILE       Use FILE for Linux initial ramdisk
 -s, --initrdsz=SZ       Only read SZ bytes from the initrd file
 -b, --base=ADDR         Load the image at ADDR instead of 0x218000
 --version               Print version and copyright information
 -h, --help              This help

When FILE is -, reads from standard input.

Report bugs to <>
$

With this relatively simple facility, it is possible to use the full
functionality of the Linux kernel to catalog, retreive, and load
Linux kernels and other OS images.  

Also, reboots through this mechanism become virtually
instantaneous.  This isn't as big of a deal on the TS boards since
power-on-reset only takes 1.10 seconds anyway (TS-7xxx's do not have
the ridiculous power-on firmware and BIOS that x86 PC's have)

Some of the possibilities include:

*) Safe and atomic kernel updates by using kernels stored on the
YAFFS2 flash filesystem.

*) Auto-select a fallback kernel and root filesystem in case of
botched field update or hardware watchdog expiry.  A Linux shell
script can control what gets passed as kernel command line arguments.

*) Boot Linux kernels and other operating systems via wget command
(FTP, HTTP, etc..) TFTP, ZMODEM serial, NFS, USB flash dongle, etc...

Some "one-line" examples of usage:

Boot a compressed kernel image:
$ bunzip -c vmlinux.bin.bz2 | bootload -

Reboot a kernel, but pass the 1MB running ramdisk to the new kernel:
$ mount -o remount,ro /dev/rd/0 /
$ bootload -c "console=ttyAM0,115200 root=/dev/ram0" -r /dev/rd/0  \
   -r 0x100000

Boot one of 2 kernels based on the state of DIO line #7:
$ if dio_data_get 7; then bootload vmlinux.backup.bin; else \
   bootload vmlinux.bin; fi

//Jesse Off




Yahoo! Groups Links

<*> To visit your group on the web, go to:
   http://groups.yahoo.com/group/ts-7000/

<*> Your email settings:
   Individual Email | Traditional

<*> To change settings online go to:
   http://groups.yahoo.com/group/ts-7000/join
   (Yahoo! ID required)

<*> To change settings via email:
   
   

<*> To unsubscribe from this group, send an email to:
   

<*> Your use of Yahoo! Groups is subject to:
   http://docs.yahoo.com/info/terms/


__._,_.___


SPONSORED LINKS
Single board computer Hardware Computer running slow
Linux os Single board

Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: =Email Delivery: Digest | m("yahoogroups.com?subject","ts-7000-fullfeatured");=Change Delivery Format: Fully Featured">Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | =Unsubscribe

__,_._,___
<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU