Skip to contentSkip to conversation

Add support for GE PPD

PATCH Superseded Martyn Welch 3 participants 11 messages Oct 31, 2017 – Nov 1, 2017

Subsystems (8)

v2 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add support for GE PPD

This series adds support for the GE PPD. The initial patches in this series resolve issues found during development and testing, extend existing support and add new support for devices in the PPD. The final patch in the series adds the board support for the PPD.

Ian Ray (2):
ext4: recover from filesystem corruption when reading
bootcount: add support for bootcounter on EXT filesystem

Martyn Welch (2):
pwm: imx: Enable PWM support on i.MX53
arm: mx5: Add more register definitions

Nandor Han (2):
imx: mxc_i2c: tweak the i2c transfer method
rtc: add support for s35392a

Peter Senna Tschudin (1):
mx53: Add Board support for GE PPD

 README                                   |   7 +
 arch/arm/include/asm/arch-mx5/crm_regs.h |   9 +
 arch/arm/include/asm/arch-mx5/imx-regs.h |  47 +++
 arch/arm/include/asm/mach-types.h        |   1 +
 arch/arm/mach-imx/mx5/Kconfig            |   5 +
 board/freescale/mx53ppd/Kconfig          |  17 ++
 board/freescale/mx53ppd/MAINTAINERS      |   7 +
 board/freescale/mx53ppd/Makefile         |  12 +
 board/freescale/mx53ppd/imximage.cfg     |  87 ++++++
 board/freescale/mx53ppd/mx53ppd.c        | 487 +++++++++++++++++++++++++++++++
 board/freescale/mx53ppd/mx53ppd_video.c  | 123 ++++++++
 board/freescale/mx53ppd/ppd_gpio.h       |  96 ++++++
 board/freescale/mx53ppd/vpd_reader.c     | 230 +++++++++++++++
 board/freescale/mx53ppd/vpd_reader.h     |  25 ++
 configs/mx53ppd_defconfig                |  38 +++
 drivers/Kconfig                          |   2 +
 drivers/bootcount/Kconfig                |  46 +++
 drivers/bootcount/Makefile               |   1 +
 drivers/bootcount/bootcount_ext.c        |  59 ++++
 drivers/i2c/mxc_i2c.c                    |  25 +-
 drivers/pwm/pwm-imx-util.c               |   2 +
 drivers/rtc/Kconfig                      |   6 +
 drivers/rtc/Makefile                     |   1 +
 drivers/rtc/s35392a.c                    | 360 +++++++++++++++++++++++
 fs/ext4/ext4_common.c                    |  10 +
 fs/ext4/ext4fs.c                         |  10 +-
 include/configs/mx53ppd.h                | 246 ++++++++++++++++
 lib/Kconfig                              |   3 +
 28 files changed, 1951 insertions(+), 11 deletions(-)
 create mode 100644 board/freescale/mx53ppd/Kconfig
 create mode 100644 board/freescale/mx53ppd/MAINTAINERS
 create mode 100644 board/freescale/mx53ppd/Makefile
 create mode 100644 board/freescale/mx53ppd/imximage.cfg
 create mode 100644 board/freescale/mx53ppd/mx53ppd.c
 create mode 100644 board/freescale/mx53ppd/mx53ppd_video.c
 create mode 100644 board/freescale/mx53ppd/ppd_gpio.h
 create mode 100644 board/freescale/mx53ppd/vpd_reader.c
 create mode 100644 board/freescale/mx53ppd/vpd_reader.h
 create mode 100644 configs/mx53ppd_defconfig
 create mode 100644 drivers/bootcount/Kconfig
 create mode 100644 drivers/bootcount/bootcount_ext.c
 create mode 100644 drivers/rtc/s35392a.c
 create mode 100644 include/configs/mx53ppd.h
Signature · 1 line
2.1.4
#1 lore raw

PATCH v2 1/7 imx: mxc_i2c: tweak the i2c transfer method

From: Nandor Han <[email protected]>

Tweak the i2c transfer to work for devices that want to read data without addressing a register.

Cc Heiko Schocher <[email protected]>
Cc Stefano Babic <[email protected]>

---
Changes for v2:
- Replacing '!= -1' with '>= 0'.

 drivers/i2c/mxc_i2c.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)
drivers/i2c/mxc_i2c.c +15 -10
index abf1da2..205274e 100644
@@ -317,16 +317,19 @@ static int i2c_init_transfer_(struct mxc_i2c_bus *i2c_bus, u8 chip,
 	temp |= I2CR_MTX | I2CR_TX_NO_AK;
 	writeb(temp, base + (I2CR << reg_shift));
 
-	/* write slave address */
-	ret = tx_byte(i2c_bus, chip << 1);
-	if (ret < 0)
-		return ret;
-
-	while (alen--) {
-		ret = tx_byte(i2c_bus, (addr >> (alen * 8)) & 0xff);
+	if (alen >= 0)	{
+		/* write slave address */
+		ret = tx_byte(i2c_bus, chip << 1);
 		if (ret < 0)
 			return ret;
+
+		while (alen--) {
+			ret = tx_byte(i2c_bus, (addr >> (alen * 8)) & 0xff);
+			if (ret < 0)
+				return ret;
+		}
 	}
+
 	return 0;
 }
 
@@ -537,9 +540,11 @@ static int bus_i2c_read(struct mxc_i2c_bus *i2c_bus, u8 chip, u32 addr,
 	if (ret < 0)
 		return ret;
 
-	temp = readb(base + (I2CR << reg_shift));
-	temp |= I2CR_RSTA;
-	writeb(temp, base + (I2CR << reg_shift));
+	if (alen >= 0) {
+		temp = readb(base + (I2CR << reg_shift));
+		temp |= I2CR_RSTA;
+		writeb(temp, base + (I2CR << reg_shift));
+	}
 
 	ret = tx_byte(i2c_bus, (chip << 1) | 1);
 	if (ret < 0) {
Signature · 1 line
2.1.4
#2 lore raw

PATCH v2 1/7 imx: mxc_i2c: tweak the i2c transfer method

Hello Martyn,

Am 31.10.2017 um 13:16 schrieb Martyn Welch:

Quoted 9 lines

From: Nandor Han <[email protected]>

Tweak the i2c transfer to work for devices that want to read data without addressing a register.

Cc Heiko Schocher <[email protected]>
Cc Stefano Babic <[email protected]>
Quoted 6 lines

---
Changes for v2:
- Replacing '!= -1' with '>= 0'.

  drivers/i2c/mxc_i2c.c | 25 +++++++++++++++----------
  1 file changed, 15 insertions(+), 10 deletions(-)

Thanks!

bye,
Heiko

Signature · 3 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-52   Fax: +49-8142-66989-80   Email: hs at denx.de
#3 lore raw

PATCH v2 2/7 ext4: recover from filesystem corruption when reading

In reply to Martyn Welch

From: Ian Ray <[email protected]>

Some fixes when reading EXT files and directory entries were identified after using e2fuzz to corrupt an EXT3 filesystem:

- Stop reading directory entries if the offset becomes badly aligned.

- Avoid overwriting memory by clamping the length used to zero the buffer in ext4fs_read_file. Also sanity check blocksize.

---
 fs/ext4/ext4_common.c | 10 ++++++++++
 fs/ext4/ext4fs.c      | 10 +++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)
fs/ext4/ext4_common.c +10 -0
index 31952f4..dac9545 100644
@@ -660,6 +660,11 @@ static int search_dir(struct ext2_inode *parent_inode, char *dirname)
 
 		offset = 0;
 		do {
+			if (offset & 3) {
+				printf("Badly aligned ext2_dirent\n");
+				break;
+			}
+
 			dir = (struct ext2_dirent *)(block_buffer + offset);
 			direntname = (char*)(dir) + sizeof(struct ext2_dirent);
 
@@ -880,6 +885,11 @@ static int unlink_filename(char *filename, unsigned int blknr)
 
 	offset = 0;
 	do {
+		if (offset & 3) {
+			printf("Badly aligned ext2_dirent\n");
+			break;
+		}
+
 		previous_dir = dir;
 		dir = (struct ext2_dirent *)(block_buffer + offset);
 		direntname = (char *)(dir) + sizeof(struct ext2_dirent);
fs/ext4/ext4fs.c +9 -1
index b0c7303..9ee2caf 100644
@@ -64,6 +64,9 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 	char *delayed_buf = NULL;
 	short status;
 
+	if (blocksize <= 0)
+		return -1;
+
 	/* Adjust len so it we can't read past the end of the file. */
 	if (len + pos > filesize)
 		len = (filesize - pos);
@@ -127,6 +130,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 					(blockend >> log2blksz);
 			}
 		} else {
+			int n;
 			if (previous_block_number != -1) {
 				/* spill */
 				status = ext4fs_devread(delayed_start,
@@ -137,7 +141,11 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 					return -1;
 				previous_block_number = -1;
 			}
-			memset(buf, 0, blocksize - skipfirst);
+			/* Zero no more than `len' bytes. */
+			n = blocksize - skipfirst;
+			if (n > len)
+				n = len;
+			memset(buf, 0, n);
 		}
 		buf += blocksize - skipfirst;
 	}
Signature · 1 line
2.1.4
#4 lore raw

PATCH v2 2/7 ext4: recover from filesystem corruption when reading

Quoted 70 lines · Martyn Welch

From: Ian Ray <[email protected]>

Some fixes when reading EXT files and directory entries were identified after using e2fuzz to corrupt an EXT3 filesystem:

- Stop reading directory entries if the offset becomes badly aligned.

- Avoid overwriting memory by clamping the length used to zero the buffer in ext4fs_read_file. Also sanity check blocksize.

---
 fs/ext4/ext4_common.c | 10 ++++++++++
 fs/ext4/ext4fs.c      | 10 +++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)
fs/ext4/ext4_common.c +10 -0
index 31952f4..dac9545 100644
@@ -660,6 +660,11 @@ static int search_dir(struct ext2_inode *parent_inode, char *dirname)
 
 		offset = 0;
 		do {
+			if (offset & 3) {
+				printf("Badly aligned ext2_dirent\n");
+				break;
+			}
+
 			dir = (struct ext2_dirent *)(block_buffer + offset);
 			direntname = (char*)(dir) + sizeof(struct ext2_dirent);
 
@@ -880,6 +885,11 @@ static int unlink_filename(char *filename, unsigned int blknr)
 
 	offset = 0;
 	do {
+		if (offset & 3) {
+			printf("Badly aligned ext2_dirent\n");
+			break;
+		}
+
 		previous_dir = dir;
 		dir = (struct ext2_dirent *)(block_buffer + offset);
 		direntname = (char *)(dir) + sizeof(struct ext2_dirent);
fs/ext4/ext4fs.c +4 -0
index b0c7303..9ee2caf 100644
@@ -64,6 +64,9 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 	char *delayed_buf = NULL;
 	short status;
 
+	if (blocksize <= 0)
+		return -1;
+
 	/* Adjust len so it we can't read past the end of the file. */
 	if (len + pos > filesize)
 		len = (filesize - pos);
@@ -127,6 +130,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 					(blockend >> log2blksz);
 			}
 		} else {
+			int n;
 			if (previous_block_number != -1) {
 				/* spill */
 				status = ext4fs_devread(delayed_start,
@@ -137,7 +141,11 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
 					return -1;
 				previous_block_number = -1;

fs/ext4/ext4fs.c int ext4fs_read_file(struct ext2fs_node *node, loff_t pos, · line 151

Quoted 10 lines
fs/ext4/ext4fs.c +5 -1
 			}
-			memset(buf, 0, blocksize - skipfirst);
+			/* Zero no more than `len' bytes. */
+			n = blocksize - skipfirst;
+			if (n > len)
+				n = len;
+			memset(buf, 0, n);
 		}
 		buf += blocksize - skipfirst;
 	}

Stefan, do you have any comments on this? Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171031/dd2fb6da/attachment.sig>
#5 lore raw

PATCH v2 3/7 pwm: imx: Enable PWM support on i.MX53

In reply to Martyn Welch

Add missing parts for i.MX53 PWM support

---
 arch/arm/include/asm/arch-mx5/imx-regs.h | 19 +++++++++++++++++++
 drivers/pwm/pwm-imx-util.c               |  2 ++
 2 files changed, 21 insertions(+)
arch/arm/include/asm/arch-mx5/imx-regs.h +19 -0
index 3e79fa3..c2ff798 100644
@@ -508,6 +508,25 @@ struct fuse_bank4_regs {
 };
 #endif
 
+#if defined(CONFIG_MX53)
+#define PWMCR_PRESCALER(x)	(((x - 1) & 0xFFF) << 4)
+#define PWMCR_DOZEEN		(1 << 24)
+#define PWMCR_WAITEN		(1 << 23)
+#define PWMCR_DBGEN		(1 << 22)
+#define PWMCR_CLKSRC_IPG_HIGH	(2 << 16)
+#define PWMCR_CLKSRC_IPG	(1 << 16)
+#define PWMCR_EN		(1 << 0)
+
+struct pwm_regs {
+	u32	cr;
+	u32	sr;
+	u32	ir;
+	u32	sar;
+	u32	pr;
+	u32	cnr;
+};
+#endif
+
 #endif /* __ASSEMBLER__*/
 
 #endif				/* __ASM_ARCH_MX5_IMX_REGS_H__ */
drivers/pwm/pwm-imx-util.c +2 -0
index 534dd8e..97ac0c8 100644
@@ -23,10 +23,12 @@ struct pwm_regs *pwm_id_to_reg(int pwm_id)
 		return (struct pwm_regs *)PWM1_BASE_ADDR;
 	case 1:
 		return (struct pwm_regs *)PWM2_BASE_ADDR;
+#ifdef CONFIG_MX6
 	case 2:
 		return (struct pwm_regs *)PWM3_BASE_ADDR;
 	case 3:
 		return (struct pwm_regs *)PWM4_BASE_ADDR;
+#endif
 #ifdef CONFIG_MX6SX
 	case 4:
 		return (struct pwm_regs *)PWM5_BASE_ADDR;
Signature · 1 line
2.1.4
#6 lore raw

PATCH v2 4/7 arm: mx5: Add more register definitions

In reply to Martyn Welch

Add register definitions require for video configuration.

---
 arch/arm/include/asm/arch-mx5/crm_regs.h |  9 +++++++++
 arch/arm/include/asm/arch-mx5/imx-regs.h | 28 ++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)
arch/arm/include/asm/arch-mx5/crm_regs.h +9 -0
index b61c7b9..c0af832 100644
@@ -210,6 +210,15 @@ struct mxc_ccm_reg {
 #define MXC_CCM_CSCMR1_SSI_EXT2_COM_CLK_SEL		(0x1 << 1)
 #define MXC_CCM_CSCMR1_SSI_EXT1_COM_CLK_SEL		0x1
 
+/* Define the bits in register CSCMR2 */
+#define MXC_CCM_CSCMR2_DI0_CLK_SEL_OFFSET		26
+#define MXC_CCM_CSCMR2_DI0_CLK_SEL_MASK		(0x7 << 26)
+#define MXC_CCM_CSCMR2_DI0_CLK_SEL(v)		(((v) & 0x7) << 26)
+#define MXC_CCM_CSCMR2_DI0_CLK_SEL_RD(r)	(((r) >> 26) & 0x7)
+
+#define MXC_CCM_CSCMR2_DI0_CLK_SEL_LDB_DI0_CLK 5
+
+
 /* Define the bits in register CSCDR2 */
 #define MXC_CCM_CSCDR2_CSPI_CLK_PRED_OFFSET		25
 #define MXC_CCM_CSCDR2_CSPI_CLK_PRED_MASK		(0x7 << 25)
arch/arm/include/asm/arch-mx5/imx-regs.h +28 -0
index c2ff798..60c1bb9 100644
@@ -416,6 +416,34 @@ struct iomuxc {
 };
 #endif
 
+
+#define IOMUXC_GPR2_BITMAP_SPWG	0
+#define IOMUXC_GPR2_BITMAP_JEIDA	1
+
+#define IOMUXC_GPR2_BIT_MAPPING_CH0_OFFSET		6
+#define IOMUXC_GPR2_BIT_MAPPING_CH0_MASK		(1<<IOMUXC_GPR2_BIT_MAPPING_CH0_OFFSET)
+#define IOMUXC_GPR2_BIT_MAPPING_CH0_JEIDA		(IOMUXC_GPR2_BITMAP_JEIDA<<IOMUXC_GPR2_BIT_MAPPING_CH0_OFFSET)
+#define IOMUXC_GPR2_BIT_MAPPING_CH0_SPWG		(IOMUXC_GPR2_BITMAP_SPWG<<IOMUXC_GPR2_BIT_MAPPING_CH0_OFFSET)
+
+#define IOMUXC_GPR2_DATA_WIDTH_18	0
+#define IOMUXC_GPR2_DATA_WIDTH_24	1
+
+#define IOMUXC_GPR2_DATA_WIDTH_CH0_OFFSET		5
+#define IOMUXC_GPR2_DATA_WIDTH_CH0_MASK			(1<<IOMUXC_GPR2_DATA_WIDTH_CH0_OFFSET)
+#define IOMUXC_GPR2_DATA_WIDTH_CH0_18BIT		(IOMUXC_GPR2_DATA_WIDTH_18<<IOMUXC_GPR2_DATA_WIDTH_CH0_OFFSET)
+#define IOMUXC_GPR2_DATA_WIDTH_CH0_24BIT		(IOMUXC_GPR2_DATA_WIDTH_24<<IOMUXC_GPR2_DATA_WIDTH_CH0_OFFSET)
+
+#define IOMUXC_GPR2_MODE_DISABLED	0
+#define IOMUXC_GPR2_MODE_ENABLED_DI0	1
+#define IOMUXC_GPR2_MODE_ENABLED_DI1	3
+
+#define IOMUXC_GPR2_LVDS_CH0_MODE_OFFSET		0
+#define IOMUXC_GPR2_LVDS_CH0_MODE_MASK			(3<<IOMUXC_GPR2_LVDS_CH0_MODE_OFFSET)
+#define IOMUXC_GPR2_LVDS_CH0_MODE_DISABLED		(IOMUXC_GPR2_MODE_DISABLED<<IOMUXC_GPR2_LVDS_CH0_MODE_OFFSET)
+#define IOMUXC_GPR2_LVDS_CH0_MODE_ENABLED_DI0		(IOMUXC_GPR2_MODE_ENABLED_DI0<<IOMUXC_GPR2_LVDS_CH0_MODE_OFFSET)
+#define IOMUXC_GPR2_LVDS_CH0_MODE_ENABLED_DI1		(IOMUXC_GPR2_MODE_ENABLED_DI1<<IOMUXC_GPR2_LVDS_CH0_MODE_OFFSET)
+
+
 /* System Reset Controller (SRC) */
 struct src {
 	u32	scr;
Signature · 1 line
2.1.4
#7 lore raw

PATCH v2 5/7 bootcount: add support for bootcounter on EXT filesystem

In reply to Martyn Welch

From: Ian Ray <[email protected]>

Add support for bootcounter on an EXT filesystem.
Sync configuration whitelist.

---
Changes for v2:
- Adding Kconfig for EXT bootcount.

 README                            |  7 +++++
 drivers/Kconfig                   |  2 ++
 drivers/bootcount/Kconfig         | 46 ++++++++++++++++++++++++++++++
 drivers/bootcount/Makefile        |  1 +
 drivers/bootcount/bootcount_ext.c | 59 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 115 insertions(+)
 create mode 100644 drivers/bootcount/Kconfig
 create mode 100644 drivers/bootcount/bootcount_ext.c
README +7 -0
index f288176..6336c5c 100644
@@ -2362,6 +2362,13 @@ The following options need to be configured:
 			CONFIG_SYS_BOOTCOUNT_ADDR = i2c addr which is used for
 						    the bootcounter.
 			CONFIG_BOOTCOUNT_ALEN = address len
+		CONFIG_BOOTCOUNT_EXT
+		enable support for the bootcounter in EXT filesystem
+			CONFIG_SYS_BOOTCOUNT_ADDR = RAM address used for read
+                                                    and write.
+			CONFIG_SYS_BOOTCOUNT_EXT_INTERFACE = interface
+			CONFIG_SYS_BOOTCOUNT_EXT_DEVPART = device and part
+			CONFIG_SYS_BOOTCOUNT_EXT_NAME = filename
 
 - Show boot progress:
 		CONFIG_SHOW_BOOT_PROGRESS
drivers/Kconfig +2 -0
index 613e602..c2e813f 100644
@@ -10,6 +10,8 @@ source "drivers/ata/Kconfig"
 
 source "drivers/block/Kconfig"
 
+source "drivers/bootcount/Kconfig"
+
 source "drivers/clk/Kconfig"
 
 source "drivers/cpu/Kconfig"
drivers/bootcount/Kconfig new file +46 -0

46 lines not on this page · raw message

drivers/bootcount/Makefile +1 -0
index ed9659a..45445d2 100644
@@ -9,3 +9,4 @@ 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
drivers/bootcount/bootcount_ext.c new file +59 -0

59 lines not on this page · raw message

Signature · 1 line
2.1.4
#8 lore raw

PATCH v2 5/7 bootcount: add support for bootcounter on EXT filesystem

Quoted 59 lines · Martyn Welch

From: Ian Ray <[email protected]>

Add support for bootcounter on an EXT filesystem.
Sync configuration whitelist.

---
Changes for v2:
- Adding Kconfig for EXT bootcount.

 README                            |  7 +++++
 drivers/Kconfig                   |  2 ++
 drivers/bootcount/Kconfig         | 46 ++++++++++++++++++++++++++++++
 drivers/bootcount/Makefile        |  1 +
 drivers/bootcount/bootcount_ext.c | 59 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 115 insertions(+)
 create mode 100644 drivers/bootcount/Kconfig
 create mode 100644 drivers/bootcount/bootcount_ext.c
README +7 -0
index f288176..6336c5c 100644
@@ -2362,6 +2362,13 @@ The following options need to be configured:
 			CONFIG_SYS_BOOTCOUNT_ADDR = i2c addr which is used for
 						    the bootcounter.
 			CONFIG_BOOTCOUNT_ALEN = address len
+		CONFIG_BOOTCOUNT_EXT
+		enable support for the bootcounter in EXT filesystem
+			CONFIG_SYS_BOOTCOUNT_ADDR = RAM address used for read
+                                                    and write.
+			CONFIG_SYS_BOOTCOUNT_EXT_INTERFACE = interface
+			CONFIG_SYS_BOOTCOUNT_EXT_DEVPART = device and part
+			CONFIG_SYS_BOOTCOUNT_EXT_NAME = filename
 
 - Show boot progress:
 		CONFIG_SHOW_BOOT_PROGRESS
drivers/Kconfig +2 -0
index 613e602..c2e813f 100644
@@ -10,6 +10,8 @@ source "drivers/ata/Kconfig"
 
 source "drivers/block/Kconfig"
 
+source "drivers/bootcount/Kconfig"
+
 source "drivers/clk/Kconfig"
 
 source "drivers/cpu/Kconfig"
drivers/bootcount/Kconfig new file +2 -0
new file mode 100644
index 0000000..a261ec9
@@ -0,0 +1,46 @@
+#
+# Boot count configuration

drivers/bootcount/Kconfig line 12

Quoted 10 lines
drivers/bootcount/Kconfig new file +10 -0
+#
+
+menu "Boot count support"
+
+config BOOTCOUNT_EXT
+	bool "Boot counter on EXT filesystem"
+	help
+	  Add support for bootcounter on an EXT filesystem.
+
+if BOOTCOUNT_EXT

Can you add an entry for BOOTCOUNT itself please too? Yes, that would be a new symbol, but that will make the rest of the migrations easier I think. Thanks!

Signature · 8 lines
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20171031/75b27776/attachment.sig>
#9 lore raw

PATCH v2 6/7 rtc: add support for s35392a

In reply to Martyn Welch

From: Nandor Han <[email protected]>

Add support for S35392A RTC. The driver supports both U-Boot driver models.

---
 drivers/rtc/Kconfig   |   6 +
 drivers/rtc/Makefile  |   1 +
 drivers/rtc/s35392a.c | 360 ++++++++++++++++++++++++++++++++++++++++++++++++++
 lib/Kconfig           |   3 +
 4 files changed, 370 insertions(+)
 create mode 100644 drivers/rtc/s35392a.c
drivers/rtc/Kconfig +6 -0
index d06130c7..2964bb2 100644
@@ -30,4 +30,10 @@ config RTC_DS1307
 	  Support for Dallas Semiconductor (now Maxim) DS1307 and DS1338/9 and
 	  compatible Real Time Clock devices.
 
+config RTC_S35392A
+	bool "Enable S35392A driver"
+	select BITREVERSE
+	help
+	  Enable s35392a driver which provides rtc get and set function.
+
 endmenu
drivers/rtc/Makefile +1 -0
index 003e31a..7a8f97a 100644
@@ -49,5 +49,6 @@ obj-$(CONFIG_RTC_RS5C372A) += rs5c372.o
 obj-$(CONFIG_RTC_RV3029) += rv3029.o
 obj-$(CONFIG_RTC_RX8025) += rx8025.o
 obj-$(CONFIG_RTC_S3C24X0) += s3c24x0_rtc.o
+obj-$(CONFIG_RTC_S35392A) += s35392a.o
 obj-$(CONFIG_SANDBOX) += sandbox_rtc.o
 obj-$(CONFIG_RTC_X1205) += x1205.o
drivers/rtc/s35392a.c new file +360 -0

360 lines not on this page · raw message

lib/Kconfig +3 -0
index 18663ba..f447c53 100644
@@ -80,6 +80,9 @@ config TPL_TINY_MEMSET
 config RBTREE
 	bool
 
+config BITREVERSE
+	bool "Bit reverse library from Linux"
+
 source lib/dhry/Kconfig
 
 menu "Security support"
Signature · 1 line
2.1.4
#10 lore raw

PATCH v2 7/7 mx53: Add Board support for GE PPD

In reply to Martyn Welch

From: Peter Senna Tschudin <[email protected]>

Create board support for GE PPD, based on mx53loco.

Use mx53ppd_defconfig make target to configure for this board.

---
Changes for v2:
- Replacing boot count related defines with default config.

 arch/arm/include/asm/mach-types.h       |   1 +
 arch/arm/mach-imx/mx5/Kconfig           |   5 +
 board/freescale/mx53ppd/Kconfig         |  17 ++
 board/freescale/mx53ppd/MAINTAINERS     |   7 +
 board/freescale/mx53ppd/Makefile        |  12 +
 board/freescale/mx53ppd/imximage.cfg    |  87 ++++++
 board/freescale/mx53ppd/mx53ppd.c       | 487 ++++++++++++++++++++++++++++++++
 board/freescale/mx53ppd/mx53ppd_video.c | 123 ++++++++
 board/freescale/mx53ppd/ppd_gpio.h      |  96 +++++++
 board/freescale/mx53ppd/vpd_reader.c    | 230 +++++++++++++++
 board/freescale/mx53ppd/vpd_reader.h    |  25 ++
 configs/mx53ppd_defconfig               |  38 +++
 include/configs/mx53ppd.h               | 246 ++++++++++++++++
 13 files changed, 1374 insertions(+)
 create mode 100644 board/freescale/mx53ppd/Kconfig
 create mode 100644 board/freescale/mx53ppd/MAINTAINERS
 create mode 100644 board/freescale/mx53ppd/Makefile
 create mode 100644 board/freescale/mx53ppd/imximage.cfg
 create mode 100644 board/freescale/mx53ppd/mx53ppd.c
 create mode 100644 board/freescale/mx53ppd/mx53ppd_video.c
 create mode 100644 board/freescale/mx53ppd/ppd_gpio.h
 create mode 100644 board/freescale/mx53ppd/vpd_reader.c
 create mode 100644 board/freescale/mx53ppd/vpd_reader.h
 create mode 100644 configs/mx53ppd_defconfig
 create mode 100644 include/configs/mx53ppd.h
arch/arm/include/asm/mach-types.h +1 -0
index 9f82efe..2a257cc 100644
@@ -5057,4 +5057,5 @@
 #define MACH_TYPE_NASM25               5112
 #define MACH_TYPE_TOMATO               5113
 #define MACH_TYPE_OMAP3_MRC3D          5114
+#define MACH_TYPE_MX53_PPD             5134
 #endif
arch/arm/mach-imx/mx5/Kconfig +5 -0
index ef37c35..330101d 100644
@@ -45,6 +45,10 @@ config TARGET_MX53LOCO
 	select BOARD_LATE_INIT
 	select MX53
 
+config TARGET_MX53PPD
+	bool "Support mx53ppd"
+	select MX53
+
 config TARGET_MX53SMD
 	bool "Support mx53smd"
 	select MX53
@@ -69,6 +73,7 @@ source "board/freescale/mx51evk/Kconfig"
 source "board/freescale/mx53ard/Kconfig"
 source "board/freescale/mx53evk/Kconfig"
 source "board/freescale/mx53loco/Kconfig"
+source "board/freescale/mx53ppd/Kconfig"
 source "board/freescale/mx53smd/Kconfig"
 source "board/inversepath/usbarmory/Kconfig"
 source "board/technologic/ts4800/Kconfig"
board/freescale/mx53ppd/Kconfig new file +17 -0
new file mode 100644
index 0000000..c66d6a7
@@ -0,0 +1,17 @@
+# SPDX-License-Identifier:	GPL-2.0+
+
+if TARGET_MX53PPD
+
+config SYS_BOARD
+	default "mx53ppd"
+
+config SYS_VENDOR
+	default "freescale"
+
+config SYS_SOC
+	default "mx5"
+
+config SYS_CONFIG_NAME
+	default "mx53ppd"
+
+endif
board/freescale/mx53ppd/MAINTAINERS new file +7 -0
new file mode 100644
index 0000000..9b64b5d
@@ -0,0 +1,7 @@
+MX53PPD BOARD
+M:	Antti Mäentausta <[email protected]>
+M:	Martyn Welch <[email protected]>
+S:	Maintained
+F:	board/freescale/mx53ppd/
+F:	include/configs/mx53ppd.h
+F:	configs/mx53ppd_defconfig
board/freescale/mx53ppd/Makefile new file +12 -0
new file mode 100644
index 0000000..df6c61f
@@ -0,0 +1,12 @@
+# Copyright 2017 General Electric Company
+#
+# Based on board/freescale/mx53loco/Makefile:
+#
+# (C) Copyright 2011 Freescale Semiconductor, Inc.
+# Jason Liu <[email protected]>
+#
+# SPDX-License-Identifier:	GPL-2.0+
+#
+
+obj-y			+= mx53ppd.o vpd_reader.o
+obj-$(CONFIG_VIDEO)	+= mx53ppd_video.o
board/freescale/mx53ppd/imximage.cfg new file +87 -0

87 lines not on this page · raw message

board/freescale/mx53ppd/mx53ppd.c new file +487 -0

487 lines not on this page · raw message

board/freescale/mx53ppd/mx53ppd_video.c new file +123 -0

123 lines not on this page · raw message

board/freescale/mx53ppd/ppd_gpio.h new file +96 -0

96 lines not on this page · raw message

board/freescale/mx53ppd/vpd_reader.c new file +230 -0

230 lines not on this page · raw message

board/freescale/mx53ppd/vpd_reader.h new file +25 -0
new file mode 100644
index 0000000..efa172a
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2016 General Electric Company
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include "common.h"
+
+/*
+ * Read VPD from given data, verify content, and call callback
+ * for each vital product data block.
+ *
+ * Returns Non-zero on error.  Negative numbers encode errno.
+ */
+int vpd_reader(
+	size_t size,
+	uint8_t * data,
+	void * userdata,
+	int (*fn)(
+	    void * userdata,
+	    uint8_t id,
+	    uint8_t version,
+	    uint8_t type,
+	    size_t size,
+	    uint8_t const * data));
configs/mx53ppd_defconfig new file +38 -0
new file mode 100644
index 0000000..e134e62
@@ -0,0 +1,38 @@
+CONFIG_ARM=y
+CONFIG_ARCH_MX5=y
+CONFIG_TARGET_MX53PPD=y
+CONFIG_FIT=y
+CONFIG_BOOTCOUNT_EXT=y
+CONFIG_SYS_BOOTCOUNT_EXT_INTERFACE="mmc"
+CONFIG_SYS_BOOTCOUNT_EXT_DEVPART="0:5"
+CONFIG_SYS_BOOTCOUNT_EXT_NAME="/boot/failures"
+CONFIG_SYS_BOOTCOUNT_ADDR=0x7000A000
+CONFIG_NETDEVICES=y
+CONFIG_VIDEO=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx53ppd/imximage.cfg"
+CONFIG_BOOTDELAY=1
+# CONFIG_CONSOLE_MUX is not set
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE=y
+CONFIG_DISPLAY_CPUINFO=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_I2C=y
+CONFIG_RTC_S35392A=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_USB=y
+CONFIG_USB_STORAGE=y
+# CONFIG_VIDEO_SW_CURSOR is not set
+CONFIG_OF_LIBFDT=y
+
+CONFIG_MMC=y
include/configs/mx53ppd.h new file +246 -0

246 lines not on this page · raw message

Signature · 1 line
2.1.4