# booting FreeBSD on X5000



## SteveG1 (Jul 19, 2021)

Hello,

The boot loader has changed. I believe that I need to put kernel information into uboot that will then be passed to the boot loader. Does anyone have any ideas?

Here is the error:

```
U-Boot 2014.04 (Oct 17 2016 - 08:22:22)

CPU0:  P5020, Version: 2.0, (0x82200020)
Core:  e5500, Version: 1.2, (0x80240012)
Clock Configuration:
       CPU0:1995 MHz, CPU1:1995 MHz,
       CCB:798  MHz,
       DDR:665  MHz (1330 MT/s data rate) (Asynchronous), LBC:49.875 MHz
       FMAN1: 498.750 MHz
       QMAN:  399 MHz
       PME:   399 MHz
L1:    D-cache 32 KiB enabled
       I-cache 32 KiB enabled
Reset Configuration Word (RCW):
       00000000: 0c540000 00000000 1e1e0000 00000000
       00000010: 44808c00 ff002000 68000000 45000000
       00000020: 00000000 00000000 00000000 0003000f
       00000030: a0000000 00000000 00000000 00000000
Board: CYRUS
36-bit Addressing
I2C:   ready
SPI:   ready
DRAM:  Initializing....using SPD
Detected UDIMM KHX1600C10D3/8G
Detected UDIMM KHX1600C10D3/8G
14 GiB left unmapped
16 GiB (DDR3, 64-bit, CL=9, ECC off)
       DDR Controller Interleaving Mode: cache line
       DDR Chip-Select Interleaving Mode: CS0+CS1

Local Bus Controller Registers
BR0     0xE0001001      OR0     0xFFF00010
BR1     0xE1001001      OR1     0xFFF00010
BR2     0x00000000      OR2     0x00000000
BR3     0x00000000      OR3     0x00000000
BR4     0x00000000      OR4     0x00000000
BR5     0x00000000      OR5     0x00000000
BR6     0x00000000      OR6     0x00000000
BR7     0x00000000      OR7     0x00000000
LBCR    0x40000000      LCRR    0x80010004
L2:    512 KiB enabled
Corenet Platform Cache: 2 MiB enabled
SERDES: bank 2 disabled
MMC:  FSL_SDHC: 0
EEPROM: NXID v0
PCIe1: Root Complex, x4 gen1, regs @ 0xfe200000
  01:00.0     - 1002:6759 - Display controller
  01:00.1     - 1002:aa90 - Multimedia device
PCIe1: Bus 00 - 01
PCIe2: Root Complex, x4 gen2, regs @ 0xfe201000
  03:00.0     - 111d:8092 - Bridge device
   04:01.0    - 111d:8092 - Bridge device
    05:00.0   - 12d8:e111 - Bridge device
   04:02.0    - 111d:8092 - Bridge device
   04:03.0    - 111d:8092 - Bridge device
    08:00.0   - 8086:10d3 - Network controller
   04:08.0    - 111d:8092 - Bridge device
   04:10.0    - 111d:8092 - Bridge device
PCIe2: Bus 02 - 0a
PCIe3: disabled
PCIe4: disabled
Looking for VGA
PINS: 0xfc000808
videoboot: Booting PCI video card bus 1, function 0, device 0
Begin BIOS POST
End BIOS POST
Setting VESA Mode
Found required VESA mode
About to set mode 279
About to get mode
Got mode 49431 (0xc117)
OK
XSize = 1024 YSize = 768 Base =0xe0000000
mmio_base = 0x80000000
bgx = 0xad55ad55 fgx = 0x0
In:    serial
Out:   serial
Err:   serial
ID: NXID v0
SN: 116330081
UID: 4429431001910051c47da080a0800000
Errata: Q
Build date: 2015/07/06 14:51:17
CRC: eb5fb57a
SCSI:  scanning bus for devices...
Found 0 device(s).
Net:   Initializing Fman

MMC read: dev # 0, block # 1130, count 128 ...
Fman1: Uploading microcode version 106.1.0
Tuning PHY @ 3
Tuning PHY @ 7
FM1@DTSEC4 [PRIME], FM1@DTSEC5

MMC read: dev # 0, block # 1280, count 512 ... 512 blocks read: OK

MMC read: dev # 0, block # 65536, count 131072 ... 131072 blocks read: OK
USB0:   USB EHCI 1.00
scanning bus 0 for devices... ERROR: Invalid USB EP length (9)
ERROR: Invalid USB EP length (9)
4 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 4 USB Device(s) found
SATA0 (3 Gbps)
       SATA1 (No RDY)
scanning bus for devices...
Found 0 device(s).
X5000> setenv loader_kernaddr 0x2000000
X5000> fatload sata 0:1 $loadaddr ubldr
reading ubldr
315292 bytes read in 27 ms (11.1 MiB/s)
X5000> fatload sata 0:1 $fdtaddr cyrus.dtb
reading cyrus.dtb
65536 bytes read in 31 ms (2 MiB/s)
X5000> fdt addr $fdtaddr
X5000> fdt boardsetup
X5000> bootelf $loadaddr
## 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>...Non-NCQ command time out
Non-NCQ command time out
Non-NCQ command time out

Found U-Boot device: net
Booting from net0:
bootp: no reply
No response for RARP request
net_open: RARP failed
bootp: no reply
No response for RARP request
net_open: RARP failed

bootp: no reply
No response for RARP request
net_open: RARP failed
bootp: no reply
No response for RARP request
net_open: RARP failed
bootp: no reply
No response for RARP request
net_open: RARP failed
bootp: no reply
No response for RARP request
net_open: RARP failed
bootp: no reply
```
Kind Regards,
SteveG


----------



## astyle (Jul 19, 2021)

Thanks for posting your boot sequence.... This looks more like the bootloader is not finding your disk. Then it proceeds to look on the network - but needs to load the code to do that. And the bespoke code - it lives on the disk that the bootloader is looking for.

Considering that you posted the boot sequence, I can surmise that you're running a VM with the virtual CPU (CPU0:  P5020, Version: 2.0, (0x82200020)). I would suggest that you look at the VM's config, and double-check that it includes a hard disk. Sometimes, a weird config becomes a mess, and parts of the VM crash. Also, trying to install an incompatible version of FreeBSD can cause a VM to crash. 

Hopefully this gives you ideas.


----------



## SteveG1 (Jul 21, 2021)

It is not a VM. With older versions of FreeBSD it boots. I did more testing last night and tried to tell it which partition to boot from, but it didn't work. My guess is that FreeBSD 13 requires a different partition type or there is a problem with ubldr.


----------



## astyle (Jul 21, 2021)

If it's not a VM, how did you manage the copy-paste of the boot sequence? Especially without networking? Don't tell me you copied the screen by hand. 

Looking more carefully at your posts, I'm guessing it's a Pi / Beaglebone? If you provide more info about the specs of your setup, you'll be able to get better help.


----------



## sko (Jul 21, 2021)

The specs from the boot sequence look more like an Amiga One X5000 with P5020 CPU. IIRC you can connect them via serial console for debugging (the in/out/error = serial lines also indicate this).


----------



## SteveG1 (Jul 25, 2021)

Thank you both for responding.
Yes, it is a an Amiga One X5000. And yes I am using a serial console for debugging. 

Okay, well I made it a little bit further. I changed the drive to MBR and now I am getting a little bit further: 

## 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='disk1s2a'
Found U-Boot device: disk
  Checking unit=1 slice=2 partition=0... good.
Booting from disk1s2a:
Loading /boot/defaults/loader.conf
/boot/kernel/kernel data=0xb5a998+0x4199c6 syms=[0x8+0xb9bc8+0x8+0xc0c11]

scanning bus 0 for devices... ERROR: Invalid USB EP length (9)
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
Using DTB provided by U-Boot at address 0xc00000.
Kernel args: (null)devices... 4 USB Device(s) found
Bad trap at PC: 4102000, SR: 1200, vector=800
NIP: 04102000 XER: 20000000 LR: 000102D0 REGS: 7fe2d9b0 TRAP: 0800 DAR: 00000000
MSR: 00001200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00
Found 0 device(s).
GPR00: 000102C4 7FE2DAA0 7FE2DF00 03205000 00000000 000055AD 00000000 000F0000
GPR08: 00000800 00000002 80000000 7FE2D950 24444C22 B2008A10 0005B224 00000000
GPR16: 0005B014 00000002 00000000 0005C744 000594A8 000000A8 00000000 00059683
GPR24: 0005600E 00000000 000000A9 000000A8 00000000 04102000 0008C380 00000000
Call backtrace:
000102C4 00010570 00010384 00012830 000212F0 7FF45B64 00000000
7FE8C2B0 tload sata 0:1 $fdtaddr cyrus.dtb
Exception in kernel pc 4102000 signal 0
### ERROR ### Please RESET the board ###

I believe the problem is with cyrus.dtb, but I can't find documentation on how to build a newer version.  Any ideas?


----------

