On Friday 23 December 2022 22:39:00 Pali Rohár wrote: > On Friday 23 December 2022 14:18:32 Tom Rini wrote: > > On Fri, Dec 23, 2022 at 08:10:14PM +0100, Pali Rohár wrote: > > > On Thursday 22 December 2022 13:22:50 Tom Rini wrote: > > > > On Thu, Dec 22, 2022 at 06:56:40PM +0100, Pali Rohár wrote: > > > > > On Thursday 22 December 2022 12:33:32 Tom Rini wrote: > > > > > > I'm sorry you're frustrated here. I'm also frustrated here because > > > > > > the > > > > > > #ifdef games that PowerPC used, in a number of places have been very > > > > > > hard to un-wrap so that we can have something other than a > > > > > > home-grown > > > > > > build system. > > > > > > > > > > I was already trying to reduce it too, some patches I sent, some > > > > > other I > > > > > was preparing and some other are part of turris 1.x platform, which is > > > > > waiting there for 6 months. I planned to apply removal of MMC symbols > > > > > to > > > > > other P1/P2 boards, like it is in turris patch, but after turris patch > > > > > is merged... which did not happen yet. > > > > > > > > Right, and thanks for what you've done already. > > > > > > > > > > And I've tried to take your other feedback in to > > > > > > consideration, which has resulted in a large number of symbols being > > > > > > moved to CFG_... instead of Kconfig, as you're right, it wasn't the > > > > > > right mechanism for them. > > > > > > > > > > > > So, is it really just the 3 platforms that use p1_p2_rdb.h that need > > > > > > neither SDCARD nor SPIFLASH for the NAND and no extra suffix > > > > > > defconfigs? > > > > > > Or is it the P1010RDB ones too? > > > > > > > > > > It applies for e500 v1/v2 cores, which is cpu/mpc85xx in u-boot and > > > > > predates P3 platform. If there are not some suspicious symbol names > > > > > then > > > > > it should match any board which uses ARCH_MPC85??? or ARCH_P1?? or > > > > > ARCH_P2020 symbol. > > > > > > > > > > P2040 and T???? do not have e500 v1/v2 cores (they have e500mc or > > > > > e5500 > > > > > or e6500), so you can ignore these. > > > > > > > > OK. > > > > > > > > > Is there any tool which can list all defconfig files which defines > > > > > some > > > > > of those symbols, including transitionally? > > > > > > > > With the caveat of only symbols in Kconfig, tools/moveconfig.py -b will > > > > make a database that you can consult with -f. That takes both SYMBOL and > > > > ~SYMBOL to list configs with SYMBOL enabled or disabled, respectively. > > > > And you can chain them together. For example: > > > > $ ./tools/moveconfig.py -f ARCH_P1010 SDCARD > > > > 8 matches > > > > P1010RDB-PB_36BIT_NOR P1010RDB-PA_NOR P1010RDB-PB_SDCARD > > > > P1010RDB-PB_36BIT_SDCARD P1010RDB-PA_36BIT_NOR P1010RDB-PA_36BIT_SDCARD > > > > P1010RDB-PB_NOR P1010RDB-PA_SDCARD > > > > $ ./tools/moveconfig.py -f ARCH_P1010 ~SDCARD > > > > 8 matches > > > > P1010RDB-PA_NAND P1010RDB-PB_SPIFLASH P1010RDB-PB_36BIT_SPIFLASH > > > > P1010RDB-PA_36BIT_NAND P1010RDB-PA_36BIT_SPIFLASH P1010RDB-PA_SPIFLASH > > > > P1010RDB-PB_NAND P1010RDB-PB_36BIT_NAND > > > > > > Ok, I tried to build database and list of the affected defconfig files: > > > (all except T, P3+ and P204x) > > > > > > $ for arch in `git grep 'config ARCH' arch/powerpc/cpu/mpc85xx/Kconfig | > > > sed 's/.* //' | grep -v 'ARCH_T\|ARCH_P[345]\|ARCH_P204'`; do > > > ./tools/moveconfig.py -f $arch SDCARD; done | grep -v ' matches\|^$' > > > P1010RDB-PB_36BIT_NOR P1010RDB-PA_SDCARD P1010RDB-PB_NOR > > > P1010RDB-PB_SDCARD P1010RDB-PA_36BIT_NOR P1010RDB-PB_36BIT_SDCARD > > > P1010RDB-PA_NOR P1010RDB-PA_36BIT_SDCARD > > > P1020RDB-PC P1020RDB-PD_SDCARD P1020RDB-PC_SDCARD P1020RDB-PC_36BIT > > > P1020RDB-PD P1020RDB-PC_36BIT_SDCARD > > > P2020RDB-PC_SDCARD P2020RDB-PC_36BIT P2020RDB-PC_36BIT_SDCARD P2020RDB-PC > > > > > > So it means that these defconfigs are broken and CONFIG_SDCARD for them > > > must be turned off: > > > > > > P1010RDB-PB_36BIT_NOR > > > P1010RDB-PB_NOR > > > P1010RDB-PA_36BIT_NOR > > > P1010RDB-PA_NOR > > > P1020RDB-PC > > > P1020RDB-PC_36BIT > > > P1020RDB-PD > > > P2020RDB-PC_36BIT > > > P2020RDB-PC > > > > > > > > > These defconfigs have already CONFIG_SDCARD turned off: > > > > > > $ for arch in `git grep 'config ARCH' arch/powerpc/cpu/mpc85xx/Kconfig | > > > sed 's/.* //' | grep -v 'ARCH_T\|ARCH_P[345]\|ARCH_P204'`; do > > > ./tools/moveconfig.py -f $arch ~SDCARD; done | grep -v ' matches\|^$' > > > socrates > > > MPC8548CDS MPC8548CDS_legacy MPC8548CDS_36BIT > > > P1010RDB-PB_36BIT_NAND P1010RDB-PB_NAND P1010RDB-PA_36BIT_SPIFLASH > > > P1010RDB-PB_SPIFLASH P1010RDB-PA_36BIT_NAND P1010RDB-PA_NAND > > > P1010RDB-PB_36BIT_SPIFLASH P1010RDB-PA_SPIFLASH > > > P1020RDB-PC_NAND P1020RDB-PC_36BIT_SPIFLASH P1020RDB-PD_SPIFLASH > > > P1020RDB-PC_SPIFLASH P1020RDB-PD_NAND P1020RDB-PC_36BIT_NAND > > > P2020RDB-PC_SPIFLASH P2020RDB-PC_36BIT_SPIFLASH P2020RDB-PC_NAND > > > P2020RDB-PC_36BIT_NAND > > > qemu-ppce500 > > > > > > And seems that no of them is sd card related (hopefully). > > > > Thanks! Does the following look reasonable to you > > (CONFIG_FSL_FIXED_MMC_LOCATION was enabled due to SDCARD)? If so I'll > > make a proper patch next: > > Just to note that possibility of booting pre-PBL devices from SD or SPI > is described in document AN3659 - Booting from On-Chip ROM (eSDHC or eSPI): > https://www.nxp.com/docs/en/application-note/AN3659.pdf > In P2020 documentation it is named "On-chip boot ROM-eSDHC". > > > > > > > diff --git a/boot/Kconfig b/boot/Kconfig > > index 4a001bcee851..424ad0e466da 100644 > > --- a/boot/Kconfig > > +++ b/boot/Kconfig > > @@ -724,16 +724,19 @@ config RAMBOOT_PBL > > For more details refer to doc/README.pblimage > > > > choice > > - prompt "Freescale PBL load location" > > + prompt "Freescale PBL (or predecessor) load location" > > depends on RAMBOOT_PBL || ((TARGET_P1010RDB_PA || TARGET_P1010RDB_PB \ > > || TARGET_P1020RDB_PC || TARGET_P1020RDB_PD || TARGET_P2020RDB) > > \ > > && !CMD_NAND) > > > > config SDCARD > > - bool "Freescale PBL is found on SD card" > > + bool "Freescale PBL (or similar) is found on SD card" > > > > config SPIFLASH > > - bool "Freescale PBL is found on SPI flash" > > + bool "Freescale PBL (or similar) is found on SPI flash" > > + > > +config NO_PBL > > + bool "Freescale PBL (or similar) is not used in this case" > > > > endchoice > > > > Ok! I did runtime tests with P2020RDB-PC_defconfig on P2020 based board. > > > 1. directly on v2022.04 tag > > ==> works fine > > > 2. merged problematic commit d433c74eecdc with v2022.04 tag > > $ ll u-boot.bin > -rw-r--r-- 1 pali pali 151781376 dec 23 21:24 u-boot.bin > > ==> not possible to flash --> binary toooooo big (due to broken commit) > > > 3. merged problematic commit d433c74eecdc with v2022.04 tag and applying > above boot/Kconfig change and adding CONFIG_NO_PBL=y into file > P2020RDB-PC_defconfig. Also I added to include/configs/p1_p2_rdb_pc.h > check: > > #ifdef CONFIG_SDCARD > #error "CONFIG_SDCARD is defined" > #endif > > Whole steps: > $ git checkout v2022.04 > $ git merge d433c74eecdc > (resolve merge conflict for doc/) > $ git checkout --theirs doc/usage/index.rst > $ git add doc/usage/index.rst > $ git commit > apply change > add CONFIG_NO_PBL=y > $ make CROSS_COMPILE=powerpc-linux-gnuspe- P2020RDB-PC_defconfig > $ make CROSS_COMPILE=powerpc-linux-gnuspe- -j12 > > Binary now has correct size (it must have exactly 768 kB) > > $ ll u-boot.bin > -rw-r--r-- 1 pali pali 786432 dec 23 21:33 u-boot.bin > > U-Boot 2022.04-00286-g72336d158369-dirty (Dec 23 2022 - 21:18:23 +0100) > > CPU0: P2020E, Version: 2.1, (0x80ea0021) > Core: e500, Version: 5.1, (0x80211051) > Clock Configuration: > CPU0:1200 MHz, CPU1:1200 MHz, > CCB:600 MHz, > DDR:400 MHz (800 MT/s data rate) (Asynchronous), LBC:600 MHz > L1: D-cache 32 KiB enabled > I-cache 32 KiB enabled > Model: fsl,P2020RDB-PC > Board: P2020RDB-PC CPLD: V4.1 PCBA: V4.0 > rom_loc: nor upper bank > SD/MMC : 4-bit Mode > eSPI : Enabled > DRAM: Detected UDIMM 9905594-003.A00G > 2 GiB (DDR3, 64-bit, CL=6, ECC off) > Core: 11 devices, 9 uclasses, devicetree: embed > No address specified for VSC7385 microcode. > Flash: 16 MiB > L2: 512 KiB enabled > MMC: fsl_esdhc: Internal clock never stabilised. > FSL_SDHC: 0 > Loading Environment from Flash... OK > In: serial > Out: serial > Err: serial > Net: eTSEC1 > Error: eTSEC1 address not set. > , eTSEC2 > Error: eTSEC2 address not set. > , eTSEC3 > Error: eTSEC3 address not set. > > => > > ==> So works fine! > > > 4. u-boot master with this patch > > ==> does not work, no output on console; but SDCARD version is working, > so clearly some other commit broke non-SDCARD version too. > > So go ahead and apply this fix to master branch. You can add my > Tested-by: Pali Rohár <p...@kernel.org>
Are you going to apply this fix to master branch? > > diff --git a/configs/P1010RDB-PA_36BIT_NOR_defconfig > > b/configs/P1010RDB-PA_36BIT_NOR_defconfig > > index dcf74f5d6af5..deff04bf881d 100644 > > --- a/configs/P1010RDB-PA_36BIT_NOR_defconfig > > +++ b/configs/P1010RDB-PA_36BIT_NOR_defconfig > > @@ -19,7 +19,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw > > console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp > > $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr > > $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" > > diff --git a/configs/P1010RDB-PA_NOR_defconfig > > b/configs/P1010RDB-PA_NOR_defconfig > > index 537d8bf576b0..98486a0ae2ff 100644 > > --- a/configs/P1010RDB-PA_NOR_defconfig > > +++ b/configs/P1010RDB-PA_NOR_defconfig > > @@ -18,7 +18,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw > > console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp > > $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr > > $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" > > diff --git a/configs/P1010RDB-PB_36BIT_NOR_defconfig > > b/configs/P1010RDB-PB_36BIT_NOR_defconfig > > index 92a7e0966936..41a1a852b986 100644 > > --- a/configs/P1010RDB-PB_36BIT_NOR_defconfig > > +++ b/configs/P1010RDB-PB_36BIT_NOR_defconfig > > @@ -19,7 +19,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw > > console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp > > $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr > > $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" > > diff --git a/configs/P1010RDB-PB_NOR_defconfig > > b/configs/P1010RDB-PB_NOR_defconfig > > index 3e16470608e5..16c076bc9aaa 100644 > > --- a/configs/P1010RDB-PB_NOR_defconfig > > +++ b/configs/P1010RDB-PB_NOR_defconfig > > @@ -18,7 +18,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/ram rw > > console=$consoledev,$baudrate $othbootargs ramdisk_size=$ramdisk_size;tftp > > $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr > > $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr" > > diff --git a/configs/P1020RDB-PC_36BIT_defconfig > > b/configs/P1020RDB-PC_36BIT_defconfig > > index ce0ba0e37574..e60c92cedae9 100644 > > --- a/configs/P1020RDB-PC_36BIT_defconfig > > +++ b/configs/P1020RDB-PC_36BIT_defconfig > > @@ -21,7 +21,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 > > console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 > > $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm > > $loadaddr - $fdtaddr" > > diff --git a/configs/P1020RDB-PC_defconfig b/configs/P1020RDB-PC_defconfig > > index aae886b75c4e..f0f0eee65d29 100644 > > --- a/configs/P1020RDB-PC_defconfig > > +++ b/configs/P1020RDB-PC_defconfig > > @@ -20,7 +20,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 > > console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 > > $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm > > $loadaddr - $fdtaddr" > > diff --git a/configs/P1020RDB-PD_defconfig b/configs/P1020RDB-PD_defconfig > > index 5fecb6684735..8b7f9310b1a4 100644 > > --- a/configs/P1020RDB-PD_defconfig > > +++ b/configs/P1020RDB-PD_defconfig > > @@ -20,7 +20,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 > > console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 > > $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm > > $loadaddr - $fdtaddr" > > diff --git a/configs/P2020RDB-PC_36BIT_defconfig > > b/configs/P2020RDB-PC_36BIT_defconfig > > index b1dbca6e7ea3..1640f2379863 100644 > > --- a/configs/P2020RDB-PC_36BIT_defconfig > > +++ b/configs/P2020RDB-PC_36BIT_defconfig > > @@ -21,7 +21,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 > > console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 > > $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm > > $loadaddr - $fdtaddr" > > diff --git a/configs/P2020RDB-PC_defconfig b/configs/P2020RDB-PC_defconfig > > index 1ee46f9fbe9f..ca9f44728845 100644 > > --- a/configs/P2020RDB-PC_defconfig > > +++ b/configs/P2020RDB-PC_defconfig > > @@ -20,7 +20,7 @@ CONFIG_FIT=y > > CONFIG_FIT_VERBOSE=y > > CONFIG_OF_BOARD_SETUP=y > > CONFIG_OF_STDOUT_VIA_ALIAS=y > > -CONFIG_FSL_FIXED_MMC_LOCATION=y > > +CONFIG_NO_PBL=y > > CONFIG_BOOTDELAY=10 > > CONFIG_USE_BOOTCOMMAND=y > > CONFIG_BOOTCOMMAND="setenv bootargs root=/dev/$bdev rw rootdelay=30 > > console=$consoledev,$baudrate $othbootargs;usb start;ext2load usb 0:1 > > $loadaddr /boot/$bootfile;ext2load usb 0:1 $fdtaddr /boot/$fdtfile;bootm > > $loadaddr - $fdtaddr" > > > > -- > > Tom > >