i’m having an issue with the latest 6.6.58-ti-arm32-r15 kernel on beaglebone black. i created a image using buildroot and wasn’t able to boot. i believe i traced the issue to omap.h macro definition of AM33XX_IOPAD and AM33XX_IOPAD. it seems the definition here has 3 parameters, but 2 are expected. there is some history in the git repo about patching this so i’m not sure if this branch missed the beaglebone patches for this or something else is going on. after resolving that i get further, but still can’t boot from SD card which makes me think there might be other device tree or kernel patch issues.
include/dt-bindings/pinctrl/omap.h
[ 3.838936] mmc0: Problem switching card into high-speed mode!
[ 3.896822] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 3.957269] I/O error, dev mmcblk0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.017670] I/O error, dev mmcblk0, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.078106] I/O error, dev mmcblk0, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.086839] mmcblk1rpmb: mmc1:0001 MW2816 4.00 MiB, chardev (245:0)
[ 4.144473] I/O error, dev mmcblk0, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.204893] I/O error, dev mmcblk0, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.265333] I/O error, dev mmcblk0, sector 6 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.325750] I/O error, dev mmcblk0, sector 7 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.334299] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 4.547790] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 4.556466] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 4.562936] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00003101
[ 4.569406] mmc0: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000000
[ 4.575875] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
[ 4.582344] mmc0: sdhci: Present: 0x01570000 | Host ctl: 0x00000002
[ 4.588813] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 4.595282] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000107
[ 4.601751] mmc0: sdhci: Timeout: 0x00000009 | Int stat: 0x00000000
[ 4.608220] mmc0: sdhci: Int enab: 0x027f000b | Sig enab: 0x027f000b
[ 4.614688] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 4.621156] mmc0: sdhci: Caps: 0x07e10080 | Caps_1: 0x00000000
[ 4.627625] mmc0: sdhci: Cmd: 0x0000113a | Max curr: 0x00000000
[ 4.634095] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 4.640564] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 4.647032] mmc0: sdhci: Host ctl2: 0x00000000
[ 4.651494] mmc0: sdhci: ============================================
[ 4.658156] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.718429] I/O error, dev mmcblk0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.830203] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 4.838860] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 4.845329] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00003101
[ 4.851798] mmc0: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000000
[ 4.858267] mmc0: sdhci: Argument: 0x00000003 | Trn mode: 0x00000013
[ 4.864736] mmc0: sdhci: Present: 0x01570000 | Host ctl: 0x00000002
[ 4.871204] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 4.877674] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000107
[ 4.884143] mmc0: sdhci: Timeout: 0x00000009 | Int stat: 0x00000000
[ 4.890611] mmc0: sdhci: Int enab: 0x027f000b | Sig enab: 0x027f000b
[ 4.897080] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 4.903549] mmc0: sdhci: Caps: 0x07e10080 | Caps_1: 0x00000000
[ 4.910017] mmc0: sdhci: Cmd: 0x0000113a | Max curr: 0x00000000
[ 4.916485] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 4.922954] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 4.929422] mmc0: sdhci: Host ctl2: 0x00000000
[ 4.933883] mmc0: sdhci: ============================================
[ 5.043680] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 5.052338] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 5.058807] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00003101
[ 5.065275] mmc0: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000000
[ 5.071743] mmc0: sdhci: Argument: 0x00000005 | Trn mode: 0x00000013
[ 5.078212] mmc0: sdhci: Present: 0x01570000 | Host ctl: 0x00000002
[ 5.084681] mmc0: sdhci: Power: 0x0000000f | Blk gap: 0x00000000
[ 5.091150] mmc0: sdhci: Wake-up: 0x00000000 | Clock: 0x00000107
[ 5.097617] mmc0: sdhci: Timeout: 0x00000009 | Int stat: 0x00000000
[ 5.104085] mmc0: sdhci: Int enab: 0x027f000b | Sig enab: 0x027f000b
[ 5.110554] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
[ 5.117023] mmc0: sdhci: Caps: 0x07e10080 | Caps_1: 0x00000000
[ 5.123492] mmc0: sdhci: Cmd: 0x0000113a | Max curr: 0x00000000
[ 5.129959] mmc0: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
[ 5.136428] mmc0: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
[ 5.142895] mmc0: sdhci: Host ctl2: 0x00000000
[ 5.147356] mmc0: sdhci: ============================================
[ 5.257296] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 5.264543] mmcblk0: unable to read partition table
should i be looking to just use a different kernel version?
Please use am33x-v6.12 or am33x-v6.18 branches of GitHub - RobertCNelson/bb-kernel · GitHub
You can find kernel specific patches and defconfig here if you want to patch buildroot: Index of /deb/sid-armhf
bbb-user:
[ 3.838936] mmc0: Problem switching card into high-speed mode!
[ 3.896822] I/O error, dev mmcblk0, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 3.957269] I/O error, dev mmcblk0, sector 1 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.017670] I/O error, dev mmcblk0, sector 2 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.078106] I/O error, dev mmcblk0, sector 3 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.086839] mmcblk1rpmb: mmc1:0001 MW2816 4.00 MiB, chardev (245:0)
[ 4.144473] I/O error, dev mmcblk0, sector 4 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.204893] I/O error, dev mmcblk0, sector 5 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.265333] I/O error, dev mmcblk0, sector 6 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.325750] I/O error, dev mmcblk0, sector 7 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 2
[ 4.334299] Buffer I/O error on dev mmcblk0, logical block 0, async page read
[ 4.547790] mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
[ 4.556466] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
[ 4.562936] mmc0: sdhci: Sys addr: 0x00000000 | Version: 0x00003101
[ 4.569406] mmc0: sdhci: Blk size: 0x00000200 | Blk cnt: 0x00000000
[ 4.575875] mmc0: sdhci: Argument: 0x00000000 | Trn mode: 0x00000013
Check your microSD cage.. might be a bent pin..
Regards,
thanks for the quick response and support. is there a repository branch/tag where these patches are already applied?
i had pulled the kernel from here:
we had been using the same repository, but for 5.10 and didn’t need to apply additional patches.
what is the intention/difference of beagleboard / linux and RobertCNelson / bb-kernel ?
thanks.
good thing to check, but an sd card with older kernel works fine. thanks.
That’s a good test..
IDK, this is one the reasons we moved arm32 from TI’s branch to just mainline.. TI was introducing too many regressions on arm32 when enabling arm64/k3 stuff..
Our only real delta from mainline is the number of overlays, and RevD ITE support (while that’s being worked on mainline master..)
Regards,
Odd - me I use arch linux, and a few weeks ago, rebuilt the 7.0 kernel - and it boots fine. Don’t think I ended up applying any patches, all from the arch arm history didn’t apply, so only patch was from the Linux tree. If you can post the config.gz file from proc, I can compare to mine and see what the differences are …
this worked for (non-ti) 6.12.90-bone59 without additional patches. thanks!
i found one definite problem which was macro definition of AM33XX_IOPAD in omap.h wasn’t consistent with what the rest of the source was expecting. i’m guessing there were either missing patches in this particular branch or TI made a change in some branches, but not others. i found other kernel branches which had patched this file 5+ years ago.
If your talking about:
Mainline:
#define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val) (0)
#define AM33XX_PADCONF(pa, conf, mux) OMAP_IOPAD_OFFSET((pa), 0x0800) (conf) (mux)
vs:
#define AM33XX_IOPAD(pa, val) OMAP_IOPAD_OFFSET((pa), 0x0800) (val)
#define AM33XX_PADCONF(pa, dir, mux) OMAP_IOPAD_OFFSET((pa), 0x0800) ((dir) | (mux))
These two changes were made in mainline back in 2020 in v5.9.x merge: Making sure you're not a bot!
In general overlays “built” before that commit are not compatible with overlays “built” after that commit..
We get around that issue by having kernel specific branches of GitHub - beagleboard/BeagleBoard-DeviceTrees · GitHub and tell users, if you want a working overlay use that repo to build it..
Regards,
2 Likes
that is exactly what i was talking about. we are using a bit dated version of buildroot.
we had been using 5.10.168-ti-r83 from GitHub - beagleboard/linux: The official Read Only BeagleBoard and BeagleBone kernel repository https://git.beagleboard.org/beagleboard/linux · GitHub . this worked without any additional overlay.
i tried 6.6.58-ti-arm32-r15 from this same repo, but i guess was missing or had outdated overlays?
i thought this beagleboard linux repo already had the beaglebone overlays in them. does it not?
based on your advice using the 6.12.90-bone59 from GitHub - RobertCNelson/linux-stable-rcn-ee · GitHub , that works without any additional overlay. does that already have the overlay?
Correct it has all the current overlays at time of build..
Our device tree/overlay changes hit GitHub - beagleboard/BeagleBoard-DeviceTrees · GitHub first, then we merge all back into the kernel for tagged releases..
On average, changes or new overlays live in that repo for about a week before merged in a tag..
On the tagged releases a reference to the git version is noted.. 6.12.90-bone59 release · RobertCNelson/bb-kernel@c481053 · GitHub
Regards,
ok. that’s what i thought. i guess that just means there is some issue with the overlays included in the 6.6.58-ti-arm32-r15 tag. i did see some other branches had an overlay which reverted this omap.h change, so maybe that is what is missing and maybe other TI regressions as you suggested.
thanks.
Really wish that specific 6.6 branch didn’t exist.. I pushed it out and ti ended support (as they moved to 6.12) during the year of, “why do the emmc die after 2 months” git bisect testing.
We lost so much testing in the early 6.x era to that one emmc bug. Our mainline 6.12/6.18 branches are in so must better shape. Along with all the new AI assisted vulnerability today, using that old unsupported 6.6-ti branch is just bad…
Regards,
1 Like
i saw the rcn-ee_defconfig in the kernel source, but is there a sparse version somewhere this is built from? trying to see how our sparse config differs from that.
nope… that’s the kitchen sink..
for spare use omap2plus_defconfig…
1 Like
That’s interesesting. Never though of it that way. What’s the relationship between omap2 and sitara? I know that the pandaboard was omap4, so it’s in the beagleboard.org history. I always looked at the sitara line, and am335x as different lines, both developed by TI, so have much in common, but distinct lines …
Laughs! So PandaBoard was a 100% TI only venture after the success of BeagleBoard.
In silicon IP block lineage… AM335x shares IP with OMAP4. In a way AM335x would be one of the first non cell phone, non omap devices under sitara.
Regards,
I never knew that! I had the panda board - but only got into the beagle family when the Beagle Board Black was launch - they felt to me like a reply to the RPi that was going rampant at the time …