aboutsummaryrefslogtreecommitdiffstats
path: root/dynamic-layers/raspberrypi/recipes-bsp/rpi-u-boot-scr/files/boot.cmd.xen.in
blob: 84d533a6f836436e83ecb50edcb87b4f6ed49cfa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Set the fdt address to what came from the GPU, so we can edit it
fdt addr ${fdt_addr}

# Pull the bootargs that the GPU has edited
fdt get value bootargs /chosen bootargs

# Set module load addresses
setenv xen_loadaddr     "0x00200000"
setenv kernel_loadaddr  "0x00400000"

# Add some space to the fdt so we can edit it
fdt resize 0x1000
echo Add boot arguments for Xen
fdt set /chosen xen,xen-bootargs "console=dtuart dtuart=/soc/serial@7e215040 dom0_mem='@@RPI_DOM0_MEM@@' @@RPI_DEBUG_XEN_ARGS@@"

echo Add boot arguments for dom0
setenv dom0_bootargs "console=hvc0 earlycon=xenboot debug root=/dev/mmcblk0p2 rootwait"
fdt set /chosen xen,dom0-bootargs \"${dom0_bootargs}\"

echo Add a dom0 node to chosen to put Linux boot information in
fdt mknode /chosen dom0

echo Set this for the Linux boot command
fdt set /chosen/dom0 compatible "xen,linux-zimage", "xen,multiboot-module"

# Tell Xen where PCI is
fdt set /scb/pcie@7d500000 device_type "pci"

echo Delay to allow the MMC card to be ready
sleep 1

echo Load Xen into memory
fatload mmc 0:1 ${xen_loadaddr} xen
echo Load Linux kernel into memory
fatload mmc 0:1 ${kernel_loadaddr} Image
setenv kernel_size 0x$filesize

echo Set the address and size for the Linux kernel so Xen can pick it up
fdt set /chosen/dom0 reg <${kernel_loadaddr} ${kernel_size}>

# Define the size and address cells
fdt set /chosen '#size-cells' <1>
fdt set /chosen '#address-cells' <1>

# Display the chosen fdt section - can be important for debugging
fdt print /chosen

echo Boot Xen
booti ${xen_loadaddr} - ${fdt_addr}