Saturday, November 29, 2008
Illegal instruction on s3c2440
I build a root file system using buildroot. gcc 4.2.4, uClibc snapshot. But it didn't work and busybox crashed with illegal instruction. After google it, I found that t is because the default EABI is for ARM5 and my target is ARM920T. I need to change SUBTARGET_CPU_DEFAULT from TARGET_CPU_arm10tdmi to TARGET_CPU_arm920t, which is on gcc/config/arm/linux-eabi.h.
Thursday, August 14, 2008
WebKit runs on fltk
It took me three weeks to port it. Now I have run it succefully on Windows and Linux. It is cool to see it. :)
The libraries I uses are cairo, curl, fltk,fontconfig, freetype, icu,png, jpeg, xml, sqlite, zlib and pthread-w32 on Windows. It seems webkit depends very litter on framework's widget Maybe I can drop fltk. I'll try it later.
The libraries I uses are cairo, curl, fltk,fontconfig, freetype, icu,png, jpeg, xml, sqlite, zlib and pthread-w32 on Windows. It seems webkit depends very litter on framework's widget Maybe I can drop fltk. I'll try it later.
Thursday, December 13, 2007
===========
blob modify
===========
1. change boot delay time from 10 seconds to 3 seonds
src/blob/main.c:
/* blob_status.boot_delay = 10; */
blob_status.boot_delay = 3;
2. subset usb vid&pid
because linux kernel doesn't support pxa300 blob boot loader VID&PID, change it
lib/ether-mhnusb.c: //??
lib/ether-mhnu2d.c:
#if 0
__u16 usb_vendor_id = 0x1286;
__u16 usb_product_id = 0x8001;
#else
// use a exist vid&pid to avoid compiling host kernel
__u16 usb_vendor_id = 0x8086;
__u16 usb_product_id = 0x07d3;
#endif
3. compile
should use usbdnet option
./config.sh MonahansL zylonite usbdnet;
equals
$ ./configure --host=arm-linux --with-board=zylonite --with-linux-prefix=/home/marvell/src/preview-kit/blob/../linux --with-network=usbdnet --enable-xllp --enable-xlli --enable-nand --with-cpu-product-id=MonahansL --enable-xmodem --with-commands=dump
=============
KERNEL MODIFY
=============
1. change zImage output using STUART
include/asm-arm/arch-pxa/uncompress.h:
#if 0
#define UART FFUART
#else
// tzxu, for UT S68 board
#define UART STUART
#endif
2. change .config cmdline, using ttyS2
root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS2,38400 mem=64M
3. remove sound, I2C, power manager module
4. use the following command to make kernel or update it in Makefile
make ARCH=arm CROSS_COMPILE=arm-linux-
=========================
USB TFTP DOWNLOAD SETTING
=========================
1. download tftp server, configure it
/etc/xinetd.d/tftp:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /home/tftpboot
disable = no
}
2. configure auto probe usb0 network
auto usb0
iface usb0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
up iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.101 -j MASQUERADE
up echo 1 > /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.101 -j MASQUERADE
down echo 0 > /proc/sys/net/ipv4/ip_forward
=============
tftp download
=============
setusbid vid 0x8086
setusbid pid 0x07d3
# download blob
tftp boot.bin
nandwrite -z 0x80800000 0x0 0x60000
# download kernel
tftp zImage --kernel
# write to flash
# this examples writes 2M bytes from DDR address 0x80800000 to NAND address 0x60000
nandwrite -j 0x80800000 0x60000 0x200000
#erase flash
nanderase -j 0x60000 0x200000
#boot
boot root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS2,38400 mem=64M
# download rootfs
# rootfs lengths is 48M
tftp rootfs.jffs2
nandwrite -j 0x80800000 0x260000 0x3000000
# erase rootfs
nanderase -j 0x260000 0x3000000
blob modify
===========
1. change boot delay time from 10 seconds to 3 seonds
src/blob/main.c:
/* blob_status.boot_delay = 10; */
blob_status.boot_delay = 3;
2. subset usb vid&pid
because linux kernel doesn't support pxa300 blob boot loader VID&PID, change it
lib/ether-mhnusb.c: //??
lib/ether-mhnu2d.c:
#if 0
__u16 usb_vendor_id = 0x1286;
__u16 usb_product_id = 0x8001;
#else
// use a exist vid&pid to avoid compiling host kernel
__u16 usb_vendor_id = 0x8086;
__u16 usb_product_id = 0x07d3;
#endif
3. compile
should use usbdnet option
./config.sh MonahansL zylonite usbdnet;
equals
$ ./configure --host=arm-linux --with-board=zylonite --with-linux-prefix=/home/marvell/src/preview-kit/blob/../linux --with-network=usbdnet --enable-xllp --enable-xlli --enable-nand --with-cpu-product-id=MonahansL --enable-xmodem --with-commands=dump
=============
KERNEL MODIFY
=============
1. change zImage output using STUART
include/asm-arm/arch-pxa/uncompress.h:
#if 0
#define UART FFUART
#else
// tzxu, for UT S68 board
#define UART STUART
#endif
2. change .config cmdline, using ttyS2
root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS2,38400 mem=64M
3. remove sound, I2C, power manager module
4. use the following command to make kernel or update it in Makefile
make ARCH=arm CROSS_COMPILE=arm-linux-
=========================
USB TFTP DOWNLOAD SETTING
=========================
1. download tftp server, configure it
/etc/xinetd.d/tftp:
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /home/tftpboot
disable = no
}
2. configure auto probe usb0 network
auto usb0
iface usb0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
up iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.101 -j MASQUERADE
up echo 1 > /proc/sys/net/ipv4/ip_forward
down iptables -t nat -D POSTROUTING -o eth0 -s 192.168.1.101 -j MASQUERADE
down echo 0 > /proc/sys/net/ipv4/ip_forward
=============
tftp download
=============
setusbid vid 0x8086
setusbid pid 0x07d3
# download blob
tftp boot.bin
nandwrite -z 0x80800000 0x0 0x60000
# download kernel
tftp zImage --kernel
# write to flash
# this examples writes 2M bytes from DDR address 0x80800000 to NAND address 0x60000
nandwrite -j 0x80800000 0x60000 0x200000
#erase flash
nanderase -j 0x60000 0x200000
#boot
boot root=/dev/mtdblock2 rootfstype=jffs2 console=ttyS2,38400 mem=64M
# download rootfs
# rootfs lengths is 48M
tftp rootfs.jffs2
nandwrite -j 0x80800000 0x260000 0x3000000
# erase rootfs
nanderase -j 0x260000 0x3000000
Saturday, September 8, 2007
Subscribe to:
Posts (Atom)