[LEDE-DEV] TRENDnet TEW-827DRU (QCA IPQ8064), stuck at "Starting kernel ..."

J Mo jmomo at jmomo.net
Tue Aug 9 05:33:34 PDT 2016


Hello everyone

I am trying to build LEDE for the TRENDnet TEW-827DRU and I'm stuck on a 
problem where the kernel won't boot.

This device is based off the IPQ8064 and QCA9980+QCA9980 chips. Very 
similar to the TP-Link Archer C2600, Linksys EA8500, and Netgear D7500.

I have the factory format issues worked out and I can build the required 
FIT+UBI images. This platform is like the EA8500 in that it's NAND with 
kernel in UBI (kernel, squashfs, ubifs).

I've been documenting my progress with technical details here:
https://forum.openwrt.org/viewtopic.php?pid=333532#p333532



Unfortunately, I'm stuck now. The kernel just won't start booting and/or 
I'm not getting any console output from the kernel, but I suspect it's 
not actually booting at all.

I've gone to google and found a number of good hints that I should check 
my serial port configuration, entry/load addresses, machine IDs, and 
similar, but as of yet, I've not figured out what my problem is.

I am a novice. This is probably something stupid that I've overlooked, 
typoed, or just don't know about.

I've reviewed my DTS file several times and I think it's okay. I don't 
have any reason to suspect the serial port on this one is any different 
than the other similar models. The OEM boot log looks very similar to 
the other models in that respect. This isn't a new platform, just a 
different device from another OEM.



I tried making a new kernel with LL_DEBUG/printk, but I'm still not 
getting anything, but that may be because I'm compiling it wrong?

Kernel low-level debugging functions (read help!) (DEBUG_LL) [Y/n/?] y
   Kernel low-level debugging port
   > 1. Kernel low-level debugging messages via QCOM UARTDM 
(DEBUG_QCOM_UARTDM) (NEW)
     2. Kernel low-level debugging via EmbeddedICE DCC channel 
(DEBUG_ICEDCC)
     3. Kernel low-level debug output via semihosting I/O 
(DEBUG_SEMIHOSTING)
     4. Kernel low-level debugging via 8250 UART (DEBUG_LL_UART_8250)
     5. Kernel low-level debugging via ARM Ltd PL01x Primecell UART 
(DEBUG_LL_UART_PL01X)
   choice[1-5]: 1
Physical base address of debug UART (DEBUG_UART_PHYS) [0xf991e000] (NEW) 
0x16340000
Virtual base address of debug UART (DEBUG_UART_VIRT) [0xfa71e000] (NEW) 
0xf6340000
Early printk (EARLY_PRINTK) [Y/n/?] y

Are those addresses right? Heck if I know, especially the virt address, 
where does that get mapped? I tried putting "debug" and "earlyprintk" in 
my uboot bootargs.



Here is what I get on the console:

Hit any key to stop autoboot:  0
MMC Device 0 not found
MMC Device 0 not found
Creating 1 MTD partitions on "nand0":
0x0000058a0000-0x0000098a0000 : "mtd=0"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
UBI: attached mtd1 to ubi0
UBI: MTD device name:            "mtd=0"
UBI: MTD device size:            64 MiB
UBI: number of good PEBs:        512
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     3
UBI: available PEBs:             0
UBI: total number of reserved PEBs: 512
UBI: number of PEBs reserved for bad PEB handling: 5
UBI: max/mean erase counter: 1/0
Read 0 bytes from volume kernel to 44000000
No size specified -> Using max size (2031616)
    Image Name:   ARM LEDE Linux-4.4.15
    Image Type:   ARM Linux Kernel Image (uncompressed)
    Data Size:    2008105 Bytes = 1.9 MiB
    Load Address: 42208000
    Entry Point:  42208000
    Verifying Checksum ... OK
    Loading Kernel Image ... OK
OK

device nand0 <nand0>, # parts = 1
  #: name                size            offset          mask_flags
  0: fs                  0x04000000      0x058a0000      0

active partition: nand0,0 - (fs) 0x04000000 @ 0x058a0000

defaults:
mtdids  : none
mtdparts: none
Using machid 0x1260 from environment

Starting kernel ...



And then nothing.

Those entry/load addresses are correct as far as I can tell. It's the 
same as similar devices.

I know almost nothing about ARM machine IDs, ARMTAGS, and that sort of 
thing.

There is an OEM boot log and additional information in the forum post I 
linked to earlier.

I would share my current branch code, but my damned personal server's 
power supply just died yesterday and the replacement doesn't get here 
until Thursday.

I've tried various iterations of padding the kernel and trying to align 
it exactly like the OEM kernel.

I don't suspect any issues in u-boot, but that's possible. Source code 
is available from the OEM (link in forum post).

My build of the OEM image just finished now and I'm about to start 
inspecting that, looking for clues.



Any advice would be helpful.

Thanks for reading.




More information about the Lede-dev mailing list