1
0
mirror of git://projects.qi-hardware.com/xburst-tools.git synced 2024-12-22 23:56:27 +02:00

some cleanup. cleanup Makefile and README

This commit is contained in:
Xiangfu Liu 2009-07-15 23:21:21 +08:00
parent 0a66ef5e52
commit f90fa84e89
4 changed files with 55 additions and 243444 deletions

140
Makefile
View File

@ -1,8 +1,7 @@
# "PI Makefile" - for setting up the PI development environment
# "PanGu Makefile" - for setting up the PanGu development environment
#
# (C) Copyright 2009 PI.
# Author: xiangfu liu <xiangfu@openmoko.org>
# Copyright 2009 (C) Qi Hardware inc.,
# Author: Xiangfu Liu <xiangfu@qi-hardware.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@ -18,138 +17,26 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA
BINUTILS_VER=binutils-2.17
GCC_VER=gcc-4.1.2
GLIBC_VER=glibc-2.6.1
GLIBC_PORTS_VER=glibc-ports-2.6.1
KERNEL_HEADERS_VER=linux-headers-2.6.24.3
TOOLCHAIN_PATH=toolchain
DL_PATH=$(TOOLCHAIN_PATH)/dl
INSTALL_PATH=install
PATCHES_PATH=$(TOOLCHAIN_PATH)/patches
GLIBC_PATCHES_PATH=$(PATCHES_PATH)/glibc
BINUTILS_PACKAGE=$(BINUTILS_VER).tar.bz2
BINUTILS_URL= \
ftp://ftp.gnu.org/gnu/binutils/$(BINUTILS_PACKAGE)
GCC_PACKAGE=$(GCC_VER).tar.bz2
GCC_URL=ftp://ftp.gnu.org/gnu/gcc/$(GCC_VER)/$(GCC_PACKAGE)
GLIBC_PACKAGE=$(GLIBC_VER).tar.bz2
GLIBC_URL=ftp://ftp.gnu.org/gnu/glibc/$(GLIBC_PACKAGE)
GLIBC_PORTS_PACKAGE=$(GLIBC_PORTS_VER).tar.bz2
GLIBC_PORTS_URL=ftp://ftp.gnu.org/gnu/glibc/$(GLIBC_PORTS_PACKAGE)
KERNEL_HEADERS_PACKAGE=$(KERNEL_HEADERS_VER).tar.bz2
KERNEL_HEADERS_URL=
# for the device stage
FLASH_TOOL_PATH = ./usbboot
FLASH_TOOL_BIN_PATH = $(FLASH_TOOL_PATH)/bin
STAGE1_PATH = $(FLASH_TOOL_PATH)/xburst_stage1
STAGE2_PATH = $(FLASH_TOOL_PATH)/xburst_stage2
CROSS_COMPILE ?= mipsel-openwrt-linux-
CFLAGS="-O2"
export PATH:=$(PWD)/install/bin:$(PATH)
# this glibc version does not build with gcc 4.3 - hence this special compat parameter
GCC_VERSION=$(shell [ "`gcc --version | grep '4.3'`" ] && echo "43" )
ifeq ($(GCC_VERSION),43)
BUILD_CC="gcc -fgnu89-inline"
else
BUILD_CC="gcc"
endif
toolchain: binutils gcc glibc
### misc
$(DL_PATH):
mkdir -p $(DL_PATH)
$(INSTALL_PATH):
mkdir -p $(INSTALL_PATH)
%$(BINUTILS_PACKAGE): URL=$(BINUTILS_URL)
%$(GCC_PACKAGE): URL=$(GCC_URL)
%$(GLIBC_PACKAGE): URL=$(GLIBC_URL)
%$(GLIBC_PORTS_PACKAGE): URL=$(GLIBC_PORTS_URL)
.tar.bz2: $(DL_PATH) $(INSTALL_PATH)
wget -c -O $@ $(URL)
touch $@
### toolchain stuff
binutils: $(DL_PATH)/$(BINUTILS_PACKAGE)
tar -xvjf $(DL_PATH)/$(BINUTILS_PACKAGE) -C $(TOOLCHAIN_PATH)
mkdir -p $(TOOLCHAIN_PATH)/$(BINUTILS_VER)/build
cd $(TOOLCHAIN_PATH)/$(BINUTILS_VER)/build && \
../configure --target=mipsel-linux --prefix=$(PWD)/$(INSTALL_PATH) --disable-werror \
&& make CFLAGS=$(CFLAGS) && make install
touch $@
gcc: $(DL_PATH)/$(GCC_PACKAGE)
tar -xvjf $(DL_PATH)/$(GCC_PACKAGE) -C $(TOOLCHAIN_PATH)
cd $(TOOLCHAIN_PATH)/$(GCC_VER)/libiberty && \
cat strsignal.c | sed -e 's/#ifndef HAVE_PSIGNAL/#if 0/g' >junk.c && \
cp -f strsignal.c strsignal.c.fixed && mv -f junk.c strsignal.c
mkdir -p $(TOOLCHAIN_PATH)/$(GCC_VER)/build
cd $(TOOLCHAIN_PATH)/$(GCC_VER)/build && \
../configure --target=mipsel-linux \
--host=i686-pc-linux-gnu --prefix=$(PWD)/$(INSTALL_PATH) \
--disable-shared --disable-threads --disable-multilib \
--enable-languages=c && make CFLAGS=$(CFLAGS) all-gcc && make install-gcc
touch $@
glibc: $(DL_PATH)/$(GLIBC_PACKAGE) $(DL_PATH)/$(GLIBC_PORTS_PACKAGE) $(DL_PATH)/$(KERNEL_HEADERS_PACKAGE)
tar -xvjf $(DL_PATH)/$(KERNEL_HEADERS_PACKAGE) -C $(TOOLCHAIN_PATH)
tar -xvjf $(DL_PATH)/$(GLIBC_PACKAGE) -C $(TOOLCHAIN_PATH)
tar -xvjf $(DL_PATH)/$(GLIBC_PORTS_PACKAGE) -C $(TOOLCHAIN_PATH)/$(GLIBC_VER)
mv $(TOOLCHAIN_PATH)/$(GLIBC_VER)/$(GLIBC_PORTS_VER) $(TOOLCHAIN_PATH)/$(GLIBC_VER)/ports
cd $(TOOLCHAIN_PATH)/$(GLIBC_VER) && \
patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-cross_hacks-1.patch && \
patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-libgcc_eh-1.patch && \
patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-localedef_segfault-1.patch && \
patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-mawk_fix-1.patch
# patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-alpha_ioperm_fix-1.patch && \
# patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-RTLD_SINGLE_THREAD_P-1.patch && \
# patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-sysdep_cancel-1.patch && \
# patch -Np1 -i $(PWD)/$(GLIBC_PATCHES_PATH)/glibc-2.6.1-hppa_nptl-1.patch
mkdir -p $(TOOLCHAIN_PATH)/$(GLIBC_VER)/build
cd $(TOOLCHAIN_PATH)/$(GLIBC_VER)/build && \
echo "libc_cv_forced_unwind=yes" > config.cache && \
echo "libc_cv_c_cleanup=yes" >> config.cache && \
echo "libc_cv_mips_tls=yes" >> config.cache && \
BUILD_CC=$(BUILD_CC) CC="mipsel-linux-gcc" \
AR="mipsel-linux-ar" RANLIB="mipsel-linux-ranlib" \
../configure --prefix=$(PWD)/$(INSTALL_PATH) --libexecdir=$(PWD)/$(INSTALL_PATH)/libexec/glibc \
--host=mipsel-linux --build=i686-pc-linux-gnu \
--disable-profile --enable-add-ons --with-tls --enable-kernel=2.6.0 \
--with-__thread --with-binutils=$(PWD)/$(INSTALL_PATH)/bin \
--with-headers=$(PWD)/$(TOOLCHAIN_PATH)/$(KERNEL_HEADERS_VER) \
--cache-file=config.cache && \
make CFLAGS=$(CFLAGS) && make install
cp $(GLIBC_PATCHES_PATH)/SUPPORTED $(TOOLCHAIN_PATH)/$(GLIBC_VER)/localedata/
cd $(TOOLCHAIN_PATH)/$(GLIBC_VER)/build && \
make localedata/install-locales
touch $@
### u-boot
.PHONY: u-boot
u-boot:
export PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH
git clone git://github.com/xiangfu/pi-u-boot.git u-boot
git clone git://github.com/xiangfu/qi-u-boot.git u-boot
cd u-boot && \
make pi_config && \
make qi_lb60_config && \
make
### kernel
.PHONY: kernel
kernel:
export PATH=/opt/mipseltools-gcc412-glibc261/bin:$PATH
git clone git://github.com/xiangfu/pi-kernel.git kernel
git clone git://github.com/xiangfu/qi-kernel.git kernel
cd kernel && \
make pi_defconfig && \
make uImage
@ -157,13 +44,10 @@ kernel:
### flash-boot
.PHONY: usbboot
usbboot: stage1 stage2
mkdir -p $(FLASH_TOOL_BIN_PATH)
cp $(FLASH_TOOL_PATH)/src/usbboot.cfg $(FLASH_TOOL_BIN_PATH)
cd $(FLASH_TOOL_PATH) && \
cd $(FLASH_TOOL_PATH)
./autogen.sh && \
./configure && \
make
cp $(FLASH_TOOL_PATH)/src/usbboot $(FLASH_TOOL_BIN_PATH)
stage1:
make CROSS_COMPILE=$(CROSS_COMPILE) -C $(STAGE1_PATH)
@ -172,7 +56,7 @@ stage2:
make CROSS_COMPILE=$(CROSS_COMPILE) -C $(STAGE2_PATH)
### clean up
distclean: clean clean-usbboot clean-toolchain
distclean: clean clean-usbboot
clean:
@ -181,14 +65,6 @@ clean-usbboot:
make clean CROSS_COMPILE=$(CROSS_COMPILE) -C $(STAGE2_PATH)
make clean -C $(FLASH_TOOL_PATH)
clean-toolchain: clean-glibc
rm -rf $(TOOLCHAIN_PATH)/$(BINUTILS_VER) binutils
rm -rf $(TOOLCHAIN_PATH)/$(GCC_VER) gcc
rm -rf $(INSTALL_PATH)
clean-glibc:
rm -rf $(TOOLCHAIN_PATH)/$(GLIBC_VER) glibc
help:
@make --print-data-base --question | \
awk '/^[^.%][-A-Za-z0-9_]*:/ \

67
README
View File

@ -1,22 +1,28 @@
=Cross toolchain=
you can get the cross toolchain at:
http://www.openmobilefree.net/other/file/mipseltools-gcc412-glibc261.tar.bz2
ftp://ftp.ingenic.cn/3sw/01linux/00toolchain/mipseltools-gcc412-glibc261.tar.bz2
ftp://ftp.ingenic.cn/3sw/01linux/00toolchain/jz-crosstools-src.tar.bz2
=serial console=
take off the cover of PCB, then you will send the "GND" and "TXD"
and th TP74 is the "RXD", you can get serial output from those pins
you need a TTL <-> RS232 converter. here[1] is the serial PIN in the board.
or you can build is from source:
make toolchain
=toolchain=
$ git clone git://github.com/lindnermarek/openwrt-x-burst.git[2]
$ git checkout --track -b x-burst origin/x-burst
$ make menuconfig
(select 'XBurst JZ47x0 [2.6]' in Target System
for configure the u-boot in setp: 4)
$ make
we will get toolchain under /PATH/TO/openwrt-x-burst/staging_dir/
toolchain-mipsel_gcc-4.1.2_uClibc-0.9.30.1/usr/bin
=Serial Console=
1. open the case
=xburst-tools (reflash tools)=
you can get source in git://github.com/xiangfu/xburst-tools.git[3]
2. take off the cover of PCB
then you will send the "GND" and "TXD"
and th TP74 is the "RXD"
you can get serial output from those pins
=u-boot=
in openWRT menuconfig-->Target Images-->Build U-Boot bootloader -->
U-Boot target board (NEW) --> input 'qi_lb60'
here[4] is the u-boot github URL
3. you need a "RS-232 <--> TTL" converter to
get the correct output date
=kernel(2.6.24)=
here[5] is the kernel GIT URL.
=CPU Jz4740=
Jz4740 is a multimedia application processor targeted at mobile devices
@ -26,18 +32,23 @@ high performance and a low power consumption solution for embedded devices.
Boot up
The Jz4740 can be set to boot from NOR or NAND.
If booted from NAND, the CPU fetches the first page from NAND and uses the first 4 bytes on it to know how the NAND chip should be treated (16/8-bit bus, 2/3 row cycles).
After that it copies the first 8kB from NAND and copies it to the I-Cache for execution.
If booted from NAND, the CPU fetches the first page from NAND and uses the
first 4 bytes on it to know how the NAND chip should be treated (16/8-bit
bus, 2/3 row cycles). After that it copies the first 8kB from NAND and
copies it to the I-Cache for execution.
Ingenic Media Extension Instruction Set
According to the MXU User Guide, the XBurst processor supports additional instructions called the Ingenic Media Extension Instruction Set (they call it an SIMD instruction set).
According to the MXU User Guide, the XBurst processor supports additional
instructions called the Ingenic Media Extension Instruction Set (they
call it an SIMD instruction set).
Excerpt from the PDF:
Processors (such as the Jz4740) have 60 extra SIMD commands used for the optimization of multimedia codecs such as MPEG4, H264, VC-1, RMVB, ... and other multimedia decoder algorithms that can be optimized using the MXU.
Processors (such as the Jz4740) have 60 extra SIMD commands used for the
optimization of multimedia codecs such as MPEG4, H264, VC-1, RMVB, ...
and other multimedia decoder algorithms that can be optimized using the MXU.
Image Processing Unit
The Jz4740 also has an IPU which has the following features:
* Video frame resize
* Color space conversion: 420/444/422 YUV to RGB convert
@ -46,3 +57,19 @@ The Jz4740 also has an IPU which has the following features:
2. edit the file under 'debian' folder (create by 'dh_make')
3. run 'dpkg-buildpackage -rfakeroot' to create the deb package and source
package
----
[1] http://www.openmobilefree.net/?p=61
[2] here is the web site
http://github.com/lindnermarek/openwrt-x-burst/commits/x-burst
now we put the code in github.com
[3] in folder 'usbboot', here is the tar package and Debian package.
http://cloud.github.com/downloads/xiangfu/xburst-tools/xburst-tools_0.0_200906.tar.gz
http://cloud.github.com/downloads/xiangfu/xburst-tools/xburst-tools_0.0_200906-1_i386.deb
[4] http://github.com/xiangfu/qi-u-boot/tree
this git repos have two branch [master] [pi]
[master] is the v2009.06
[pi] is 1.1.6 old version.(will detele laster)
[5] git://github.com/xiangfu/qi-kernel.git
only one master branch in kernel git. so you can just
'git clone' and 'make uImage' to get the kernel image

View File

@ -1,7 +0,0 @@
OWRT_SVN_PATH = openwrt-trunk
owrt_checkout:
svn co -r r15323 svn://svn.openwrt.org/openwrt/trunk $(OWRT_SVN_PATH)
cd $(OWRT_SVN_PATH) && patch -p0 < ../openwrt-jz47x0-r15323.diff
touch $@

File diff suppressed because it is too large Load Diff