summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/Kconfig4
-rw-r--r--arch/x86/cpu/mp_init.c4
-rw-r--r--arch/x86/dts/bayleybay.dts14
-rw-r--r--arch/x86/dts/baytrail_som-db5800-som-6867.dts14
-rw-r--r--arch/x86/dts/cherryhill.dts2
-rw-r--r--arch/x86/dts/chromebook_coral.dts74
-rw-r--r--arch/x86/dts/chromebook_link.dts46
-rw-r--r--arch/x86/dts/chromebook_samus.dts74
-rw-r--r--arch/x86/dts/chromebox_panther.dts8
-rw-r--r--arch/x86/dts/conga-qeval20-qa3-e3845.dts14
-rw-r--r--arch/x86/dts/coreboot.dts4
-rw-r--r--arch/x86/dts/cougarcanyon2.dts10
-rw-r--r--arch/x86/dts/crownbay.dts18
-rw-r--r--arch/x86/dts/dfi-bt700.dtsi16
-rw-r--r--arch/x86/dts/edison.dts4
-rw-r--r--arch/x86/dts/efi-x86_app.dts3
-rw-r--r--arch/x86/dts/efi-x86_payload.dts2
-rw-r--r--arch/x86/dts/galileo.dts8
-rw-r--r--arch/x86/dts/minnowmax.dts14
-rw-r--r--arch/x86/dts/qemu-x86_i440fx.dts10
-rw-r--r--arch/x86/dts/qemu-x86_q35.dts10
-rw-r--r--arch/x86/dts/reset.dtsi2
-rw-r--r--arch/x86/dts/rtc.dtsi2
-rw-r--r--arch/x86/dts/serial.dtsi2
-rw-r--r--arch/x86/dts/tsc_timer.dtsi2
-rw-r--r--arch/x86/include/asm/bootm.h12
-rw-r--r--arch/x86/include/asm/bootparam.h70
-rw-r--r--arch/x86/include/asm/cpu.h1
-rw-r--r--arch/x86/lib/bdinfo.c6
-rw-r--r--arch/x86/lib/bootm.c43
-rw-r--r--arch/x86/lib/fsp/fsp_graphics.c2
-rw-r--r--arch/x86/lib/zimage.c17
32 files changed, 290 insertions, 222 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 07be5cd05ec..99e59d94c60 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -32,8 +32,8 @@ config X86_RUN_32BIT
config X86_RUN_64BIT
bool "64-bit"
select X86_64
- select SPL
- select SPL_SEPARATE_BSS
+ select SPL if !EFI_APP
+ select SPL_SEPARATE_BSS if !EFI_APP
help
Build U-Boot as a 64-bit binary with a 32-bit SPL. This is
experimental and many features are missing. U-Boot SPL starts up,
diff --git a/arch/x86/cpu/mp_init.c b/arch/x86/cpu/mp_init.c
index 7637c9b07db..a133a5d8116 100644
--- a/arch/x86/cpu/mp_init.c
+++ b/arch/x86/cpu/mp_init.c
@@ -69,12 +69,12 @@ DECLARE_GLOBAL_DATA_PTR;
* CPUS are numbered sequentially from 0 using the device tree:
*
* cpus {
- * u-boot,dm-pre-reloc;
+ * bootph-all;
* #address-cells = <1>;
* #size-cells = <0>;
*
* cpu@0 {
- * u-boot,dm-pre-reloc;
+ * bootph-all;
* device_type = "cpu";
* compatible = "intel,apl-cpu";
* reg = <0>;
diff --git a/arch/x86/dts/bayleybay.dts b/arch/x86/dts/bayleybay.dts
index f4cbbd61dff..59403f40cee 100644
--- a/arch/x86/dts/bayleybay.dts
+++ b/arch/x86/dts/bayleybay.dts
@@ -92,7 +92,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -189,7 +189,7 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
use-lvl-write-cache;
@@ -197,7 +197,7 @@
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
use-lvl-write-cache;
@@ -205,7 +205,7 @@
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x20>;
bank-name = "C";
use-lvl-write-cache;
@@ -213,7 +213,7 @@
gpiod {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x60 0x20>;
bank-name = "D";
use-lvl-write-cache;
@@ -221,7 +221,7 @@
gpioe {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x80 0x20>;
bank-name = "E";
use-lvl-write-cache;
@@ -229,7 +229,7 @@
gpiof {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xA0 0x20>;
bank-name = "F";
use-lvl-write-cache;
diff --git a/arch/x86/dts/baytrail_som-db5800-som-6867.dts b/arch/x86/dts/baytrail_som-db5800-som-6867.dts
index ca7d97f2d48..4e12c4a40cb 100644
--- a/arch/x86/dts/baytrail_som-db5800-som-6867.dts
+++ b/arch/x86/dts/baytrail_som-db5800-som-6867.dts
@@ -116,7 +116,7 @@
compatible = "intel,pci-baytrail", "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -213,7 +213,7 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
use-lvl-write-cache;
@@ -221,7 +221,7 @@
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
use-lvl-write-cache;
@@ -229,7 +229,7 @@
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x20>;
bank-name = "C";
use-lvl-write-cache;
@@ -237,7 +237,7 @@
gpiod {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x60 0x20>;
bank-name = "D";
use-lvl-write-cache;
@@ -245,7 +245,7 @@
gpioe {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x80 0x20>;
bank-name = "E";
use-lvl-write-cache;
@@ -253,7 +253,7 @@
gpiof {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xA0 0x20>;
bank-name = "F";
use-lvl-write-cache;
diff --git a/arch/x86/dts/cherryhill.dts b/arch/x86/dts/cherryhill.dts
index 7a273670bde..3d35e4643cf 100644
--- a/arch/x86/dts/cherryhill.dts
+++ b/arch/x86/dts/cherryhill.dts
@@ -70,7 +70,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
diff --git a/arch/x86/dts/chromebook_coral.dts b/arch/x86/dts/chromebook_coral.dts
index 69a1c1ce295..8bfb2c0d19d 100644
--- a/arch/x86/dts/chromebook_coral.dts
+++ b/arch/x86/dts/chromebook_coral.dts
@@ -113,17 +113,17 @@
clk: clock {
compatible = "intel,apl-clk";
#clock-cells = <1>;
- u-boot,dm-pre-proper;
+ bootph-some-ram;
};
cpus {
- u-boot,dm-pre-proper;
+ bootph-some-ram;
#address-cells = <1>;
#size-cells = <0>;
cpu_0: cpu@0 {
- u-boot,dm-pre-proper;
- u-boot,dm-spl;
+ bootph-some-ram;
+ bootph-pre-ram;
device_type = "cpu";
compatible = "intel,apl-cpu";
reg = <0>;
@@ -154,7 +154,7 @@
};
acpi_gpe: general-purpose-events {
- u-boot,dm-pre-proper;
+ bootph-some-ram;
reg = <IOMAP_ACPI_BASE IOMAP_ACPI_SIZE>;
compatible = "intel,acpi-gpe";
interrupt-controller;
@@ -174,14 +174,14 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000
0x42000000 0x0 0xb0000000 0xb0000000 0 0x10000000
0x01000000 0x0 0x1000 0x1000 0 0xefff>;
u-boot,skip-auto-config-until-reloc;
host_bridge: host-bridge@0,0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00000000 0 0 0 0>;
compatible = "intel,apl-hostbridge";
pciex-region-size = <0x10000000>;
@@ -197,7 +197,7 @@
fsp_s: fsp-s {
};
fsp_m: fsp-m {
- u-boot,dm-spl;
+ bootph-pre-ram;
};
nhlt {
@@ -206,20 +206,20 @@
};
punit@0,1 {
- u-boot,dm-pre-proper;
- u-boot,dm-spl;
+ bootph-some-ram;
+ bootph-pre-ram;
reg = <0x00000800 0 0 0 0>;
compatible = "intel,apl-punit";
};
gma@2,0 {
- u-boot,dm-pre-proper;
+ bootph-some-ram;
reg = <0x00001000 0 0 0 0>;
compatible = "fsp-fb";
};
p2sb: p2sb@d,0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x02006810 0 0 0 0>;
compatible = "intel,p2sb";
early-regs = <IOMAP_P2SB_BAR 0x100000>;
@@ -227,12 +227,12 @@
n {
compatible = "intel,apl-pinctrl";
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,p2sb-port-id = <PID_GPIO_N>;
acpi,path = "\\_SB.GPO0";
gpio_n: gpio-n {
compatible = "intel,gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-controller;
#gpio-cells = <2>;
linux-name = "INT3452:00";
@@ -240,14 +240,14 @@
};
nw {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,apl-pinctrl";
intel,p2sb-port-id = <PID_GPIO_NW>;
#gpio-cells = <2>;
acpi,path = "\\_SB.GPO1";
gpio_nw: gpio-nw {
compatible = "intel,gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-controller;
#gpio-cells = <2>;
linux-name = "INT3452:01";
@@ -255,14 +255,14 @@
};
w {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,apl-pinctrl";
intel,p2sb-port-id = <PID_GPIO_W>;
#gpio-cells = <2>;
acpi,path = "\\_SB.GPO2";
gpio_w: gpio-w {
compatible = "intel,gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-controller;
#gpio-cells = <2>;
linux-name = "INT3452:02";
@@ -270,14 +270,14 @@
};
sw {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,apl-pinctrl";
intel,p2sb-port-id = <PID_GPIO_SW>;
#gpio-cells = <2>;
acpi,path = "\\_SB.GPO3";
gpio_sw: gpio-sw {
compatible = "intel,gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-controller;
#gpio-cells = <2>;
linux-name = "INT3452:03";
@@ -285,7 +285,7 @@
};
itss {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,itss";
intel,p2sb-port-id = <PID_ITSS>;
intel,pmc-routes = <
@@ -301,7 +301,7 @@
};
pmc@d,1 {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x6900 0 0 0 0>;
/*
@@ -348,8 +348,8 @@
};
spi: fast-spi@d,2 {
- u-boot,dm-pre-proper;
- u-boot,dm-spl;
+ bootph-some-ram;
+ bootph-pre-ram;
reg = <0x02006a10 0 0 0 0>;
#address-cells = <1>;
#size-cells = <0>;
@@ -360,8 +360,8 @@
fwstore_spi: spi-flash@0 {
#size-cells = <1>;
#address-cells = <1>;
- u-boot,dm-pre-proper;
- u-boot,dm-spl;
+ bootph-some-ram;
+ bootph-pre-ram;
reg = <0>;
m25p,fast-read;
compatible = "winbond,w25q128fw",
@@ -369,12 +369,12 @@
rw-mrc-cache {
label = "rw-mrc-cache";
reg = <0x008e0000 0x00010000>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
rw-var-mrc-cache {
label = "rw-mrc-cache";
reg = <0x008f0000 0x0001000>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
};
};
@@ -442,7 +442,7 @@
compatible = "intel,apl-i2c", "snps,designware-i2c-pci";
reg = <0x0200b210 0 0 0 0>;
early-regs = <IOMAP_I2C2_BASE 0x1000>;
- u-boot,dm-pre-proper;
+ bootph-some-ram;
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
@@ -453,7 +453,7 @@
tpm: tpm@50 {
reg = <0x50>;
compatible = "google,cr50";
- u-boot,dm-pre-proper;
+ bootph-some-ram;
u-boot,i2c-offset-len = <0>;
ready-gpios = <&gpio_n 28 GPIO_ACTIVE_LOW>;
interrupts-extended = <&acpi_gpe GPIO_28_IRQ
@@ -577,7 +577,7 @@
serial: serial@18,2 {
reg = <0x0200c210 0 0 0 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,apl-ns16550";
early-regs = <0xde000000 0x20>;
reg-shift = <2>;
@@ -603,7 +603,7 @@
pch: pch@1f,0 {
reg = <0x0000f800 0 0 0 0>;
compatible = "intel,apl-pch";
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <1>;
@@ -611,10 +611,10 @@
compatible = "intel,apl-lpc";
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
cros_ec: cros-ec {
- u-boot,dm-pre-proper;
- u-boot,dm-vpl;
+ bootph-some-ram;
+ bootph-verify;
compatible = "google,cros-ec-lpc";
reg = <0x204 1 0x200 1 0x880 0x80>;
@@ -785,7 +785,7 @@
};
&fsp_s {
- u-boot,dm-pre-proper;
+ bootph-some-ram;
fsps,ish-enable = <0>;
fsps,enable-sata = <0>;
@@ -1253,5 +1253,5 @@
&rtc {
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-proper;
+ bootph-some-ram;
};
diff --git a/arch/x86/dts/chromebook_link.dts b/arch/x86/dts/chromebook_link.dts
index 11ff520ac2a..36956f40bd7 100644
--- a/arch/x86/dts/chromebook_link.dts
+++ b/arch/x86/dts/chromebook_link.dts
@@ -71,7 +71,7 @@
pch_pinctrl {
compatible = "intel,x86-pinctrl";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0>;
gpio_a0 {
@@ -127,7 +127,7 @@
};
gpio_a10 {
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-offset = <0 10>;
mode-gpio;
direction = <PIN_INPUT>;
@@ -187,21 +187,21 @@
};
gpio_b9 {
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-offset = <0x30 9>;
mode-gpio;
direction = <PIN_INPUT>;
};
gpio_b10 {
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-offset = <0x30 10>;
mode-gpio;
direction = <PIN_INPUT>;
};
gpio_b11 {
- u-boot,dm-pre-reloc;
+ bootph-all;
gpio-offset = <0x30 11>;
mode-gpio;
direction = <PIN_INPUT>;
@@ -226,23 +226,23 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xe0000000 0xe0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x1000 0x1000 0 0xefff>;
northbridge@0,0 {
reg = <0x00000000 0 0 0 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "intel,bd82x6x-northbridge";
board-id-gpios = <&gpio_b 9 0>, <&gpio_b 10 0>,
<&gpio_b 11 0>, <&gpio_a 10 0>;
spd {
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <0>;
elpida_4Gb_1600_x16 {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0>;
data = [92 10 0b 03 04 19 02 02
03 52 01 08 0a 00 fe 00
@@ -278,7 +278,7 @@
00 00 00 00 00 00 00 00];
};
samsung_4Gb_1600_1.35v_x16 {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <1>;
data = [92 11 0b 03 04 19 02 02
03 11 01 08 0a 00 fe 00
@@ -368,7 +368,7 @@
me@16,0 {
reg = <0x0000b000 0 0 0 0>;
compatible = "intel,me";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
usb_1: usb@1a,0 {
@@ -410,7 +410,7 @@
pch@1f,0 {
reg = <0x0000f800 0 0 0 0>;
compatible = "intel,bd82x6x", "intel,pch9";
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <1>;
intel,pirq-routing = <0x8b 0x8a 0x8b 0x8b
@@ -424,11 +424,11 @@
#address-cells = <1>;
#size-cells = <0>;
compatible = "intel,ich9-spi";
- u-boot,dm-pre-reloc;
+ bootph-all;
spi-flash@0 {
#size-cells = <1>;
#address-cells = <1>;
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0>;
m25p,fast-read;
compatible = "winbond,w25q64",
@@ -437,14 +437,14 @@
rw-mrc-cache {
label = "rw-mrc-cache";
reg = <0x003e0000 0x00010000>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
};
};
gpio_a: gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <0 0x10>;
@@ -453,7 +453,7 @@
gpio_b: gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <0x30 0x10>;
@@ -462,7 +462,7 @@
gpio_c: gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <0x40 0x10>;
@@ -473,7 +473,7 @@
compatible = "intel,bd82x6x-lpc";
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,gen-dec = <0x800 0xfc 0x900 0xfc>;
cros-ec@200 {
compatible = "google,cros-ec";
@@ -496,7 +496,7 @@
sata@1f,2 {
compatible = "intel,pantherpoint-ahci";
reg = <0x0000fa00 0 0 0 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,sata-mode = "ahci";
intel,sata-port-map = <1>;
intel,sata-port0-gen3-tx = <0x00880a7f>;
@@ -505,7 +505,7 @@
smbus: smbus@1f,3 {
compatible = "intel,ich-i2c";
reg = <0x0000fb00 0 0 0 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
};
@@ -515,9 +515,9 @@
};
microcode {
- u-boot,dm-pre-reloc;
+ bootph-all;
update@0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
#include "microcode/m12306a9_0000001b.dtsi"
};
};
diff --git a/arch/x86/dts/chromebook_samus.dts b/arch/x86/dts/chromebook_samus.dts
index 930ec1ace0e..96705ceed07 100644
--- a/arch/x86/dts/chromebook_samus.dts
+++ b/arch/x86/dts/chromebook_samus.dts
@@ -77,12 +77,12 @@
pch_pinctrl {
compatible = "intel,x86-broadwell-pinctrl";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0>;
/* Put this first: it is the default */
gpio_unused: gpio-unused {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
owner = <OWNER_GPIO>;
@@ -90,7 +90,7 @@
};
gpio_acpi_sci: acpi-sci {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
invert;
@@ -98,7 +98,7 @@
};
gpio_acpi_smi: acpi-smi {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
invert;
@@ -106,14 +106,14 @@
};
gpio_input: gpio-input {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
owner = <OWNER_GPIO>;
};
gpio_input_invert: gpio-input-invert {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
owner = <OWNER_GPIO>;
@@ -121,11 +121,11 @@
};
gpio_native: gpio-native {
- u-boot,dm-pre-reloc;
+ bootph-all;
};
gpio_out_high: gpio-out-high {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_OUTPUT>;
output-value = <1>;
@@ -134,7 +134,7 @@
};
gpio_out_low: gpio-out-low {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_OUTPUT>;
output-value = <0>;
@@ -143,7 +143,7 @@
};
gpio_pirq: gpio-pirq {
- u-boot,dm-pre-reloc;
+ bootph-all;
mode-gpio;
direction = <PIN_INPUT>;
owner = <OWNER_GPIO>;
@@ -151,7 +151,7 @@
};
soc_gpio@0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
config =
<0 &gpio_unused 0>, /* unused */
<1 &gpio_unused 0>, /* unused */
@@ -255,7 +255,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xe0000000 0xe0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x1000 0x1000 0 0xefff>;
@@ -265,14 +265,14 @@
compatible = "intel,broadwell-northbridge";
board-id-gpios = <&gpio_c 5 0>, <&gpio_c 4 0>,
<&gpio_c 3 0>, <&gpio_c 1 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
spd {
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
samsung_4 {
reg = <6>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 04 11 05 0b
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -312,7 +312,7 @@
* columns 10, density 4096 mb, x32
*/
reg = <8>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 04 11 05 0b
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -348,7 +348,7 @@
};
samsung_8 {
reg = <10>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 04 12 05 0a
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -388,7 +388,7 @@
* columns 11, density 4096 mb, x16
*/
reg = <12>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 04 12 05 0a
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -428,7 +428,7 @@
* columns 11, density 8192 mb, x16
*/
reg = <13>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 05 1a 05 0a
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -468,7 +468,7 @@
* columns 11, density 8192 mb, x16
*/
reg = <15>;
- u-boot,dm-pre-reloc;
+ bootph-all;
data = [91 20 f1 03 05 1a 05 0a
03 11 01 08 0a 00 50 01
78 78 90 50 90 11 50 e0
@@ -557,7 +557,7 @@
me@16,0 {
reg = <0x0000b000 0 0 0 0>;
compatible = "intel,me";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
usb_0: usb@1d,0 {
@@ -569,7 +569,7 @@
pch: pch@1f,0 {
reg = <0x0000f800 0 0 0 0>;
compatible = "intel,broadwell-pch";
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <1>;
intel,pirq-routing = <0x8b 0x8a 0x8b 0x8b
@@ -585,12 +585,12 @@
power-enable-gpio = <&gpio_a 23 0>;
spi: spi {
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <0>;
compatible = "intel,ich9-spi";
fwstore_spi: spi-flash@0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
#size-cells = <1>;
#address-cells = <1>;
reg = <0>;
@@ -599,7 +599,7 @@
"jedec,spi-nor";
memory-map = <0xff800000 0x00800000>;
rw-mrc-cache {
- u-boot,dm-pre-reloc;
+ bootph-all;
label = "rw-mrc-cache";
reg = <0x003e0000 0x00010000>;
};
@@ -608,7 +608,7 @@
gpio_a: gpioa {
compatible = "intel,broadwell-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <0 0>;
@@ -617,7 +617,7 @@
gpio_b: gpiob {
compatible = "intel,broadwell-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <1 0>;
@@ -626,7 +626,7 @@
gpio_c: gpioc {
compatible = "intel,broadwell-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
#gpio-cells = <2>;
gpio-controller;
reg = <2 0>;
@@ -637,10 +637,10 @@
compatible = "intel,broadwell-lpc";
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,gen-dec = <0x800 0xfc 0x900 0xfc>;
cros_ec: cros-ec {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "google,cros-ec-lpc";
reg = <0x204 1 0x200 1 0x880 0x80>;
@@ -661,7 +661,7 @@
sata@1f,2 {
compatible = "intel,wildcatpoint-ahci";
reg = <0x0000fa00 0 0 0 0>;
- u-boot,dm-pre-proper;
+ bootph-some-ram;
intel,sata-mode = "ahci";
intel,sata-port-map = <1>;
intel,sata-port0-gen3-tx = <0x72>;
@@ -671,24 +671,24 @@
smbus: smbus@1f,3 {
compatible = "intel,ich-i2c";
reg = <0x0000fb00 0 0 0 0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
};
tpm {
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xfed40000 0x5000>;
compatible = "infineon,slb9635lpc";
secdata {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "google,tpm-secdata";
};
};
microcode {
- u-boot,dm-pre-reloc;
+ bootph-all;
update@0 {
- u-boot,dm-pre-reloc;
+ bootph-all;
#include "microcode/mc0306d4_00000018.dtsi"
};
};
@@ -711,7 +711,7 @@
#address-cells = <1>;
#size-cells = <0>;
nvdata {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "google,cmos-nvdata";
reg = <0x26>;
};
diff --git a/arch/x86/dts/chromebox_panther.dts b/arch/x86/dts/chromebox_panther.dts
index b25f759c79d..242d8522dba 100644
--- a/arch/x86/dts/chromebox_panther.dts
+++ b/arch/x86/dts/chromebox_panther.dts
@@ -29,7 +29,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xe0000000 0xe0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x1000 0x1000 0 0xf000>;
@@ -61,21 +61,21 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x10>;
bank-name = "A";
};
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x30 0x10>;
bank-name = "B";
};
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x10>;
bank-name = "C";
};
diff --git a/arch/x86/dts/conga-qeval20-qa3-e3845.dts b/arch/x86/dts/conga-qeval20-qa3-e3845.dts
index d11e789945a..c6577b30c8d 100644
--- a/arch/x86/dts/conga-qeval20-qa3-e3845.dts
+++ b/arch/x86/dts/conga-qeval20-qa3-e3845.dts
@@ -103,7 +103,7 @@
compatible = "intel,pci-baytrail", "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -200,7 +200,7 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
use-lvl-write-cache;
@@ -208,7 +208,7 @@
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
use-lvl-write-cache;
@@ -216,7 +216,7 @@
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x20>;
bank-name = "C";
use-lvl-write-cache;
@@ -224,7 +224,7 @@
gpiod {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x60 0x20>;
bank-name = "D";
use-lvl-write-cache;
@@ -232,7 +232,7 @@
gpioe {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x80 0x20>;
bank-name = "E";
use-lvl-write-cache;
@@ -240,7 +240,7 @@
gpiof {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xA0 0x20>;
bank-name = "F";
use-lvl-write-cache;
diff --git a/arch/x86/dts/coreboot.dts b/arch/x86/dts/coreboot.dts
index d21978d6e09..f9ff5346a79 100644
--- a/arch/x86/dts/coreboot.dts
+++ b/arch/x86/dts/coreboot.dts
@@ -33,11 +33,11 @@
pci {
compatible = "pci-x86";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
serial: serial {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "coreboot-serial";
};
diff --git a/arch/x86/dts/cougarcanyon2.dts b/arch/x86/dts/cougarcanyon2.dts
index 58395b5eb6b..4833aab21ce 100644
--- a/arch/x86/dts/cougarcanyon2.dts
+++ b/arch/x86/dts/cougarcanyon2.dts
@@ -92,7 +92,7 @@
#address-cells = <3>;
#size-cells = <2>;
compatible = "pci-x86";
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -100,7 +100,7 @@
pch@1f,0 {
reg = <0x0000f800 0 0 0 0>;
compatible = "intel,bd82x6x";
- u-boot,dm-pre-reloc;
+ bootph-all;
#address-cells = <1>;
#size-cells = <1>;
@@ -164,21 +164,21 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x10>;
bank-name = "A";
};
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x30 0x10>;
bank-name = "B";
};
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x10>;
bank-name = "C";
};
diff --git a/arch/x86/dts/crownbay.dts b/arch/x86/dts/crownbay.dts
index 57683525312..64282303fb8 100644
--- a/arch/x86/dts/crownbay.dts
+++ b/arch/x86/dts/crownbay.dts
@@ -71,7 +71,7 @@
#address-cells = <3>;
#size-cells = <2>;
compatible = "pci-x86";
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x40000000 0x40000000 0 0x80000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -80,14 +80,14 @@
#address-cells = <3>;
#size-cells = <2>;
compatible = "pci-bridge";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x0000b800 0x0 0x0 0x0 0x0>;
topcliff@0,0 {
#address-cells = <3>;
#size-cells = <2>;
compatible = "pci-bridge";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00010000 0x0 0x0 0x0 0x0>;
pciuart0: uart@a,1 {
@@ -96,7 +96,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00025100 0x0 0x0 0x0 0x0
0x01025110 0x0 0x0 0x0 0x0>;
reg-shift = <0>;
@@ -110,7 +110,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00025200 0x0 0x0 0x0 0x0
0x01025210 0x0 0x0 0x0 0x0>;
reg-shift = <0>;
@@ -124,7 +124,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00025300 0x0 0x0 0x0 0x0
0x01025310 0x0 0x0 0x0 0x0>;
reg-shift = <0>;
@@ -138,7 +138,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x00025400 0x0 0x0 0x0 0x0
0x01025410 0x0 0x0 0x0 0x0>;
reg-shift = <0>;
@@ -233,14 +233,14 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
};
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
};
diff --git a/arch/x86/dts/dfi-bt700.dtsi b/arch/x86/dts/dfi-bt700.dtsi
index c077a84574f..868cea4d187 100644
--- a/arch/x86/dts/dfi-bt700.dtsi
+++ b/arch/x86/dts/dfi-bt700.dtsi
@@ -101,7 +101,7 @@
compatible = "intel,pci-baytrail", "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -112,7 +112,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x0200f310 0x0 0x0 0x0 0x0>;
reg-shift = <2>;
clock-frequency = <58982400>;
@@ -211,7 +211,7 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
use-lvl-write-cache;
@@ -219,7 +219,7 @@
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
use-lvl-write-cache;
@@ -227,7 +227,7 @@
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x20>;
bank-name = "C";
use-lvl-write-cache;
@@ -235,7 +235,7 @@
gpiod {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x60 0x20>;
bank-name = "D";
use-lvl-write-cache;
@@ -243,7 +243,7 @@
gpioe {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x80 0x20>;
bank-name = "E";
use-lvl-write-cache;
@@ -251,7 +251,7 @@
gpiof {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xA0 0x20>;
bank-name = "F";
use-lvl-write-cache;
diff --git a/arch/x86/dts/edison.dts b/arch/x86/dts/edison.dts
index b3658b8c304..7af8507e456 100644
--- a/arch/x86/dts/edison.dts
+++ b/arch/x86/dts/edison.dts
@@ -55,7 +55,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -130,7 +130,7 @@
reset {
compatible = "intel,reset-tangier";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
pinctrl {
diff --git a/arch/x86/dts/efi-x86_app.dts b/arch/x86/dts/efi-x86_app.dts
index a5316e2a1a7..59e2e402d5e 100644
--- a/arch/x86/dts/efi-x86_app.dts
+++ b/arch/x86/dts/efi-x86_app.dts
@@ -23,10 +23,11 @@
reset {
compatible = "efi,reset";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
efi-fb {
compatible = "efi-fb";
+ bootph-some-ram;
};
};
diff --git a/arch/x86/dts/efi-x86_payload.dts b/arch/x86/dts/efi-x86_payload.dts
index 087865f2256..1a6dd7dd703 100644
--- a/arch/x86/dts/efi-x86_payload.dts
+++ b/arch/x86/dts/efi-x86_payload.dts
@@ -33,7 +33,7 @@
pci {
compatible = "pci-x86";
- u-boot,dm-pre-reloc;
+ bootph-all;
};
efi-fb {
diff --git a/arch/x86/dts/galileo.dts b/arch/x86/dts/galileo.dts
index 4120e8f5c46..08be190eda5 100644
--- a/arch/x86/dts/galileo.dts
+++ b/arch/x86/dts/galileo.dts
@@ -69,7 +69,7 @@
#address-cells = <3>;
#size-cells = <2>;
compatible = "pci-x86";
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x90000000 0x90000000 0 0x20000000
0x42000000 0x0 0xb0000000 0xb0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -80,7 +80,7 @@
"pciclass,070002",
"pciclass,0700",
"ns16550";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x0000a500 0x0 0x0 0x0 0x0
0x0200a510 0x0 0x0 0x0 0x0>;
reg-shift = <2>;
@@ -147,14 +147,14 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
};
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
};
diff --git a/arch/x86/dts/minnowmax.dts b/arch/x86/dts/minnowmax.dts
index 466309f2b8d..f44b9bbc53e 100644
--- a/arch/x86/dts/minnowmax.dts
+++ b/arch/x86/dts/minnowmax.dts
@@ -116,7 +116,7 @@
compatible = "intel,pci-baytrail", "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0x80000000 0x80000000 0 0x40000000
0x42000000 0x0 0xc0000000 0xc0000000 0 0x20000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -213,7 +213,7 @@
gpioa {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0 0x20>;
bank-name = "A";
use-lvl-write-cache;
@@ -221,7 +221,7 @@
gpiob {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x20 0x20>;
bank-name = "B";
use-lvl-write-cache;
@@ -229,7 +229,7 @@
gpioc {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x40 0x20>;
bank-name = "C";
use-lvl-write-cache;
@@ -237,7 +237,7 @@
gpiod {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x60 0x20>;
bank-name = "D";
use-lvl-write-cache;
@@ -245,7 +245,7 @@
gpioe {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0x80 0x20>;
bank-name = "E";
use-lvl-write-cache;
@@ -253,7 +253,7 @@
gpiof {
compatible = "intel,ich6-gpio";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0xA0 0x20>;
bank-name = "F";
use-lvl-write-cache;
diff --git a/arch/x86/dts/qemu-x86_i440fx.dts b/arch/x86/dts/qemu-x86_i440fx.dts
index 6556e9ebcd8..3bb2f121de3 100644
--- a/arch/x86/dts/qemu-x86_i440fx.dts
+++ b/arch/x86/dts/qemu-x86_i440fx.dts
@@ -31,12 +31,12 @@
cpus {
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
cpu@0 {
device_type = "cpu";
compatible = "cpu-qemu";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0>;
intel,apic-id = <0>;
};
@@ -46,7 +46,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -54,11 +54,11 @@
pch@1,0 {
reg = <0x00000800 0 0 0 0>;
compatible = "intel,pch7";
- u-boot,dm-pre-reloc;
+ bootph-all;
irq-router {
compatible = "intel,irq-router";
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,pirq-config = "pci";
intel,pirq-link = <0x60 4>;
intel,pirq-mask = <0x0e40>;
diff --git a/arch/x86/dts/qemu-x86_q35.dts b/arch/x86/dts/qemu-x86_q35.dts
index d0830892e83..63931cd6dd9 100644
--- a/arch/x86/dts/qemu-x86_q35.dts
+++ b/arch/x86/dts/qemu-x86_q35.dts
@@ -42,12 +42,12 @@
cpus {
#address-cells = <1>;
#size-cells = <0>;
- u-boot,dm-pre-reloc;
+ bootph-all;
cpu@0 {
device_type = "cpu";
compatible = "cpu-qemu";
- u-boot,dm-pre-reloc;
+ bootph-all;
reg = <0>;
intel,apic-id = <0>;
};
@@ -57,7 +57,7 @@
compatible = "pci-x86";
#address-cells = <3>;
#size-cells = <2>;
- u-boot,dm-pre-reloc;
+ bootph-all;
ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000
0x42000000 0x0 0xd0000000 0xd0000000 0 0x10000000
0x01000000 0x0 0x2000 0x2000 0 0xe000>;
@@ -65,11 +65,11 @@
pch@1f,0 {
reg = <0x0000f800 0 0 0 0>;
compatible = "intel,pch9";
- u-boot,dm-pre-reloc;
+ bootph-all;
irq-router {
compatible = "intel,irq-router";
- u-boot,dm-pre-reloc;
+ bootph-all;
intel,pirq-config = "pci";
intel,actl-8bit;
intel,actl-addr = <0x44>;
diff --git a/arch/x86/dts/reset.dtsi b/arch/x86/dts/reset.dtsi
index f2ba2fb5e84..1f1ff9f64db 100644
--- a/arch/x86/dts/reset.dtsi
+++ b/arch/x86/dts/reset.dtsi
@@ -1,6 +1,6 @@
/ {
reset: reset {
compatible = "x86,reset";
- u-boot,dm-pre-proper;
+ bootph-some-ram;
};
};
diff --git a/arch/x86/dts/rtc.dtsi b/arch/x86/dts/rtc.dtsi
index 942cc937dc4..1c2eb2891a7 100644
--- a/arch/x86/dts/rtc.dtsi
+++ b/arch/x86/dts/rtc.dtsi
@@ -1,7 +1,7 @@
/ {
rtc: rtc {
compatible = "motorola,mc146818";
- u-boot,dm-pre-proper;
+ bootph-some-ram;
reg = <0x70 2>;
};
};
diff --git a/arch/x86/dts/serial.dtsi b/arch/x86/dts/serial.dtsi
index 22f7b54fed3..99022eb21ec 100644
--- a/arch/x86/dts/serial.dtsi
+++ b/arch/x86/dts/serial.dtsi
@@ -1,6 +1,6 @@
/ {
serial: serial {
- u-boot,dm-pre-reloc;
+ bootph-all;
compatible = "ns16550";
reg = <0x3f8 8>;
reg-shift = <0>;
diff --git a/arch/x86/dts/tsc_timer.dtsi b/arch/x86/dts/tsc_timer.dtsi
index 4df8e9d7fcf..9d098df832d 100644
--- a/arch/x86/dts/tsc_timer.dtsi
+++ b/arch/x86/dts/tsc_timer.dtsi
@@ -2,6 +2,6 @@
tsc-timer {
compatible = "x86,tsc-timer";
clock-frequency = <CONFIG_X86_TSC_TIMER_FREQ>;
- u-boot,dm-pre-reloc;
+ bootph-all;
};
};
diff --git a/arch/x86/include/asm/bootm.h b/arch/x86/include/asm/bootm.h
index 109f686f740..3b641783b9c 100644
--- a/arch/x86/include/asm/bootm.h
+++ b/arch/x86/include/asm/bootm.h
@@ -14,14 +14,14 @@ void bootm_announce_and_cleanup(void);
* This boots a kernel image, either 32-bit or 64-bit. It will also work with
* a self-extracting kernel, if you set @image_64bit to false.
*
- * @setup_base: Pointer to the setup.bin information for the kernel
- * @load_address: Pointer to the start of the kernel image
- * @image_64bit: true if the image is a raw 64-bit kernel, false if it
- * is raw 32-bit or any type of self-extracting kernel
- * such as a bzImage.
+ * @setup_base: Address of the setup.bin information for the kernel
+ * @entry: Address of the kernel entry point
+ * @image_64bit: true if the image is a raw 64-bit kernel, or a kernel
+ * which supports booting in 64-bit mode; false if it is raw 32-bit or any type
+ * of self-extracting kernel such as a bzImage.
* Return: -ve error code. This function does not return if the kernel was
* booted successfully.
*/
-int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit);
+int boot_linux_kernel(ulong setup_base, ulong entry, bool image_64bit);
#endif
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h
index 7a3c1f51554..ea816ca7469 100644
--- a/arch/x86/include/asm/bootparam.h
+++ b/arch/x86/include/asm/bootparam.h
@@ -9,19 +9,54 @@
#include <asm/ist.h>
#include <asm/video/edid.h>
-/* setup data types */
-enum {
- SETUP_NONE = 0,
- SETUP_E820_EXT,
- SETUP_DTB,
-};
+/* setup_data/setup_indirect types */
+#define SETUP_NONE 0
+#define SETUP_E820_EXT 1
+#define SETUP_DTB 2
+#define SETUP_PCI 3
+#define SETUP_EFI 4
+#define SETUP_APPLE_PROPERTIES 5
+#define SETUP_JAILHOUSE 6
+#define SETUP_CC_BLOB 7
+#define SETUP_IMA 8
+#define SETUP_RNG_SEED 9
+#define SETUP_ENUM_MAX SETUP_RNG_SEED
+
+#define SETUP_INDIRECT BIT(31)
+#define SETUP_TYPE_MAX (SETUP_ENUM_MAX | SETUP_INDIRECT)
+
+/* ram_size flags */
+#define RAMDISK_IMAGE_START_MASK 0x07FF
+#define RAMDISK_PROMPT_FLAG 0x8000
+#define RAMDISK_LOAD_FLAG 0x4000
+
+/* loadflags */
+#define LOADED_HIGH BIT(0)
+#define KASLR_FLAG BIT(1)
+#define QUIET_FLAG BIT(5)
+#define KEEP_SEGMENTS BIT(6)
+#define CAN_USE_HEAP BIT(7)
+
+#define XLF_KERNEL_64 BIT(0)
+#define XLF_CAN_BE_LOADED_ABOVE_4G BIT(1)
+#define XLF_EFI_HANDOVER_32 BIT(2)
+#define XLF_EFI_HANDOVER_64 BIT(3)
+#define XLF_EFI_KEXEC BIT(4)
/* extensible setup data list node */
struct setup_data {
__u64 next;
__u32 type;
__u32 len;
- __u8 data[0];
+ __u8 data[];
+};
+
+/* extensible setup indirect data node */
+struct setup_indirect {
+ __u32 type;
+ __u32 reserved; /* Reserved, must be set to zero. */
+ __u64 len;
+ __u64 addr;
};
/**
@@ -34,9 +69,6 @@ struct setup_header {
__u16 root_flags;
__u32 syssize;
__u16 ram_size;
-#define RAMDISK_IMAGE_START_MASK 0x07FF
-#define RAMDISK_PROMPT_FLAG 0x8000
-#define RAMDISK_LOAD_FLAG 0x4000
__u16 vid_mode;
__u16 root_dev;
__u16 boot_flag;
@@ -44,15 +76,10 @@ struct setup_header {
__u32 header;
__u16 version;
__u32 realmode_swtch;
- __u16 start_sys;
+ __u16 start_sys_seg;
__u16 kernel_version;
__u8 type_of_loader;
__u8 loadflags;
-#define LOADED_HIGH BIT(0)
-#define KASLR_FLAG BIT(1)
-#define QUIET_FLAG BIT(5)
-#define KEEP_SEGMENTS BIT(6) /* Obsolete */
-#define CAN_USE_HEAP BIT(7)
__u16 setup_move_size;
__u32 code32_start;
__u32 ramdisk_image;
@@ -65,13 +92,8 @@ struct setup_header {
__u32 initrd_addr_max;
__u32 kernel_alignment;
__u8 relocatable_kernel;
- u8 min_alignment;
-#define XLF_KERNEL_64 BIT(0)
-#define XLF_CAN_BE_LOADED_ABOVE_4G BIT(1)
-#define XLF_EFI_HANDOVER_32 BIT(2)
-#define XLF_EFI_HANDOVER_64 BIT(3)
-#define XLF_EFI_KEXEC BIT(4)
- u16 xloadflags;
+ __u8 min_alignment;
+ __u16 xloadflags;
__u32 cmdline_size;
__u32 hardware_subarch;
__u64 hardware_subarch_data;
@@ -81,7 +103,7 @@ struct setup_header {
__u64 pref_address;
__u32 init_size;
__u32 handover_offset;
- u32 kernel_info_offset;
+ __u32 kernel_info_offset;
} __attribute__((packed));
struct sys_desc_table {
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index 3346012d335..073f80b07f1 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -262,6 +262,7 @@ void cpu_call32(ulong code_seg32, ulong target, ulong table);
*
* @setup_base: Pointer to the setup.bin information for the kernel
* @target: Pointer to the start of the kernel image
+ * Return: -EFAULT if the kernel returned; otherwise does not return
*/
int cpu_jump_to_64bit(ulong setup_base, ulong target);
diff --git a/arch/x86/lib/bdinfo.c b/arch/x86/lib/bdinfo.c
index 0cb79b01bd3..15390070fe8 100644
--- a/arch/x86/lib/bdinfo.c
+++ b/arch/x86/lib/bdinfo.c
@@ -8,6 +8,7 @@
#include <common.h>
#include <efi.h>
#include <init.h>
+#include <asm/cpu.h>
#include <asm/efi.h>
#include <asm/global_data.h>
@@ -16,6 +17,11 @@ DECLARE_GLOBAL_DATA_PTR;
void arch_print_bdinfo(void)
{
bdinfo_print_num_l("prev table", gd->arch.table);
+ bdinfo_print_num_l("clock_rate", gd->arch.clock_rate);
+ bdinfo_print_num_l("tsc_base", gd->arch.tsc_base);
+ bdinfo_print_num_l("vendor", gd->arch.x86_vendor);
+ bdinfo_print_str(" name", cpu_vendor_name(gd->arch.x86_vendor));
+ bdinfo_print_num_l("model", gd->arch.x86_model);
if (IS_ENABLED(CONFIG_EFI_STUB))
efi_show_bdinfo();
diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
index 873e2bc176f..61cb7bc6116 100644
--- a/arch/x86/lib/bootm.c
+++ b/arch/x86/lib/bootm.c
@@ -10,6 +10,7 @@
#include <common.h>
#include <bootstage.h>
#include <command.h>
+#include <efi.h>
#include <hang.h>
#include <log.h>
#include <asm/global_data.h>
@@ -149,26 +150,52 @@ error:
return 1;
}
-int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit)
+int boot_linux_kernel(ulong setup_base, ulong entry, bool image_64bit)
{
bootm_announce_and_cleanup();
#ifdef CONFIG_SYS_COREBOOT
timestamp_add_now(TS_U_BOOT_START_KERNEL);
#endif
+
+ /*
+ * Exit EFI boot services just before jumping, after all console
+ * output, since the console won't be available afterwards.
+ */
+ if (IS_ENABLED(CONFIG_EFI_APP)) {
+ int ret;
+
+ ret = efi_store_memory_map(efi_get_priv());
+ if (ret)
+ return ret;
+ printf("Exiting EFI boot services\n");
+ ret = efi_call_exit_boot_services();
+ if (ret)
+ return ret;
+ }
+
if (image_64bit) {
if (!cpu_has_64bit()) {
puts("Cannot boot 64-bit kernel on 32-bit machine\n");
return -EFAULT;
}
- /* At present 64-bit U-Boot does not support booting a
+ /*
+ * At present 64-bit U-Boot only supports booting a 64-bit
* kernel.
- * TODO(sjg@chromium.org): Support booting both 32-bit and
- * 64-bit kernels from 64-bit U-Boot.
+ *
+ * TODO(sjg@chromium.org): Support booting 32-bit kernels from
+ * 64-bit U-Boot
*/
-#if !CONFIG_IS_ENABLED(X86_64)
- return cpu_jump_to_64bit(setup_base, load_address);
-#endif
+ if (CONFIG_IS_ENABLED(X86_64)) {
+ typedef void (*h_func)(ulong zero, ulong setup);
+ h_func func;
+
+ /* jump to Linux with rdi=0, rsi=setup_base */
+ func = (h_func)entry;
+ func(0, setup_base);
+ } else {
+ return cpu_jump_to_64bit(setup_base, entry);
+ }
} else {
/*
* Set %ebx, %ebp, and %edi to 0, %esi to point to the
@@ -190,7 +217,7 @@ int boot_linux_kernel(ulong setup_base, ulong load_address, bool image_64bit)
"movl $0, %%ebp\n"
"cli\n"
"jmp *%[kernel_entry]\n"
- :: [kernel_entry]"a"(load_address),
+ :: [kernel_entry]"a"(entry),
[boot_params] "S"(setup_base),
"b"(0), "D"(0)
);
diff --git a/arch/x86/lib/fsp/fsp_graphics.c b/arch/x86/lib/fsp/fsp_graphics.c
index b07c666caf7..2bcc49f6051 100644
--- a/arch/x86/lib/fsp/fsp_graphics.c
+++ b/arch/x86/lib/fsp/fsp_graphics.c
@@ -106,7 +106,7 @@ static int fsp_video_probe(struct udevice *dev)
vesa->phys_base_ptr = dm_pci_read_bar32(dev, 2);
gd->fb_base = vesa->phys_base_ptr;
- ret = vesa_setup_video_priv(vesa, uc_priv, plat);
+ ret = vesa_setup_video_priv(vesa, vesa->phys_base_ptr, uc_priv, plat);
if (ret)
goto err;
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 9cc04490307..e5ea5129c1e 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -504,13 +504,24 @@ static int do_zboot_info(struct cmd_tbl *cmdtp, int flag, int argc,
static int do_zboot_go(struct cmd_tbl *cmdtp, int flag, int argc,
char *const argv[])
{
+ struct boot_params *params = state.base_ptr;
+ struct setup_header *hdr = &params->hdr;
+ bool image_64bit;
+ ulong entry;
int ret;
disable_interrupts();
+ entry = state.load_address;
+ image_64bit = false;
+ if (IS_ENABLED(CONFIG_X86_RUN_64BIT) &&
+ (hdr->xloadflags & XLF_KERNEL_64)) {
+ entry += 0x200;
+ image_64bit = true;
+ }
+
/* we assume that the kernel is in place */
- ret = boot_linux_kernel((ulong)state.base_ptr, state.load_address,
- false);
+ ret = boot_linux_kernel((ulong)state.base_ptr, entry, image_64bit);
printf("Kernel returned! (err=%d)\n", ret);
return CMD_RET_FAILURE;
@@ -655,7 +666,7 @@ void zimage_dump(struct boot_params *base_ptr)
printf("%-20s %s\n", "", "Ancient kernel, using version 100");
print_num("Version", hdr->version);
print_num("Real mode switch", hdr->realmode_swtch);
- print_num("Start sys", hdr->start_sys);
+ print_num("Start sys seg", hdr->start_sys_seg);
print_num("Kernel version", hdr->kernel_version);
version = get_kernel_version(base_ptr, (void *)state.bzimage_addr);
if (version)