2009-12-21 05:42:22

by Rob Landley

[permalink] [raw]
Subject: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

Anyone have an opinion on this?

>From drivers/net/wan/Makefile:

>ifeq ($(ARCH),m68k)
> AS68K = $(AS)
> LD68K = $(LD)
>else
> AS68K = as68k
> LD68K = ld68k
>endif

--
Latency is more important than throughput. It's that simple. - Linus Torvalds


2009-12-21 09:57:52

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

On Mon, Dec 21, 2009 at 06:42, Rob Landley <[email protected]> wrote:
> Anyone have an opinion on this?
>
> From drivers/net/wan/Makefile:
>

You cut one important line here:

| ifeq ($(CONFIG_WANXL_BUILD_FIRMWARE),y)

>>ifeq ($(ARCH),m68k)
>>  AS68K = $(AS)
>>  LD68K = $(LD)
>>else
>>  AS68K = as68k
>>  LD68K = ld68k
>>endif

The corresponding Kconfig entry reads:

config WANXL_BUILD_FIRMWARE
bool "rebuild wanXL firmware"
depends on WANXL && !PREVENT_FIRMWARE_BUILD
help
Allows you to rebuild firmware run by the QUICC processor.
It requires as68k, ld68k and hexdump programs.

You should never need this option, say N.

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- [email protected]

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

2009-12-21 14:48:36

by Brian Gerst

[permalink] [raw]
Subject: Re: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

On Mon, Dec 21, 2009 at 3:04 AM, Rob Landley <[email protected]> wrote:
> On Monday 21 December 2009 01:06:38 Brian Gerst wrote:
>> On Mon, Dec 21, 2009 at 12:42 AM, Rob Landley <[email protected]> wrote:
>> > Anyone have an opinion on this?
>> >
>> > From drivers/net/wan/Makefile:
>> >>ifeq ($(ARCH),m68k)
>> >>  AS68K = $(AS)
>> >>  LD68K = $(LD)
>> >>else
>> >>  AS68K = as68k
>> >>  LD68K = ld68k
>> >>endif
>>
>> Looks like it's to build firmware to run on the card.
>
> Sure, I'm just wondering why such obvious arch-specific code is outside the
> arch/m68k directory.
>
> In theory, when you're building for m68k, you supply appropriate AS and LD
> values already (or the rest of the kernel won't build).  If you're not
> building for m68k and this driver only supports m68k, then the config should
> prevent you from selecting it.  So why is on earth is architecture-specific
> tool selection being done in drivers/net/wan?

The m68k processor that this firmware is being built for is embedded
on the device, not the main system cpu. You can have one of these
cards on any system, not just m68k.

PS. always CC the list with replies.

--
Brian Gerst

2009-12-21 22:46:36

by Rob Landley

[permalink] [raw]
Subject: Re: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

On Monday 21 December 2009 03:57:49 Geert Uytterhoeven wrote:
> On Mon, Dec 21, 2009 at 06:42, Rob Landley <[email protected]> wrote:
> > Anyone have an opinion on this?
> >
> > From drivers/net/wan/Makefile:
>
> You cut one important line here:
> | ifeq ($(CONFIG_WANXL_BUILD_FIRMWARE),y)
> |
> >>ifeq ($(ARCH),m68k)
> >> AS68K = $(AS)
> >> LD68K = $(LD)
> >>else
> >> AS68K = as68k
> >> LD68K = ld68k
> >>endif
>
> The corresponding Kconfig entry reads:
>
> config WANXL_BUILD_FIRMWARE
> bool "rebuild wanXL firmware"
> depends on WANXL && !PREVENT_FIRMWARE_BUILD
> help
> Allows you to rebuild firmware run by the QUICC processor.
> It requires as68k, ld68k and hexdump programs.
>
> You should never need this option, say N.
>
> Gr{oetje,eeting}s,

Ah, the card has an onboard m68k processor, separate from the host CPU.

Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds

2009-12-21 22:54:48

by Rob Landley

[permalink] [raw]
Subject: Re: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

On Monday 21 December 2009 08:48:31 Brian Gerst wrote:
> On Mon, Dec 21, 2009 at 3:04 AM, Rob Landley <[email protected]> wrote:
> > On Monday 21 December 2009 01:06:38 Brian Gerst wrote:
> >> On Mon, Dec 21, 2009 at 12:42 AM, Rob Landley <[email protected]> wrote:
> >> > Anyone have an opinion on this?
> >> >
> >> > From drivers/net/wan/Makefile:
> >> >>ifeq ($(ARCH),m68k)
> >> >> AS68K = $(AS)
> >> >> LD68K = $(LD)
> >> >>else
> >> >> AS68K = as68k
> >> >> LD68K = ld68k
> >> >>endif
> >>
> >> Looks like it's to build firmware to run on the card.
> >
> > Sure, I'm just wondering why such obvious arch-specific code is outside
> > the arch/m68k directory.
> >
> > In theory, when you're building for m68k, you supply appropriate AS and
> > LD values already (or the rest of the kernel won't build). If you're not
> > building for m68k and this driver only supports m68k, then the config
> > should prevent you from selecting it. So why is on earth is
> > architecture-specific tool selection being done in drivers/net/wan?
>
> The m68k processor that this firmware is being built for is embedded
> on the device, not the main system cpu. You can have one of these
> cards on any system, not just m68k.
>
> PS. always CC the list with replies.

Happy to, but your message to me didn't cc the list, and I thought cc-ing
private mail back to the list was impolite.

Explicitly saying somewhere "this card has an onbaord m68k processor even if
the host doesn't" might be nice. I eventually figured it out, but neither the
makefile nor the firmware source actually said the card had an onboard
processor, and my first glance at the kconfig help text just went "it's code for
a QUICC processor, that's one of those freescale SoCs isnt it? I vaguely
recall booting Linux on one of those back in 2006..."

(Possibly I've been doing a bit too much embedded development lately. :)

Rob
--
Latency is more important than throughput. It's that simple. - Linus Torvalds

2009-12-22 15:45:53

by Krzysztof Halasa

[permalink] [raw]
Subject: Re: Why is ARCH m68k hardwired into drivers/net/wan/Makefile?

Rob Landley <[email protected]> writes:

> Explicitly saying somewhere "this card has an onbaord m68k processor even if
> the host doesn't" might be nice. I eventually figured it out, but neither the
> makefile nor the firmware source actually said the card had an onboard
> processor, and my first glance at the kconfig help text just went "it's code for
> a QUICC processor, that's one of those freescale SoCs isnt it? I vaguely
> recall booting Linux on one of those back in 2006..."

QUICC = QUad Integrated Communications Controller (Morotola 68360) chip
and is based on m68020 IIRC. There is no "normal" m68k CPU on this board.

PowerQUICC is a different thing.
--
Krzysztof Halasa