
When calling comm to compare the CONFIG symbols a defconfig uses with the symbols that have been migrated, we need to suppress all output as the summary line will have everything we need. Failure to do this leads to the test blowing up, but in non-fatal ways.
Signed-off-by: Tom Rini trini@konsulko.com --- .azure-pipelines.yml | 2 +- .gitlab-ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 8352b10348de..81a72e03aa88 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -71,7 +71,7 @@ stages: grep '#define[[:blank:]]CONFIG_' $CFG | \ sed -n 's/#define.(CONFIG_[A-Za-z0-9_]*).*/\1/p' | \ sort -u > ${KUSEDLST} || true - NUM=`comm -12 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | \ + NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | \ cut -d , -f 3` if [[ $NUM -ne 0 ]]; then echo "Unmigrated symbols found in $CFG" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1f4be626adab..3f39e5588ba4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -132,7 +132,7 @@ check for migrated symbols in board header: grep '#define[[:blank:]]CONFIG_' $CFG | sed -n 's/#define.(CONFIG_[A-Za-z0-9_]*).*/\1/p' | sort -u > ${KUSEDLST} || true; - NUM=`comm -12 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | + NUM=`comm -123 --total --output-delimiter=, ${KSYMLST} ${KUSEDLST} | cut -d , -f 3`; if [[ $NUM -ne 0 ]]; then echo "Unmigrated symbols found in $CFG";

We cannot define a CONFIG value here to ensure that the Kconfig value isn't set wrong.
Fixes: 2c699fe0d34d ("configs: sunxi: Add common SUNIV header") Cc: Icenowy Zheng icenowy@aosc.io Cc: Andre Przywara andre.przywara@arm.com Signed-off-by: Tom Rini trini@konsulko.com --- include/configs/sunxi-common.h | 11 ----------- 1 file changed, 11 deletions(-)
diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 4bab917c0b7c..c467e9bd15bc 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -50,26 +50,15 @@ #ifdef CONFIG_MACH_SUN9I #define SDRAM_OFFSET(x) 0x2##x #define CONFIG_SYS_SDRAM_BASE 0x20000000 -/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here - * since it needs to fit in with the other values. By also #defining it - * we get warnings if the Kconfig value mismatches. */ #define CONFIG_SPL_BSS_START_ADDR 0x2ff80000 #elif defined(CONFIG_MACH_SUNIV) #define SDRAM_OFFSET(x) 0x8##x #define CONFIG_SYS_SDRAM_BASE 0x80000000 -/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here - * since it needs to fit in with the other values. By also #defining it - * we get warnings if the Kconfig value mismatches. - */ -#define CONFIG_SPL_STACK_R_ADDR 0x81e00000 #define CONFIG_SPL_BSS_START_ADDR 0x81f80000 #else #define SDRAM_OFFSET(x) 0x4##x #define CONFIG_SYS_SDRAM_BASE 0x40000000 /* V3s do not have enough memory to place code at 0x4a000000 */ -/* Note SPL_STACK_R_ADDR is set through Kconfig, we include it here - * since it needs to fit in with the other values. By also #defining it - * we get warnings if the Kconfig value mismatches. */ #define CONFIG_SPL_BSS_START_ADDR 0x4ff80000 #endif

On Fri, Mar 11, 2022 at 07:12:46AM -0500, Tom Rini wrote:
We cannot define a CONFIG value here to ensure that the Kconfig value isn't set wrong.
Fixes: 2c699fe0d34d ("configs: sunxi: Add common SUNIV header") Cc: Icenowy Zheng icenowy@aosc.io Cc: Andre Przywara andre.przywara@arm.com Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/next, thanks!

This commit re-introduced a migrated CONFIG symbol to the board header file. These changes should likely be handled via documentation instead, as well.
Cc: Simon Glass sjg@chromium.org Signed-off-by: Tom Rini trini@konsulko.com --- include/configs/efi-x86_app.h | 25 ------------------------- 1 file changed, 25 deletions(-)
diff --git a/include/configs/efi-x86_app.h b/include/configs/efi-x86_app.h index 33afb7ca0f9b..6061a6db0a40 100644 --- a/include/configs/efi-x86_app.h +++ b/include/configs/efi-x86_app.h @@ -10,33 +10,8 @@
#undef CONFIG_TPM_TIS_BASE_ADDRESS
-/* - * Select the output device: Put an 'x' prefix before one of these to disable it - */ - -/* - * Video output - can normally continue after exit_boot_services has been - * called, since output to the display does not require EFI services at that - * point. U-Boot sets up the console memory and does its own drawing. - */ #define CONFIG_STD_DEVICES_SETTINGS "stdin=serial\0" \ "stdout=vidconsole\0" \ "stderr=vidconsole\0"
-/* - * Serial output with no console. Run qemu with: - * - * -display none -serial mon:stdio - * - * This will hang or fail to output on the console after exit_boot_services is - * called. - */ -#define xCONFIG_STD_DEVICES_SETTINGS "stdin=serial\0" \ - "stdout=serial\0" \ - "stderr=serial\0" - -#undef CONFIG_BOOTCOMMAND - -#define CONFIG_BOOTCOMMAND "part list efi 0; fatls efi 0:1" - #endif

On Fri, 11 Mar 2022 at 05:12, Tom Rini trini@konsulko.com wrote:
This commit re-introduced a migrated CONFIG symbol to the board header file. These changes should likely be handled via documentation instead, as well.
Cc: Simon Glass sjg@chromium.org Signed-off-by: Tom Rini trini@konsulko.com
include/configs/efi-x86_app.h | 25 ------------------------- 1 file changed, 25 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
Sorry, was caught by spam filter. I must remember to check that every now and then.
- SImon

On Fri, Mar 11, 2022 at 07:12:47AM -0500, Tom Rini wrote:
This commit re-introduced a migrated CONFIG symbol to the board header file. These changes should likely be handled via documentation instead, as well.
Cc: Simon Glass sjg@chromium.org Signed-off-by: Tom Rini trini@konsulko.com Reviewed-by: Simon Glass sjg@chromium.org
Applied to u-boot/next, thanks!

As the CI test for stopping platforms from being merged that were defining symbols that had Kconfig entries, a small number of symbols needed to be migrated again. Do so, and catch two cases the README should also have been updated but was not.
Signed-off-by: Tom Rini trini@konsulko.com --- README | 11 ----------- configs/imx8mn_var_som_defconfig | 2 ++ configs/imx8mp_rsb3720a1_4G_defconfig | 3 +++ configs/imx8mp_rsb3720a1_6G_defconfig | 3 +++ configs/j721s2_evm_a72_defconfig | 1 + configs/j721s2_evm_r5_defconfig | 1 + configs/kontron_pitx_imx8m_defconfig | 4 ++++ configs/verdin-imx8mp_defconfig | 1 + include/configs/imx8mn_var_som.h | 5 ----- include/configs/imx8mp_rsb3720.h | 25 ------------------------- include/configs/j721s2_evm.h | 3 --- include/configs/kontron_pitx_imx8m.h | 7 ------- include/configs/ten64.h | 1 - include/configs/verdin-imx8mp.h | 4 ---- 14 files changed, 15 insertions(+), 56 deletions(-)
diff --git a/README b/README index 6bb8d6e25bdc..b2a61c669692 100644 --- a/README +++ b/README @@ -565,13 +565,6 @@ The following options need to be configured: boards with QUICC Engines require OF_QE to set UCC MAC addresses
- CONFIG_OF_SYSTEM_SETUP - - Other code has addition modification that it wants to make - to the flat device tree before handing it off to the kernel. - This causes ft_system_setup() to be called before booting - the kernel. - CONFIG_OF_IDE_FIXUP
U-Boot can detect if an IDE device is present or not. @@ -1847,10 +1840,6 @@ The following options need to be configured: CONFIG_SPL_SKIP_RELOCATE Avoid SPL relocation
- CONFIG_SPL_NAND_IDENT - SPL uses the chip ID list to identify the NAND flash. - Requires CONFIG_SPL_NAND_BASE. - CONFIG_SPL_UBI Support for a lightweight UBI (fastmap) scanner and loader diff --git a/configs/imx8mn_var_som_defconfig b/configs/imx8mn_var_som_defconfig index 155e83710220..098c8b40fe50 100644 --- a/configs/imx8mn_var_som_defconfig +++ b/configs/imx8mn_var_som_defconfig @@ -31,6 +31,8 @@ CONFIG_ARCH_MISC_INIT=y CONFIG_SPL_BOARD_INIT=y CONFIG_SPL_BOOTROM_SUPPORT=y CONFIG_SPL_SEPARATE_BSS=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300 CONFIG_SPL_I2C=y CONFIG_SPL_POWER=y CONFIG_SPL_WATCHDOG=y diff --git a/configs/imx8mp_rsb3720a1_4G_defconfig b/configs/imx8mp_rsb3720a1_4G_defconfig index 90e1c15bd713..04d36340f2c1 100644 --- a/configs/imx8mp_rsb3720a1_4G_defconfig +++ b/configs/imx8mp_rsb3720a1_4G_defconfig @@ -22,9 +22,12 @@ CONFIG_SPL_MMC=y CONFIG_SPL_SERIAL=y CONFIG_SPL_DRIVERS_MISC=y CONFIG_SPL=y +CONFIG_IMX_BOOTAUX=y CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000 CONFIG_DEFAULT_DEVICE_TREE="imx8mp-rsb3720-a1" CONFIG_DISTRO_DEFAULTS=y +CONFIG_REMAKE_ELF=y +CONFIG_SYS_LOAD_ADDR=0x40480000 CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_SIGNATURE=y diff --git a/configs/imx8mp_rsb3720a1_6G_defconfig b/configs/imx8mp_rsb3720a1_6G_defconfig index d7e2855f9c53..841e8795ac27 100644 --- a/configs/imx8mp_rsb3720a1_6G_defconfig +++ b/configs/imx8mp_rsb3720a1_6G_defconfig @@ -22,9 +22,12 @@ CONFIG_SPL_MMC=y CONFIG_SPL_SERIAL=y CONFIG_SPL_DRIVERS_MISC=y CONFIG_SPL=y +CONFIG_IMX_BOOTAUX=y CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000 CONFIG_DEFAULT_DEVICE_TREE="imx8mp-rsb3720-a1" CONFIG_DISTRO_DEFAULTS=y +CONFIG_REMAKE_ELF=y +CONFIG_SYS_LOAD_ADDR=0x40480000 CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_SIGNATURE=y diff --git a/configs/j721s2_evm_a72_defconfig b/configs/j721s2_evm_a72_defconfig index f4dc095ba3bd..7e2bbc482d1d 100644 --- a/configs/j721s2_evm_a72_defconfig +++ b/configs/j721s2_evm_a72_defconfig @@ -135,6 +135,7 @@ CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y CONFIG_FLASH_CFI_MTD=y CONFIG_SYS_FLASH_CFI=y +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPI_FLASH_SOFT_RESET=y diff --git a/configs/j721s2_evm_r5_defconfig b/configs/j721s2_evm_r5_defconfig index 09f832e67f82..996efd4db269 100644 --- a/configs/j721s2_evm_r5_defconfig +++ b/configs/j721s2_evm_r5_defconfig @@ -111,6 +111,7 @@ CONFIG_CFI_FLASH=y CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y CONFIG_FLASH_CFI_MTD=y CONFIG_SYS_FLASH_CFI=y +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y CONFIG_DM_SPI_FLASH=y CONFIG_SPI_FLASH_SFDP_SUPPORT=y CONFIG_SPI_FLASH_SOFT_RESET=y diff --git a/configs/kontron_pitx_imx8m_defconfig b/configs/kontron_pitx_imx8m_defconfig index 76430213e3d3..3483c9f2cc57 100644 --- a/configs/kontron_pitx_imx8m_defconfig +++ b/configs/kontron_pitx_imx8m_defconfig @@ -20,14 +20,18 @@ CONFIG_SPL_DRIVERS_MISC=y CONFIG_SPL=y CONFIG_IMX_BOOTAUX=y CONFIG_DISTRO_DEFAULTS=y +CONFIG_REMAKE_ELF=y CONFIG_SYS_LOAD_ADDR=0x40480000 CONFIG_FIT=y CONFIG_SPL_FIT_PRINT=y CONFIG_SPL_LOAD_FIT=y # CONFIG_USE_SPL_FIT_GENERATOR is not set +CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOARD_EARLY_INIT_F=y CONFIG_BOARD_LATE_INIT=y CONFIG_MISC_INIT_R=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x300 CONFIG_SPL_I2C=y CONFIG_SPL_POWER=y CONFIG_SPL_WATCHDOG=y diff --git a/configs/verdin-imx8mp_defconfig b/configs/verdin-imx8mp_defconfig index 4c28f7f55e47..e4e9efded8d8 100644 --- a/configs/verdin-imx8mp_defconfig +++ b/configs/verdin-imx8mp_defconfig @@ -25,6 +25,7 @@ CONFIG_SPL=y CONFIG_IMX_BOOTAUX=y CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000 CONFIG_DISTRO_DEFAULTS=y +CONFIG_REMAKE_ELF=y CONFIG_SYS_LOAD_ADDR=0x43500000 CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 diff --git a/include/configs/imx8mn_var_som.h b/include/configs/imx8mn_var_som.h index 1e800f0ecc05..f25d893e7c4d 100644 --- a/include/configs/imx8mn_var_som.h +++ b/include/configs/imx8mn_var_som.h @@ -14,8 +14,6 @@
#define CONFIG_SPL_MAX_SIZE (148 * SZ_1K) #define CONFIG_SYS_MONITOR_LEN SZ_512K -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300 #define CONFIG_SYS_UBOOT_BASE \ (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
@@ -84,7 +82,4 @@ /* USDHC */ #define CONFIG_SYS_FSL_ESDHC_ADDR 0
-/* I2C */ -#define CONFIG_SYS_I2C_SPEED 400000 - #endif /* __IMX8MN_VAR_SOM_H */ diff --git a/include/configs/imx8mp_rsb3720.h b/include/configs/imx8mp_rsb3720.h index ac4a7d0cb300..b89977584014 100644 --- a/include/configs/imx8mp_rsb3720.h +++ b/include/configs/imx8mp_rsb3720.h @@ -18,11 +18,9 @@
#define CONFIG_SPL_MAX_SIZE (152 * 1024) #define CONFIG_SYS_MONITOR_LEN (512 * 1024) -#define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION 1 #define CONFIG_SYS_UBOOT_BASE (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
#ifdef CONFIG_SPL_BUILD -#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" #define CONFIG_SPL_STACK 0x960000 #define CONFIG_SPL_BSS_START_ADDR 0x0098FC00 #define CONFIG_SPL_BSS_MAX_SIZE 0x400 /* 1 KB */ @@ -37,26 +35,11 @@ #define CONFIG_SPL_ABORT_ON_RAW_IMAGE
#if defined(CONFIG_NAND_BOOT) -#define CONFIG_SPL_NAND_SUPPORT -#define CONFIG_SPL_DMA #define CONFIG_SPL_NAND_MXS -#define CONFIG_SPL_NAND_BASE -#define CONFIG_SPL_NAND_IDENT -#define CONFIG_SYS_NAND_U_BOOT_OFFS 0x4000000 /* Put the FIT out of \ - * first 64MB boot area \ - */ - -/* Set a redundant offset in nand FIT mtdpart. The new uuu will burn full - * boot image (not only FIT part) to the mtdpart, so we check both two offsets - */ -#define CONFIG_SYS_NAND_U_BOOT_OFFS_REDUND \ - (CONFIG_SYS_NAND_U_BOOT_OFFS + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512 - 0x8400) - #endif
#endif
-#define CONFIG_REMAKE_ELF /* ENET Config */ /* ENET1 */ #if defined(CONFIG_CMD_NET) @@ -186,15 +169,12 @@ #define CONFIG_MXC_UART_BASE UART3_BASE_ADDR
/* Monitor Command Prompt */ -#define CONFIG_SYS_PROMPT_HUSH_PS2 "> " #define CONFIG_SYS_CBSIZE 2048 #define CONFIG_SYS_MAXARGS 64 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ sizeof(CONFIG_SYS_PROMPT) + 16)
-#define CONFIG_IMX_BOOTAUX - #define CONFIG_SYS_FSL_USDHC_NUM 2 #define CONFIG_SYS_FSL_ESDHC_ADDR 0
@@ -213,11 +193,6 @@ /* NAND stuff */ #define CONFIG_SYS_MAX_NAND_DEVICE 1 #define CONFIG_SYS_NAND_BASE 0x20000000 -#define CONFIG_SYS_NAND_5_ADDR_CYCLE -#define CONFIG_SYS_NAND_ONFI_DETECTION -#define CONFIG_SYS_NAND_USE_FLASH_BBT #endif /* CONFIG_NAND_MXS */
-#define CONFIG_SYS_I2C_SPEED 100000 - #endif /* __IMX8MP_RSB3720_H */ diff --git a/include/configs/j721s2_evm.h b/include/configs/j721s2_evm.h index 6fd098c957c3..87884649236a 100644 --- a/include/configs/j721s2_evm.h +++ b/include/configs/j721s2_evm.h @@ -60,9 +60,6 @@ #define CONFIG_SYS_BOOTM_LEN SZ_64M #define CONFIG_CQSPI_REF_CLK 133333333
-/* HyperFlash related configuration */ -#define CONFIG_SYS_MAX_FLASH_BANKS_DETECT 1 - /* U-Boot general configuration */ #define EXTRA_ENV_J721S2_BOARD_SETTINGS \ "default_device_tree=" CONFIG_DEFAULT_DEVICE_TREE ".dtb\0" \ diff --git a/include/configs/kontron_pitx_imx8m.h b/include/configs/kontron_pitx_imx8m.h index 0f96b905ab6d..2449a987953c 100644 --- a/include/configs/kontron_pitx_imx8m.h +++ b/include/configs/kontron_pitx_imx8m.h @@ -11,11 +11,8 @@
#define CONFIG_SPL_MAX_SIZE (124 * SZ_1K) #define CONFIG_SYS_MONITOR_LEN (512 * SZ_1K) -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR -#define CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 0x300
#ifdef CONFIG_SPL_BUILD -#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" #define CONFIG_SPL_STACK 0x187FF0 #define CONFIG_SPL_BSS_START_ADDR 0x00180000 #define CONFIG_SPL_BSS_MAX_SIZE SZ_8K @@ -33,8 +30,6 @@ #define CONFIG_POWER_PFUZE100_I2C_ADDR 0x08 #endif
-#define CONFIG_REMAKE_ELF - /* ENET1 Config */ #if defined(CONFIG_CMD_NET) #define CONFIG_ETHPRIME "FEC" @@ -92,6 +87,4 @@ #define CONFIG_SYS_FSL_USDHC_NUM 2 #define CONFIG_SYS_FSL_ESDHC_ADDR 0
-#define CONFIG_OF_SYSTEM_SETUP - #endif diff --git a/include/configs/ten64.h b/include/configs/ten64.h index 54e65f29f1eb..1a62ddf45dbc 100644 --- a/include/configs/ten64.h +++ b/include/configs/ten64.h @@ -9,7 +9,6 @@
#include "ls1088a_common.h"
-#define CONFIG_SYS_CLK_FREQ 100000000 #define COUNTER_FREQUENCY 25000000 /* 25MHz */
#define CONFIG_DIMM_SLOTS_PER_CTLR 1 diff --git a/include/configs/verdin-imx8mp.h b/include/configs/verdin-imx8mp.h index f8b4bf2df9b6..766707dd881a 100644 --- a/include/configs/verdin-imx8mp.h +++ b/include/configs/verdin-imx8mp.h @@ -16,7 +16,6 @@
#ifdef CONFIG_SPL_BUILD /*#define CONFIG_ENABLE_DDR_TRAINING_DEBUG*/ -#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/armv8/u-boot-spl.lds" #define CONFIG_SPL_STACK 0x960000 #define CONFIG_SPL_BSS_START_ADDR 0x0098fc00 #define CONFIG_SPL_BSS_MAX_SIZE SZ_1K @@ -31,11 +30,8 @@ #define CONFIG_POWER_PCA9450
#define CONFIG_SYS_I2C -#define CONFIG_SYS_I2C_SPEED 100000 #endif /* CONFIG_SPL_BUILD */
-#define CONFIG_REMAKE_ELF - /* ENET Config */ /* ENET1 */ #if defined(CONFIG_CMD_NET)

On Fri, Mar 11, 2022 at 07:12:48AM -0500, Tom Rini wrote:
As the CI test for stopping platforms from being merged that were defining symbols that had Kconfig entries, a small number of symbols needed to be migrated again. Do so, and catch two cases the README should also have been updated but was not.
Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/next, thanks!

On Fri, Mar 11, 2022 at 07:12:45AM -0500, Tom Rini wrote:
When calling comm to compare the CONFIG symbols a defconfig uses with the symbols that have been migrated, we need to suppress all output as the summary line will have everything we need. Failure to do this leads to the test blowing up, but in non-fatal ways.
Signed-off-by: Tom Rini trini@konsulko.com
Applied to u-boot/next, thanks!
participants (2)
-
Simon Glass
-
Tom Rini