mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
x86: apl: Reduce size for TPL
Update various drivers to use of_match_ptr() and to avoid including debug strings in TPL. Omit the WiFi driver entirely, since it is not used in TPL. This reduces the TPL binary size by about 608 bytes. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5e89be1efd
commit
8b842be10c
13 changed files with 44 additions and 16 deletions
|
@ -81,10 +81,11 @@ int lpc_open_pmio_window(uint base, uint size)
|
|||
|
||||
lgir_reg_num = find_unused_pmio_window();
|
||||
if (lgir_reg_num < 0) {
|
||||
if (spl_phase() > PHASE_TPL) {
|
||||
log_err("LPC: Cannot open IO window: %lx size %lx\n",
|
||||
bridge_base, size - bridged_size);
|
||||
log_err("No more IO windows\n");
|
||||
|
||||
}
|
||||
return -ENOSPC;
|
||||
}
|
||||
lgir_reg_offset = LPC_GENERIC_IO_RANGE(lgir_reg_num);
|
||||
|
@ -127,15 +128,17 @@ struct acpi_ops apl_lpc_acpi_ops = {
|
|||
.inject_dsdt = southbridge_inject_dsdt,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id apl_lpc_ids[] = {
|
||||
{ .compatible = "intel,apl-lpc" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
/* All pads are LPC already configured by the hostbridge, so no probing here */
|
||||
U_BOOT_DRIVER(intel_apl_lpc) = {
|
||||
.name = "intel_apl_lpc",
|
||||
.id = UCLASS_LPC,
|
||||
.of_match = apl_lpc_ids,
|
||||
.of_match = of_match_ptr(apl_lpc_ids),
|
||||
ACPI_OPS_PTR(&apl_lpc_acpi_ops)
|
||||
};
|
||||
|
|
|
@ -23,14 +23,16 @@ static const struct pch_ops apl_pch_ops = {
|
|||
.set_spi_protect = apl_set_spi_protect,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id apl_pch_ids[] = {
|
||||
{ .compatible = "intel,apl-pch" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_apl_pch) = {
|
||||
.name = "intel_apl_pch",
|
||||
.id = UCLASS_PCH,
|
||||
.of_match = apl_pch_ids,
|
||||
.of_match = of_match_ptr(apl_pch_ids),
|
||||
.ops = &apl_pch_ops,
|
||||
};
|
||||
|
|
|
@ -212,15 +212,17 @@ static const struct acpi_pmc_ops apl_pmc_ops = {
|
|||
.global_reset_set_enable = apl_global_reset_set_enable,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id apl_pmc_ids[] = {
|
||||
{ .compatible = "intel,apl-pmc" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_apl_pmc) = {
|
||||
.name = "intel_apl_pmc",
|
||||
.id = UCLASS_ACPI_PMC,
|
||||
.of_match = apl_pmc_ids,
|
||||
.of_match = of_match_ptr(apl_pmc_ids),
|
||||
.of_to_plat = apl_pmc_ofdata_to_uc_plat,
|
||||
.probe = apl_pmc_probe,
|
||||
.ops = &apl_pmc_ops,
|
||||
|
|
|
@ -118,15 +118,17 @@ static int apl_ns16550_of_to_plat(struct udevice *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id apl_ns16550_serial_ids[] = {
|
||||
{ .compatible = "intel,apl-ns16550" },
|
||||
{ },
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_apl_ns16550) = {
|
||||
.name = "intel_apl_ns16550",
|
||||
.id = UCLASS_SERIAL,
|
||||
.of_match = apl_ns16550_serial_ids,
|
||||
.of_match = of_match_ptr(apl_ns16550_serial_ids),
|
||||
.plat_auto = sizeof(struct ns16550_plat),
|
||||
.priv_auto = sizeof(struct ns16550),
|
||||
.ops = &ns16550_serial_ops,
|
||||
|
|
|
@ -26,7 +26,7 @@ obj-y += cpu.o
|
|||
obj-y += fast_spi.o
|
||||
obj-y += lpc.o
|
||||
obj-y += lpss.o
|
||||
obj-$(CONFIG_INTEL_GENERIC_WIFI) += generic_wifi.o
|
||||
obj-$(CONFIG_$(SPL_)INTEL_GENERIC_WIFI) += generic_wifi.o
|
||||
ifndef CONFIG_TARGET_EFI_APP
|
||||
obj-$(CONFIG_$(SPL_TPL_)X86_32BIT_INIT) += microcode.o
|
||||
ifndef CONFIG_$(SPL_)X86_64
|
||||
|
|
|
@ -230,15 +230,17 @@ static const struct irq_ops itss_ops = {
|
|||
#endif
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id itss_ids[] = {
|
||||
{ .compatible = "intel,itss", .data = X86_IRQT_ITSS },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_itss) = {
|
||||
.name = "intel_itss",
|
||||
.id = UCLASS_IRQ,
|
||||
.of_match = itss_ids,
|
||||
.of_match = of_match_ptr(itss_ids),
|
||||
.ops = &itss_ops,
|
||||
.bind = itss_bind,
|
||||
.of_to_plat = itss_of_to_plat,
|
||||
|
|
|
@ -184,15 +184,17 @@ static const struct p2sb_ops p2sb_ops = {
|
|||
.set_hide = intel_p2sb_set_hide,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id p2sb_ids[] = {
|
||||
{ .compatible = "intel,p2sb" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_p2sb) = {
|
||||
.name = "intel_p2sb",
|
||||
.id = UCLASS_P2SB,
|
||||
.of_match = p2sb_ids,
|
||||
.of_match = of_match_ptr(p2sb_ids),
|
||||
.probe = p2sb_probe,
|
||||
.remove = p2sb_remove,
|
||||
.ops = &p2sb_ops,
|
||||
|
|
|
@ -35,12 +35,15 @@ static inline void set_global_turbo_state(int state)
|
|||
}
|
||||
#endif
|
||||
|
||||
/* gcc 7.3 does not wwant to drop strings, so use #ifdef */
|
||||
#ifndef CONFIG_TPL_BUILD
|
||||
static const char *const turbo_state_desc[] = {
|
||||
[TURBO_UNKNOWN] = "unknown",
|
||||
[TURBO_UNAVAILABLE] = "unavailable",
|
||||
[TURBO_DISABLED] = "available but hidden",
|
||||
[TURBO_ENABLED] = "available and visible"
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Determine the current state of Turbo and cache it for later.
|
||||
|
@ -76,7 +79,9 @@ int turbo_get_state(void)
|
|||
}
|
||||
|
||||
set_global_turbo_state(turbo_state);
|
||||
#ifndef CONFIG_TPL_BUILD
|
||||
debug("Turbo is %s\n", turbo_state_desc[turbo_state]);
|
||||
#endif
|
||||
return turbo_state;
|
||||
}
|
||||
|
||||
|
|
|
@ -143,14 +143,16 @@ struct acpi_ops coral_acpi_ops = {
|
|||
.inject_dsdt = chromeos_acpi_gpio_generate,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id coral_ids[] = {
|
||||
{ .compatible = "google,coral" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(coral_drv) = {
|
||||
.name = "coral",
|
||||
.id = UCLASS_SYSINFO,
|
||||
.of_match = coral_ids,
|
||||
.of_match = of_match_ptr(coral_ids),
|
||||
ACPI_OPS_PTR(&coral_acpi_ops)
|
||||
};
|
||||
|
|
|
@ -188,15 +188,17 @@ static const struct dm_gpio_ops gpio_intel_ops = {
|
|||
#endif
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id intel_intel_gpio_ids[] = {
|
||||
{ .compatible = "intel,gpio" },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_gpio) = {
|
||||
.name = "intel_gpio",
|
||||
.id = UCLASS_GPIO,
|
||||
.of_match = intel_intel_gpio_ids,
|
||||
.of_match = of_match_ptr(intel_intel_gpio_ids),
|
||||
.ops = &gpio_intel_ops,
|
||||
.of_to_plat = intel_gpio_of_to_plat,
|
||||
.probe = intel_gpio_probe,
|
||||
|
|
|
@ -167,15 +167,17 @@ static int apl_pinctrl_of_to_plat(struct udevice *dev)
|
|||
return intel_pinctrl_of_to_plat(dev, comm, 2);
|
||||
}
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id apl_gpio_ids[] = {
|
||||
{ .compatible = "intel,apl-pinctrl"},
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(intel_apl_pinctrl) = {
|
||||
.name = "intel_apl_pinctrl",
|
||||
.id = UCLASS_PINCTRL,
|
||||
.of_match = apl_gpio_ids,
|
||||
.of_match = of_match_ptr(apl_gpio_ids),
|
||||
.probe = intel_pinctrl_probe,
|
||||
.ops = &intel_pinctrl_ops,
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <common.h>
|
||||
#include <dm.h>
|
||||
#include <log.h>
|
||||
#include <spl.h>
|
||||
#include <acpi/acpi_s3.h>
|
||||
#ifdef CONFIG_X86
|
||||
#include <asm/intel_pinctrl.h>
|
||||
|
@ -60,6 +61,7 @@ int pmc_gpe_init(struct udevice *dev)
|
|||
* are different and if they aren't, use the reset values.
|
||||
*/
|
||||
if (dw[0] == dw[1] || dw[1] == dw[2]) {
|
||||
if (spl_phase() > PHASE_TPL)
|
||||
log_info("PMC: Using default GPE route");
|
||||
gpio_cfg = readl(upriv->gpe_cfg);
|
||||
for (i = 0; i < upriv->gpe0_count; i++)
|
||||
|
|
|
@ -477,15 +477,17 @@ static const struct timer_ops tsc_timer_ops = {
|
|||
.get_count = tsc_timer_get_count,
|
||||
};
|
||||
|
||||
#if !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
static const struct udevice_id tsc_timer_ids[] = {
|
||||
{ .compatible = "x86,tsc-timer", },
|
||||
{ }
|
||||
};
|
||||
#endif
|
||||
|
||||
U_BOOT_DRIVER(x86_tsc_timer) = {
|
||||
.name = "x86_tsc_timer",
|
||||
.id = UCLASS_TIMER,
|
||||
.of_match = tsc_timer_ids,
|
||||
.of_match = of_match_ptr(tsc_timer_ids),
|
||||
.probe = tsc_timer_probe,
|
||||
.ops = &tsc_timer_ops,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue