From: Shinya Kuribayashi <skuribay@ruby.dti.ne.jp>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] UNCACHED_SDRAM macro issue
Date: Sat, 16 Feb 2008 18:06:51 +0900 [thread overview]
Message-ID: <47B6A7AB.2060603@ruby.dti.ne.jp> (raw)
In-Reply-To: <47B55738.9020701@necel.com>
Shinya Kuribayashi wrote:
> Shinya Kuribayashi wrote:
>>> I think that on my application the UNCACHED_SDRAM should map the address
>>> on KSEG1 (how it is now) but this simply doesn't work. Instead, using
>>> the PHYSADDR(a) macro... the kernel is able to start.
>>>
>>> I suspect that there are issues on cache management. Can be?
>> IMHO it's not related to cache.
>
> How do you set ERL and EXL bits? Please try to clear them at the
> STATUS register initialization like:
>
> reset:
> <snip>
>
> /* STATUS register */
> mfc0 k0, CP0_STATUS
> - li k1, ~ST0_IE
> + li k1, ~(ST0_ERL | ST0_EXL | ST0_IE)
> and k0, k1
> mtc0 k0, CP0_STATUS
>
> ERL and EXL disable exceptions. Due to this spec, we are in danger
> of overlooking something critical. If this change brings in new
> exception(s), please fix the causes of them first. Hope this helps.
Err, sorry for confusing example. Here's the right one:
diff --git a/cpu/mips/start.S b/cpu/mips/start.S
index c92b162..02797f7 100644
--- a/cpu/mips/start.S
+++ b/cpu/mips/start.S
@@ -211,14 +211,20 @@ reset:
mtc0 zero, CP0_WATCHLO
mtc0 zero, CP0_WATCHHI
+ /* Inhibit deffered WATCH exception */
+ mfc0 k0, CP0_CAUSE
+ li k1, ~(1UL << 22) # CP0.Cause.WP = 0
+ and k0, k0, k1
+ mtc0 k0, CP0_CAUSE
+
/* STATUS register */
#ifdef CONFIG_TB0229
li k0, ST0_CU0
#else
mfc0 k0, CP0_STATUS
#endif
- li k1, ~ST0_IE
- and k0, k1
+ ori k0, (ST0_ERL | ST0_EXL | ST0_IE)
+ xori k0, (ST0_ERL | ST0_EXL)
mtc0 k0, CP0_STATUS
/* CAUSE register */
Again, it's highy recommended to make sure U-Boot works fine under
interrupts enabled (CP0.Status.IE=1), before digging into UNCACHED_
SDRAM problem.
Shinya
next prev parent reply other threads:[~2008-02-16 9:06 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-13 8:59 [U-Boot-Users] UNCACHED_SDRAM macro issue Luigi 'Comio' Mantellini
2008-02-14 3:55 ` Shinya Kuribayashi
2008-02-14 9:01 ` Luigi 'Comio' Mantellini
2008-02-15 0:43 ` Shinya Kuribayashi
2008-02-15 9:11 ` Shinya Kuribayashi
2008-02-16 9:06 ` Shinya Kuribayashi [this message]
2008-02-16 11:50 ` Luigi 'Comio' Mantellini
2008-02-28 8:23 ` Luigi 'Comio' Mantellini
2008-02-28 8:34 ` Shinya Kuribayashi
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=47B6A7AB.2060603@ruby.dti.ne.jp \
--to=skuribay@ruby.dti.ne.jp \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox