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)