You can find similar howto on 99pad.com, made by gbk18030.
tar -jxvf armv6_codesourcery.tar.bz2
export PATH=/opt/armv6/codesourcery/bin:$PATHCheck version
arm-none-linux-gnueabi-gcc -vInstall other needed tools
sudo apt-get install libncurses5-dev libqt3-mt-dev qt3-dev-tools g++Download original linux-2.6.28.tar.bz2 kernel.
tcboot bootloader is a predecessor of lkboot which is commonly used in Telechips Android ROMs as lk.rom. In contrast to lkboot, tcboot seems not to display any picture at boot (only when on-board FWDN switch is ON, but the LCD configuration is not working on HSG X5A tablet).
Go to bootloader/tcboot/ directorymake distclean make tcc8900 KERNEL_START_OFFSET=0x300000 SDRAM_M_SIZE=256 REVISION=TCC_R_AX
nano include/config.h
#define FCPU_720MHZ_INCLUDE #define FMBUS_360MHZ_INCLUDE
nano include/ddr.h
#define DRAM_TYPE3Note: Not needed for newer LINUX_BSP_100409-R0190B3034
make
You will get tcboot.rom (use FWDN tool according to version of BSP, in other case you will get error message).
tar -xjvf linux-2.6.28.tar.bz2 cd linux-2.6.28 patch -p1 < ../patch-linux-2.6.28-*
make tcc8900_defconfig make menuconfig make chmod +x tcc_mkrd.sh ./tcc_mkrd.sh
You will get linux.rom.
FWDN_V6
FWDN_V7
=============================================
TcBoot Ver 0.5 for TCC8900 Linux
Board Ver TCC8900_WINCE_LINUX_DEMO
DATE:Feb 20 2011, TIME:16:13:37
=============================================
CHIP ID: 0x000003178C53C830
CLOCK: PLL0:720, PLL1:540, PLL2:468, PLL3:528, CPU:720, BUS:360
DDI:264, GRP:0, IOB:156, VBUS:0, VPU:0, SMU:176
[NAND ] [BClk 156MHZ][1Tick 65][RE-S:0,P:5,H:2][WR-S:0,P:3,H:2][COM-S:2,]
[NAND ] [NB Area:4MB][DT Area:3796MB][HD Area0:34MB]
FWDN: checking...
Loading...
kernel = 0x400000, ramdisk = 0x1000000
Load Ok! Jump to 0x40300000 (0xEA000016)
Linux version 2.6.28 (georg77@Ubuntu) (gcc version 4.3.2 (Sourcery G++ Lite 2001
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Telechips TCC8900 Demo Board
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
create_mapping:0x40200000->0xc0000000(0x7100000)
create_mapping:0x402e9000->0xffff0000(0x1000)
create_mapping:0xf0000000->0xf0000000(0x100000)
create_mapping:0xf0100000->0xf0100000(0x100000)
create_mapping:0xf0200000->0xf0200000(0x100000)
create_mapping:0xf0300000->0xf0300000(0x100000)
create_mapping:0xf0400000->0xf0400000(0x100000)
create_mapping:0xf0500000->0xf0500000(0x100000)
create_mapping:0xf0600000->0xf0600000(0x100000)
create_mapping:0xf0700000->0xf0700000(0x100000)
create_mapping:0x10000000->0xeff00000(0x100000)
Serial Number: 000003178c53c830
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 28702
Kernel command line: root=/dev/ram rw initrd=0x40700000,0x1000000 init=/linuxrcM
tcc8900_irq_init
PID hash table entries: 512 (order: 9, 2048 bytes)
### CORE CLOCK (720000000 Hz), BUS CLOCK (360000000 Hz) ###
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
_etext:0xc0498000, _text:0xc0120000, _end:0xc04f7a60, __data_start:0xc0498000, 0
Memory: 113MB = 113MB total
Memory: 94036KB available (3552K code, 382K data, 128K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 719.25 BogoMIPS (lpj=3596288)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
attached TCC adc driver
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
initrd_start:0xc0500000, initrd_end:0xc1500000
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like d
Freeing initrd memory: 16384K
Telechips Dynamic Power Management.
NetWinder Floating Point Emulator V0.97 (double precision)
fuse init (API version 7.10)
JFS: nTxBlock = 863, nTxLock = 6911
msgmni has been set to 215
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
i2c /dev entries driver
tcc-i2c tcc-i2c: i2c-0: I2C adapter
tcc-tsif: spi1 init
fb[0]::map_video_memory: dma=47300000 cpu=c8000000 size=01000000
fb0: tccfb frame buffer device
fb[1]::map_video_memory: dma=48300000 cpu=c9800000 size=00400000
fb1: tccfb frame buffer device
fb[2]::map_video_memory: dma=48700000 cpu=ca000000 size=00400000
fb2: tccfb frame buffer device
tcc_intr: init (ver 2.1)
bl: init
tcc_pwm: init (ver 0.1)
tcc_pwrkey: init
tcc proc filesystem initialised
tcc8900-uart.0: tcc-uart0 at MMIO 0xf0532000 (irq = 64) is a uart0
tcc8900-uart.1: tcc-uart1 at MMIO 0xf0532100 (irq = 65) is a uart1
brd: module loaded
loop: module loaded
TRACE: DPM is now installed
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
tcc-ohci tcc-ohci: TCC OHCI
tcc-ohci tcc-ohci: new USB bus registered, assigned bus number 1
tcc-ohci tcc-ohci: irq 49, io mem 0xf0500000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
dwc_otg: version 2.60a 22-NOV-2006
dwc_otg dwc_otg.0: DWC OTG Controller
dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 2
dwc_otg dwc_otg.0: irq 48, io mem 0x00000000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
mice: PS/2 mouse device common for all mice
Telechips Keypad Driver
input: telechips keypad as /class/input/input0
Telechips Touchscreen driver, (c) 2009 Telechips
tcc-ts got loaded successfully.
input: tcc-ts as /class/input/input1
Telechips Remote Controller Driver Init
input: telechips remote controller as /class/input/input2
Set ID to device mode
TCC RTC, (c) 2009, Telechips
tcc-rtc tcc-rtc: rtc core: registered tcc-rtc as rtc0
tcc-sdhc0: init
ID change ISR : Device
hub 2-0:1.0: over-current change on port 1
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
ASoC version 0.13.2
TCC Board probe [tcc_board_probe]
WM8731 Audio Codec 0.13
wm8731 i2c_address [0x1A]
== alsa-debug == tcc_pcm_preallocate_dma_buffer size [65536]
== alsa-debug == tcc_pcm_preallocate_dma_buffer size [65536]
asoc: WM8731 <-> tcc-i2s mapping ok
== alsa-debug == tcc_pcm_preallocate_dma_buffer size [65536]
asoc: IEC958 <-> tcc-spdif mapping ok
ALSA device list:
#0: tccx_board (WM8731)
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
tcc-rtc tcc-rtc: hctosys: invalid date/time
RAMDISK: Couldn't find valid RAM disk image starting at 0.
UDF-fs: No partition found (1)
List of all partitions:
No filesystem could mount root, tried: ext3 ext2 cramfs vfat iso9660 romfs fuss
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)LINUX_BSP_100409-R0190B3034 (tcboot.rom needs FWDN_V7)
=============================================
tcboot ver 0.5 for TCC8900 Linux
Board ver TCC8900_WINCE_LINUX_DEMO
DATE:Feb 21 2011, TIME:21:36:51
=============================================
CHIP ID: 0x000003178C53C830
CLOCK: PLL0:720, PLL1:560, PLL2:468, PLL3:528, CPU:720, BUS:360
DDI:264, GRP:0, IOB:156, VBUS:0, VPU:0, SMU:176
[NAND ] [PORT CONFIG - CS[0, 1] [NAND Data Port: GPIO_B Hw4 ~ Hw11]
[NAND ] [BClk 156MHZ][1Tick 65][RE-S:0,P:5,H:2][WR-S:0,P:3,H:2][COM-S:2,]
[NAND ] [NB Area:4MB][DT Area:3800MB][HD Area0:32MB]
FWDN: checking...
Loading...
kernel = 0x400000, ramdisk = 0x1000000
Load Ok! Jump to 0x40300000 (0xEA000016)
Linux version 2.6.28 (georg77@Ubuntu) (gcc version 4.3.2 (Sourcery G++ Lite 2001
CPU: ARMv6-compatible processor [410fb766] revision 6 (ARMv7), cr=00c5387f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Telechips TCC8900 Demo Board
Warning: bad configuration page, trying to continue
Memory policy: ECC disabled, Data cache writeback
create_mapping:0x40200000->0xc0000000(0x7100000)
INITRD: 0x40700000+0x01000000 overlaps in-use memory region - disabling initrd
create_mapping:0x402e9000->0xffff0000(0x1000)
create_mapping:0xf0000000->0xf0000000(0x100000)
create_mapping:0xf0100000->0xf0100000(0x100000)
create_mapping:0xf0200000->0xf0200000(0x100000)
create_mapping:0xf0300000->0xf0300000(0x100000)
create_mapping:0xf0400000->0xf0400000(0x100000)
create_mapping:0xf0500000->0xf0500000(0x100000)
create_mapping:0xf0600000->0xf0600000(0x100000)
create_mapping:0xf0700000->0xf0700000(0x100000)
create_mapping:0x10000000->0xeff00000(0x100000)
Serial Number: 000003178c53c830
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 28702
Kernel command line: root=/dev/ram rw initrd=0x40700000,0x1000000 init=/linuxrcM
tcc8900_irq_init
PID hash table entries: 512 (order: 9, 2048 bytes)
### CORE CLOCK (720000000 Hz), BUS CLOCK (360000000 Hz) ###
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
_etext:0xc04a1000, _text:0xc0121000, _end:0xc0501700, __data_start:0xc04a2000, 0
Memory: 113MB = 113MB total
Memory: 110392KB available (3584K code, 381K data, 132K init)
SLUB: Genslabs=12, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 719.25 BogoMIPS (lpj=3596288)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 288 bytes
NET: Registered protocol family 16
attached TCC adc driver
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 32768 bytes)
TCP bind hash table entries: 4096 (order: 2, 16384 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
NET: Registered protocol family 1
Telechips Dynamic Power Management.
NetWinder Floating Point Emulator V0.97 (double precision)
fuse init (API version 7.10)
msgmni has been set to 215
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered (default)
i2c /dev entries driver
tcc-i2c tcc-i2c: i2c-0: I2C adapter
tcc-tsif1: init
fb[0]::map_video_memory: dma=47300000 cpu=c8000000 size=01000000
fb0: tccfb frame buffer device
fb[1]::map_video_memory: dma=48300000 cpu=c9800000 size=00400000
fb1: tccfb frame buffer device
fb[2]::map_video_memory: dma=48700000 cpu=ca000000 size=00400000
fb2: tccfb frame buffer device
tcc_intr: init (ver 2.1)
bl: init
tcc_pwm: init (ver 0.1)
tcc_pwrkey: init
tcc proc filesystem initialised
tcc_tsif_parallel_init : dev-name : tcc-tsif-parallel, tsif0 & dma0-0 use
tcc8900-uart.0: tcc-uart0 at MMIO 0xf0532000 (irq = 64) is a uart0
tcc8900-uart.1: tcc-uart1 at MMIO 0xf0532100 (irq = 65) is a uart1
brd: module loaded
loop: module loaded
TRACE: DPM is now installed
Driver 'sd' needs updating - please use bus_type methods
Driver 'sr' needs updating - please use bus_type methods
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
tcc-ohci tcc-ohci: TCC OHCI
tcc-ohci tcc-ohci: new USB bus registered, assigned bus number 1
tcc-ohci tcc-ohci: irq 49, io mem 0xf0500000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
dwc_otg: version 2.60a 22-NOV-2006
dwc_otg dwc_otg.0: DWC OTG Controller
dwc_otg dwc_otg.0: new USB bus registered, assigned bus number 2
dwc_otg dwc_otg.0: irq 48, io mem 0x00000000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
mice: PS/2 mouse device common for all mice
Telechips Keypad Driver
input: telechips keypad as /class/input/input0
Telechips Touchscreen driver, (c) 2009 Telechips
tcc-ts got loaded successfully.
input: tcc-ts as /class/input/input1
Telechips Remote Controller Driver Init
input: telechips remote controller as /class/input/input2
Set ID to device mode
TCC RTC, (c) 2009, Telechips
tcc-rtc tcc-rtc: rtc core: registered tcc-rtc as rtc0
ID change ISR : Device
tcc-sdhc0: init
hub 2-0:1.0: over-current change on port 1
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.18rc3.
ASoC version 0.13.2
TCC Board probe [tcc_board_probe]
WM8731 Audio Codec 0.13
wm8731 i2c_address [0x1A]
asoc: WM8731 <-> tcc-i2s mapping ok
asoc: IEC958 <-> tcc-spdif mapping ok
ALSA device list:
#0: tccx_board (WM8731)
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
tcc-rtc tcc-rtc: setting system clock to 13191-05-01 07:18:30 UTC (1923626438)
UDF-fs: No partition found (1)
List of all partitions:
No filesystem could mount root, tried: ext3 ext4 ext2 cramfs vfat iso9660 fusef
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0)