mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2026-02-22 02:52:26 +01:00
Some checks are pending
Build Kernel / Build all affected Kernels (push) Waiting to run
Add support for Teltonika RUT104 3G HSUPA router. This has been supported since about 20 years in the upstream Linux kernel after initial contribution by Paulius Zaleckas from Teltonika. It has some historical significance because I think it was one of the first Teltonika Linux-based 3G routers. Installation from scratch is done using the UART: - UART soldering instructions with picture are available on the Link: (see bottom of committ message). - First *diet down* your OpenWrt build as minimal as you can, I really mean this, delete everything you don't need. There is not much RAM to go around. - Extract the "factory" firmare which is essentially just a tar.gz archive: tar xvfz openwrt-gemini-generic-teltonika_rut104-squashfs-factory.bin From the RedBoot menu: - Do NOT UNDER ANY CIRCUMSTANCE try to use the "upgrade firmare" (Z) alternative! - Extract the three files zImage, rd.gz and hddapp.tgz from the archive. - Put these three files in the root directory of your TFTP server (usually /var/lib/tftpboot) - Hit 6 and set up the IP address for your device (e.g. 169.254.1.2 if you're using local link). - Hit Y to "Upgrade Kernel", enter TFTP and your hosts IP number and type zImage. The kernel should upload and flash. - Hit R to "Upgrade Ramdisk", enter TFTP and your hosts IP number and type rd.gz. The "ramdisk" (i.e. the second part of the kernel) should upload and flash. - Hit A to "Upgrade Application", enter TFTP and your hosts IP number and type hddapp.tgz. The "application" (i.e. the root filesystem) should upload and flash. This has a 1024KB Kernel partition, just extend the existing Make functions to handle also this. The initramfs is 0x500000 instead of 0x600000 for this one so add a parameter explicitly parameterizing the initramfs size. Mark non-default due to the small RAM and flash on this device. I currently have no idea how to actually talk to the modem on this thing but it is probably using the high-speed "modem UART" of the Gemini. I'd be willing to help whoever wants to experiment with it. Link: https://dflund.se/~triad/krad/teltonika/ Link: https://github.com/openwrt/openwrt/pull/22045 Signed-off-by: Linus Walleij <linusw@kernel.org>
45 lines
1 KiB
ArmAsm
45 lines
1 KiB
ArmAsm
// Arm assembly to copy the Gemini kernel on Storlink reference
|
|
// designs and derived devices with the same flash layout and
|
|
// boot loader.
|
|
//
|
|
// This will execute at 0x01600000
|
|
//
|
|
// Copies the kernel from two fragments (originally zImage
|
|
// and initramdisk) to 0x00400000 making space for a kernel
|
|
// image of up to 8 MB except for these 512 bytes used for
|
|
// this bootstrap.
|
|
//
|
|
// 0x01600200 .. 0x016fffff -> 0x00400000 .. 0x004ffdff
|
|
// 0x00800000 .. 0x00cfffff -> 0x004ffe00 .. 0x009ffdff
|
|
|
|
// Memory used for this bootstrap
|
|
.equ BOOT_HEADROOM, 0x200
|
|
|
|
.global _start // Stand-alone assembly code
|
|
_start:
|
|
mov r1, #0x01600000
|
|
mov r2, #0x00400000
|
|
mov r3, #0x00100000
|
|
add r1, r1, #BOOT_HEADROOM
|
|
sub r3, r3, #BOOT_HEADROOM
|
|
copyloop1:
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
add r1, r1, #4
|
|
add r2, r2, #4
|
|
sub r3, r3, #4
|
|
cmp r3, #0
|
|
bne copyloop1
|
|
mov r1, #0x00800000
|
|
mov r3, #0x00500000
|
|
copyloop2:
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
add r1, r1, #4
|
|
add r2, r2, #4
|
|
sub r3, r3, #4
|
|
cmp r3, #0
|
|
bne copyloop2
|
|
mov r0, #0x00400000
|
|
// Let's go
|
|
mov pc, r0
|