Modern Linux Kernels

If you have any questions on programming, this is the place to ask them, whether you're a newbie or an experienced programmer. Discussion on programming in general is also welcome. We will help you with programming homework, but we will not do your work for you! Any porting requests must be made in Developmental Ideas.
Post Reply
Multimedia Mike
DC Developer
DC Developer
Posts: 35
https://www.artistsworkshop.eu/meble-kuchenne-na-wymiar-warszawa-gdzie-zamowic/
Joined: Thu Mar 17, 2011 11:57 pm
Has thanked: 0
Been thanked: 0
Contact:

Modern Linux Kernels

Post by Multimedia Mike »

I hope this is the right space for this question...

Has anyone successfully built and run a Linux kernel for the Sega Dreamcast? There is that old 2.4.5 kernel and related Debian distribution that floats around the homebrew sites and that works. But has anyone ever built a more recent (or any) kernel from scratch that runs?

I have put some effort into this as outlined in this post:

http://multimedia.cx/eggs/notes-on-linux-for-dreamcast/

I can build a kernel but I can't make it run. Actually, I don't really know that it's not running at all. Perhaps execution reaches a certain point but can't go any farther because of other issues, while the framebuffer is not hooked up so that I don't get any visual feedback.

Thanks.
User avatar
Quzar
Dream Coder
Dream Coder
Posts: 7497
Joined: Wed Jul 31, 2002 12:14 am
Location: Miami, FL
Has thanked: 4 times
Been thanked: 9 times
Contact:

Re: Modern Linux Kernels

Post by Quzar »

I don't know anything about compiling the Linux Kernel, but the DC's chip is part of the 7550 series. The exact model number *is* 7091 (or 7091R depending on the manufacture date), but that is simply the proprietary flavor that reflects the exact model. As far as I know, the differences are all either physical or in added features/connections for external devices, etc. (for instance the exact workings of the DMAC).

If I can find where I posted it before (and you're interested) I'll toss in an email chain between myself and a SuperH employee which somewhat backs this.
"When you post fewer lines of text than your signature, consider not posting at all." - A Wise Man
Multimedia Mike
DC Developer
DC Developer
Posts: 35
Joined: Thu Mar 17, 2011 11:57 pm
Has thanked: 0
Been thanked: 0
Contact:

Re: Modern Linux Kernels

Post by Multimedia Mike »

Thanks for the reply. I wager that minor model number variations probably don't matter that much. However, I did notice that the DC is supposed to be a SH-4a. gcc has different compiler options for that (-m4a vs. -m4). Maybe I'll see if I'm lucky enough for that to male a difference.

Realistically, I'll probably need to dig down deep to make this work, finding a way to debug various stages.
Ex-Cyber
DCEmu User with No Life
DCEmu User with No Life
Posts: 3641
Joined: Sat Feb 16, 2002 1:55 pm
Has thanked: 0
Been thanked: 0

Re: Modern Linux Kernels

Post by Ex-Cyber »

It's not SH-4A, but the original SH-4 (SH7750) family. SH-4A is the SH7780 family, which wasn't out until ca. 2004.

For feedback, I'd guess that a serial console would be the way to go, since (IIRC) Dreamcast's serial port is just the SH-4 serial port which should have a Linux driver. If you can find the appropriate place(s) to put it, you could also try writing values to 0xA05F8040, which sets the backdrop color for the RAMDAC (it's a 32-bit register; see this page). That wouldn't give you much information, but might let you get a sense of how far it's getting (assuming it's visible on your TV/monitor).
"You know, I have a great, wonderful, really original method of teaching antitrust law, and it kept 80 percent of the students awake. They learned things. It was fabulous." -- Justice Stephen Breyer
Multimedia Mike
DC Developer
DC Developer
Posts: 35
Joined: Thu Mar 17, 2011 11:57 pm
Has thanked: 0
Been thanked: 0
Contact:

Re: Modern Linux Kernels

Post by Multimedia Mike »

Thanks for the suggestions. Changing the overscan color sounds workable. I've had to do things like that before (e.g., indicating code status through a series of LEDs).
Post Reply