Skip to contentSkip to conversation

removing bit reversing for SCFG in immap_ls102xa.h

U-Boot Sinan Akman 2 participants 2 messages Jan 23, 2015

lore
Share & tools
lore
#0 lore raw

Hi Alison

I was just testing out ls1021atwr board with NOR
boot using rcw_1000.bin.

I noticed that Ethernet is not working.

In ls1021atwr.c we have :

   out_be32(&scfg->etsecdmamcr, SCFG_ETSECDMAMCR_LE_BD_FR);
   out_be32(&scfg->etsecmcr, SCFG_ETSECCMCR_GE2_CLK125);

In your earlier commit c207ff612903389f8b32e377fe32be43e6efd8f7
you removed the bit reversing around this but those defines are not in big-endian. By setting bit reversing before those lines as before makes Ethernet working.

Could you please take a look at this. Should we reverse
your commit since we are accessing SCFG registers directly in the board specific files ?

Regards

Sinan Akman

#1 lore raw

Hi, Sinan Akman,

As the comment of commit c207ff612903389f8b32e377fe32be43e6efd8f7 said, we removes the bit reversing for SCFG registers in u-boot. It is implemented through PBI command in RCW.
.pbi
write 0x570200, 0xffffffff
.end

Through this way, other SCFG registers could be written in big-endian mode in u-boot or kernel directly. No other bit reversing is needed. For example, we only need to set SCFG_ETSECDMAMCR register as follows.
out_be32(&scfg->etsecdmamcr, SCFG_ETSECDMAMCR_LE_BD_FR);

According to your test, I think your RCW is very old and the above PBI command is not added. So I suggest you to add this PBI command in RCW, it will make Ethernet work.

Best Regards,
Alison Wang

Quoted 32 lines

-----Original Message-----
From: Sinan Akman [mailto:sinan at writeme.com]
Sent: Friday, January 23, 2015 3:11 PM
To: U-Boot-Denx
Cc: Wang Huan-B18965; Sun York-R58495
Subject: removing bit reversing for SCFG in immap_ls102xa.h

Hi Alison

I was just testing out ls1021atwr board with NOR boot using
rcw_1000.bin.

   I noticed that Ethernet is not working.

   In ls1021atwr.c we have :

   out_be32(&scfg->etsecdmamcr, SCFG_ETSECDMAMCR_LE_BD_FR);
   out_be32(&scfg->etsecmcr, SCFG_ETSECCMCR_GE2_CLK125);

   In your earlier commit c207ff612903389f8b32e377fe32be43e6efd8f7

you removed the bit reversing around this but those defines are not in big-endian. By setting bit reversing before those lines as before makes Ethernet working.

Could you please take a look at this. Should we reverse your commit
since we are accessing SCFG registers directly in the board specific files ?

Regards

Sinan Akman