[Lenny400] [Letux-kernel] CI20: how to boot upstream kernel?
H. Nikolaus Schaller
hns at goldelico.com
Wed May 15 14:58:05 CEST 2019
Hi all,
> Am 14.05.2019 um 11:41 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
> Hi all,
>
>> Am 13.05.2019 um 18:14 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>>
>> Hi Mathieu,
>>
>>> Am 10.05.2019 um 08:08 schrieb Mathieu Malaterre <malat at debian.org>:
>>>
>>>>
>>>> The 4.19 kernel is stuck with
>>>>
>>>> [ 0.968637] Waiting for root device /dev/mmcblk0p1...
>>>>
>>>> although the mmc driver is loaded:
>>>>
>>>> [ 0.760598] jz4740-mmc 13460000.mmc: JZ SD/MMC card driver registered
>>>> [ 0.767091] jz4740-mmc 13460000.mmc: Using DMA, 4-bit mode
>>>>
>>>> Before I start a bisect to find which patch between 4.19 and 5.0 made it
>>>> work, I better ask the CI20 specialists here first...
>>>
>>> https://patchwork.kernel.org/project/linux-mmc/list/?submitter=179601
>>
>> Thanks for pointing to this patch set!
>>
>> Unless I have missed something, all patches except the first one have been
>> backported to stable v4.19.40 so they should be effective. And the first one
>> doesn't seem to improve anything in my tests.
>>
>> I have tried to git bisect and manual bisect and git log arch/mips/ingenic
>> but didn't find something in the jz47xx code or CI20 drivers that is obviously
>> related.
>>
>> What I also tried is to cherry-pick the jz4780 dma changes introduced by
>> 4.20 - but also no success. So it might be a side-effect of some other driver.
>>
>> Current status of my tests is that
>> v4.20-rc2 boots to login:
>> v4.20-rc1 kernel panics with page faults and strange things
>> v4.19.0 fails with "waiting for root device"
>> same for v4.18 and v4.14
>>
>> Unfortunately, these kernel panics make it difficult to git bisect between
>> v4.19 and v4.20-rc2.
>>
>> It also does not seem to make a difference if I use the ci20_defconfig
>> or my own (otherwise I could simply bisect the diff between both defconfigs).
>
> I did repeat some tests and found a bug in my script that copies the newly
> compiled kernel to the SD card. This sometimes missed something which went
> unnoticed. Therefore the test results were not reliable.
>
> With the fixed build process, the tree from kernel.org or the letux source tree
> works with a minimally patched ci20_defconfig. Only the full letux_defconfig
> makes 4.19 kernels fail to find the root device, while 4.20 and later kernels work.
>
> So this means I have to find out which config is in conflict and either disable
> it or find the driver enabled by it.
I think I found it by accident:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/gpio/Kconfig?h=v5.1&id=57e2143473fd7c5a4aefd90d6d9ed19c2d1981f8
Since I tried to backport the working letux_defconfig from 5.1 to 5.0 and to 4.19,
it did not "know" about this older config option and therefore GPIO_INGENIC was not set.
It seems to be needed for card detect and write protect, which explains why the rootfs
is not considered available.
I just wonder why my bisect attempts did not find it.
BR and thanks for help,
Nikolaus
PS: does anyone have PVR/SGX working on a mainline kernel? And the ov5640 camera?
More information about the Lenny400
mailing list