All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
To: Grant Likely <grant.likely@secretlab.ca>
Cc: linux-kernel@vger.kernel.org, sodaville@linutronix.de,
	x86@kernel.org, devicetree-discuss@lists.ozlabs.org
Subject: Re: [PATCH 02/15] x86: Add device tree support
Date: Mon, 03 Jan 2011 13:20:39 +0100	[thread overview]
Message-ID: <4D21BF17.6090209@linutronix.de> (raw)
In-Reply-To: <20101230084311.GD11721@angua.secretlab.ca>

Grant Likely wrote:
>> +extern char cmd_line[COMMAND_LINE_SIZE];
>> +/* This number is used when no interrupt has been assigned */
>> +#define NO_IRQ		(-1)
> 
> 0 means NO_IRQ on x86 and most architectures.  I will change this when
> I pick up the patch.

cat /proc/interrupts
            CPU0
   0:         40   IO-APIC-edge      timer

>> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
>> index 577d06b..26f2c9a 100644
>> --- a/arch/x86/kernel/setup.c
>> +++ b/arch/x86/kernel/setup.c
>> @@ -113,6 +113,7 @@
>>  #endif
>>  #include <asm/mce.h>
>>  #include <asm/alternative.h>
>> +#include <asm/prom.h>
>>  
>>  /*
>>   * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
>> @@ -445,6 +446,9 @@ static void __init parse_setup_data(void)
>>  		case SETUP_E820_EXT:
>>  			parse_e820_ext(data);
>>  			break;
>> +		case SETUP_DTB:
>> +			add_dtb(pa_data);
>> +			break;
> 
> Why is the physical address being passed in when the virtual address
> is needed to be stored in initial_boot_params by add_dtb()?

add_dtb() changes it via phys_to_virt() so it is stored as virtual. I
can't touch this memory that early in the boot process so it is passed as
phys. phys_to_virt() isn't working (yet) so you need a fixmap or an
early_ioremap(). Earlier I used the device tree very late so the
phys_to_virt() memory was working.

Later in the series add_dtb() stores it in a custom u64 variable because I 
might have to use the built-in dtb, I have to relocate the dtb (so the
boot loader does not have to care about kernel's memory layout) and I have
to use it "early" so I create a fixmap for it.

The dtb is not usable before the ->get_config() hook (x86_dtb_get_config, 
patch #5) is called. After that initial_boot_params is set and can be used.

>>  		default:
>>  			break;
>>  		}
>> -- 
>> 1.7.3.2

Sebastian

WARNING: multiple messages have this Message-ID (diff)
From: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
To: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
Cc: sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 02/15] x86: Add device tree support
Date: Mon, 03 Jan 2011 13:20:39 +0100	[thread overview]
Message-ID: <4D21BF17.6090209@linutronix.de> (raw)
In-Reply-To: <20101230084311.GD11721-MrY2KI0G/OVr83L8+7iqerDks+cytr/Z@public.gmane.org>

Grant Likely wrote:
>> +extern char cmd_line[COMMAND_LINE_SIZE];
>> +/* This number is used when no interrupt has been assigned */
>> +#define NO_IRQ		(-1)
> 
> 0 means NO_IRQ on x86 and most architectures.  I will change this when
> I pick up the patch.

cat /proc/interrupts
            CPU0
   0:         40   IO-APIC-edge      timer

>> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
>> index 577d06b..26f2c9a 100644
>> --- a/arch/x86/kernel/setup.c
>> +++ b/arch/x86/kernel/setup.c
>> @@ -113,6 +113,7 @@
>>  #endif
>>  #include <asm/mce.h>
>>  #include <asm/alternative.h>
>> +#include <asm/prom.h>
>>  
>>  /*
>>   * end_pfn only includes RAM, while max_pfn_mapped includes all e820 entries.
>> @@ -445,6 +446,9 @@ static void __init parse_setup_data(void)
>>  		case SETUP_E820_EXT:
>>  			parse_e820_ext(data);
>>  			break;
>> +		case SETUP_DTB:
>> +			add_dtb(pa_data);
>> +			break;
> 
> Why is the physical address being passed in when the virtual address
> is needed to be stored in initial_boot_params by add_dtb()?

add_dtb() changes it via phys_to_virt() so it is stored as virtual. I
can't touch this memory that early in the boot process so it is passed as
phys. phys_to_virt() isn't working (yet) so you need a fixmap or an
early_ioremap(). Earlier I used the device tree very late so the
phys_to_virt() memory was working.

Later in the series add_dtb() stores it in a custom u64 variable because I 
might have to use the built-in dtb, I have to relocate the dtb (so the
boot loader does not have to care about kernel's memory layout) and I have
to use it "early" so I create a fixmap for it.

The dtb is not usable before the ->get_config() hook (x86_dtb_get_config, 
patch #5) is called. After that initial_boot_params is set and can be used.

>>  		default:
>>  			break;
>>  		}
>> -- 
>> 1.7.3.2

Sebastian

  parent reply	other threads:[~2011-01-03 12:20 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-17 15:33 Add device tree support for x86, v2 Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 01/15] x86/e820: remove conditional early mapping in parse_e820_ext Sebastian Andrzej Siewior
2010-12-30  8:37   ` Grant Likely
2011-01-04 13:08     ` [PATCH v2 " Sebastian Andrzej Siewior
2011-01-14  8:14       ` Grant Likely
2011-01-14 10:57         ` Sebastian Andrzej Siewior
2011-01-14 21:43           ` Andres Salomon
2011-01-27 19:54             ` Daniel Drake
2011-02-01 13:21               ` Sebastian Andrzej Siewior
2011-02-01 18:36                 ` Andres Salomon
2011-02-02  3:10                   ` Grant Likely
2011-02-02 16:22                     ` Sebastian Andrzej Siewior
2011-02-03 18:40                     ` Andres Salomon
2011-02-03 19:44                       ` [sodaville] " H. Peter Anvin
2011-02-03 20:09                         ` Andres Salomon
2011-02-03 20:16                           ` H. Peter Anvin
2011-02-03 20:39                             ` Andres Salomon
2011-02-03 21:04                               ` H. Peter Anvin
2011-02-02 18:59               ` H. Peter Anvin
2010-12-17 15:33 ` [PATCH 02/15] x86: Add device tree support Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2010-12-30  8:43   ` Grant Likely
2010-12-30 21:01     ` Grant Likely
2010-12-30 21:01       ` Grant Likely
2011-01-02  0:40       ` H. Peter Anvin
2011-01-02  0:40         ` H. Peter Anvin
2011-01-03 12:20     ` Sebastian Andrzej Siewior [this message]
2011-01-03 12:20       ` Sebastian Andrzej Siewior
2011-01-03 18:05       ` [sodaville] " H. Peter Anvin
2010-12-17 15:33 ` [PATCH 03/15] x86/dtb: Add a device tree for CE4100 Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2010-12-30  8:51   ` Grant Likely
2010-12-30  8:51     ` Grant Likely
2011-01-03 11:28     ` Sebastian Andrzej Siewior
2011-01-03 11:28       ` Sebastian Andrzej Siewior
2011-01-03 17:45       ` Grant Likely
2011-01-05  9:48         ` [PATCH v2 " Sebastian Andrzej Siewior
2011-01-05  9:48           ` Sebastian Andrzej Siewior
2011-01-05 10:01     ` [PATCH " Sebastian Andrzej Siewior
2011-01-05 10:01       ` Sebastian Andrzej Siewior
2011-01-05 23:20     ` David Gibson
2011-01-05 23:20       ` David Gibson
2010-12-17 15:33 ` [PATCH 04/15] x86/dtb: add irq domain abstraction Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-11 22:03   ` Grant Likely
2011-01-23 13:06     ` Sebastian Andrzej Siewior
2011-01-23 13:06       ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 05/15] x86/dtb: add early parsing of APIC and IO APIC Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2010-12-30  8:54   ` Grant Likely
2010-12-30  8:54     ` Grant Likely
2011-01-04 13:23     ` [PATCH v2 " Sebastian Andrzej Siewior
2011-01-11 22:14       ` Grant Likely
2011-01-11 22:14         ` Grant Likely
2011-01-18 14:56         ` Sebastian Andrzej Siewior
2011-01-18 14:56           ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 06/15] x86/dtb: add support hpet Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-11 22:26   ` Grant Likely
2011-01-11 22:26     ` Grant Likely
2010-12-17 15:33 ` [PATCH 07/15] of: move of_irq_map_pci() into generic code Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2010-12-17 21:16   ` Benjamin Herrenschmidt
2011-01-04 14:27     ` [PATCH v2 " Sebastian Andrzej Siewior
2011-01-04 14:27       ` Sebastian Andrzej Siewior
2011-01-11 23:27       ` Grant Likely
2011-01-11 23:27         ` Grant Likely
2011-01-12 18:21         ` Sebastian Andrzej Siewior
2011-01-12 18:21           ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 08/15] x86/dtb: add support for PCI devices backed by dtb nodes Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-11 23:47   ` Grant Likely
2011-01-11 23:47     ` Grant Likely
2010-12-17 15:33 ` [PATCH 09/15] x86/dtb: Add generic bus probe Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-11 23:48   ` Grant Likely
2011-01-11 23:48     ` Grant Likely
2010-12-17 15:33 ` [PATCH 10/15] x86/ioapic: Add OF bindings for IO-APIC Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-11 23:53   ` Grant Likely
2011-01-11 23:53     ` Grant Likely
2011-01-12 17:07     ` Sebastian Andrzej Siewior
2011-01-12 17:07       ` Sebastian Andrzej Siewior
2011-01-12 17:19       ` [sodaville] " H. Peter Anvin
2011-01-12 17:19         ` H. Peter Anvin
2011-01-13 10:38         ` Sebastian Andrzej Siewior
2011-01-13 10:38           ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 11/15] x86/ce4100: use OF for ioapic Sebastian Andrzej Siewior
2011-01-11 23:54   ` Grant Likely
2010-12-17 15:33 ` [PATCH 12/15] of/address: use propper endianess in get_flags Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2010-12-30  9:05   ` Grant Likely
2010-12-17 15:33 ` [PATCH 13/15] x86/rtc: don't register rtc if we have an OF node for it Sebastian Andrzej Siewior
2010-12-30  8:59   ` Grant Likely
2011-01-04 13:28     ` [PATCH v2 13/15] x86/rtc: don't register rtc if we the DT blob Sebastian Andrzej Siewior
2011-01-12  0:02       ` Grant Likely
2011-01-12 18:29         ` Sebastian Andrzej Siewior
2011-01-14 22:16           ` Grant Likely
2010-12-17 15:33 ` [PATCH 14/15] rtc/cmos: add OF bindings Sebastian Andrzej Siewior
2010-12-17 15:33   ` Sebastian Andrzej Siewior
2011-01-12  0:04   ` Grant Likely
2011-01-12  0:04     ` Grant Likely
2011-01-13 10:50     ` [PATCH v2] " Sebastian Andrzej Siewior
2011-01-13 10:50       ` Sebastian Andrzej Siewior
2010-12-17 15:33 ` [PATCH 15/15] x86/pci: remove warning Sebastian Andrzej Siewior
2011-02-18 16:06   ` [tip:x86/platform] x86/pci: Remove unused variable tip-bot for Sebastian Andrzej Siewior

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=4D21BF17.6090209@linutronix.de \
    --to=bigeasy@linutronix.de \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sodaville@linutronix.de \
    --cc=x86@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.