- Joined
- Jan 18, 2010
- Messages
- 11,410
Remember being down that rabbit hole too...I've already spent most of it on "fixing" a stupid bug with the network card on the devboard so it doesn't get a random MAC address every boot.
Remember being down that rabbit hole too...I've already spent most of it on "fixing" a stupid bug with the network card on the devboard so it doesn't get a random MAC address every boot.
How do you like this for a workaround:Remember being down that rabbit hole too...
fdt addr ${fdtaddr}; fdt resize; fdt set /ocp/interconnect@4a000000/segment@0/target-module@64000/usbhshost@0/ehci@c00/usbether@3 mac-address [${usbethaddr_spaces}]
Yes, that is a little unfortunate with the Linux development model which finally wants to see a cleaned up set pf patches which does not favour collaboration on a single feature. This means that it is not the "pile up changes by everyone even if they undo something" model, but involves rebasing and merging patches that had been there in the previous version. So what are options: indeed cloning the repo. Or looking into the feature branch: https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/letux/aess-v11 with a focus on the "important" stuff (everything else is also important but not for AESS). In the long run this will be squashed into roughly 5 to 10 patches when we try to get it upstream.Yes, I've seen the release mails, but I can never find the actual commits I find interesting.
For example, the release you linked mentions "some fixes for soc_component_driver for aess", so I wanted to check that code. I followed the git download link (https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=letux-6.2-rc4), but there was only a ton of merge commits. I didn't really feel like trudging through 50 other merged branches to find this 1 commit, so I entered the commit message in the search bar but it came up empty. I could of course clone the repo, but the Linux repo is big!
You could also add something to /etc/network/interfaces to set a fixed MAC or IP address.I can take a look unfortunately, time is running out this weekend so don't expect much I've already spent most of it on "fixing" a stupid bug with the network card on the devboard so it doesn't get a random MAC address every boot. Kinda annoying, but I have a workaround now. I also havenfsroot
working, which will hopefully save me time in the long run
That unfortunately doesn't work with NFS boot since the kernel does DHCP before mounting the file system. Thanks for the suggestion thoughYou could also add something to /etc/network/interfaces to set a fixed MAC or IP address.
tells it is "on" but a following "amixer get" says it is still (or again) "off" on 6.3-rc2.amixer set "DL1 PDM" "on"
This can either be a firmware generation bug or setting up the mixer properly on reading. Or setting this mixer should go through the AE firmware (which must be up and running but I wasn't able to find out yet). There are multiple potential locations for the reason of this failure...[ 284.203735] OMAP ABE Media LP: ASoC: no backend DAIs enabled for OMAP ABE Media LP
It was also a lot of fun never really worked with binary data in python before so I thought I'd give it a try. I also wanted to understand how things used to work before, so that I can compare it with today. I figured I would do a similar exercise on a modern firmware to see if I could find any bugs.Firmware creation and loading the blobs with 6.3-rc2 seems to be ok. Note that the file format has significantly changed since 3.8 or 3.15 which was the major part of work to create a firmware blob in the format a modern kernel can read (sound/soc-topology). So trying to understand or modify the old binary blobs is IMHO a little pointless since the source code for building them from source is on github (https://github.com/omap-audio). Yes, such a blob contains mixer definitions, path definitions and the real firmware binary for the Audio Engine processor.
BE_OUT
. Not sure what that means though, but looks like it's super close to getting audio out!Yes, that was a great hint!EDIT: I did note the distinct lack of green bubble aroundBE_OUT
. Not sure what that means though, but looks like it's super close to getting audio out!
Maybe if you put aYes, that was a great hint!
I've spent some time to analyse what makes the bubbles red or green (BTW on a Pyra now. Just to see if it makes a difference): the Red/Green bubble color represents the "DAPM Widget" power state (a single bit in struct snd_soc_dapm_widget).
But that is only the symptom, not the reason why BE_OUT stays red. From other searches through the code and some wild guess I think "BE_OUT" means "Backend Out" or in other words: the PCM connection between the OMAP and the twl6040 audio codec chip. So we are now no longer checking for firmware load issues or getting the sound links and graphs right, but getting all components powered on demand.
Well, I have not yet any idea how and where in the code the PCM should be powered on... Needs some more hours to find out... Only the observed result is very reasonable: if the McPDM interface is not powered up, the kernel or ALSA play tool waits until some timeout for the sound data going out. Which never happens.
But maybe this are things I can compare to the Pandaboard 3.15 kernel and see what that one would do or really does. Either by looking into the code or by adding some printk at the right positions.
dumpstack
on the pandaboard where the McPDM gets turned on?It might be some clocks are not turned on properly? Or power turned off for some subsystem in the audio pathStill a 'play' command hangs. Maybe, because the Audio Engine signal processor isn't running and fetching the provided audio stream data blocks.