OpenBMC porting to portwell pcomc660-ast2600 device.

Lior Weintraub liorw at pliops.com
Sun May 14 22:30:26 AEST 2023


Hi,

Today I tested the new compiled image and found kernel panic related to JFFS2:
rofs = mtd4 squashfs rwfs = mtd5 jffs2
mount: mounting /dev/mtdblock4 on run/initramfs/ro failed: Inval[    1.844313] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000: 0x29ae instead
id argument
[    1.856281] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000004: 0x00cd instead
[    1.868006] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000008: 0xfb26 instead
.
.

Not sure what is wrong there but I also noticed the following warning:
Loading Environment from SPI Flash... SF: Detected mx66l51235l with page size 256 Bytes, erase size 64 KiB, total 64 MiB
*** Warning - bad CRC, using default environment

I have dumped 2 logs so it will be easier to find the difference between a good run (based on kernel 5.10) and the new one.
Enclosed the dumps.

Google search has lots of similar errors reported but none of them helped me understand how to fix it. 
Cheers,
Lior.


-----Original Message-----
From: Lior Weintraub 
Sent: Saturday, May 13, 2023 11:06 AM
To: Stefan Berger <stefanb at linux.ibm.com>; Andrew Jeffery <andrew at aj.id.au>; Patrick Williams <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
Cc: openbmc at lists.ozlabs.org
Subject: RE: OpenBMC porting to portwell pcomc660-ast2600 device.

Thanks Stefan,

I think the issue was Yocto related as the meta-portwell layer I was porting came from an older (~18 months ago) version of OpenBMC.
On the older version, even though 2 layers (meta-aspeed and meta-portwell) had the same file (linux-aspeed_git.bb) it took the correct one and the patch was applied.
On the latest version, for some reason, it took the one from meta-aspeed.
To fix that I just renamed the meta-portwell file to be linux-aspeed_%.bbappend

I understand now why manual patch didn't work.
Simply because other setting were not being applied too and that also include the .config.

Cheers,
Lior.

-----Original Message-----
From: Stefan Berger <stefanb at linux.ibm.com>
Sent: Friday, May 12, 2023 7:28 PM
To: Lior Weintraub <liorw at pliops.com>; Andrew Jeffery <andrew at aj.id.au>; Patrick Williams <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
Cc: openbmc at lists.ozlabs.org
Subject: Re: OpenBMC porting to portwell pcomc660-ast2600 device.

CAUTION: External Sender

On 5/11/23 16:48, Lior Weintraub wrote:
> Well, Yocto is a tricky build system for newbies ☹ I thought I found 
> something but then saw something else that I cannot explain...
>
> 1.
> I managed to build it successfully after cd into tmp/work-shared/pcomc660-ast2600/kernel-source, git pull and git apply patch 0001-pcomc660-ast2600.patch.
> Then go back to execute bitbake obmc-phosphor-image.
> Further investigation suggested that the meta-portwell layer was using the Yocto incorrectly (or it might be how Yocto used to work 18 months ago?).
> The issue was that their linux-aspeed_git.bb was probably ignored and that explains why the patch was never applied.
> 2.
> Copied the syntax of linux-aspeed_%.bbapend from meta-ibm and after applying it to the portwell layer things started to happen.
> I got compilation errors on aspeed-g6-pwm-tacho.c and after some digging I found that 12 months ago the API of PWM was changed and this caused the errors.
> (linux commit 0829c35dc5346e90f428de61896362b51ab58296: pwm: Drop 
> support for legacy drivers) After fixing the compilation errors I could build again.
>
> Still I have no clue why after manually applying the patch (#1) I didn't get the compilation errors.

Is the file you are patching actually being compiled? Are the config options that need to be set in .config to have the file compiled? I find my .config file here:

build/evb-ast2600/tmp/work/evb_ast2600-openbmc-linux-gnueabi/linux-aspeed/6.1.15+gitAUTOINC+580639a973-r0/linux-evb_ast2600-standard-build/.config

All the object files from compiling the kernel are located here on my machine and I sometimes check whether they were compiled using 'find <path> | grep <module name>'.

build/evb-ast2600/tmp/work/evb_ast2600-openbmc-linux-gnueabi/linux-aspeed/6.1.15+gitAUTOINC+580639a973-r0/linux-evb_ast2600-standard-build/

   Cheers,
     Stefan

> Thanks for listening 😊
> Cheers,
> Lior.
>
>
> -----Original Message-----
> From: Lior Weintraub
> Sent: Thursday, May 11, 2023 6:06 PM
> To: Andrew Jeffery <andrew at aj.id.au>; Patrick Williams 
> <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
> Cc: openbmc at lists.ozlabs.org
> Subject: RE: OpenBMC porting to portwell pcomc660-ast2600 device.
>
> After fixing the patch (verified it can be applied without errors onto linux branch 6.1) I was still getting the error.
> I found that the patch was never actually applied (could explain why bitbake didn't complain about the errors).
> Part of the patch was adding a new file pcomc660-ast2600.dts but it wasn't found on tmp/work-shared/pcomc660-ast2600/kernel-source/arch/arm/boot/dts.
> So I suspect something is wrong with this SRC_URI line:
>
> KBRANCH ?= "dev-6.1"
> LINUX_VERSION ?= "6.1.15"
> SRCREV="580639a973406691fa93b8fa377c4c5a43f66094"
> SRC_URI:append = " file://0001-pcomc660-ast2600.patch"
> require linux-aspeed.inc
>
> I also tried using
> SRC_URI += "file://0001-pcomc660-ast2600.patch" or
> SRC_URI:append:pcomc660-ast2600 = " file://0001-pcomc660-ast2600.patch"
>
> but still it seems that the patch wasn't applied.
> Any thoughts?
>
> -----Original Message-----
> From: Lior Weintraub
> Sent: Thursday, May 11, 2023 1:27 PM
> To: Andrew Jeffery <andrew at aj.id.au>; Patrick Williams 
> <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
> Cc: openbmc at lists.ozlabs.org
> Subject: RE: OpenBMC porting to portwell pcomc660-ast2600 device.
>
> I think I have a clue what the issue is (still no solution).
> I took the Linux kernel dev-6.1 from https://github.com/openbmc/linux into a separate folder and just tried to apply the Portwell patch manually:
> error: patch failed: arch/arm/boot/dts/aspeed-g6.dtsi:304
> error: arch/arm/boot/dts/aspeed-g6.dtsi: patch does not apply
> error: patch failed: drivers/usb/host/ehci-hcd.c:634
> error: drivers/usb/host/ehci-hcd.c: patch does not apply
> error: patch failed: drivers/usb/host/ehci.h:218
> error: drivers/usb/host/ehci.h: patch does not apply
>
> 1. I will try to find what causes these errors 2. I wonder why (maybe it is a Yocto question) there is no indication to this fail during the bitbake phase.
>
> Cheers,
> Lior.
>
> -----Original Message-----
> From: Lior Weintraub
> Sent: Thursday, May 11, 2023 12:46 PM
> To: Andrew Jeffery <andrew at aj.id.au>; Patrick Williams 
> <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
> Cc: openbmc at lists.ozlabs.org
> Subject: RE: OpenBMC porting to portwell pcomc660-ast2600 device.
>
> Hi,
>
> Portwell support helped resolving the u-boot compilation error with this modification on “meta-portwell/meta-pcomc660-ast2600/recipes-bsp/u-boot/u-boot-aspeed-sdk_2019.04.bbappend”
>
> FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> SRCREV = "44a8c618c1215e0faac0f335f0afd56ed4240e76"
> SRC_URI += "file://0001-2021-11-18-Add-PCOM-C660-AST2600-u-boot-support.patch"
> SOCSEC_SIGN_ENABLE = "0"
>
> Now there is another error:
> make[1]: *** No rule to make target 'arch/arm/boot/dts/pcomc660-ast2600.dtb'.  Stop.
>
> Portwell have a patch with pcomc660-ast2600.dts so I am not sure why it was working on kernel version 5.18 and not on 6.1.
> The patch is located on: 
> https://github.com/wlbe4/openbmc/blob/portwell/meta-portwell/meta-pcom
> c660-ast2600/recipes-kernel/linux/linux-aspeed/0001-2021-11-18-Add-Pco
> m-C660-AST2600-support.patch The linux-aspeed_git.bb file that adds 
> this patch is located on:
> https://github.com/wlbe4/openbmc/blob/portwell/meta-portwell/meta-pcom
> c660-ast2600/recipes-kernel/linux/linux-aspeed_git.bb
>
> I'm waiting for Portwell support but if you have an idea what can be 
> the reason 😊
>
> Cheers,
> Lior.
>
> -----Original Message-----
> From: Lior Weintraub
> Sent: Monday, April 17, 2023 9:55 AM
> To: 'Andrew Jeffery' <andrew at aj.id.au>; Patrick Williams 
> <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
> Cc: openbmc at lists.ozlabs.org
> Subject: RE: OpenBMC porting to portwell pcomc660-ast2600 device.
>
> Hi Andrew,
>
> The AST2600 Development kit from Portwell comes with a slightly old version of OpenBMC.
> The sources came as a tar.xz file and could be downloaded from: 
> https://www.dropbox.com/s/t2nb11mkuoisj0s/PCOM-C660-AST2600_BSP_202112
> 10.tar.xz?dl=0
>
> What I try to do is to get the latest OpenBMC codebase and integrate meta-portwell layer from the old sources (dated from Dec. 2021).
> If you take a look on the 3 last commits from https://github.com/wlbe4/openbmc/tree/portwell, you can see my migration attempt.
>
> I have upgraded the linux-aspeed version they used (5.10.67) to 6.1.15 but left their patch as it includes the device tree for their platform.
> I have removed the patch they had for u-boot-aspeed-sdk as an attempt to solve the errors I got even though I think this patch might be needed.
>
> The current build error with u-boot-aspeed-sdk is:
> build/pcomc660-ast2600/tmp/work/pcomc660_ast2600-openbmc-linux-gnueabi/u-boot-aspeed-sdk/1_v2019.04+gitAUTOINC+fd915728e1-r0/git/lib/smbios.c:84:58: error: 'U_BOOT_DMI_DATE' undeclared (first use in this function)
>     84 |         t->bios_release_date = smbios_add_string(t->eos, U_BOOT_DMI_DATE);
>
> Regarding the errors I had with obmc-console:
> ERROR: 
> /media/data/workspace/openbmc/openbmc-fork/meta-phosphor/recipes-phosp
> hor/console/obmc-console_git.bb: Unable to get checksum for 
> obmc-console SRC_URI entry obmc-console.conffile: file could not be 
> found
>
> Their original code included a bbappend file for the obmc-console:
> FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}/:"
> OBMC_CONSOLE_HOST_TTY = "ttyS0"
>
> SRC_URI:remove = "file://${BPN}.conf"
> SRC_URI:append = "file://server.ttyS0.conf"
>
> do_install:append() {
>          # Remove upstream-provided configuration
>          rm -rf ${D}${sysconfdir}/${BPN}
>
>          # Install the server configuration
>          install -m 0755 -d ${D}${sysconfdir}/${BPN}
>          install -m 0644 ${WORKDIR}/*.conf ${D}${sysconfdir}/${BPN}/
>          # Remove upstream-provided server configuration
>          rm -f ${D}${sysconfdir}/${BPN}/server.ttyVUART0.conf
> }
>
> I suspected that their removal of "file://${BPN}.conf" wasn't welcomed by the obmc-console_git.bb recipe So I just commented it all out (except for the first line), copied the obmc-console.conf and the error was gone.
>
> Their server.ttyS0.conf file included:
> local-tty = ttyS0
> baud = 115200
> So I have and added the local-tty line to my obmc-console.conf copy.
>
> I am not sure that the console will work after my changes as I currently don't have the board for testing (will arrive in 2 weeks time).
> So I am currently focusing my efforts on migration and fixing the compilation errors.
>
> Thanks for your help,
> Lior.
>
> -----Original Message-----
> From: Andrew Jeffery <andrew at aj.id.au>
> Sent: Monday, April 17, 2023 5:58 AM
> To: Lior Weintraub <liorw at pliops.com>; Patrick Williams 
> <patrick at stwcx.xyz>; Ryan Chen <ryan_chen at aspeedtech.com>
> Cc: openbmc at lists.ozlabs.org
> Subject: Re: OpenBMC porting to portwell pcomc660-ast2600 device.
>
> CAUTION: External Sender
>
> Hi Lior,
>
> On Sat, 15 Apr 2023, at 20:08, Lior Weintraub wrote:
>> Hi Guys,
>>
>> I have forked the openbmc project and opened a "portwell" branch from 
>> it's "master".
>> The repo is under: https://github.com/wlbe4/openbmc I am trying to 
>> port OpenBMC into this board:
>> https://portwell.com/solutions/openBMC.php
>>
>> My first commit to this branch was the original code of meta-portwell 
>> layer given to me by Portwell support (PCOM-C660-AST2600_BSP_20211210).
>> The second commit tries to migrate meta-portwell layer to the latest 
>> Yocto syntax.
>>
>> Changes include (among others):
>> 1. replace _append with :append
>> 2. replace _prepend with :prepend
>> 3. move bblayers.conf.sample, conf-notes.txt and local.conf.sample 
>> into templates/default folder.
>> 4. Try to fix build errors on u-boot and aspeed-linux - Still there 
>> are errors
>
> This doesn't give us any insight as to what the errors were. Can you provide more detail?
>
>> 5. Try to fix obmc-console - The build errors are gone but not sure 
>> it will work (no platform for testing yet)
>
> What build errors did you see?
>
>>
>> Some of the changes were just a syntax change but some requires 
>> deeper understanding.
>> Few examples are the changes in obmc-concole, u-boot and aspeed-linux.
>> Since the original version is based on older u-boot and linux kernel, 
>> the patches might not be relevant anymore.
>>
>> Can you please review the following changes on my repo:
>> meta-portwell/meta-pcomc660-ast2600/recipes-phosphor/console/obmc-con
>> s
>> ole_%.bbappend
>
> It's hard to say whether that's correct for your platform, but I don't think there's anything obviously wrong there.
>
>> meta-portwell/meta-pcomc660-ast2600/classes/socsec-sign.bbclass
>
> Can you unpack what were you trying to achieve by copying socsec-sign.bbclass?
>
>> meta-portwell/meta-pcomc660-ast2600/conf/machine/pcomc660-ast2600.con
>> f
>> meta-portwell/meta-pcomc660-ast2600/recipes-bsp/u-boot/u-boot-aspeed-
>> s
>> dk_2019.04.bbappend
>> meta-portwell/meta-pcomc660-ast2600/recipes-kernel/linux/linux-aspeed
>> _
>> git.bb
>
> Have you tried building without applying patches to u-boot and linux-aspeed? It's not clear whether its your own patches that are breaking the build or if something else is afoot.
>
> Andrew
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pcomc660-ast2600-old-codebase-ref.txt
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20230514/a11004b6/attachment-0002.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pcomc660-ast2600-new-codebase-panic.txt
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20230514/a11004b6/attachment-0003.txt>


More information about the openbmc mailing list