I have tried add support of BT Home Hub 3 version A to openWRT. I have modified uboot-lantiq package to add compilation u-boot.asc for that router with nand memory and able upload via com port to that router. After that I can upload openwrt image via tftp and tried to start. But I have some problems with kernel:
I still have problem described above, but I am avoid it but kernel command line: bootargs=keep_bootcon ignore_loglevel.
Currently I have another problem with init process start up. Kernel entering into free_initmem which execute platform depended code. And under that code kernel have a hangs. I have modified that routine to print memory addresses:
void free_init_pages(const char *what, unsigned long begin, unsigned long end)
{
<------>unsigned long pfn;
<------>
<------>printk(KERN_INFO "Freeing %s: %x - %x\n", what, (int)phys_to_virt(PFN_PHYS(PFN_UP(begin))), (int)phys_to_virt(PFN_PHYS(PFN_DOWN(end))));
<------>
<------>for (pfn = PFN_UP(begin); pfn < PFN_DOWN(end); pfn++) {
<------><------>struct page *page = pfn_to_page(pfn);
<------><------>void *addr = phys_to_virt(PFN_PHYS(pfn));
<------><------>printk(KERN_INFO "Freeing %s: %x page\n", what, (int)phys_to_virt(PFN_PHYS(pfn)));
<------><------>ClearPageReserved(page);
<------><------>init_page_count(page);
<------><------>memset(addr, POISON_FREE_INITMEM, PAGE_SIZE);
<------><------>__free_page(page);
<------><------>totalram_pages++;
<------>}
<------>printk(KERN_INFO "Freeing %s: %ldk freed\n", what, (end - begin) >> 10);
}
I have added printk(KERN_INFO in cycle and before it. And I have follow result now:
[ 0.972000] Call free_initmem function
[ 0.972000] Freeing unused kernel memory: 802eb000 - 808b4000
[ 0.976000] Freeing unused kernel memory: 802eb000 page
[ 0.976000] Freeing unused kernel memory: 802ec000 page
[ 0.976000] Freeing unused kernel memory: 802ed000 page
[ 0.980000] Freeing unused kernel memory: 802ee000 page
[ 0.980000] Freeing unused kernel memory: 802ef000 page
[ 0.984000] Freeing unused kernel memory: 802f0000 page
[ 0.984000] Freeing unused kernel memory: 802f1000 page
[ 0.988000] Freeing unused kernel memory: 802f2000 page
[ 0.988000] Freeing unused kernel memory: 802f3000 page
early
After 802f3000 kernel print "early" and hangs.
Do you have any ideas about that ?
(Last edited by Tormal on 1 Apr 2012, 20:33)