From: ben.dooks@codethink.co.uk (Ben Dooks)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 10/17] ARM: update atag-to-fdt code to be endian agnostic
Date: Fri, 15 Feb 2013 11:28:54 +0000 [thread overview]
Message-ID: <511E1BF6.90506@codethink.co.uk> (raw)
In-Reply-To: <alpine.LFD.2.03.1302132336410.8736@syhkavp.arg>
On 14/02/13 04:43, Nicolas Pitre wrote:
> On Wed, 13 Feb 2013, Ben Dooks wrote:
>
>> On 12/02/13 21:53, Nicolas Pitre wrote:
>>> On Mon, 11 Feb 2013, Ben Dooks wrote:
>>>
>>>> On 09/02/13 12:05, Russell King - ARM Linux wrote:
>>>>> On Fri, Feb 08, 2013 at 11:17:40PM +0000, Ben Dooks wrote:
>>>>>> - if (atag->hdr.tag != ATAG_CORE ||
>>>>>> - (atag->hdr.size != tag_size(tag_core)&&
>>>>>> - atag->hdr.size != 2))
>>>>>> + if (atag->hdr.tag != atag32_to_cpu(ATAG_CORE) ||
>>>>>> + (atag->hdr.size != atag32_to_cpu(tag_size(tag_core))&&
>>>>>> + atag->hdr.size != atag32_to_cpu(2)))
>>>>>
>>>>> This is wrong. You're saying that "ATAG_CORE" is in LE32 format. It
>>>>> isn't. It's in CPU endian format. If you want to do this kind of
>>>>> thing,
>>>>> you also need to define cpu_to_atag32() macros as well, otherwise this
>>>>> will cause sparse warnings.
>>>>>
>>>>>> - initrd_start = atag->u.initrd.start;
>>>>>> - initrd_size = atag->u.initrd.size;
>>>>>> + initrd_start =
>>>>>> atag32_to_cpu(atag->u.initrd.start);
>>>>>> + initrd_size =
>>>>>> atag32_to_cpu(____atag->u.initrd.size);
>>>>>
>>>>> Where did those four underscores come from? Has this been built?
>>>>
>>>> I probably missed building this one. I've been mostly testing with DT
>>>> based systems.
>>>
>>> Is this BE8 mode available on old systems? Or, will those BE8
>>> capable old systems have BE userland compiled for them?
>>
>> BE8 is for ARMv6 and ARMv7 form of big endian. ARMv5 is BE32.
>
> I think that by now all ARMv6+ targets should be DT enabled. So you
> shouldn't have to care about ATAGs at all.
>
>>> Where I want to get to is: do we need to support BE8 mode for ATAG based
>>> systems at all, given that most if not all the modern ones should be DT
>>> based now? Making the ATAG code BE8 aware is looking to be quite
>>> invasive for potentially no users at all.
>>
>> The change is only useful when using a BE8 compiled kernel with a
>> boot loader environment that is LE.
>
> That's what CONFIG_ARM_ATAG_DTB_COMPAT is for. So only that code would
> need to swap the ATAG data.
>
>> Even if the ATAGs do not need
>> fixing up, then we have a issue with uboot checking the zImage magic.
>
> I gave you a patch for that.
>
>> I have pushed the ATAGs issues to a new series as it is not necessary
>> for the current work we are doing with highbank primarily.
>
> I don't think it is needed at all given that BE8 is available mainly on
> targets supporting DT, and is likely to be used on targets that do
> support only DT.
Some devices we have still only have ATAG booting in u-boot, so it i
possible that it may have to stick around to allow the fdt to be updated
with any extra command line stuff...
--
Ben Dooks http://www.codethink.co.uk/
Senior Engineer Codethink - Providing Genius
next prev parent reply other threads:[~2013-02-15 11:28 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-08 23:17 ARM big-endian on current kernels for linux-3.8 Ben Dooks
2013-02-08 23:17 ` [PATCH 01/17] ARM: add CPU_BE8_BOOT_LE configuration Ben Dooks
2013-02-09 4:10 ` Nicolas Pitre
2013-02-09 16:46 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 02/17] ARM: set BE8 if LE in head code Ben Dooks
2013-02-09 3:33 ` Nicolas Pitre
2013-02-09 16:47 ` Ben Dooks
2013-02-09 21:38 ` Rob Herring
2013-02-09 21:56 ` Ben Dooks
2013-02-11 19:35 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 03/17] ARM: fix ARCH_IXP4xx usage of ARCH_SUPPORTS_BIG_ENDIAN Ben Dooks
2013-02-08 23:17 ` [PATCH 04/17] ARM: Add ARCH_SUPPORTS_BIG_ENDIAN Ben Dooks
2013-02-09 11:55 ` Russell King - ARM Linux
2013-02-09 16:55 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 05/17] ARM: fixup_pv_table bug when CPU_ENDIAN_BE8 Ben Dooks
2013-02-09 3:40 ` Nicolas Pitre
2013-02-11 19:11 ` Ben Dooks
2013-02-12 21:45 ` Nicolas Pitre
2013-02-08 23:17 ` [PATCH 06/17] ARM: fixup head for atag verification Ben Dooks
2013-02-09 3:51 ` Nicolas Pitre
2013-02-09 17:09 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 07/17] ARM: twd: data endian fix Ben Dooks
2013-02-08 23:17 ` [PATCH 08/17] ARM: smp_scu: data endian fixes Ben Dooks
2013-02-08 23:17 ` [PATCH 09/17] ARM: add atag32_to_cpu() function Ben Dooks
2013-02-09 3:57 ` Nicolas Pitre
2013-02-09 12:03 ` Russell King - ARM Linux
2013-02-11 19:15 ` Ben Dooks
2013-02-11 19:30 ` Russell King - ARM Linux
2013-02-12 18:46 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-12 20:34 ` Russell King - ARM Linux
2013-02-08 23:17 ` [PATCH 10/17] ARM: update atag-to-fdt code to be endian agnostic Ben Dooks
2013-02-09 3:57 ` Nicolas Pitre
2013-02-09 12:05 ` Russell King - ARM Linux
2013-02-11 19:16 ` Ben Dooks
2013-02-12 21:53 ` Nicolas Pitre
2013-02-13 11:27 ` Ben Dooks
2013-02-14 4:43 ` Nicolas Pitre
2013-02-15 11:28 ` Ben Dooks [this message]
2013-02-08 23:17 ` [PATCH 11/17] ARM: fixup atags " Ben Dooks
2013-02-09 4:03 ` Nicolas Pitre
2013-02-09 12:06 ` Russell King - ARM Linux
2013-02-08 23:17 ` [PATCH 12/17] ARM: fix magic for bootloader in BE8 Ben Dooks
2013-02-09 4:06 ` Nicolas Pitre
2013-02-09 12:08 ` Russell King - ARM Linux
2013-02-12 18:50 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-12 18:54 ` Ben Dooks
2013-02-12 19:52 ` Jean-Christophe PLAGNIOL-VILLARD
2013-02-11 19:17 ` Ben Dooks
2013-02-12 21:57 ` Nicolas Pitre
2013-02-08 23:17 ` [PATCH 13/17] ARM: pl01x debug code endian fix Ben Dooks
2013-02-09 12:09 ` Russell King - ARM Linux
2013-02-11 19:19 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 14/17] highbank: enable big-endian Ben Dooks
2013-02-09 21:33 ` Rob Herring
2013-02-09 22:00 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 15/17] xgmac: fix printing of hardware version Ben Dooks
2013-02-09 12:10 ` Russell King - ARM Linux
2013-02-09 17:20 ` Ben Dooks
2013-02-09 21:35 ` Rob Herring
2013-02-08 23:17 ` [PATCH 16/17] xgmac: replace __raw with relaxed IO Ben Dooks
2013-02-09 20:59 ` Rob Herring
2013-02-09 22:03 ` Ben Dooks
2013-02-08 23:17 ` [PATCH 17/17] mvebu: support running big-endian Ben Dooks
2013-02-12 17:08 ` ARM big-endian on current kernels for linux-3.8 Thomas Petazzoni
2013-02-12 17:25 ` Ben Dooks
2013-02-12 18:49 ` Thomas Petazzoni
2013-02-12 18:54 ` Ben Dooks
2013-02-13 9:48 ` Thomas Petazzoni
2013-02-12 17:13 ` Russell King - ARM Linux
2013-02-12 17:33 ` Ben Dooks
2013-02-12 22:13 ` Nicolas Pitre
2013-02-13 11:00 ` Ben Dooks
2013-02-13 10:24 ` Matthieu CASTET
2013-02-13 11:18 ` Ben Dooks
2013-02-13 15:52 ` Catalin Marinas
2013-02-13 16:02 ` Ben Dooks
2013-02-13 16:03 ` Arnd Bergmann
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=511E1BF6.90506@codethink.co.uk \
--to=ben.dooks@codethink.co.uk \
--cc=linux-arm-kernel@lists.infradead.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.