diff mbox

Building sh4 without CONFIG_EXPERT.

Message ID 53700D71.1090201@landley.net (mailing list archive)
State Awaiting Upstream
Delegated to: Paul Mundt
Headers show

Commit Message

Rob Landley May 11, 2014, 11:53 p.m. UTC
I got sh4 to work under QEMU years ago as part of my aboriginal linux
project, which builds the smallest Linux system capable of rebuilding
itself natively from source code. (You can download and run the system
images from http://landley.net/aboriginal/bin if you're curious.)

One of the goals of Aboriginal is to make different architectures behave
the same way, and one of the ways I do that is by having a basic kernel
miniconfig file defining the config symbols common across platforms:

  http://landley.net/hg/aboriginal/file/1651/sources/baseconfig-linux

And then append target-specific chunks, ala the LINUX_CONFIG sections
from each of:

  http://landley.net/hg/aboriginal/file/1651/sources/targets

The problem is, the sh4 target's target-specific chunk is an INSANE 45
config symbols (armv5l needs 15 symbols, powerpc needs 16, i686 needs 7,
mips needs 6...) and the reason for the verbosity is that sh4 forces on
CONFIG_EXPERT.

As far as I can tell, the only reason sh4 is forcing on CONFIG_EXPERT is
to get CONFIG_PATA_PLATFORM. The patch to make sh4 _not_ force on
CONFIG_EXPERT is just:


Which swaps EXPERT for HAVE_PATA_PLATFORM, so I can still provide a hard
drive qemu can see as /dev/sda. The result builds, boots, and works for
me in very basic smoke testing, and lets me get my sh4-specific config
symbol set down to 27 symbols.

(P.S. I have no idea why hitting ctrl-C kills the _emulator_ rather than
passing it along to the emulated system. The other qemu targets don't do
that...)

Rob

P.S. I'm using linux 3.14, qemu 2.0, and the sh4 cross compiler
toolchain from the URL at the top of the post. I can be more explicit if
you care...
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Randy Dunlap May 16, 2014, 9:14 p.m. UTC | #1
On 05/11/2014 04:53 PM, Rob Landley wrote:
> I got sh4 to work under QEMU years ago as part of my aboriginal linux
> project, which builds the smallest Linux system capable of rebuilding
> itself natively from source code. (You can download and run the system
> images from http://landley.net/aboriginal/bin if you're curious.)
> 
> One of the goals of Aboriginal is to make different architectures behave
> the same way, and one of the ways I do that is by having a basic kernel
> miniconfig file defining the config symbols common across platforms:
> 
>   http://landley.net/hg/aboriginal/file/1651/sources/baseconfig-linux
> 
> And then append target-specific chunks, ala the LINUX_CONFIG sections
> from each of:
> 
>   http://landley.net/hg/aboriginal/file/1651/sources/targets
> 
> The problem is, the sh4 target's target-specific chunk is an INSANE 45
> config symbols (armv5l needs 15 symbols, powerpc needs 16, i686 needs 7,
> mips needs 6...) and the reason for the verbosity is that sh4 forces on
> CONFIG_EXPERT.
> 
> As far as I can tell, the only reason sh4 is forcing on CONFIG_EXPERT is
> to get CONFIG_PATA_PLATFORM. The patch to make sh4 _not_ force on
> CONFIG_EXPERT is just:
> 
> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
> index 834b67c..7d0d44d 100644
> --- a/arch/sh/Kconfig
> +++ b/arch/sh/Kconfig
> @@ -1,7 +1,7 @@
>  config SUPERH
>  	def_bool y
>  	select ARCH_MIGHT_HAVE_PC_PARPORT
> -	select EXPERT
> +	select HAVE_PATA_PLATFORM
>  	select CLKDEV_LOOKUP
>  	select HAVE_IDE if HAS_IOPORT_MAP
>  	select HAVE_MEMBLOCK

Since PATA_PLATFORM is:

config PATA_PLATFORM
	tristate "Generic platform device PATA support"
	depends on EXPERT || PPC || HAVE_PATA_PLATFORM

then any of EXPERT, PPC, or HAVE_PATA_PLATFORM should be sufficient.
and using HAVE_PATA_PLATFORM is more direct and obvious.

Acked-by: Randy Dunlap <rdunlap@infradead.org>


> Which swaps EXPERT for HAVE_PATA_PLATFORM, so I can still provide a hard
> drive qemu can see as /dev/sda. The result builds, boots, and works for
> me in very basic smoke testing, and lets me get my sh4-specific config
> symbol set down to 27 symbols.
> 
> (P.S. I have no idea why hitting ctrl-C kills the _emulator_ rather than
> passing it along to the emulated system. The other qemu targets don't do
> that...)
> 
> Rob
> 
> P.S. I'm using linux 3.14, qemu 2.0, and the sh4 cross compiler
> toolchain from the URL at the top of the post. I can be more explicit if
> you care...
Geert Uytterhoeven Jan. 5, 2015, 9:58 a.m. UTC | #2
On Fri, May 16, 2014 at 11:14 PM, Randy Dunlap <rdunlap@infradead.org> wrote:
> On 05/11/2014 04:53 PM, Rob Landley wrote:
>> I got sh4 to work under QEMU years ago as part of my aboriginal linux
>> project, which builds the smallest Linux system capable of rebuilding
>> itself natively from source code. (You can download and run the system
>> images from http://landley.net/aboriginal/bin if you're curious.)
>>
>> One of the goals of Aboriginal is to make different architectures behave
>> the same way, and one of the ways I do that is by having a basic kernel
>> miniconfig file defining the config symbols common across platforms:
>>
>>   http://landley.net/hg/aboriginal/file/1651/sources/baseconfig-linux
>>
>> And then append target-specific chunks, ala the LINUX_CONFIG sections
>> from each of:
>>
>>   http://landley.net/hg/aboriginal/file/1651/sources/targets
>>
>> The problem is, the sh4 target's target-specific chunk is an INSANE 45
>> config symbols (armv5l needs 15 symbols, powerpc needs 16, i686 needs 7,
>> mips needs 6...) and the reason for the verbosity is that sh4 forces on
>> CONFIG_EXPERT.
>>
>> As far as I can tell, the only reason sh4 is forcing on CONFIG_EXPERT is
>> to get CONFIG_PATA_PLATFORM. The patch to make sh4 _not_ force on
>> CONFIG_EXPERT is just:
>>
>> diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
>> index 834b67c..7d0d44d 100644
>> --- a/arch/sh/Kconfig
>> +++ b/arch/sh/Kconfig
>> @@ -1,7 +1,7 @@
>>  config SUPERH
>>       def_bool y
>>       select ARCH_MIGHT_HAVE_PC_PARPORT
>> -     select EXPERT
>> +     select HAVE_PATA_PLATFORM
>>       select CLKDEV_LOOKUP
>>       select HAVE_IDE if HAS_IOPORT_MAP
>>       select HAVE_MEMBLOCK
>
> Since PATA_PLATFORM is:
>
> config PATA_PLATFORM
>         tristate "Generic platform device PATA support"
>         depends on EXPERT || PPC || HAVE_PATA_PLATFORM
>
> then any of EXPERT, PPC, or HAVE_PATA_PLATFORM should be sufficient.
> and using HAVE_PATA_PLATFORM is more direct and obvious.
>
> Acked-by: Randy Dunlap <rdunlap@infradead.org>
Acked-by: Geert Uytterhoeven <geert+renesas@glider.be>

Note that you have to resent to akpm to get sh-patches applied.

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
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 834b67c..7d0d44d 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -1,7 +1,7 @@ 
 config SUPERH
 	def_bool y
 	select ARCH_MIGHT_HAVE_PC_PARPORT
-	select EXPERT
+	select HAVE_PATA_PLATFORM
 	select CLKDEV_LOOKUP
 	select HAVE_IDE if HAS_IOPORT_MAP
 	select HAVE_MEMBLOCK