[U-Boot] the mips cache code question ?
Scott Nicholas
scott.nicholas at scottn.us
Thu Dec 2 02:13:42 CET 2010
Sorry for the two successive posts, I looked at the disassembly...
On Wed, Dec 1, 2010 at 1:26 AM, 奥刘 <happyoach at gmail.com> wrote:
> Dear All:
>
> Recently , i have build a embedded environment with Uboot . And My Chip
> is adm5120 , mips4kc code.
>
> In the file .\cpu\mips\cache.s , i found some code confounded .
>
> line 152 to line 156 :
>
> cache_op Index_Store_Tag_I t0
> PTR_ADDU t0, a2
> bne t0, t1, 1b
> /* fill once, so data field parity is correct */
> PTR_LI t0, INDEX_BASE
>
> the code 'PTR_LI t0, INDEX_BASE' is in the branch delay slot , so this
> instruction will be implement every branch cycle.
>
> Is it right ? Then the cache operation logic seems wrong .
The assembler does insert a 'NOP' instruction in the branch delay
slot, even with ".set noreorder", so this is OK:
810005a8: bd140000 cache 0x14,0(t0)
810005ac: 01064021 addu t0,t0,a2
810005b0: 1509fffd bne t0,t1,810005a8 <mips_init_icache+0x28>
810005b4: 00000000 nop
--
Scott
More information about the U-Boot
mailing list