mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-01 08:59:33 +00:00
bootcount: Remove legacy I2C driver
The legacy I2C bootcounter will hereby be removed and eventually be replaced by a driver model implementation in the follow-up commit. The legacy driver has the following drawbacks: - It's not adhering to the driver model - Settings are grabbed from Kconfig rather than device tree - i2c_{read,write} are being used instead of dm_i2c_{read,write} Signed-off-by: Philip Richard Oberfichtner <pro@denx.de> Reviewed-by: Heiko Schocher <hs@denx.de>
This commit is contained in:
parent
35e8007ef3
commit
31f4ee4b13
3 changed files with 3 additions and 65 deletions
|
@ -79,14 +79,6 @@ config BOOTCOUNT_RAM
|
|||
Store the bootcount in DRAM protected against bit errors
|
||||
due to short power loss or holding a system in RESET.
|
||||
|
||||
config BOOTCOUNT_I2C
|
||||
bool "Boot counter on I2C device"
|
||||
help
|
||||
Enable support for the bootcounter on an i2c (like RTC) device.
|
||||
CFG_SYS_I2C_RTC_ADDR = i2c chip address
|
||||
CONFIG_SYS_BOOTCOUNT_ADDR = i2c addr which is used for
|
||||
the bootcounter.
|
||||
|
||||
config BOOTCOUNT_AT91
|
||||
bool "Boot counter for Atmel AT91SAM9XE"
|
||||
depends on AT91SAM9XE
|
||||
|
@ -175,14 +167,6 @@ config BOOTCOUNT_BOOTLIMIT
|
|||
counter being cleared.
|
||||
If set to 0, do not set a boot limit in the environment.
|
||||
|
||||
config BOOTCOUNT_ALEN
|
||||
int "I2C address length"
|
||||
default 1
|
||||
depends on BOOTCOUNT_I2C
|
||||
help
|
||||
Length of the the I2C address at SYS_BOOTCOUNT_ADDR for storing
|
||||
the boot counter.
|
||||
|
||||
config SYS_BOOTCOUNT_SINGLEWORD
|
||||
bool "Use single word to pack boot count and magic value"
|
||||
depends on BOOTCOUNT_GENERIC
|
||||
|
@ -218,7 +202,7 @@ config SYS_BOOTCOUNT_ADDR
|
|||
default 0x44E3E000 if BOOTCOUNT_AM33XX || BOOTCOUNT_AM33XX_NVMEM
|
||||
default 0xE0115FF8 if ARCH_LS1043A || ARCH_LS1021A
|
||||
depends on BOOTCOUNT_AM33XX || BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
|
||||
BOOTCOUNT_I2C || BOOTCOUNT_AM33XX_NVMEM
|
||||
BOOTCOUNT_AM33XX_NVMEM
|
||||
help
|
||||
Set the address used for reading and writing the boot counter.
|
||||
|
||||
|
@ -226,13 +210,11 @@ config SYS_BOOTCOUNT_MAGIC
|
|||
hex "Magic value for the boot counter"
|
||||
default 0xB001C041 if BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
|
||||
BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
|
||||
BOOTCOUNT_RAM || BOOTCOUNT_I2C || \
|
||||
BOOTCOUNT_AT91 || DM_BOOTCOUNT
|
||||
BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT
|
||||
default 0xB0 if BOOTCOUNT_AM33XX_NVMEM
|
||||
depends on BOOTCOUNT_GENERIC || BOOTCOUNT_EXT || \
|
||||
BOOTCOUNT_AM33XX || BOOTCOUNT_ENV || \
|
||||
BOOTCOUNT_RAM || BOOTCOUNT_I2C || \
|
||||
BOOTCOUNT_AT91 || DM_BOOTCOUNT || \
|
||||
BOOTCOUNT_RAM || BOOTCOUNT_AT91 || DM_BOOTCOUNT || \
|
||||
BOOTCOUNT_AM33XX_NVMEM
|
||||
help
|
||||
Set the magic value used for the boot counter.
|
||||
|
|
|
@ -6,7 +6,6 @@ obj-$(CONFIG_BOOTCOUNT_AT91) += bootcount_at91.o
|
|||
obj-$(CONFIG_BOOTCOUNT_AM33XX) += bootcount_davinci.o
|
||||
obj-$(CONFIG_BOOTCOUNT_RAM) += bootcount_ram.o
|
||||
obj-$(CONFIG_BOOTCOUNT_ENV) += bootcount_env.o
|
||||
obj-$(CONFIG_BOOTCOUNT_I2C) += bootcount_i2c.o
|
||||
obj-$(CONFIG_BOOTCOUNT_EXT) += bootcount_ext.o
|
||||
obj-$(CONFIG_BOOTCOUNT_AM33XX_NVMEM) += bootcount_nvmem.o
|
||||
|
||||
|
|
|
@ -1,43 +0,0 @@
|
|||
// SPDX-License-Identifier: GPL-2.0+
|
||||
/*
|
||||
* (C) Copyright 2013
|
||||
* Heiko Schocher, DENX Software Engineering, hs@denx.de.
|
||||
*/
|
||||
|
||||
#include <bootcount.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <i2c.h>
|
||||
|
||||
#define BC_MAGIC 0xbc
|
||||
|
||||
void bootcount_store(ulong a)
|
||||
{
|
||||
unsigned char buf[3];
|
||||
int ret;
|
||||
|
||||
buf[0] = BC_MAGIC;
|
||||
buf[1] = (a & 0xff);
|
||||
ret = i2c_write(CFG_SYS_I2C_RTC_ADDR, CONFIG_SYS_BOOTCOUNT_ADDR,
|
||||
CONFIG_BOOTCOUNT_ALEN, buf, 2);
|
||||
if (ret != 0)
|
||||
puts("Error writing bootcount\n");
|
||||
}
|
||||
|
||||
ulong bootcount_load(void)
|
||||
{
|
||||
unsigned char buf[3];
|
||||
int ret;
|
||||
|
||||
ret = i2c_read(CFG_SYS_I2C_RTC_ADDR, CONFIG_SYS_BOOTCOUNT_ADDR,
|
||||
CONFIG_BOOTCOUNT_ALEN, buf, 2);
|
||||
if (ret != 0) {
|
||||
puts("Error loading bootcount\n");
|
||||
return 0;
|
||||
}
|
||||
if (buf[0] == BC_MAGIC)
|
||||
return buf[1];
|
||||
|
||||
bootcount_store(0);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue