All of lore.kernel.org
 help / color / mirror / Atom feed
From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/9] arm: Move CP15 init out of cpu_init_crit()
Date: Sat, 05 Nov 2011 09:09:45 +0100	[thread overview]
Message-ID: <4EB4EF49.2050402@aribaud.net> (raw)
In-Reply-To: <CAPnjgZ0x5D3SNx-veiBVTBQ-MM8r-yPd5CzizVFZ-CqxH-ohjQ@mail.gmail.com>

Hi Simon et al.,

Thanks to you and others for their patience. Let me summarize the thread:

- ARM7TDMI definitely lacks a cp15, as AN99 explicitely states;

- ARM provides no other, reliable, way to identify an ARM7TDMI reliably;

- Identification through a manufacturer-specific method just defeats the 
goal.

This makes it impossible to support ARM7TDMI (as well as others listed 
in AM99)  with a start.S code that contains cp15 instructions.

OTOH, I've gone through a number of ARM TRMs for cores that have 
caches/MMU and they all state that these are disabled on reset. I will 
also assume that when U-Boot starts indirectly through SPL or any other 
mechanism, and if this mechanism uses caches/MMU, then it will disable 
them properly before passing control to U-Boot, just like U-Boot 
disables caches etc before passing control to e.g. Linux.

I understand that this initialization is done so that the the cache/MMU 
is in a correct state, and this must still be ensured, but I now think 
that ensuring this is the burden of whatever passed control to the start 
label (this includes true resets, branching from SPL or any other IPL, 
and --ugh-- branching to start from inside U-Boot).

Based on this, I revise my opinion that the caches and MMU cleaning code 
in start.S should be kept there, and actually I now consider that they 
should be removed entirely.

However, removing cp15 inits would mean a *third* revision of your 
patchset, plus it could cause unexpected issues which I don't want to 
happen at this point of the release cycle.

Therefore, I'll go back to your patch as posted on oct 13th.

Apologies for the long discussion.

Amicalement,
-- 
Albert.

  reply	other threads:[~2011-11-05  8:09 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-13 21:05 [U-Boot] [PATCH 0/9] tegra2: Tidy up boot path Simon Glass
2011-10-13 21:05 ` [U-Boot] [PATCH 1/9] tegra2: Add arch_cpu_init() to fire up Cortex-A9 Simon Glass
2011-10-13 22:52   ` Mike Frysinger
2011-10-13 23:18     ` Simon Glass
2011-10-13 23:34       ` Mike Frysinger
2011-10-14  0:47         ` Simon Glass
2011-10-13 21:05 ` [U-Boot] [PATCH 2/9] tegra2: Simplify tegra_start() boot path Simon Glass
2011-10-13 21:05 ` [U-Boot] [PATCH 3/9] arm: Move CP15 init out of cpu_init_crit() Simon Glass
2011-10-21 20:58   ` Albert ARIBAUD
2011-10-21 21:18     ` Simon Glass
2011-10-21 21:43       ` Albert ARIBAUD
2011-10-21 21:54         ` Simon Glass
2011-10-21 22:24           ` Albert ARIBAUD
2011-10-22  5:05             ` Simon Glass
2011-10-22  7:56               ` Albert ARIBAUD
2011-10-22 16:13                 ` Simon Glass
2011-10-24 19:34                   ` Simon Glass
2011-10-24 20:04                   ` Albert ARIBAUD
2011-10-24 20:14                     ` Simon Glass
2011-10-24 21:21                       ` Albert ARIBAUD
2011-10-25  5:02                         ` Simon Glass
2011-10-25  6:41                           ` Albert ARIBAUD
2011-10-25 13:44                             ` Simon Glass
2011-10-25 21:16                               ` Simon Glass
2011-10-27 20:05                                 ` Albert ARIBAUD
2011-10-27 20:17                                   ` Simon Glass
2011-10-27 22:39                                     ` Albert ARIBAUD
2011-10-27 22:46                                       ` Simon Glass
2011-10-28  1:43                                         ` Simon Glass
2011-10-28  5:09                                           ` Albert ARIBAUD
2011-10-29  0:36                                             ` Simon Glass
2011-10-30 10:16                                               ` Albert ARIBAUD
2011-10-31 21:44                                                 ` Simon Glass
2011-10-31 22:54                                                   ` Tom Warren
2011-11-05  5:17                                                     ` Simon Glass
2011-11-05  8:09                                                       ` Albert ARIBAUD [this message]
2011-11-05 13:36                                                         ` Simon Glass
2011-10-28  5:07                                         ` Albert ARIBAUD
2011-11-05  8:17   ` Albert ARIBAUD
2011-11-05 14:00     ` Simon Glass
2011-10-13 21:05 ` [U-Boot] [PATCH 4/9] tegra2: Enable instruction cache Simon Glass
2011-10-13 21:05 ` [U-Boot] [PATCH 5/9] tegra2: Remove unneeded boot code Simon Glass
2011-10-13 21:06 ` [U-Boot] [PATCH 6/9] tegra2: Remove unneeded config option Simon Glass
2011-10-13 21:06 ` [U-Boot] [PATCH 7/9] tegra2: Remove unused low-level Tegra2 UART code Simon Glass
2011-10-13 21:06 ` [U-Boot] [PATCH 8/9] tegra2: Remove unneeded 'dynamic ram size' message Simon Glass
2011-10-13 21:06 ` [U-Boot] [PATCH 9/9] tegra2: Don't use board pointer before it is set up Simon Glass

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=4EB4EF49.2050402@aribaud.net \
    --to=albert.u.boot@aribaud.net \
    --cc=u-boot@lists.denx.de \
    /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.