Booting FreeBSD 13-RELEASE on AmigaOne X5000 (Cyrus P5020)
- Reply: Al : "Re: Booting FreeBSD 13-RELEASE on AmigaOne X5000 (Cyrus P5020)"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 07 Apr 2022 18:29:39 UTC
Hello.
I'm trying to boot FreeBSD 13-RELEASE on AmigaOne x5000. I can load ubldr
from u-boot, but I can't get it to load the kernel. How can I do that?
This is the boot sequence I have (from u-boot console):
X5000> run bootfreebsd
reading ubldr
315292 bytes read in 238 ms (1.3 MiB/s)
reading bsd_cyrus_p5020.dtb
65536 bytes read in 254 ms (252 KiB/s)
## Starting application at 0x00010160 ...
Consoles: U-Boot console
Compatible U-Boot API signature found @0x7fe2efd8
FreeBSD/powerpc64 U-Boot loader, Revision 1.1
Number of U-Boot devices: 4
U-Boot env: loaderdev not set, will probe all devices.
Found U-Boot device: disk
Probing all <unknown> devices...
Checking unit=0 slice=<auto> partition=<auto>...
Checking unit=1 slice=<auto> partition=<auto>...
Checking unit=2 slice=<auto> partition=<auto>... good.
Booting from disk2s4a:
/
can't load 'kernel'
Type '?' for a list of commands, 'help' for more detailed help.
The bootfreebsd variable is defined as shown at
https://wiki.freebsd.org/powerpc/UBoot-Install that is:
fatload sata 1:1 $loadaddr ubldr;
fatload sata 1:1 $fdtaddr bsd_cyrus_p5020.dtb;
fdt addr $fdtaddr;
fdt boardsetup;
bootelf $loadaddr;
The addr variables are defined as:
loadaddr=1000000
fdtaddr=c00000
File bsd_cyrus_p5020.dtb is downloaded from
https://people.freebsd.org/~jhibbits/cyrus_p5020.dtb
ubdlr lsdev:
loader> lsdev
disk devices:
disk0 (MMC)
disk1 (SATA)
disk1p1: EFI
disk1p2: APFS
disk2 (SATA)
disk2s1: DOS/Windows
disk2s2: Linux
disk2s3: Linux
disk2s4: FreeBSD
disk2s4a: FreeBSD UFS
disk2s4b: FreeBSD swap
net devices:
net0:
FreeBSD partitions have been created under VM (VirtualBox/amd64) using
gpart, following EXAMPLES/MBR section from manual.
Output of "gpart show" on VM:
=> 63 4000797296 da0 MBR (1.9T)
63 1985 - free - (993K)
2048 4194304 1 fat32 (2.0G)
4196352 104857600 2 linux-data (50G)
109053952 1074120704 3 linux-data (512G)
1183174656 268435456 4 freebsd (128G)
1451610112 2549187247 - free - (1.2T)
=> 0 268435456 da0s4 BSD (128G)
0 104857600 1 freebsd-ufs (50G)
104857600 33554432 2 freebsd-swap (16G)
138412032 130023424 - free - (62G)
It is "da0" because disk was connected via sata->usb adapter.
On disk (da0s4a) I extracted kernel.txz and base.txz downloaded from
https://download.freebsd.org/releases/powerpc/powerpc64/13.0-RELEASE/
I'm probably missing some simple, but required step, so any help will be
appreciated.
I think those are not relevant, but I tried also:
1. switching disk to become only disk in system and primary device (the
first partition become sata 0:1 in uboot)
2. writing installation ISO to the usb stick
3. building system from sources and extracting generated kernel.txz
and base.txz
4. writing installation ISO generated during build from source to USB stick
5. creating FreeBSD partitions on USB stick and extracting kernel.txz
and base.txz on it (to exclude interference of the Linux partitions
present on sata disk)
6. moving /boot/kernel/kernel to the root directory (partition da0s4a using
names from "gpart show" output shown above)
In all those cases I end up with same error in ubldr (can't load 'kernel')
with FreeBSD partition properly discovered, variables loaderdev and currdev
in ubldr were assigned to correct device name.
When building system from sources I used following commands:
make -s -j3 buildworld buildkernel TARGET_ARCH=powerpc64 KERNCONF=QORIQ64
make -C release cdrom ARCH=powerpc
The second one have "ARCH" variable set which is not shown on wiki,
but seems to be required to run correctly.
- widelec-BB