David Hendricks (dhendrix@chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2081
-gerrit
commit 3f79f9ad182cfd9f640e8fa9dfe51f44823ce968 Author: David Hendricks dhendrix@chromium.org Date: Thu Dec 27 15:11:27 2012 -0800
import SPL files for board_i2c_{claim,release}_bus()
This imports SPL (second phase loader) files from U-Boot. Most of the content of these files will eventually go away since they're fairly U-Boot specific. For now they are here to make Jenkins happy.
Change-Id: Ib3a365ecb9dc304b20f7c1c06665aad2c0c53e69 Signed-off-by: David Hendricks dhendrix@chromium.org --- src/cpu/samsung/exynos5-common/spl.h | 4 ++++ src/mainboard/google/snow/smdk5250_spl.c | 35 ++++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-)
diff --git a/src/cpu/samsung/exynos5-common/spl.h b/src/cpu/samsung/exynos5-common/spl.h index afa9a8e..439e1b0 100644 --- a/src/cpu/samsung/exynos5-common/spl.h +++ b/src/cpu/samsung/exynos5-common/spl.h @@ -91,4 +91,8 @@ struct spl_machine_param *spl_get_machine_params(void); */ void spl_early_init(void);
+/* FIXME(dhendrix): for early i2c init */ +void board_i2c_release_bus(int node); +int board_i2c_claim_bus(int node); + #endif /* __ASM_ARCH_EXYNOS_SPL_H__ */ diff --git a/src/mainboard/google/snow/smdk5250_spl.c b/src/mainboard/google/snow/smdk5250_spl.c index 204e411..19d8610 100644 --- a/src/mainboard/google/snow/smdk5250_spl.c +++ b/src/mainboard/google/snow/smdk5250_spl.c @@ -24,8 +24,12 @@ #define SIGNATURE 0xdeadbeef
/* Parameters of early board initialization in SPL */ -static struct spl_machine_param machine_param - __attribute__((section(".machine_param"))) = { +/* FIXME(dhendrix): does this really need to be in a particular section? + * I suspect in U-boot's case the section attribute was needed for global + * data. */ +//static struct spl_machine_param machine_param +// __attribute__((section(".machine_param"))) = { +static struct spl_machine_param machine_param = { .signature = SIGNATURE, .version = 1, .params = "vmubfasirMw", @@ -65,6 +69,18 @@ struct spl_machine_param *spl_get_machine_params(void) return &machine_param; }
+#if 0 +int board_get_revision(void) +{ + struct spl_machine_param *params = spl_get_machine_params(); + unsigned gpio[CONFIG_BOARD_REV_GPIO_COUNT]; + + gpio[0] = params->board_rev_gpios & 0xffff; + gpio[1] = params->board_rev_gpios >> 16; + return gpio_decode_number(gpio, CONFIG_BOARD_REV_GPIO_COUNT); +} +#endif + int board_wakeup_permitted(void) { struct spl_machine_param *param = spl_get_machine_params(); @@ -76,3 +92,18 @@ int board_wakeup_permitted(void)
return !is_bad_wake; } + +/* + * TODO(sjg@chromium.org): + * Declared there here for SPL, since there is no core i2c subsystem and + * cmd_i2c.c is not included. + */ +void board_i2c_release_bus(int node) +{ +} + +int board_i2c_claim_bus(int node) +{ + /* EC is not allowed to touch the bus until we enter U-Boot */ + return 0; +}