Messages in this thread |  | | Date | Sat, 30 Apr 2022 05:30:05 -0500 | Subject | Re: [PATCH v3] sh: avoid using IRQ0 on SH3/4 | From | Rob Landley <> |
| |
On 4/29/22 09:24, John Paul Adrian Glaubitz wrote: > Hi Sergey! > > On 4/27/22 20:46, Sergey Shtylyov wrote: >> Using IRQ0 by the platform devices is going to be disallowed soon (see [1]) >> and even now, when IRQ0 is about to be returned by platfrom_get_irq(), you >> see a big warning. The code supporting SH3/4 SoCs maps the IRQ #s starting >> at 0 -- modify that code to start the IRQ #s from 16 instead. >> >> The patch should mostly affect the AP-SH4A-3A/AP-SH4AD-0A boards as they >> indeed use IRQ0 for the SMSC911x compatible Ethernet chip... > > Maybe try getting it landed through Andrew Morton's tree?
As I told him in IRC, the problem is still that sh4 never gives me a shell prompt with this patch applied. I just reconfirmed it against current git:
Freeing unused kernel image (initmem) memory: 124K This architecture does not have kernel memory protection. Run /init as init process mountpoint: dev/pts: No such file or directory 8139cp 0000:00:02.0 eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
It makes it partway through the init script, but it hangs with qemu-system-sh4 stuck in a CPU-eating loop before finishing. Without the patch, I get a shell prompt.
If you don't want to build the userspace from source with mkroot, the last release's binary tarball is 4 megs and reproduced the problem just fine. First, confirm it works as-shipped:
$ wget https://landley.net/toybox/downloads/binaries/mkroot/latest/sh4.tgz ... $ tar xvf sh4.tgz ... $ cd sh4 $ ./qemu-sh4.sh ... printk: console [netcon0] enabled netconsole: network logging started Freeing unused kernel image (initmem) memory: 116K This architecture does not have kernel memory protection. Run /init as init process 8139cp 0000:00:02.0 eth0: link up, 100Mbps, full-duplex, lpa 0x05E1 random: fast init done Type exit when done. # exit reboot: Restarting system
landley@driftwood:~/sub/sh4$
Once you've confirmed that works with your qemu-system-sh4 install, replace the kernel using the config in that directory:
$ git clone ~/linux/linux linux ... $ cd linux $ patch -p1 -i ~/linux/sh4irq.eml ... $ CROSS_COMPILE=~/mcm/ccc/sh4-linux-musl-cross/bin/sh4-linux-musl- make \ ARCH=sh allnoconfig KCONFIG_ALLCONFIG=../miniconfig-sh4 ... $ CROSS_COMPILE=~/mcm/ccc/sh4-linux-musl-cross/bin/sh4-linux-musl- make \ ARCH=sh -j $(nproc) ... $ cp arch/sh/boot/zImage .. $ cd .. $ ./qemu-*.sh ...
and it hangs without ever saying "random: fast init done" or giving a prompt.
(You could also use the linux-fullconfig file to build your kernel, but you'll have to say "n" to a bunch of make oldconfig questions.)
> Adrian
Rob
|  |