====== RT3052F HOWTO. ====== ===== RT3050F/RT3052F TODO ===== | PPE NAT h/w acceleration | PPE special target on **if_rt** | | PPE %%PPPoE%% h/w acceleration | same | | **if_rt** instance support | it have GMAC1 and GMAC2, so we can use it w/o sw VLANs | | **if_rt** Scatter/Gather support | automatic Scatter/Gather packets, may help to faster replace packets header | | Invoke GDMA | we can use generic DMA for memcpy | | Fix usb | | Fix rt2872 wireless | ===== HOST SIDE ===== Get a fresh copy of your "head" :) svn co svn://svn.freebsd.org/base/head cd to it: cd head Build mipsel toolchain and then kernel: make KERNCONF=RT305X TARGET=mips TARGET_ARCH=mipsel kernel-toolchain buildkernel cd to kernel build directory: cd /usr/obj/mips.mipsel/${PATH_TO_DIR_WITH_HEAD}/sys/RT305X Get kernel entry point: readelf -h kernel | grep 'Entry point address:' Entry point address: 0x80001120 **//Next steps related for most D-Link boxes, but not always related to other devices//** Make binary kernel from elf: /usr/obj/mips.mipsel/${PATH_TO_DIR_WITH_HEAD}/tmp/usr/bin/objcopy -O binary kernel kernel.bin Compress kernel with oldlzma (//oldlzma - LZMA 4.17//) oldlzma e kernel.bin kernel.bin.oldlzma Make U-Boot image: uboot_mkimage -A mips -O linux -T kernel -C lzma -a 0x80001120 -e 0x80001120 -n 'FreeBSD Kernel Image' -d kernel.bin.oldlzma kernel.oldlzma.uboot Then copy U-Boot kernel image to tftp server path (//I use **/tftpboot/**// ) cp kernel.oldlzma.uboot /tftpboot/DIR-620/kernel.oldlzma.uboot ===== DEVICE SIDE ===== Break U-Boot to prompt, then load kernel image: tftpboot 0x80800000 DIR-620/kernel.oldlzma.uboot and start it: bootm 0x80800000