Hi Rob,
On Wed, Jan 18, 2023 at 5:50 AM Rob Landley rob@landley.net wrote:
On 1/17/23 14:26, Geert Uytterhoeven wrote:
On Tue, Jan 17, 2023 at 8:01 PM Rob Landley rob@landley.net wrote:
I'm lazy and mostly test each new sh4 build under qemu -M r2d because it's really convenient: neither of my physical boards boot from SD card so replacing the kernel requires reflashing soldered in flash. (They'll net mount userspace but I haven't gotten either bootloader to net-boot a kernel.)
On my landisk (with boots from CompactFLASH), I boot the original 2.6.22 kernel, and use kexec to boot-test each and every renesas-drivers release. Note that this requires both the original 2.6.22 kernel and matching kexec-tools.
I make it a point to run _current_ kernels in all my mkroot systems, including sh4. What I shipped was 6.1 is:
# cat /proc/version Linux version 6.1.0 (landley@driftwood) (sh4-linux-musl-cc (GCC) 9.4.0, GNU ld (GNU Binutils) 2.33.1) #1 Tue Jan 10 16:32:07 CST 2023
I think you misunderstood: renesas-drivers releases[1] are current kernels.
Linux version 6.2.0-rc3-landisk-01864-g0c6453b3e5f6 (geert@rox) (sh4-linux-gnu-gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #125 Tue Jan 10 14:29:01 CET 2023
I use 2.6.22 and kexec as a boot loader for newer kernels, to avoid juggling CF cards. I cannot install a newer base kernel on the CF, as kexec is broken upstream.
Apparently both upstreamed kernel and kexec-tools support for SH are different, and incompatible with each other, so you cannot kexec from a contemporary kernel.
Sure you can. Using toybox's insmod and modprobe, anyway. (That's the target I tested those on... :)
Haven't messed with signing or compression or anything yet, my insmod is just doing syscall(SYS_finit_module) and then falling back to SYS_init_module if that fails and either fd was 0 or errno was ENOSYS. (Don't ask me why SYS_finit_module doesn't work on stdin...)
https://github.com/landley/toybox/blob/master/toys/other/insmod.c#L31
https://landley.net/toybox/downloads/binaries/0.8.9/toybox-sh4
Again, I think you're talking about something different. Does kexec work for you?
I tried working my way up from 2.6.22, but gave up around 2.6.29. Probably I should do this with r2d and qemu instead ;-)
I have current running there. I've had current running there for years. Config attached...
Both r2d and landisk are SH7751.
Cool. Shouldn't be hard to get landisk running current then.
Current kernels work fine on landisk with an old Debian userspace on CF. The 8139cp driver is a bit flaky: last time I tried nfsroot, that didn't work well.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git
Gr{oetje,eeting}s,
Geert
-- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds