Re: Booting FreeBSD 13-RELEASE on AmigaOne X5000 (Cyrus P5020)

Al <[email protected]>
Newsgroups gmane.os.freebsd.devel.ppc
Message-ID <[email protected]>
Hi,


On 07/04/22 14:29, widelec-bb wrote:
> 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
>
You need to add:

setenv loaderdev disk0s2a

Also, maybe:

setenv bootargs vfs.root.mountfrom=ufs:/dev/ada1s2a

Of course, you will need to change the device to match yours.

Also, you may need a newer .dtb. I can email you one if you need it.

Please let me know if you have any other questions.

Kind Regards,
Al
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.