public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: alex_williamson@hp.com (Alex Williamson)
To: linux-ia64@vger.kernel.org
Subject: Re: [Linux-ia64] runtime platform detection in GENERIC kernels
Date: Wed, 14 May 2003 15:32:53 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105590723705792@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105590723705791@msgid-missing>

   Why not just make a runtime strcmp to platform_name?  Then
you could make a generic is_platform("sn2") type function/macro
that everyone could use and you'd get rid of that nasty init
function.  If you realy need to make such a check in a perfmance
path, it should probably be a machvec.  Thanks,

	Alex

> 
> Hello,
> 
> In the process of trying to get a GENERIC kernel running on SGI SN2
> hardware we've run into a few instances where knowing what type of
> machine we are running on is useful.  Would it be acceptable to make a
> macro such as is_sgi_sn2() to check this?
> 
> One of the specific situations is in console_init()
> (drivers/char/tty_io.c) where SN2 machines must use the sgi-l1_protocol
> driver and the rest of the IA64 machines just use the normal serial
> driver.  A small check was added:
> 
>         mac_scc_console_init();
>  #elif defined(CONFIG_PARISC)
>         pdc_console_init();
> +#elif defined(CONFIG_IA64_GENERIC)
> +       if (is_sgi_sn2())
> +               sgi_l1_serial_console_init();
> +       else
> +               serial_console_init();
>  #elif defined(CONFIG_SERIAL)
>         serial_console_init();
>  #endif /* CONFIG_8xx */
> 
> 
> The current patch is attached.  It's a first draft.  I'm looking
> comments on whether this (or something like it) has any chance
> of being accepted, and if so, any comments on the design of
> the facility.
> 
> mh
> 
> 
> -- 
> Wild Open Source Inc.                  mort@wildopensource.com
> 
> 
> 
> ====================================
> => Index: linux/arch/ia64/kernel/setup.c
> ====================================
> => 
> --- /usr/tmp/TmpDir.30939-0/linux/arch/ia64/kernel/setup.c_1.33	Tue May
> 13 14:41:50 2003
> +++ linux/arch/ia64/kernel/setup.c	Tue May 13 14:38:08 2003
> @@ -63,6 +63,8 @@
>   struct cpuinfo_ia64 _cpu_data[NR_CPUS] __attribute__ ((section
> ("__special_page_section")));
>  #endif
>  
> +int machine_is_sgi_sn2;
> +
>  unsigned long ia64_cycles_per_usec;
>  struct ia64_boot_param *ia64_boot_param;
>  struct screen_info screen_info;
> @@ -446,7 +448,11 @@
>  	ia64_sal_init(efi.sal_systab);
>  
>  #ifdef CONFIG_IA64_GENERIC
> -	machvec_init(acpi_get_sysname());
> +	{
> +		char *str = acpi_get_sysname();
> +		machvec_init(str);
> +		init_is_sgi_sn2(str);
> +	}
>  #endif
>  
>  	/*
> 
> ====================================
> => Index: linux/include/asm-ia64/system.h
> ====================================
> => 
> --- /usr/tmp/TmpDir.30939-0/linux/include/asm-ia64/system.h_1.25
> Tue May 13 14:41:50 2003
> +++ linux/include/asm-ia64/system.h	Tue May 13 14:40:26 2003
> @@ -445,6 +445,20 @@
>  #define task_running(rq, p)    (((rq)->curr = (p)) ||
> spin_is_locked(&(p)->switch_lock))
>  #define idle_needs_wakeup	0
>  
> +#ifdef CONFIG_IA64_GENERIC
> +extern int machine_is_sgi_sn2;
> +#define init_is_sgi_sn2(str) do { 		\
> +	if (!strcmp(str,"sn2"))			\
> +		machine_is_sgi_sn2=1;		\
> +  } while (0)
> +
> +#define is_sgi_sn2() 	(machine_is_sgi_sn2)
> +#elif CONFIG_IA64_SGI_SN
> +#define is_sgi_sn2()	1
> +#else
> +#define is_sgi_sn2()	0
> +#endif /* CONFIG_IA64_GENERIC */
> +
>  #endif /* __KERNEL__ */
>  
>  #endif /* __ASSEMBLY__ */
> 



  reply	other threads:[~2003-05-14 15:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-14 15:03 [Linux-ia64] runtime platform detection in GENERIC kernels Martin Hicks
2003-05-14 15:32 ` Alex Williamson [this message]
2003-05-14 15:47 ` Martin Hicks
2003-05-14 20:49 ` Jes Sorensen
2003-05-16 19:21 ` Martin Hicks
2003-05-16 19:35 ` Alex Williamson
2003-05-20 19:56 ` Martin Hicks

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-linux-ia64-105590723705792@msgid-missing \
    --to=alex_williamson@hp.com \
    --cc=linux-ia64@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox