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.

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

Saturday, September 8, 2007

Ec++

EC++ is a good thing