[Solved] How to Build a Pure RAM Firmware?

Thank you.
Now I can boot from ram via tftp now. I'll do some further investigation, but at least there is no kernel panic now. :slight_smile:

ar7100> tftp 0x80800000 openwrt-wndr3800-initramfs-kernel.bin

tftp 0x80800000 openwrt-wndr3800-initramfs-kernel.bin


Trying eth0

: unit 0 phy is up...RGMii 1000Mbps full duplex

#259:ag7100_set_mac_from_link

: pll reg 0x18050010: 0x11110000

: cfg_1: 0x1ff0000

: cfg_2: 0x3ff

: cfg_3: 0x8001ff

: cfg_4: 0xffff

: cfg_5: 0x2fffef

: done cfg2 0x7215 ifctl 0x40605060 miictrl 0x22

Using eth0 device

TFTP from server 192.168.1.13; our IP address is 192.168.1.253

Filename 'openwrt-wndr3800-initramfs-kernel.bin'.

Load address: 0x80800000

Loading: #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         #################################################################

         ####################################

done

Bytes transferred = 4843331 (49e743 hex)

ar7100> bootm 0x80800000

bootm 0x80800000


## Booting image at 80800000 ...

   Image Name:   MIPS OpenWrt Linux-5.4.140

   Created:      2021-08-16  11:22:17 UTC

   Image Type:   MIPS Linux Kernel Image (lzma compressed)

   Data Size:    4843267 Bytes =  4.6 MB

   Load Address: 80060000

   Entry Point:  80060000

   Verifying Checksum ... OK

   Uncompressing Kernel Image ... OK

No initrd

## Transferring control to Linux (at address 80060000) ...

## Giving linux memsize in bytes, 134217728



Starting kernel ...



[    0.000000] Linux version 5.4.140 (gwei4@5CD01567MZ) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r17252-b37f0dde78)) #0 Mon Aug 16 11:22:17 2021

[    0.000000] printk: bootconsole [early0] enabled

[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)

[    0.000000] MIPS: machine is Netgear WNDR3800

[    0.000000] SoC: Atheros AR7161 rev 2

[    0.000000] Initrd not found or empty - disabling initrd

[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.

[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes

[    0.000000] Zone ranges:

[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000007ffffff]

[    0.000000] Movable zone start for each node

[    0.000000] Early memory node ranges

[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000007ffffff]

[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000007ffffff]

[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 32480

[    0.000000] Kernel command line: root=/dev/ram0 rootfstype=ramfs console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ar7100-nor0:256k(uboot),128k(env),6144k(rootfs),64k(caldata),1024k(uImage)

[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes, linear)

[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes, linear)

[    0.000000] Writing ErrCtl register=00000000

[    0.000000] Readback ErrCtl register=00000000

[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off

[    0.000000] Memory: 119440K/131072K available (4928K kernel code, 186K rwdata, 1132K rodata, 3856K init, 196K bss, 11632K reserved, 0K cma-reserved)

[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1

[    0.000000] NR_IRQS: 51

[    0.000000] random: get_random_bytes called from start_kernel+0x358/0x54c with crng_init=0

[    0.000000] CPU clock: 680.000 MHz

[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 5621354254 ns

[    0.000007] sched_clock: 32 bits at 340MHz, resolution 2ns, wraps every 6316128254ns

[    0.007797] Calibrating delay loop... 452.19 BogoMIPS (lpj=2260992)

[    0.074058] pid_max: default: 32768 minimum: 301

[    0.078821] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.086120] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.098002] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns

[    0.107871] futex hash table entries: 256 (order: -1, 3072 bytes, linear)

[    0.114745] pinctrl core: initialized pinctrl subsystem

[    0.120833] NET: Registered protocol family 16

[    0.431389] PCI host bridge /ahb/apb/pcie-controller@17010000 ranges:

[    0.437843]  MEM 0x0000000010000000..0x0000000016ffffff

[    0.443072]   IO 0x0000000000000000..0x0000000000000000

[    0.466086] PCI host bridge to bus 0000:00

[    0.470188] pci_bus 0000:00: root bus resource [mem 0x10000000-0x16ffffff]

[    0.477104] pci_bus 0000:00: root bus resource [io  0x0000]

[    0.482665] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]

[    0.489442] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]

[    0.497866] pci 0000:00:11.0: [168c:ff1d] type 00 class 0x020000

[    0.503899] pci 0000:00:11.0: reg 0x10: [mem 0x00000000-0x0000ffff]

[    0.510450] pci 0000:00:12.0: [168c:ff1d] type 00 class 0x020000

[    0.516501] pci 0000:00:12.0: reg 0x10: [mem 0x00000000-0x0000ffff]

[    0.523359] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00

[    0.530008] pci 0000:00:11.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]

[    0.536788] pci 0000:00:12.0: BAR 0: assigned [mem 0x10010000-0x1001ffff]

[    0.543673] workqueue: max_active 576 requested for napi_workq is out of range, clamping between 1 and 512

[    0.556902] clocksource: Switched to clocksource MIPS

[    0.562918] NET: Registered protocol family 2

[    0.567502] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)

[    0.575254] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)

[    0.583667] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.591333] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)

[    0.598385] TCP: Hash tables configured (established 1024 bind 1024)

[    0.604869] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)

[    0.611430] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)

[    0.618649] NET: Registered protocol family 1

[    0.623039] PCI: CLS 0 bytes, default 32

[    2.586910] random: fast init done

[    4.761175] workingset: timestamp_bits=14 max_order=15 bucket_order=1

[    4.773741] squashfs: version 4.0 (2009/01/31) Phillip Lougher

[    4.779608] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.

[    4.800926] ar7100-usb-phy 18030000.usb-phy: phy reset is missing

[    4.807943] Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled

[    4.814859] printk: console [ttyS0] disabled

[    4.819232] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 10, base_baud = 10625000) is a 16550A

[    4.828036] printk: console [ttyS0] enabled

[    4.828036] printk: console [ttyS0] enabled

[    4.836368] printk: bootconsole [early0] disabled

[    4.836368] printk: bootconsole [early0] disabled

[    4.851595] spi-nor spi0.0: mx25l12805d (16384 Kbytes)

[    4.856782] 4 fixed-partitions partitions found on MTD device spi0.0

[    4.863172] Creating 4 MTD partitions on "spi0.0":

[    4.867974] 0x000000000000-0x000000050000 : "u-boot"

[    4.873805] 0x000000050000-0x000000070000 : "u-boot-env"

[    4.879986] 0x000000070000-0x000000ff0000 : "firmware"

[    4.888741] 2 uimage-fw partitions found on MTD device firmware

[    4.894654] Creating 2 MTD partitions on "firmware":

[    4.899663] 0x000000000000-0x00000018c440 : "kernel"

[    4.905446] 0x00000018c440-0x000000f80000 : "rootfs"

[    4.911231] mtd: device 4 (rootfs) set to be root filesystem

[    4.918473] 1 squashfs-split partitions found on MTD device rootfs

[    4.924669] 0x000000400000-0x000000f80000 : "rootfs_data"

[    4.930953] 0x000000ff0000-0x000001000000 : "art"

[    4.936969] Realtek RTL8366S ethernet switch driver version 0.2.2

[    4.943117] rtl8366s rtl8366s: cannot find mdio node phandle

[    4.948797] rtl8366s rtl8366s: using GPIO pins 5 (SDA) and 7 (SCK)

[    4.955058] rtl8366s rtl8366s: RTL8366 ver. 1 chip found

[    5.011123] libphy: rtl8366s: probed

[    5.042422] libphy: Fixed MDIO Bus: probed

[    5.423606] ag71xx 19000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]

[    5.433171] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii

[    5.778514] ag71xx 1a000000.eth: connected to PHY at rtl8366s:04 [uid=001cc960, driver=Generic PHY]

[    5.788179] eth1: Atheros AG71xx at 0xba000000, irq 5, mode: rgmii

[    5.794507] i2c /dev entries driver

[    5.800233] NET: Registered protocol family 10

[    5.809118] Segment Routing with IPv6

[    5.812882] NET: Registered protocol family 17

[    5.817433] 8021q: 802.1Q VLAN Support v1.8

[    5.835526] Freeing unused kernel memory: 3856K

[    5.840085] This architecture does not have kernel memory protection.

[    5.846506] Run /init as init process

[    6.216065] init: Console is alive

[    6.219837] init: - watchdog -

[    6.249154] kmodloader: loading kernel modules from /etc/modules-boot.d/*

[    6.297973] usbcore: registered new interface driver usbfs

[    6.303513] usbcore: registered new interface driver hub

[    6.308951] usbcore: registered new device driver usb

[    6.320075] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

[    6.328264] ehci-fsl: Freescale EHCI Host controller driver

[    6.335208] ehci-platform: EHCI generic platform driver

[    6.939666] ehci-platform 1b000000.usb: EHCI Host Controller

[    6.945342] ehci-platform 1b000000.usb: new USB bus registered, assigned bus number 1

[    6.953295] ehci-platform 1b000000.usb: irq 3, io mem 0x1b000000

[    6.986918] ehci-platform 1b000000.usb: USB 2.0 started, EHCI 1.00

[    6.993895] hub 1-0:1.0: USB hub found

[    6.998078] hub 1-0:1.0: 2 ports detected

[    7.006673] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver

[    7.014521] ohci-platform: OHCI generic platform driver

[    7.020023] ohci-platform 1c000000.usb: Generic Platform OHCI controller

[    7.026764] ohci-platform 1c000000.usb: new USB bus registered, assigned bus number 2

[    7.034710] ohci-platform 1c000000.usb: irq 14, io mem 0x1c000000

[    7.111516] hub 2-0:1.0: USB hub found

[    7.115557] hub 2-0:1.0: 2 ports detected

[    7.121306] kmodloader: done loading kernel modules from /etc/modules-boot.d/*

[    7.139010] init: - preinit -

[    7.385523] random: jshn: uninitialized urandom read (4 bytes read)

[    7.507533] random: jshn: uninitialized urandom read (4 bytes read)

[    7.772518] random: jshn: uninitialized urandom read (4 bytes read)

[    8.155393] eth0: link up (1000Mbps/Full duplex)

[    8.161225] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

Press the [f] key and hit [enter] to enter failsafe mode

Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level





[   10.488131] eth0: link down

[   10.502245] procd: - early -

[   10.505218] procd: - watchdog -

[   11.061120] procd: - watchdog -

[   11.064628] procd: - ubus -

[   11.075324] urandom_read: 5 callbacks suppressed

[   11.075332] random: ubusd: uninitialized urandom read (4 bytes read)

[   11.118139] random: ubusd: uninitialized urandom read (4 bytes read)

[   11.127524] procd: - init -

Please press Enter to activate this console.

[   11.716961] kmodloader: loading kernel modules from /etc/modules.d/*

[   11.937543] Loading modules backported from Linux version v5.10.42-0-g65859eca4dff

[   11.945099] Backport generated by backports.git v5.10.42-1-0-gbee5c545

[   12.007961] xt_time: kernel timezone is -0000

[   12.017866] ath9k_pci_owl_loader 0000:00:11.0: enabling device (0000 -> 0002)

[   12.025196] ath9k_pci_owl_loader 0000:00:12.0: enabling device (0000 -> 0002)

[   12.032691] ath9k_pci_owl_loader 0000:00:11.0: Direct firmware load for ath9k-eeprom-pci-0000:00:11.0.bin failed with error -2

[   12.044103] ath9k_pci_owl_loader 0000:00:11.0: Falling back to sysfs fallback for: ath9k-eeprom-pci-0000:00:11.0.bin

[   12.056970] ath9k_pci_owl_loader 0000:00:12.0: Direct firmware load for ath9k-eeprom-pci-0000:00:12.0.bin failed with error -2

[   12.068368] ath9k_pci_owl_loader 0000:00:12.0: Falling back to sysfs fallback for: ath9k-eeprom-pci-0000:00:12.0.bin

[   12.174127] urngd: v1.0.2 started.

[   12.279370] PPP generic driver version 2.4.2

[   12.300254] NET: Registered protocol family 24

[   12.370370] ath9k_pci_owl_loader 0000:00:11.0: fixup device configuration

[   12.404995] pci 0000:00:11.0: [168c:0029] type 00 class 0x028000

[   12.411082] pci 0000:00:11.0: reg 0x10: [mem 0x10000000-0x1000ffff]

[   12.417402] pci 0000:00:11.0: PME# supported from D0 D3hot

[   12.423529] pci 0000:00:11.0: BAR 0: assigned [mem 0x10000000-0x1000ffff]

[   12.464217] ath9k 0000:00:11.0: enabling device (0000 -> 0002)

[   12.502022] ath: phy0: Ignoring endianness difference in EEPROM magic bytes.

[   12.526273] GPIO line 508 (fixed antenna group 1) hogged as output/high

[   12.532949] GPIO line 509 (fixed antenna group 1) hogged as output/high

[   12.539563] GPIO line 510 (fixed antenna group 1) hogged as output/high

[   12.546166] GPIO line 511 (fixed antenna group 1) hogged as output/high

[   12.553036] ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xb0000000, irq=18

[   12.689024] kmodloader: done loading kernel modules from /etc/modules.d/*

[   12.713682] ath9k_pci_owl_loader 0000:00:12.0: fixup device configuration

[   12.729268] pci 0000:00:12.0: [168c:0029] type 00 class 0x028000

[   12.735299] pci 0000:00:12.0: reg 0x10: [mem 0xffff0000-0xffffffff]

[   12.741657] pci 0000:00:12.0: PME# supported from D0 D3hot

[   12.747768] pci 0000:00:12.0: BAR 0: assigned [mem 0x10010000-0x1001ffff]

[   12.754676] ath9k 0000:00:12.0: enabling device (0000 -> 0002)

[   12.786668] random: crng init done

[   12.831771] ath: phy1: Ignoring endianness difference in EEPROM magic bytes.

[   12.858499] ieee80211 phy1: Atheros AR9280 Rev:2 mem=0xb0010000, irq=19









BusyBox v1.33.1 (2021-08-04 06:42:30 UTC) built-in shell (ash)



  _______                     ________        __

 |       |.-----.-----.-----.|  |  |  |.----.|  |_

 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|

 |_______||   __|_____|__|__||________||__|  |____|

          |__| W I R E L E S S   F R E E D O M

 -----------------------------------------------------

 OpenWrt SNAPSHOT, r17342-98bccdafd7

 -----------------------------------------------------

=== WARNING! =====================================

There is no root password defined on this device!

Use the "passwd" command to set up a new password

in order to prevent unauthorized SSH logins.

--------------------------------------------------

root@OpenWrt:/# ls

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.