[Custom OSD3358 SiP] 4.19-RT-Kernel panic (shutdown)

Hi
When My beaglebone black is booted or flashing from SD Card to emmc, the following error occurs.

What’s wrong with my BBB and How can I fix it?
Please Help me.

Regards

Hi @taek8461, is there a specific reason why you are using 4.19.31-bone-rt-31?

We are currently shipping: 4.19.120-bone-rt-r50

debian@beaglebone:~$ uname -r ; sudo systemctl poweroff 
4.19.120-bone-rt-r50

..........

[  OK  ] Started Power-Off.
[  OK  ] Reached target Power-Off.
[76625.609386] systemd-shutdow: 47 output lines suppressed due to ratelimiting
[76625.707137] systemd-shutdown[1]: Syncing filesystems and block devices.
[76625.760941] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[76625.784974] systemd-journald[771]: Received SIGTERM from PID 1 (systemd-shutdow).
[76625.827537] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[76625.853474] systemd-shutdown[1]: Unmounting file systems.
[76625.865084] [2216]: Remounting '/' read-only in with options 'errors=remount-ro'.
[76625.907328] EXT4-fs (mmcblk0p1): re-mounted. Opts: errors=remount-ro
[76625.928214] systemd-shutdown[1]: All filesystems unmounted.
[76625.933957] systemd-shutdown[1]: Deactivating swaps.
[76625.939563] systemd-shutdown[1]: All swaps deactivated.
[76625.944955] systemd-shutdown[1]: Detaching loop devices.
[76625.951087] systemd-shutdown[1]: All loop devices detached.
[76625.956743] systemd-shutdown[1]: Detaching DM devices.
[76626.061502] reboot: Power down

Humm, 4.19.31-bone-rt-r31 shut’s down fine too…

debian@beaglebone:~$ uname -r
4.19.31-bone-rt-r31

[  OK  ] Started Power-Off.
[  OK  ] Reached target Power-Off.
[  154.941274] systemd-shutdow: 42 output lines suppressed due to ratelimiting
[  155.039811] systemd-shutdown[1]: Syncing filesystems and block devices.
[  155.091116] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
[  155.114843] systemd-journald[766]: Received SIGTERM from PID 1 (systemd-shutdow).
[  155.156011] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
[  155.181832] systemd-shutdown[1]: Unmounting file systems.
[  155.193789] [1705]: Remounting '/' read-only in with options 'errors=remount-ro'.
[  155.237145] EXT4-fs (mmcblk0p1): re-mounted. Opts: errors=remount-ro
[  155.257897] systemd-shutdown[1]: All filesystems unmounted.
[  155.263633] systemd-shutdown[1]: Deactivating swaps.
[  155.268997] systemd-shutdown[1]: All swaps deactivated.
[  155.274280] systemd-shutdown[1]: Detaching loop devices.
[  155.280363] systemd-shutdown[1]: All loop devices detached.
[  155.286002] systemd-shutdown[1]: Detaching DM devices.
[  155.391206] reboot: Power down

What version of u-boot are you running?

U-Boot SPL 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500)
Trying to boot from MMC1
Loading Environment from EXT4... ** File not found /boot/uboot.env **

** Unable to read "/boot/uboot.env" from mmc0:1 **


U-Boot 2019.04-00002-g31a8ae0206 (May 13 2020 - 09:26:17 -0500), Build: jenkins-github_Bootloader-Builder-139

CPU  : AM335X-GP rev 2.1
I2C:   ready
DRAM:  512 MiB
No match for driver 'omap_hsmmc'
No match for driver 'omap_hsmmc'
Some drivers were not found
Reset Source: Power-on reset has occurred.
RTC 32KCLK Source: External.
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Loading Environment from EXT4... ** File not found /boot/uboot.env **

Regards,

Hi
Thank you for your response.

This is the message when BBB is booted.

I have been testing BBB since December, 2018
The linux version is the first. No changes have been made since then.

If I change Linux version to 4.19.120-bone-rt-r50, will it be resolved?

or could it be because I made a bad sd card image?

Please, help me.

Hi @taek8461, sorry i just tried to replicate your issue with u-boot v2019.01 and 4.19.31-bone-rt-r31… For me it shuts down properly… It did get me wondering, how are you powering the BeagleBone Black, DC jack, usb connector or some other method?

Regards,

Hi
I modified beaglebone blacks a little.
Some BBBs are good, but the others have the issue.
I use a DC Jack.

I want to know what kind of situation that problem occurs.
Please, help me

So, you modified a few BBB’s some have shutdown issues while other’s do not?

What exactly did you modify?

I’m sorry, but it looks like we are chasing Hardware bugs you actually created! :wink:

On a factory BBB, this kernel and u-boot combination works correctly.

Feel free to share exactly what you changed. Schematic’s are helpful.

Regards,

Hi
I made 40 modified BBBs
4 BBBs of them have the problem.
I also think it would be a hardware problem.
I want to know what kind of problem is causing this.
So If I know the cause of the problem, you might find a clue to tackle the troubled 4 BBBs

I upload my schematics.
LTEModem_Schematics1.pdf (3.8 MB)
LTEModem_Schematics2.pdf (3.3 MB)
LTEModem_Schematics3.pdf (3.2 MB)

Please, help me.

Regard

Hi @taek8461, very nice re-spin with the OSD3358 SiP. This is not a BeagleBone Black, just call it your own design. :wink:

Since it looks like you dropped HDMI, (do you have any lcd or similar display attached) You should probably remove the 24.576 Mhz Noise generator (OSC1) on GPIO3_21, as that can make FCC fail when no HDMI cable is properly connected…

So I’ve found, on some boards using the SiP device, the 32.768Khz Osc for RTC doesn’t work, which causes a similar shutdown failure. There are two fixes, first switch to the internal 32KCLK. This must be done in u-boot: (We do this by default for the PocketBeagle and BeagleBone Blue)

+	if (board_is_pb() || board_is_blue()) {
+		/* 6: EN_32KCLK */
+		/* 3: SEL_32KCLK_SRC 0: internal, 1: external */
+		writel((0 << 3) | (1 << 6), &rtc->osc);
+	} else {
+		/* Enable the RTC 32K OSC by setting bits 3 and 6. */
+		writel((1 << 3) | (1 << 6), &rtc->osc);
+	}

Second, we need to configure the *.dts for the rtc change, for example this is the Blue fix:

So as this is a custom board, using the BeagleBone Black “eeprom” there is no generic fix i can push out, as it’ll break “Real” BeagleBone Black’s. Your options are to patch u-boot and the kernel yourself, or create a new eeprom variant that does not collide with official values:

Easiest thing to do is, use the base value for ddr3 timing:

aa 55 33 ee 41 33 33 35  42 4e 4c 54

Then use 4 more standard readable characters and create your own “board_is_xyz(void)” functions:

Tie it under board_is_beaglebonex to get the ddr3 timing and all the beagle defaults. Then add it to the RTC section.

You can verify you did this correctly by looking at the u-boot log, which should change from:

RTC 32KCLK Source: External.

to:

RTC 32KCLK Source: Internal.

When correctly patched.

Regards,

Hi
Thank you for your response.
But your explanation is so difficult… :cold_sweat:

I tried to follow like your instruction.
So What I did until now is as follow.

  1. downloaded new u-boot and kernel
    • u-boot : U-Boot 2019.04-dirty (Jun 07 2020 - 22:54:40 -0700)
    • kernel : 4.19.120-bone50
  2. I changed the file : 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch


    added board_is_bblter(void)
  3. I changed board id
    image

Is what I have done correct?
and I don’t know how to change this : am335x-boneblue.dts: fix rtc off
I am a beginner as well as Linux embedded Linux :cold_sweat:
Could you explain it easily?

Regards.