Netboot full image loading AST2400

Aaron aaron_ppus at fmad.com
Fri Jun 15 23:28:30 AEST 2018


Hi,

It seems like there would an easy way to do this for development/bringup,
asking instead of hacking on the code for a change.

Im bringing up a system by loading an image via u-boot across the network
into the upper section of ram, then booting from there. It relocates itself
to the reset vector and generally works well.

U-Boot 2016.07 (Jun 15 2018 - 20:42:28 +0900)

DRAM:  240 MiB
WARNING: Caches not enabled
Flash: 32 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
Net:   aspeednic#0
Error: aspeednic#0 address not set.

Hit any key to stop autoboot:  0
ast# nv
Unknown command 'nv' - try 'help'
ast# env print
baudrate=115200
bootargs=console=ttyS4,115200n8 root=/dev/ram rw
bootcmd=bootm 20080000
bootdelay=2
ethact=aspeednic#0
spi_dma=yes
stderr=serial
stdin=serial
stdout=serial
verify=yes

Environment size: 204/65531 bytes
ast#


The initial stages are good, but 2nd stage loader assume files on MTD
instead of whats in RAM, thus crashes out / uses stale data. Wasted about
half a day wondering why my changes were having little to no effect.

Is there a best practices on this?

Thanks
Aaron



ast# bootd
FTGMAC100#0: link up, 1000bps full-duplex
Using FTGMAC100#0 device
TFTP from server 192.168.2.136; our IP address is 192.168.2.143
Filename 'image-current'.
Load address: 0x40a00000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #################################################################
.
.
.
.
         #################################################################
         #################################################################
         #################################################################
         #################################################################
         #######################################################
         2.5 MiB/s
done
Bytes transferred = 33554432 (2000000 hex)
## Loading kernel from FIT Image at 40a80000 ...
   Using 'conf at aspeed-bmc-quanta-q71l.dtb' configuration
   Trying 'kernel at 1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x40a8012c
     Data Size:    2331736 Bytes = 2.2 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x40008000
     Entry Point:  0x40008000
     Hash algo:    sha1
     Hash value:   6a7b891f8d5fed2d358b2ceb06034496979dcae8
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 40a80000 ...
   Using 'conf at aspeed-bmc-quanta-q71l.dtb' configuration
   Trying 'ramdisk at 1' ramdisk subimage
     Description:  obmc-phosphor-initramfs
     Type:         RAMDisk Image
     Compression:  lzma compressed
     Data Start:   0x40cbfa80
     Data Size:    1874095 Bytes = 1.8 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   788a33bc41ecf5667b87ee2e264c679ed2a42e51
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 40a80000 ...
   Using 'conf at aspeed-bmc-quanta-q71l.dtb' configuration
   Trying 'fdt at aspeed-bmc-quanta-q71l.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x40cb9690
     Data Size:    25390 Bytes = 24.8 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   84ed7efe6232738984546b3ef27397ab251c3396
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x40cb9690
   Loading Kernel Image ... OK
   Loading Ramdisk to 4e9d1000, end 4eb9a8af ... OK
   Loading Device Tree to 4e9c7000, end 4e9d032d ... OK

Starting kernel ...


[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] random: get_random_bytes called from start_kernel+0x3c/0x3f0
with crng_init=0
[    0.000000] Linux version
4.13.16-aca92be80c008bceeb6fb62fd1d450b5be5d0a4f (oe-user at oe-host) (gcc
version 7.3.0 (GCC)) #10 Fri Jun 15 20:59:12 JST 2018
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] OF: fdt: Machine model: Quanta Q71L BMC
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.
Total pages: 58912
[    0.000000] Kernel command line: console=ttyS4,115200n8 root=/dev/ram rw
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072
bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Memory: 224832K/237568K available (5120K kernel code, 330K
rwdata, 1276K rodata, 1024K init, 109K bss, 12736K reserved, 0K
cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0x8f800000 - 0xff800000   (1792 MB)
.
.
<snip>
.
.

[    4.641015] Segment Routing with IPv6
[    4.643890] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    4.648315] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    4.654435] NET: Registered protocol family 17
[    4.657830] 8021q: 802.1Q VLAN Support v1.8
[    4.672023] hctosys: unable to open rtc device (rtc0)
[    4.682642] Freeing unused kernel memory: 1024K
rofs = mtd4 squashfs rwfs = mtd5 jffs2
mount: mounting /dev/mtdblock4 on run/initramfs/ro failed: Invalid argument
[    7.296855] jffs2: notice: (453) jffs2_build_xattr_subsystem: complete
building xattr subsystem, 53 of xdatum (40 unchecked, 13 orphan) and 189 of
xref (8 dead, 47 orphan) foun.
[    7.336463] overlayfs: upper fs does not support tmpfile.
chroot: can't execute '/bin/sh': No such file or directory

Unable to confirm /sbin/init is an executable non-empty file
in merged file system mounted at /root.

Change Root test failed!  Invoking emergency shell.
Enter password to try to manually fix.
After fixing run exit to continue this script, or reboot -f to retry, or
touch /takeover and exit to become PID 1 allowing editing of this script.
Give root password for maintenance
(or press Control-D to continue):


... and tries to load from MTD which has been purposely erased, and thus
complains.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20180615/d9d29578/attachment.html>


More information about the openbmc mailing list