summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-01-30 18:09:01 +0300
committerTom Rini <trini@konsulko.com>2018-01-30 18:09:01 +0300
commitf1554b28d31250df5418254e79e0bf75ff3b2e54 (patch)
treeda4d313fa10648a052f132df1432a860b9cffd18
parenteef11acebaa48e241e9187c717dc92d3e175c119 (diff)
parente21b04fec465c84a51ca6fc6450263e0c0953fcb (diff)
downloadu-boot-f1554b28d31250df5418254e79e0bf75ff3b2e54.tar.xz
Merge git://git.denx.de/u-boot-x86
-rw-r--r--arch/x86/cpu/quark/smc.c13
-rw-r--r--arch/x86/include/asm/acpi_table.h9
-rw-r--r--arch/x86/include/asm/arch-tangier/acpi/southcluster.asl2
-rw-r--r--arch/x86/include/asm/bootparam.h1
-rw-r--r--arch/x86/lib/acpi_table.c12
-rw-r--r--arch/x86/lib/zimage.c15
-rw-r--r--board/google/Kconfig1
-rw-r--r--cmd/bdinfo.c2
-rw-r--r--drivers/misc/qfw.c8
-rw-r--r--include/configs/x86-common.h2
10 files changed, 48 insertions, 17 deletions
diff --git a/arch/x86/cpu/quark/smc.c b/arch/x86/cpu/quark/smc.c
index 3ffe92b67b..0195b56a52 100644
--- a/arch/x86/cpu/quark/smc.c
+++ b/arch/x86/cpu/quark/smc.c
@@ -17,15 +17,6 @@
#include "hte.h"
#include "smc.h"
-/* t_rfc values (in picoseconds) per density */
-static const uint32_t t_rfc[5] = {
- 90000, /* 512Mb */
- 110000, /* 1Gb */
- 160000, /* 2Gb */
- 300000, /* 4Gb */
- 350000, /* 8Gb */
-};
-
/* t_ck clock period in picoseconds per speed index 800, 1066, 1333 */
static const uint32_t t_ck[3] = {
2500,
@@ -35,8 +26,12 @@ static const uint32_t t_ck[3] = {
/* Global variables */
static const uint16_t ddr_wclk[] = {193, 158};
+#ifdef BACKUP_WCTL
static const uint16_t ddr_wctl[] = {1, 217};
+#endif
+#ifdef BACKUP_WCMD
static const uint16_t ddr_wcmd[] = {1, 220};
+#endif
#ifdef BACKUP_RCVN
static const uint16_t ddr_rcvn[] = {129, 498};
diff --git a/arch/x86/include/asm/acpi_table.h b/arch/x86/include/asm/acpi_table.h
index 80038504dd..d5d77cc011 100644
--- a/arch/x86/include/asm/acpi_table.h
+++ b/arch/x86/include/asm/acpi_table.h
@@ -330,6 +330,15 @@ void enter_acpi_mode(int pm1_cnt);
ulong write_acpi_tables(ulong start);
/**
+ * acpi_get_rsdp_addr() - get ACPI RSDP table address
+ *
+ * This routine returns the ACPI RSDP table address in the system memory.
+ *
+ * @return: ACPI RSDP table address
+ */
+ulong acpi_get_rsdp_addr(void);
+
+/**
* acpi_find_fadt() - find ACPI FADT table in the sytem memory
*
* This routine parses the ACPI table to locate the ACPI FADT table.
diff --git a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl
index 2b3b897c5b..5289b14957 100644
--- a/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl
+++ b/arch/x86/include/asm/arch-tangier/acpi/southcluster.asl
@@ -284,7 +284,7 @@ Device (PCI0)
Return (STA_VISIBLE)
}
- Method (_CRS, 0, NotSerialized)
+ Method (_CRS, 0, Serialized)
{
Name (RBUF, ResourceTemplate ()
{
diff --git a/arch/x86/include/asm/bootparam.h b/arch/x86/include/asm/bootparam.h
index 48b138c6b0..90768a99ce 100644
--- a/arch/x86/include/asm/bootparam.h
+++ b/arch/x86/include/asm/bootparam.h
@@ -66,6 +66,7 @@ struct setup_header {
__u64 pref_address;
__u32 init_size;
__u32 handover_offset;
+ __u64 acpi_rsdp_addr;
} __attribute__((packed));
struct sys_desc_table {
diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c
index 3eb101105b..0d448cffc9 100644
--- a/arch/x86/lib/acpi_table.c
+++ b/arch/x86/lib/acpi_table.c
@@ -27,6 +27,9 @@
*/
extern const unsigned char AmlCode[];
+/* ACPI RSDP address to be used in boot parameters */
+static ulong acpi_rsdp_addr;
+
static void acpi_write_rsdp(struct acpi_rsdp *rsdp, struct acpi_rsdt *rsdt,
struct acpi_xsdt *xsdt)
{
@@ -357,8 +360,7 @@ void enter_acpi_mode(int pm1_cnt)
}
/*
- * QEMU's version of write_acpi_tables is defined in
- * arch/x86/cpu/qemu/acpi_table.c
+ * QEMU's version of write_acpi_tables is defined in drivers/misc/qfw.c
*/
ulong write_acpi_tables(ulong start)
{
@@ -461,6 +463,7 @@ ulong write_acpi_tables(ulong start)
debug("current = %x\n", current);
+ acpi_rsdp_addr = (unsigned long)rsdp;
debug("ACPI: done\n");
/* Don't touch ACPI hardware on HW reduced platforms */
@@ -476,6 +479,11 @@ ulong write_acpi_tables(ulong start)
return current;
}
+ulong acpi_get_rsdp_addr(void)
+{
+ return acpi_rsdp_addr;
+}
+
static struct acpi_rsdp *acpi_valid_rsdp(struct acpi_rsdp *rsdp)
{
if (strncmp((char *)rsdp, RSDP_SIG, sizeof(RSDP_SIG) - 1) != 0)
diff --git a/arch/x86/lib/zimage.c b/arch/x86/lib/zimage.c
index 00172dc7c1..2a82bc83d6 100644
--- a/arch/x86/lib/zimage.c
+++ b/arch/x86/lib/zimage.c
@@ -14,6 +14,7 @@
*/
#include <common.h>
+#include <asm/acpi_table.h>
#include <asm/io.h>
#include <asm/ptrace.h>
#include <asm/zimage.h>
@@ -246,14 +247,20 @@ int setup_zimage(struct boot_params *setup_base, char *cmd_line, int auto_boot,
hdr->setup_move_size = 0x9100;
}
-#if defined(CONFIG_INTEL_MID)
- hdr->hardware_subarch = X86_SUBARCH_INTEL_MID;
-#endif
-
/* build command line at COMMAND_LINE_OFFSET */
build_command_line(cmd_line, auto_boot);
}
+#ifdef CONFIG_INTEL_MID
+ if (bootproto >= 0x0207)
+ hdr->hardware_subarch = X86_SUBARCH_INTEL_MID;
+#endif
+
+#ifdef CONFIG_GENERATE_ACPI_TABLE
+ if (bootproto >= 0x020e)
+ hdr->acpi_rsdp_addr = acpi_get_rsdp_addr();
+#endif
+
setup_video(&setup_base->screen_info);
return 0;
diff --git a/board/google/Kconfig b/board/google/Kconfig
index e56c026ef6..766db1b449 100644
--- a/board/google/Kconfig
+++ b/board/google/Kconfig
@@ -31,7 +31,6 @@ config TARGET_CHROMEBOOK_LINK64
config TARGET_CHROMEBOX_PANTHER
bool "Chromebox panther (not available)"
- select n
help
Note: At present this must be used with coreboot. See README.x86
for instructions.
diff --git a/cmd/bdinfo.c b/cmd/bdinfo.c
index c7ebad17d1..de6fc48987 100644
--- a/cmd/bdinfo.c
+++ b/cmd/bdinfo.c
@@ -377,6 +377,8 @@ int do_bdinfo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
print_bi_dram(bd);
+ print_num("relocaddr", gd->relocaddr);
+ print_num("reloc off", gd->reloc_off);
#if defined(CONFIG_CMD_NET)
print_eth_ip_addr();
print_mhz("ethspeed", bd->bi_ethspeed);
diff --git a/drivers/misc/qfw.c b/drivers/misc/qfw.c
index a8af9e0c53..9a5480349e 100644
--- a/drivers/misc/qfw.c
+++ b/drivers/misc/qfw.c
@@ -222,6 +222,14 @@ out:
free(table_loader);
return addr;
}
+
+ulong acpi_get_rsdp_addr(void)
+{
+ struct fw_file *file;
+
+ file = qemu_fwcfg_find_file("etc/acpi/rsdp");
+ return file->addr;
+}
#endif
/* Read configuration item using fw_cfg PIO interface */
diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h
index 994214ea48..e8f680f129 100644
--- a/include/configs/x86-common.h
+++ b/include/configs/x86-common.h
@@ -62,8 +62,10 @@
* Command line configuration.
*/
+#ifndef CONFIG_BOOTCOMMAND
#define CONFIG_BOOTCOMMAND \
"ext2load scsi 0:3 01000000 /boot/vmlinuz; zboot 01000000"
+#endif
#if defined(CONFIG_CMD_KGDB)
#define CONFIG_KGDB_BAUDRATE 115200