FreeBSD adventure continues
January 28, 2018 08:57AM
I managed to get one GoFlexHome dock to boot up FreeBSD but in the process of tidying up the environment managed to brick it... Still looking at trying to JTAG it, but getting nowhere.

I have another dock but think I have managed to damage one of the pins so serial communications don't work, so I assume using kwboot is out of the question.

In my tests so far it seems that I need an image that supports bootelf, but I'm not sure which image is available and whether I can use it without kwboot.

Please advise.
Re: FreeBSD adventure continues
January 28, 2018 10:32AM
balanga,

> In my tests so far it seems that I need an image
> that supports bootelf, but I'm not sure which
> image is available and whether I can use it
> without kwboot.

Use the one that I've built specifically for this purpose and attached to a post here a while back in your old FreeBSD thread. It is not one of the relased GF Home u-boot images. This u-boot has bootelf fully implemented (with API callback).

If you use one of the released GF Home u-boot images, bootelf command itself is available, but it is not fully implemented for BSD booting. You would use a normal "go" command to run the kernel, not bootelf.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
January 28, 2018 05:52PM
bodhi,

Since I am unable to use kwboot on this particular dock, I'm not sure what options I have....

I'm not sure if I need to update my uBoot.....

GoFlexHome> version
version

U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:21:31 -0700)
Seagate GoFlex Home
gcc (Debian 6.3.0-18) 6.3.0 20170516
GNU ld (GNU Binutils for Debian) 2.28

This one does include bootelf....

fw_setenv shows:-

bootcmd_exec=run load_uimage; if run load_initrd; then if run load_dtb; then bootm $load_uimage_addr $load_initrd_addr $load_dtb_addr; else bootm $load_uimage_addr $load_initrd_addr; fi; else if run load_dtb; then bootm $load_uimage_addr - $load_dtb_addr; else bootm $load_uimage_addr; fi; fi
bootcmd=run bootcmd_uenv; run scan_disk; run set_bootargs; run bootcmd_exec
bootcmd_uenv=run uenv_load; if test $uenv_loaded -eq 1; then run uenv_import; fi
bootdelay=10
bootdev=usb
device=0:1
devices=usb ide mmc
disks=0 1 2 3
ethact=egiga0
if_netconsole=ping $serverip
led_error=orange blinking
led_exit=green off
led_init=green blinking
load_dtb_addr=0x1c00000
load_initrd_addr=0x1100000
load_uimage_addr=0x800000
load_dtb=echo loading DTB $dtb_file ...; load $bootdev $device $load_dtb_addr $dtb_file
load_initrd=echo loading uInitrd ...; load $bootdev $device $load_initrd_addr /boot/uInitrd
load_uimage=echo loading uImage ...; load $bootdev $device $load_uimage_addr /boot/uImage
mainlineLinux=yes
mtdids=nand0=orion_nand
partition=nand0,2
scan_disk=echo running scan_disk ...; scan_done=0; setenv scan_usb "usb start";  setenv scan_ide "ide reset";  setenv scan_mmc "mmc rescan"; for dev in $devices; do if test $scan_done -eq 0; then echo Scan device $dev; run scan_$dev; for disknum in $disks; do if test $scan_done -eq 0; then echo device $dev $disknum:1; if load $dev $disknum:1 $load_uimage_addr /boot/uImage 1; then scan_done=1; echo Found bootable drive on $dev $disknum; setenv device $disknum:1; setenv bootdev $dev; fi; fi; done; fi; done
set_bootargs=setenv bootargs console=ttyS0,115200 root=LABEL=rootfs rootdelay=10 $mtdparts $custom_params
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
stderr=serial
stdin=serial
stdout=serial
uenv_addr=0x810000
uenv_import=echo importing envs ...; env import -t $uenv_addr $filesize
uenv_init_devices=setenv init_usb "usb start";  setenv init_ide "ide reset";  setenv init_mmc "mmc rescan"; for devtype in $devices; do run init_$devtype; done;
uenv_load=run uenv_init_devices; setenv uenv_loaded 0; for devtype in $devices;  do for disknum in 0; do run uenv_read_disk; done; done;
uenv_read_disk=if test $devtype -eq mmc; then if $devtype part; then run uenv_read;  fi; else if $devtype part $disknum; then run uenv_read; fi;  fi
uenv_read=echo loading envs from $devtype $disknum ...; if load $devtype $disknum:1 $uenv_addr /boot/uEnv.txt; then setenv uenv_loaded 1; fi
usb_ready_retry=15
arcNumber=3338
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
ethaddr=00:10:75:2e:ae:0f
dtb_file=/boot/dts/kirkwood-goflexhome.dtb
preboot_nc=setenv nc_ready 0; for pingstat in 1 2 3 4 5; do; sleep 1; if run if_netconsole; then setenv nc_ready 1; fi; done; if test $nc_ready -eq 1; then run start_netconsole; fi
preboot=run preboot_nc
ipaddr=192.168.1.22
serverip=192.168.1.43

so I'm not sure what needs to be changed if anything...

I'll study my previous posts

https://forum.doozan.com/read.php?3,35603-------------------->tftpboot
https://forum.doozan.com/read.php?3,44204-------------------->uEnv.txt
https://forum.doozan.com/read.php?3,44134-------------------->FreeBSD on GoFlexHome
https://forum.doozan.com/read.php?3,44329-------------------->GoFlexHome RIP
https://forum.doozan.com/read.php?3,41899-------------------->GoFlexHome u-boot 2017-07-tld-1
https://forum.doozan.com/read.php?3,34799-------------------->Is uBoot OS specific?

I should have had this sorted out a long time ago judging by all these posts...



Edited 2 time(s). Last edit at 03/17/2019 07:53PM by balanga.
Re: FreeBSD adventure continues
January 28, 2018 06:01PM
> U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:21:31
> -0700)
> Seagate GoFlex Home
> gcc (Debian 6.3.0-18) 6.3.0 20170516
> GNU ld (GNU Binutils for Debian) 2.28
> [/code]
>
> This one does include bootelf....

No, it does not have full functionality to boot BSD. See my explanation above.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
January 29, 2018 04:59AM
bodhi Wrote:
-------------------------------------------------------
> balanga,
>
> > In my tests so far it seems that I need an
> image
> > that supports bootelf, but I'm not sure which
> > image is available and whether I can use it
> > without kwboot.
>
> Use the one that I've built specifically for this
> purpose and attached to a post here a while back
> in your old FreeBSD thread. It is not one of the
> relased GF Home u-boot images. This u-boot has
> bootelf fully implemented (with API callback).

Do you mean:-

U-Boot 2017.05-tld-2 (Jul 26 2017 - 02:37:42 -0700)

I needed to run

./kwboot -t -B 115200 /dev/ttyUSB0 -b uboot.2017.05-tld-2.goflexhome.mtd0.kwb -p

to be able to use that uBoot, but I can't use kwboot because of a problem with one of the pins. Is there an alternative to kwboot, for instance via nc or somesuch?

> If you use one of
> the
> released GF Home u-boot images
, bootelf
> command itself is available, but it is not fully
> implemented for BSD booting. You would use a
> normal "go" command to run the kernel, not
> bootelf.

I guess this is the only option.... So should I be able to use

U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:21:31 -0700)

and use 'go' instead of 'bootelf' ?
Re: FreeBSD adventure continues
January 29, 2018 12:06PM
balanga Wrote:
-------------------------------------------------------
> bodhi Wrote:
> -------------------------------------------------------
> > balanga,
> >
> > > In my tests so far it seems that I need an
> > image
> > > that supports bootelf, but I'm not sure which
> > > image is available and whether I can use it
> > > without kwboot.
> >
> > Use the one that I've built specifically for
> this
> > purpose and attached to a post here a while
> back
> > in your old FreeBSD thread. It is not one of
> the
> > relased GF Home u-boot images. This u-boot has
> > bootelf fully implemented (with API callback).
>
> Do you mean:-
>
> U-Boot 2017.05-tld-2 (Jul 26 2017 - 02:37:42
> -0700)

Yes.

> I needed to run
>
> ./kwboot -t -B 115200 /dev/ttyUSB0 -b
> uboot.2017.05-tld-2.goflexhome.mtd0.kwb -p
>
> to be able to use that uBoot, but I can't use
> kwboot because of a problem with one of the pins.
> Is there an alternative to kwboot, for instance
> via nc or somesuch?

If you have JTAG you could also load and run u-boot image.

>
> > If you use one of
> >
> the
> > released GF Home u-boot images
, bootelf
> > command itself is available, but it is not
> fully
> > implemented for BSD booting. You would use a
> > normal "go" command to run the kernel, not
> > bootelf.
>
> I guess this is the only option.... So should I be
> able to use
>
> U-Boot 2017.07-tld-1 (Sep 05 2017 - 00:21:31
> -0700)
>
> and use 'go' instead of 'bootelf' ?

Correct.


Whether you use "go" or "bootelf", you will need to have some knowledge about what files are the kernel files in your ARMV5 rootfs. The BSD rootfs must be built for this architecture. And how to pass parameters to the kernel. bootelf with API is more powerful, "go" is primitive.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
June 01, 2018 07:44AM
After a bit of a break, I thought I would try and get this finally cracked....

Just wondered if there was an update to uboot.2017.05-tld-2.goflexhome.mtd0.kwb before I proceed...
Re: FreeBSD adventure continues
June 01, 2018 05:59PM
balanga,

> Just wondered if there was an update to
> uboot.2017.05-tld-2.goflexhome.mtd0.kwb before I
> proceed...

No update to uboot.2017.05-tld-2.goflexhome. This is a special version that I built just for booting FreeBSD the modern way (with u-boot API), which made the image size too big. So there will not be update.

Unless I can find a way to trim down the Kirkwood u-boots in general, I can only release the normal versions. If there is popular demand from FreeBSD community then please let me know (I'll think of someway).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
June 02, 2018 02:50PM
Just trying again I get:-

SoC: Kirkwood 88F6281_A1
DRAM: 128 MiB
WARNING: Caches not enabled
NAND: 256 MiB
*** Warning - bad CRC, using default environment

Do I need to take any notice of this?

Can I save what is in NAND and restore it at some point?

Also how would I go about building uboot.2017.05-tld-2.goflexhome.mtd0.kwb?
Re: FreeBSD adventure continues
June 02, 2018 05:19PM
balanga,
>
> SoC: Kirkwood 88F6281_A1
> DRAM: 128 MiB
> WARNING: Caches not enabled
> NAND: 256 MiB
> *** Warning - bad CRC, using default environment
>
> Do I need to take any notice of this?

This CRC error is expected, when you kwboot the new u-boot (stock u-boot is still in NAND). The CRC error will go away after you flash the envs image during installing new u-boot.

>
> Can I save what is in NAND and restore it at some
> point?
>

Sure. Again, Wiki thread:
https://forum.doozan.com/read.php?2,23630

Quote

Booting Debian on Pogoplug

How to set up U-Boot for booting in multiple drives configuration
Backup and Restore NAND mtds
UART Booting HowTo for Selected Kirkwood Devices
Migrating from Arch to Debian?
How to boot new Debian rootfs using stock u-boot tftp - Pogo E02
How to boot new Debian rootfs on USB using stock u-boot - NSA325


> Also how would I go about building
> uboot.2017.05-tld-2.goflexhome.mtd0.kwb?

As a policy, I don't discuss building u-boot or kernel. So you are on your own learning how. You usually start by cloning my u-boot GitHub and then Googling instruction about how to build on the net (there are hundreds of such posts).

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
April 01, 2019 10:44AM
Well it's taken the best part of two years, but I finally managed to login to FreeBSD running on my GoFlex Home today!

U-Boot 2017.05-tld-2 (Jul 26 2017 - 02:37:42 -0700)
Seagate GoFlex Home

SoC:   Kirkwood 88F6281_A1
DRAM:  128 MiB
WARNING: Caches not enabled
NAND:  256 MiB
In:    serial
Out:   serial
Err:   serial
Net:   egiga0
88E1116 Initialized on egiga0
Hit any key to stop autoboot:  3  2  1  0 
Initializing devices...
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 
Use USB retry period from the environment: 15 second(s)
1 Storage Device(s) found

Reset IDE: ide_preinit failed
Loading envs from usb 0...
reading /boot/uEnv.txt
160 bytes read in 63 ms (2 KiB/s)
... envs loaded
importing envs ...
running scan_disk ...
Scan device usb
device usb 0:1
reading /boot/uImage
** Unable to read file /boot/uImage **
device usb 1:1
** Bad device usb 1 **
Scan device ide

Reset IDE: ide_preinit failed
device ide 0:1
** Bad device ide 0 **
device ide 1:1
** Bad device ide 1 **
reading ubldr
295973 bytes read in 85 ms (3.3 MiB/s)
CACHE: Misaligned operation at range [01000098, 01030c04]
CACHE: Misaligned operation at range [01030c04, 01031707]
CACHE: Misaligned operation at range [01031708, 010330f0]
CACHE: Misaligned operation at range [010330f0, 0103558b]
CACHE: Misaligned operation at range [01035590, 01036c98]
CACHE: Misaligned operation at range [01036c98, 01036cf4]
CACHE: Misaligned operation at range [01036cf4, 01036d5c]
CACHE: Misaligned operation at range [01036d5c, 01036e30]
CACHE: Misaligned operation at range [01036e30, 01036e3c]
## Starting application at 0x01000098 ...
Consoles: U-Boot console  


Compatible U-Boot API signature found @0x7b12860





FreeBSD/arm U-Boot loader, Revision 1.2


(Thu Nov 30 14:06:37 GMT 2017 root@Test)





DRAM: 128MB


Number of U-Boot devices: 2


U-Boot env: loaderdev not set, will probe all devices.


Found U-Boot device: disk


  Probing all disk devices...


  Checking unit=0 slice=<auto> partition=<auto>... good.


Booting from disk0s2:


|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-/boot/kernel/kernel data=0x684724+0x378dc \|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|syms=[0x4+0xaa940/-\|/+0x4+0x88e8b-\|/]





Hit [Enter] to boot immediately, or any other key for command prompt.



Booting [/boot/kernel/kernel] in 1 second... 
Booting [/boot/kernel/kernel]...               


Using DTB compiled into kernel.


-\|/Kernel entry at 0x1200100...


Kernel args: (null)


Copyright (c) 1992-2018 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 11.2-RELEASE #0: Fri Mar 22 10:56:27 UTC 2019
    root@S07:/usr/obj/arm.arm/usr/src/sys/DOCKSTAR arm
FreeBSD clang version 6.0.0 (tags/RELEASE_600/final 326565) (based on LLVM 6.0.0)
CPU: Feroceon 88FR131 rev 1 (**unknown 4** core)
  Little-endian DC enabled IC disabled WA disabled DC streaming enabled
  BTB disabled L2 enabled L2 prefetch enabled
  WB enabled LABT branch prediction disabled
  16KB/32B 4-way instruction cache
  16KB/32B 4-way write-back-locking-C data cache
real memory  = 134213632 (127 MB)
avail memory = 121315328 (115 MB)
SOC: Marvell 88F6281 rev A1, TClock 200MHz
  Instruction cache prefetch disabled, data cache prefetch disabled
  256KB 4-way set-associative write-through unified L2 cache
random: entropy device external interface
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
localbus0: <Marvell device bus> on ofwbus0
ic0: <Marvell Integrated Interrupt Controller> mem 0x20200-0x2023b on simplebus0
timer0: <Marvell CPU Timer> mem 0x20300-0x2032f irq 1 on simplebus0
Event timer "CPUTimer0" frequency 200000000 Hz quality 1000
Timecounter "CPUTimer1" frequency 200000000 Hz quality 1000
gpio0: <Marvell Integrated GPIO Controller> mem 0x10100-0x1011f irq 35,36,37,38,39,40,41 on simplebus0
rtc0: <Marvell Integrated RTC> mem 0x10300-0x10307 on simplebus0
rtc0: registered as a time-of-day clock, resolution 1.000000s
twsi0: <Marvell Integrated I2C Bus Controller> mem 0x11000-0x1101f irq 43 on simplebus0
iicbus0: <Philips I2C bus> on twsi0
iic0: <I2C generic I/O> on iicbus0
mge0: <Marvell Gigabit Ethernet controller> mem 0x72000-0x73fff irq 12,13,14,11,46 on simplebus0
mge0: PHY0 attached, phy_sc points to mge0
mge0: Ethernet address: 52:3b:20:9c:11:51
miibus0: <MII bus> on mge0
e1000phy0: <Marvell 88E1116R Gigabit PHY> PHY 0 on miibus0
e1000phy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, auto
uart0: <16550 or compatible> mem 0x12000-0x1201f irq 33 on simplebus0
uart0: console (1056,n,8,1)
uart1: <16550 or compatible> mem 0x12100-0x1211f irq 34 on simplebus0
cesa0: <Marvell Cryptographic Engine and Security Accelerator> mem 0x30000-0x30fff,0x3d000-0x3dfff irq 22 on simplebus0
ehci0: <Marvell Integrated USB 2.0 controller> mem 0x50000-0x50fff irq 48,19 on simplebus0
usbus0: EHCI version 1.0
usbus0 on ehci0
cryptosoft0: <software crypto>
Timecounters tick every 10.000 msec
ipfw2 (+ipv6) initialized, divert enabled, nat enabled, default to accept, logging disabled
DUMMYNET 0 with IPv6 initialized (100409)
load_dn_sched dn_sched PRIO loaded
load_dn_sched dn_sched QFQ loaded
load_dn_sched dn_sched RR loaded
load_dn_sched dn_sched WF2Q+ loaded
load_dn_sched dn_sched FIFO loaded
load_dn_sched dn_sched FQ_CODEL loaded
load_dn_sched dn_sched FQ_PIE loaded
load_dn_aqm dn_aqm CODEL loaded
load_dn_aqm dn_aqm PIE loaded
usbus0: 480Mbps High Speed USB v2.0
Trying to mount root from ufs:/dev/da0s2 [rw]...
Root mount waiting for: usbus0
ugen0.1: <Marvell EHCI root HUB> at usbus0
uhub0: <Marvell EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus0
uhub0: 1 port with 1 removable, self powered
Root mount waiting for: usbus0
Root mount waiting for: usbus0
Root mount waiting for: usbus0
ugen0.2: <Lexar microSD RDR> at usbus0
umass0 on uhub0
umass0: <Lexar microSD RDR, class 0/0, rev 2.10/8.15, addr 2> on usbus0
mountroot: waiting for device /dev/da0s2...
(probe0:umass-sim0:0:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim0:0:0:0): CAM status: SCSI Status Error
(probe0:umass-sim0:0:0:0): SCSI status: Check Condition
(probe0:umass-sim0:0:0:0): SCSI sense: ILLEGAL REQUEST asc:20,0 (Invalid command operation code)
(probe0:umass-sim0:0:0:0): Error 22, Unretryable error
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: <Lexar microSD RDR 0815> Removable Direct Access SPC-4 SCSI device
da0: Serial Number 000000000001
da0: 40.000MB/s transfers
da0: 7583MB (15529984 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
WARNING: / was not properly dismounted
Setting hostuuid: 54e70ba7-5481-11e9-884f-3b2e22d83865.
Setting hostid: 0xb70082ad.
Starting file system checks:
/dev/da0s2: INCORRECT BLOCK COUNT I=481542 (8 should be 0) (CORRECTED)
/dev/da0s2: INCORRECT BLOCK COUNT I=561876 (8 should be 0) (CORRECTED)
/dev/da0s2: UNREF FILE I=481542  OWNER=root MODE=100600
/dev/da0s2: SIZE=0 MTIME=Apr  1 13:55 2019  (CLEARED)
/dev/da0s2: UNREF FILE I=561876  OWNER=root MODE=100600
/dev/da0s2: SIZE=0 MTIME=Apr  1 13:55 2019  (CLEARED)
/dev/da0s2: FREE BLK COUNT(S) WRONG IN SUPERBLK (SALVAGED)
/dev/da0s2: 28488 files, 629734 used, 1237873 free (361 frags, 154689 blocks, 0.0% fragmentation)
Mounting local filesystems:.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat
random: unblocking device.
/etc/rc: WARNING: $hostname is not set -- see rc.conf(5).
Setting up harvesting: [UMA],[FS_ATIME],SWI,INTERRUPT,NET_NG,NET_ETHER,NET_TUN,MOUSE,KEYBOARD,ATTACH,CACHED
Feeding entropy: .
Starting Network: lo0 mge0 enc0.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
	options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
	inet6 ::1 prefixlen 128 
	inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2 
	inet 127.0.0.1 netmask 0xff000000 
	groups: lo 
	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
mge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> memge0: link state changed to UP
tric 0 mtu 1500
	options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
	ether 52:3b:20:9c:11:51
	hwaddr 52:3b:20:9c:11:51
	media: Ethernet autoselect (1000baseT <full-duplex,master>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
enc0: flags=0<> metric 0 mtu 1536
	groups: enc 
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Starting devd.
Starting Network: mge0.
mge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
	options=8000b<RXCSUM,TXCSUM,VLAN_MTU,LINKSTATE>
	ether 52:3b:20:9c:11:51
	hwaddr 52:3b:20:9c:11:51
	media: Ethernet autoselect (1000baseT <full-duplex,master>)
	status: active
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
Starting Network: enc0.
enc0: flags=0<> metric 0 mtu 1536
	groups: enc 
	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
add host 127.0.0.1: gateway lo0 fib 0: route already in table
add host ::1: gateway lo0 fib 0: route already in table
add net fe80::: gateway ::1
add net ff02::: gateway ::1
add net ::ffff:0.0.0.0: gateway ::1
add net ::0.0.0.0: gateway ::1
Creating and/or trimming log files.
Starting syslogd.
Clearing /tmp (X related).
Updating motd:.
Mounting late filesystems:.
Starting sendmail_submit.
Starting sendmail_msp_queue.
can not chdir(/var/spool/clientmqueue/): Permission denied
Apr  1 13:57:41  sm-msp-queue[852]: NOQUEUE: SYSERR(root): can not chdir(/var/spool/clientmqueue/): Permission denied

Program mode requires special privileges, e.g., root or TrustedUser.
/etc/rc: WARNING: failed to start sendmail_msp_queue
Starting cron.
Starting background file system checks in 60 seconds.

Mon Apr  1 13:57:45 UTC 2019


FreeBSD/arm (Amnesiac) (ttyu0)



login: root
Apr  1 13:57:51  login: ROOT LOGIN (root) ON ttyu0

Last login: Mon Apr  1 13:30:58 on ttyu0
FreeBSD 11.2-RELEASE (DOCKSTAR) #0: Fri Mar 22 10:56:27 UTC 2019

Welcome to FreeBSD!

Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories:   https://www.FreeBSD.org/security/
FreeBSD Handbook:      https://www.FreeBSD.org/handbook/
FreeBSD FAQ:           https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums:        https://forums.FreeBSD.org/

Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with:  pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.

Show the version of FreeBSD installed:  freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages:  man man
FreeBSD directory layout:      man hier

Edit /etc/motd to change this login announcement.
You have new mail.
78�root@:~ # dhclient mge0

DHCPREQUEST on mge0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
bound to 192.168.1.55 -- renewal in 2878 seconds.
root@:~ # ping 8.8.8.8

PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: icmp_seq=0 ttl=119 time=29.386 ms
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=29.378 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=29.832 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=29.054 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 29.054/29.413/29.832/0.277 ms
root@:~ # ~.

Unknown user: ..
root@:~ # ~
[EOT]

Command exit status: 0
Script done on Mon Apr  1 15:28:28 2019


Many thanks to bodhi for his patience and expertise for getting me this far...

One of the most time consuming tasks was to work out what I needed on my FAT partition... turns out I only needed ubldr and /boot/uEnv.txt.

I'll try and do a write of the steps necessary to get this working once I come up with a procedure.. In retrospect it isn't particularly difficult.
Re: FreeBSD adventure continues
April 01, 2019 05:01PM
balanga,

Congrats!

> In retrospect it isn't particularly difficult.

It should not be that difficult. I think there is an important lesson learned along the way (why it took so long) for you to boot BSD successfully :)

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
December 28, 2023 05:54PM
Hello to everyone.

I'm trying to boot FreeBSD for arm32 bit as DomU on my ARM Chromebook. Basically there are two ways to accomplish this task :

1) to write a patch that allows the FreeBSD kernel to boot as a zImage file. This could be accomplished applying this patch to a specific file that's on the source code of FreeBSD :


https://xenbits.xen.org/gitweb/?p=p...8;hb=0782e25d98cc1391472717035f986c979edef0c9


this patch has been written by Julien Grall a lot of time ago and now it does not work anymore. This is the reason :


Quote

It appears FreeBSD-CURRENT removed the last step converting the kernel file to kernel.bin. The patch can be readily rebased, but without kernel.bin that doesn't do too much. So,without a rebase of that patch the first option is not applicable.

Unfortunately I'm not able to fix it.

2) booting FreeBSD using U-Boot,as explained to me by a xen developer :


Quote

I was trying to explain why and how Julien's patch works so that you could be the one to re-do something similar or fix the patch on the FreeBSD kernel that you are working with. I am happy to help review and write patches but I don't work with the FreeBSD kernel so I wouldn't be able to help you quickly. However, I might have a suggestion. Do you know if FreeBSD can be booted by U-Boot ? Because U-Boot definitely boots as Xen on ARM guest firmware/bootloader. You should be able to build U-Boot and use the U-Boot binary as Xen guest kernel, then U-Boot could load FreeBSD from disk or network and start it. For instance as domU config file:

kernel="/home/petalinux/u-boot.bin"
disk = [ '/home/petalinux/test.img,raw,xvda' ]


This option seems to me more doable according with my knowledge. But I need to understand how to do it.

I would like to know which u-boot version I need to boot FreeBSD ? where I can get it ?


One U-Boot Xen maintainer suggested to me to try to ask here. Infact he said :


Quote

Yes, it can boot a 32-bit ARM board. I'm not a FreeBSD person, but I've helped a FreeBSD user booting a 32-bit ARM box with u-boot (GoFlexHome Marvell Kirkwood 6281). The u-boot version was 2017.05. I used an out-of-tree u-boot build. This u-boot executed the ubldr to boot FreeBSD. Please see here :

https://forum.doozan.com/read.php?3,49039,82059#msg-82059


At some point @bodhi says :


Quote

Whether you use "go" or "bootelf", you will need to have some knowledge about what files are the kernel files in your ARMV5 rootfs. The BSD rootfs must be built for this architecture. And how to pass parameters to the kernel. bootelf with API is more powerful, "go" is primitive.


so,that custom u-boot version needs a FreeBSD release for ARMV5. But which FreeBSD version number is powered by ARMV5 ?



Edited 1 time(s). Last edit at 12/29/2023 08:35AM by ziomario.
Re: FreeBSD adventure continues
December 28, 2023 06:24PM
Hi Mario,


Quote

> One U-Boot Xen maintainer suggested to me to try
> to ask here. Infact he said :
>
>
>
Quote

Yes, it can boot a 32-bit ARM board. I'm
> not a FreeBSD person, but I've helped a FreeBSD
> user booting a 32-bit ARM box with u-boot
> (GoFlexHome Marvell Kirkwood 6281). The u-boot
> version was 2017.05. I used an out-of-tree u-boot
> build. This u-boot executed the ubldr to boot
> FreeBSD. Please see here :
>
> https://forum.doozan.com/read.php?3,49039,82059#msg-82059

That's what I said in the email posting, but I'm not a U-Boot Xen maintainer. I'm a maintainer for a few u-boot Marvell boards (Kirkwood and Armda 385 SoCs).

Quote

> At some point @bodhi says :
>
>
>
Quote

Whether you use "go" or "bootelf", you will
> need to have some knowledge about what files are
> the kernel files in your ARMV5 rootfs. The BSD
> rootfs must be built for this architecture. And
> how to pass parameters to the kernel. bootelf with
> API is more powerful, "go" is primitive.
>
>
> so,that custom u-boot version needs a FreeBSD
> release for ARMV5. But which FreeBSD version
> number is powered by ARMV5 ?

I'm quoting balanga's boot log above:

Quote
https://forum.doozan.com/read.php?3,49039,82059#msg-82059

FreeBSD/arm U-Boot loader, Revision 1.2

FreeBSD/arm (Amnesiac) (ttyu0)


login: root
Apr 1 13:57:51 login: ROOT LOGIN (root) ON ttyu0

Last login: Mon Apr 1 13:30:58 on ttyu0
FreeBSD 11.2-RELEASE (DOCKSTAR) #0: Fri Mar 22 10:56:27 UTC 2019

Those version information might help you get your Chromebook booting with u-boot.

IIRC, in the log above, balanga used the ubldr approach. I.e. load the ubldr to a memory location and then execute a "go" command to that location.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
December 29, 2023 08:39AM
---> IIRC, in the log above, balanga used the ubldr approach. I.e. load the ubldr to a memory location and then execute a "go" command to that location.

I'm confused. I would like that you elaborate more,to understand what to do. Is there a more detailed tutorial that I can read from ? I see a lot of u-boot versions available. Can you point me to the right one ? thanks.



Edited 1 time(s). Last edit at 12/29/2023 08:42AM by ziomario.
Re: FreeBSD adventure continues
December 29, 2023 12:14PM
If I have understood correctly,my Chromebook does not support ArmV5,but v7.
I've thought that v5 was supported by v7 because it could have worked retroactively. But it does not seem to work like this. This is the end of the road.
Re: FreeBSD adventure continues
December 29, 2023 01:55PM
Mario,

> ---> IIRC, in the log above, balanga used the
> ubldr approach. I.e. load the ubldr to a memory
> location and then execute a "go" command to that
> location.
>
> I'm confused. I would like that you elaborate
> more,to understand what to do. Is there a more
> detailed tutorial that I can read from ? I see a
> lot of u-boot versions available. Can you point me
> to the right one ? thanks.

Sorry, I don't know any u-boot for your box, it's Exynos SoC, correct? But as I recall building the Kirkwood (Armv5) u-boot for balanga: the only extra config that was needed is CONFIG_API.

And on your BSD rootfs, there should be a file named ubldr at the root folder.

And it has been too long ago, I don't recall any detailed tutorial. You might find them doing Google search.

Too bad, balanga did not document the boot process as he promised!

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD adventure continues
January 01, 2024 04:48PM
@balanga helped me to solve half part of the equation,giving to me this suggestion :

Quote

If you simply want me to extract :

http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/i386/11.2-RELEASE/src.txz

and run make TARGET_ARCH=armv5 KERNCONF=CHROMEBOOK-SNOW buildworld buildkernel

so,theoretically in this way I have the ARMv5 rootfs (and the freebsd kernel file) that will boot with the proper version of u-boot,as you have explained here :

Quote

Whether you use "go" or "bootelf", you will need to have some knowledge about what files are the kernel files in your ARMV5 rootfs. The BSD rootfs must be built for this architecture. And how to pass parameters to the kernel bootelf with API is more powerful, "go" is primitive.

the other half part of the equation is related to u-boot. You mentioned that you have created the Kirkwood (Armv5) u-boot. Can you give me the link ? I will try to chainload ubldr using that version of u-boot with the ARMv5 rootfs that balanga explained to me how to create.



Edited 4 time(s). Last edit at 01/01/2024 04:55PM by ziomario.
Re: FreeBSD adventure continues
January 02, 2024 02:25AM
Mario,

>
Quote

Whether you use "go" or "bootelf", you will
> need to have some knowledge about what files are
> the kernel files in your ARMV5 rootfs. The BSD
> rootfs must be built for this architecture. And
> how to pass parameters to the kernel bootelf with
> API is more powerful, "go" is primitive.
>
> the other half part of the equation is related to
> u-boot. You mentioned that you have created the
> Kirkwood (Armv5) u-boot. Can you give me the link
> ? I will try to chainload ubldr using that version
> of u-boot with the ARMv5 rootfs that balanga
> explained to me how to create.

I can no longer find the exact config for that u-boot. However it is the same as the GoflexHome 2017.07 u-boot that I released here:
https://forum.doozan.com/read.php?3,12381

Quote

References:

1. U-Boot source code at GitHub (latest branch 2017.07-kirkwood-tld-1 and tag v2017.07-kirkwood-tld-1)

The only difference from the version that balanga used with the u-boot in GitHub is CONFIG_API. To run FreeBSD, you need to turn on CONFIG_API.

And then you would load the ubldr from the rootfs and execute a "go" command that memory location.

With that said, you will need to build a specific u-boot for for your Chromebook. You cannot just use any u-boot source. The GoFlex Home hardware is of course very different from the Chromebook.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: