Welcome! Log In Create A New Profile

Advanced

FreeBSD on GoFlexHome

Posted by balanga 
FreeBSD on GoFlexHome
December 02, 2017 08:27AM
After many months of trying and thanks to the patience of bodhi I have got this far:-

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:  0 
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
*** Unhandled DHCP Option in OFFER/ACK: 125
*** Unhandled DHCP Option in OFFER/ACK: 125
DHCP client bound to address 192.168.1.54 (1038 ms)
*** Warning: no boot file name; using 'C0A80136.img'
Using egiga0 device
TFTP from server 192.168.1.1; our IP address is 192.168.1.54
Filename 'C0A80136.img'.
Load address: 0x800000
Loading: T T T T T T T T T T 
Retry count exceeded; starting again
Wrong Image Format for bootm command
ERROR: can't get kernel image!
GoFlexHome> usb start
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 1 Storage Device(s) found
GoFlexHome> printenv
api_address=7b12860
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.1.43: ip=192.168.1.23:192.168.1.43:::::off
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=3
ethact=egiga0
ethaddr=52:3b:20:9c:11:51
ipaddr=192.168.1.23
serverip=192.168.1.43
stderr=serial,lcd
stdin=serial,cros-ec-keyb
stdout=serial,lcd
usb_boot=fatload usb $usb_device 0x900000 ubldr.bin; go 0x900000;

Environment size: 517/131068 bytes
GoFlexHome> fatload usb 0:1 0x2000000 ubldr
reading ubldr
295973 bytes read in 90 ms (3.1 MiB/s)
GoFlexHome> bootelf 0x02000000
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=0x443064+0x30f9c syms=[0x4+0x932d0+0x4+0x667c5]

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel] in 9 seconds... Booting [/boot/kernel/kernel] in 8 seconds... Booting [/boot/kernel/kernel] in 7 seconds... Booting [/boot/kernel/kernel] in 6 seconds... Booting [/boot/kernel/kernel] in 5 seconds... Booting [/boot/kernel/kernel] in 4 seconds... Booting [/boot/kernel/kernel] in 3 seconds... Booting [/boot/kernel/kernel] in 2 seconds... 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-2017 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.1-RELEASE #0: Thu Nov 30 14:22:01 GMT 2017
    root@Test:/usr/obj/arm.arm/usr/src/sys/DB-88F6XXX arm
FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0)
module mvs already present!
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 = 123895808 (118 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
nand0: <Marvell NAND controller> mem 0xf9300000-0xf93fffff on localbus0
nandbus0: <NAND bus> on nand0
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
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: PHY8 attached, phy_sc points to mge0
mge0: Ethernet address: 52:3b:20:9c:11:51
mge0: MII failed to find PHY
device_attach: mge0 attach returned 6
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
mvs0: <Marvell 88F6281 SATA controller> mem 0x80000-0x85fff irq 21 on simplebus0
mvs0: Gen-IIe, 2 3Gbps ports, Port Multiplier supported with FBS
mvsch0: <Marvell SATA channel> at channel 0 on mvs0
mvsch1: <Marvell SATA channel> at channel 1 on mvs0
pcib0: <Marvell Integrated PCI/PCI-E Controller> mem 0xf1040000-0xf1041fff irq 44 on ofwbus0
pci0: <PCI bus> on pcib0
cryptosoft0: <software crypto>
Timecounters tick every 10.000 msec
usbus0: 480Mbps High Speed USB v2.0

This looks like a FreeBSD problem so I just need to get the U-Boot parameters finalised and I can stop pestering everyone on this forum... :)
Re: FreeBSD on GoFlexHome
December 02, 2017 04:02PM
balanga,

Congrats :)

Indeed. There is still some minor envs setup problem. But this is very good.

BTW, I built this special version in order to booting BSD with ubldr. The normal u-boots that I relased don't have ubldr loading capability. It is a little bit too big so I still need to do some trimming. After that I will make it available to all Kirkwood boxes.


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

Quote

After many months of trying and thanks to the patience of bodhi I have got this far:-

When you finally got to this point, the effort was well spent :)

What you should do is to modify your first post to include the info how to install FreeBSD. It does not have to be a tutorial (you could make it a tutorial if you'd like to). Things like rootfs building links, and u-boot version link,....

I will upload this u-boot binary to Dropbox also.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD on GoFlexHome
December 02, 2017 04:24PM
bodhi Wrote:
-------------------------------------------------------
> balanga,
>
> Congrats :)

Thanks, but I would not have got this far without your help...

> Indeed. There is still some minor envs setup
> problem. But this is very good.
>
> BTW, I built this special version in order to
> booting BSD with ubldr. The normal u-boots that I
> relased don't have ubldr loading capability. It is
> a little bit too big so I still need to do some
> trimming. After that I will make it available to
> all Kirkwood boxes.
>
>
>
> U-Boot 2017.05-tld-2 (Jul 26 2017 - 02:37:42
> -0700)
> Seagate GoFlex Home
>
>
>
Quote

After many months of trying and thanks to
> the patience of bodhi I have got this
> far:-
>
> When you finally got to this point, the effort was
> well spent :)
>
> What you should do is to modify your first post to
> include the info how to install FreeBSD. It does
> not have to be a tutorial (you could make it a
> tutorial if you'd like to). Things like rootfs
> building links, and u-boot version link,....
> I will upload this u-boot binary to Dropbox also.


The thing is there is still quite a bit to do so I will post a how-to once I've figured out a number of problems...

The contents of the FAT partition are still hit and miss... there are several files included which probably don't need to be included. The U-Boot paramaters need to be honed. And FreeBSD does not even boot yet...although it is in the process...
Re: FreeBSD on GoFlexHome
December 02, 2017 04:31PM
>The U-Boot
> paramaters need to be honed. And FreeBSD does not
> even boot yet...although it is in the process...

You need to flash the default envs image uboot.2016.05-tld-1.environment.img:

Quote

8. Flashing default u-boot envs image (if you are upgrading from 2016.05-tld-1 u-boot, you can skip this step 8).

As described in step 1, u-boot envs must be defined in /etc/fw_env.config as

# MTD device name Device offset Env. size Flash sector size Number of sectors
/dev/mtd0 0xc0000 0x20000 0x20000

This default envs image supports booting with multiple disk drives (and hubs) attached. The disk drives could be any type (usb, sata, sd card). The scanning logic and default envs were set to automatically boot the box with the following required configuration:

For whatever reason, if you can't set up your configuration to satisfy the following 4 requirements, then don't flash this defaut envs image. It might not boot properly. In this case, section C below can be used to tailor the envs to your specific configuration.

r1. There must be only one partition among all partitions from all drives that contains the kernel files. The 2 kernel files are /boot/uImage and /boot/uInitrd.
r2. The partition that contains the 2 kernel files must be partition 1 in a disk drive
r3. The partition that contains the rootfs must be labeled rootfs
r4. The rootfs partition is recommended to be type Ext3 (this is not a hard requirement, ext4 should boot OK, but Ext3 will ensure no problem).

So the bottom line is if you have only one rootfs in a single Ext3 partition, which is labeled as rootfs, then you're all set.

a. Download the default u-boot envs at Dropbox:

uboot.2016.05-tld-1.environment.bodhi.tar
md5:
3823eef10011b864859d31a76470e0e3
sha256:
c8db95a4225e8d78bdaaaa372bd5a87e4b98f3448dd9c62fc96c72b2df1a997c

This tarball includes 3 files:

uboot.2016.05-tld-1.environment.img (the default envs image to be flashed)
uboot.2016.05-tld-1.environment (the content of the default envs in text format)
uboot.2016.05-tld-1.environment.64K.img (small envs image to be flashed on HP T5325 only).


And then make the relevant changes on top of that. Your default envs are not clean enough


GoFlexHome> printenv

api_address=7b12860
baudrate=115200
bootargs=root=/dev/nfs nfsroot=192.168.1.43: ip=192.168.1.23:192.168.1.43:::::off
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=3
ethact=egiga0
ethaddr=52:3b:20:9c:11:51
ipaddr=192.168.1.23
serverip=192.168.1.43
stderr=serial,lcd
stdin=serial,cros-ec-keyb
stdout=serial,lcd
usb_boot=fatload usb $usb_device 0x900000 ubldr.bin; go 0x900000;

bootp in bootcmd above caused these errors that you saw in the beginning:
BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
*** Unhandled DHCP Option in OFFER/ACK: 125
*** Unhandled DHCP Option in OFFER/ACK: 125
DHCP client bound to address 192.168.1.54 (1038 ms)
*** Warning: no boot file name; using 'C0A80136.img'
Using egiga0 device
TFTP from server 192.168.1.1; our IP address is 192.168.1.54
Filename 'C0A80136.img'.
Load address: 0x800000
Loading: T T T T T T T T T T 
Retry count exceeded; starting again
Wrong Image Format for bootm command
ERROR: can't get kernel image!

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



Edited 1 time(s). Last edit at 12/02/2017 04:34PM by bodhi.
Re: FreeBSD on GoFlexHome
December 03, 2017 08:28AM
I can only manage to boot FreeBSD when I use this U-Boot:-

./kwboot -t -B 115200 /dev/ttyUSB0 -b uboot.2017.05-tld-2.goflexhome.mtd0.kwb -p
Re: FreeBSD on GoFlexHome
December 03, 2017 12:44PM
Balanga,

If you setup your GoFLEX/Home as a file server, can you please post its performance once everything settles down? I am trying to setup an NFS and/or samba server for my local net usage.
Re: FreeBSD on GoFlexHome
December 03, 2017 02:27PM
habibie Wrote:
-------------------------------------------------------
> Balanga,
>
> If you setup your GoFLEX/Home as a file server,
> can you please post its performance once
> everything settles down? I am trying to setup an
> NFS and/or samba server for my local net usage.

Once I have it working properly, just tell me what you want to know...
Re: FreeBSD on GoFlexHome
December 03, 2017 02:51PM
balanga Wrote:
-------------------------------------------------------
> I can only manage to boot FreeBSD when I use this
> U-Boot:-
>
>
> ./kwboot -t -B 115200 /dev/ttyUSB0 -b
> uboot.2017.05-tld-2.goflexhome.mtd0.kwb -p
>

Yes. Read the instruction. uboot.2016.05-tld-1.environment.img is for that u-boot.

-bodhi
===========================
Forum Wiki
bodhi's corner (buy bodhi a beer)
Re: FreeBSD on GoFlexHome
December 04, 2017 03:29PM
I did read it and tried to follow the instructions (obviously incorrectly) and here is my result -

https://forum.doozan.com/read.php?3,44329
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: