[U-Boot] [PATCH 1/4] x86: BayTrail: southcluster.asl: Change PCI 64 bit address range / region

To allow bigger 64 bit prefetchable PCI regions in Linux, this patch changes the base address and range of the ACPI area passed to Linux. BayTrail can only physically access 36 bit of PCI address space. So just chaning the range without changing the base address won't work here, as 0xf.ffff.ffff is already the maximum address.
With this patch, a maximum of 16 GiB of local DDR is supported. This should be enough for all BayTrail boards though.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org --- arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl b/arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl index dfc768cf7f..2a1c31cdc4 100644 --- a/arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl +++ b/arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl @@ -150,9 +150,9 @@ Device (PCI0) CreateQwordField(MCRS, ^UMEM._MAX, UMAX) CreateQwordField(MCRS, ^UMEM._LEN, ULEN)
- /* Set base address to 48GB and allocate 16GB for PCI space */ - Store(0xc00000000, UMIN) - Store(0x400000000, ULEN) + /* Set base address to 16GB and allocate 48GB for PCI space */ + Store(0x400000000, UMIN) + Store(0xc00000000, ULEN) Add(UMIN, Subtract(ULEN, 1), UMAX)
Return (MCRS)

This is needed for the PCIe hotplug to work correctly on some boards with the newer Linux kernel versions.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com --- include/configs/theadorable-x86-common.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/include/configs/theadorable-x86-common.h b/include/configs/theadorable-x86-common.h index a9aef12c30..dd2bfb0a10 100644 --- a/include/configs/theadorable-x86-common.h +++ b/include/configs/theadorable-x86-common.h @@ -57,8 +57,7 @@ "addmtd=setenv bootargs ${bootargs} ${mtdparts}\0" \ "addmisc=setenv bootargs ${bootargs} " \ "intel-spi.writeable=1 vmalloc=300M " \ - "pci=realloc=on,hpmemsize=0x12000000," \ - "hpmemprefsize=0,hpiosize=0\0" \ + "pci=realloc=on,hpmemsize=0,hpiosize=0\0" \ "bootcmd=if env exists recovery_status;" \ "then run swupdate;" \ "else run yocto_boot;run swupdate;" \

On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
This is needed for the PCIe hotplug to work correctly on some boards with the newer Linux kernel versions.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com
include/configs/theadorable-x86-common.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
I cannot find 'hpmemprefsize' as a kernel command line parameter, so I assume removing it does not introduce any issue.
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Tue, Oct 23, 2018 at 12:54 PM Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
This is needed for the PCIe hotplug to work correctly on some boards with the newer Linux kernel versions.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com
include/configs/theadorable-x86-common.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
I cannot find 'hpmemprefsize' as a kernel command line parameter, so I assume removing it does not introduce any issue.
Reviewed-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86, thanks!

To enable the root device selection (kernel cmd-line) via PARTUUID, this patch enables CMD_PART on all missing theadorable-x86 boards and changes the default environment to generate the root=PARTUUID string automatically.
This fixes problems that have been noticed on systems with multiple SATA/AHCI controller connected via PCIe, where the device name for the root device / partition (/dev/sdaX) was incorrect.
Signed-off-by: Stefan Roese sr@denx.de --- ...able-x86-conga-qa3-e3845-pcie-x4_defconfig | 1 + .../theadorable-x86-conga-qa3-e3845_defconfig | 1 + include/configs/theadorable-x86-common.h | 35 +++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-)
diff --git a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig index a3865024e8..e9febb465b 100644 --- a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig +++ b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig @@ -26,6 +26,7 @@ CONFIG_CMD_CPU=y CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y diff --git a/configs/theadorable-x86-conga-qa3-e3845_defconfig b/configs/theadorable-x86-conga-qa3-e3845_defconfig index 8cd170feb7..ee3d7f01ab 100644 --- a/configs/theadorable-x86-conga-qa3-e3845_defconfig +++ b/configs/theadorable-x86-conga-qa3-e3845_defconfig @@ -25,6 +25,7 @@ CONFIG_CMD_CPU=y CONFIG_CMD_GPIO=y CONFIG_CMD_I2C=y CONFIG_CMD_MMC=y +CONFIG_CMD_PART=y CONFIG_CMD_SF=y CONFIG_CMD_SPI=y CONFIG_CMD_USB=y diff --git a/include/configs/theadorable-x86-common.h b/include/configs/theadorable-x86-common.h index dd2bfb0a10..e0a033bec1 100644 --- a/include/configs/theadorable-x86-common.h +++ b/include/configs/theadorable-x86-common.h @@ -62,33 +62,40 @@ "then run swupdate;" \ "else run yocto_boot;run swupdate;" \ "fi\0" \ + "setroot=part uuid scsi 0:${partnr} uuid;" \ + "setenv root PARTUUID=${uuid}\0" \ + "setroot_ubuntu=setenv partnr ${ubuntu_part};run setroot\0" \ + "setroot_yocto=setenv partnr ${yocto_part};run setroot\0" \ "ubuntu_args=setenv bootargs " \ - "root=/dev/sda${ubuntu_part} ro\0" \ + "root=${root} ro\0" \ "ubuntu_args_quiet=setenv bootargs " \ - "root=/dev/sda${ubuntu_part} ro quiet\0" \ + "root=${root} ro quiet\0" \ "ubuntu_load=load scsi 0:${ubuntu_part} 03000000 " \ "/boot/vmlinuz-${kernel-ver};" \ "load scsi 0:${ubuntu_part} 04000000 " \ "/boot/initrd.img-${kernel-ver}\0" \ - "ubuntu_boot=run ubuntu_args_quiet addmtd addmisc " \ - "ubuntu_load boot\0" \ - "ubuntu_boot_console=run ubuntu_args addtty_ubuntu " \ + "ubuntu_boot=run setroot_ubuntu ubuntu_args_quiet " \ "addmtd addmisc ubuntu_load boot\0" \ - "net_args=setenv bootargs root=/dev/sda${ubuntu_part} ro\0" \ - "net_boot=run start_eth net_args addtty_yocto addmtd addmisc;" \ + "ubuntu_boot_console=run setroot_ubuntu ubuntu_args " \ + "addtty_ubuntu addmtd addmisc ubuntu_load boot\0" \ + "net_args=setenv bootargs root=${root} ro\0" \ + "net_boot=run start_eth setroot_ubuntu net_args " \ + "addtty_ubuntu addmtd addmisc;" \ "tftp 03000000 ${tftpdir}/bzImage;" \ "load scsi 0:${ubuntu_part} 04000000 " \ "/boot/initrd.img-${kernel-ver};" \ "run boot\0" \ - "yocto_args=setenv bootargs root=/dev/sda${yocto_part} " \ - "panic=1\0" \ - "yocto_args_fast=setenv bootargs root=/dev/sda${yocto_part} " \ + "yocto_args=setenv bootargs root=${root} " \ + "panic=1\0" \ + "yocto_args_fast=setenv bootargs root=${root} " \ "quiet panic=1\0" \ - "yocto_boot=run yocto_args addmtd addmisc addtty_yocto;" \ + "yocto_boot=run setroot_yocto yocto_args addmtd addmisc " \ + "addtty_yocto;" \ "if run yocto_load;then zboot 03000000;fi\0" \ - "yocto_boot_fast=run yocto_args_fast addmtd addmisc " \ - "addtty_yocto yocto_load;zboot 03000000\0" \ - "yocto_boot_tftp=run yocto_args addmtd addmisc addtty_yocto " \ + "yocto_boot_fast=run setroot_yocto yocto_args_fast addmtd " \ + "addmisc addtty_yocto yocto_load;zboot 03000000\0" \ + "yocto_boot_tftp=run setroot_yocto yocto_args addmtd " \ + "addmisc addtty_yocto " \ "start_eth yocto_load_tftp;zboot 03000000\0" \ "yocto_kernel=bzImage\0" \ "yocto_load=load scsi 0:${yocto_part} 03000000 " \

On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
To enable the root device selection (kernel cmd-line) via PARTUUID, this patch enables CMD_PART on all missing theadorable-x86 boards and changes the default environment to generate the root=PARTUUID string automatically.
This fixes problems that have been noticed on systems with multiple SATA/AHCI controller connected via PCIe, where the device name for the root device / partition (/dev/sdaX) was incorrect.
Signed-off-by: Stefan Roese sr@denx.de
...able-x86-conga-qa3-e3845-pcie-x4_defconfig | 1 + .../theadorable-x86-conga-qa3-e3845_defconfig | 1 + include/configs/theadorable-x86-common.h | 35 +++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Tue, Oct 23, 2018 at 12:54 PM Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
To enable the root device selection (kernel cmd-line) via PARTUUID, this patch enables CMD_PART on all missing theadorable-x86 boards and changes the default environment to generate the root=PARTUUID string automatically.
This fixes problems that have been noticed on systems with multiple SATA/AHCI controller connected via PCIe, where the device name for the root device / partition (/dev/sdaX) was incorrect.
Signed-off-by: Stefan Roese sr@denx.de
...able-x86-conga-qa3-e3845-pcie-x4_defconfig | 1 + .../theadorable-x86-conga-qa3-e3845_defconfig | 1 + include/configs/theadorable-x86-common.h | 35 +++++++++++-------- 3 files changed, 23 insertions(+), 14 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86, thanks!

The build breaks because its not fitting the U-Boot binary into the ROM image. So lets move VGA BIOS a bit to make room for the grown U-Boot binary.
Signed-off-by: Stefan Roese sr@denx.de --- configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig | 2 +- configs/theadorable-x86-conga-qa3-e3845_defconfig | 2 +- configs/theadorable-x86-dfi-bt700_defconfig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig index e9febb465b..29e62041c2 100644 --- a/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig +++ b/configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig @@ -6,7 +6,7 @@ CONFIG_INTERNAL_UART=y CONFIG_FLASH_DESCRIPTOR_FILE="descriptor-pcie-x4.bin" CONFIG_SMP=y CONFIG_HAVE_VGA_BIOS=y -CONFIG_VGA_BIOS_ADDR=0xfffa0000 +CONFIG_VGA_BIOS_ADDR=0xfffb0000 CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_MP_TABLE=y CONFIG_GENERATE_ACPI_TABLE=y diff --git a/configs/theadorable-x86-conga-qa3-e3845_defconfig b/configs/theadorable-x86-conga-qa3-e3845_defconfig index ee3d7f01ab..b05634db03 100644 --- a/configs/theadorable-x86-conga-qa3-e3845_defconfig +++ b/configs/theadorable-x86-conga-qa3-e3845_defconfig @@ -5,7 +5,7 @@ CONFIG_TARGET_THEADORABLE_X86_CONGA_QA3_E3845=y CONFIG_INTERNAL_UART=y CONFIG_SMP=y CONFIG_HAVE_VGA_BIOS=y -CONFIG_VGA_BIOS_ADDR=0xfffa0000 +CONFIG_VGA_BIOS_ADDR=0xfffb0000 CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_MP_TABLE=y CONFIG_GENERATE_ACPI_TABLE=y diff --git a/configs/theadorable-x86-dfi-bt700_defconfig b/configs/theadorable-x86-dfi-bt700_defconfig index 71ff04e7a7..741312f2ce 100644 --- a/configs/theadorable-x86-dfi-bt700_defconfig +++ b/configs/theadorable-x86-dfi-bt700_defconfig @@ -4,7 +4,7 @@ CONFIG_VENDOR_DFI=y CONFIG_TARGET_THEADORABLE_X86_DFI_BT700=y CONFIG_SMP=y CONFIG_HAVE_VGA_BIOS=y -CONFIG_VGA_BIOS_ADDR=0xfffa0000 +CONFIG_VGA_BIOS_ADDR=0xfffb0000 CONFIG_GENERATE_PIRQ_TABLE=y CONFIG_GENERATE_MP_TABLE=y CONFIG_GENERATE_ACPI_TABLE=y

On Mon, Oct 22, 2018 at 8:09 PM Stefan Roese sr@denx.de wrote:
The build breaks because its not fitting the U-Boot binary into the ROM image. So lets move VGA BIOS a bit to make room for the grown U-Boot binary.
Signed-off-by: Stefan Roese sr@denx.de
configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig | 2 +- configs/theadorable-x86-conga-qa3-e3845_defconfig | 2 +- configs/theadorable-x86-dfi-bt700_defconfig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Tue, Oct 23, 2018 at 12:54 PM Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Oct 22, 2018 at 8:09 PM Stefan Roese sr@denx.de wrote:
The build breaks because its not fitting the U-Boot binary into the ROM image. So lets move VGA BIOS a bit to make room for the grown U-Boot binary.
Signed-off-by: Stefan Roese sr@denx.de
configs/theadorable-x86-conga-qa3-e3845-pcie-x4_defconfig | 2 +- configs/theadorable-x86-conga-qa3-e3845_defconfig | 2 +- configs/theadorable-x86-dfi-bt700_defconfig | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86, thanks!

On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
To allow bigger 64 bit prefetchable PCI regions in Linux, this patch changes the base address and range of the ACPI area passed to Linux. BayTrail can only physically access 36 bit of PCI address space. So just chaning the range without changing the base address won't work here, as 0xf.ffff.ffff is already the maximum address.
With this patch, a maximum of 16 GiB of local DDR is supported. This should be enough for all BayTrail boards though.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com

On Tue, Oct 23, 2018 at 12:54 PM Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Oct 22, 2018 at 8:08 PM Stefan Roese sr@denx.de wrote:
To allow bigger 64 bit prefetchable PCI regions in Linux, this patch changes the base address and range of the ACPI area passed to Linux. BayTrail can only physically access 36 bit of PCI address space. So just chaning the range without changing the base address won't work here, as 0xf.ffff.ffff is already the maximum address.
With this patch, a maximum of 16 GiB of local DDR is supported. This should be enough for all BayTrail boards though.
Signed-off-by: Stefan Roese sr@denx.de Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
arch/x86/include/asm/arch-baytrail/acpi/southcluster.asl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Reviewed-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86, thanks!
participants (2)
-
Bin Meng
-
Stefan Roese