فهرست منبع

* Patches by Sean Chang, 09 Aug 2004:
- Added support for both 8 and 16 bit mode access to System ACE CF
through MPU.
- Fixed missing System ACE CF device during get FAT partition info
in fat_register_device function.
- Enabled System ACE CF support on ML300.

* Patch by Sean Chang, 09 Aug 2004:
Synch defines for saveenv and do_saveenv functions so they get
compiled under the same statement.

wdenk 20 سال پیش
والد
کامیت
a5bbcc3c53
5فایلهای تغییر یافته به همراه47 افزوده شده و 7 حذف شده
  1. 13 2
      CHANGELOG
  2. 25 2
      common/cmd_ace.c
  3. 3 2
      common/cmd_nvedit.c
  4. 1 1
      fs/fat/fat.c
  5. 5 0
      include/configs/ml300.h

+ 13 - 2
CHANGELOG

@@ -2,7 +2,18 @@
 Changes since U-Boot 1.1.1:
 ======================================================================
 
-* Patch by Sean Chang, 9 Aug 2004:
+* Patches by Sean Chang, 09 Aug 2004:
+  - Added support for both 8 and 16 bit mode access to System ACE CF
+    through MPU.
+  - Fixed missing System ACE CF device during get FAT partition info
+    in fat_register_device function.
+  - Enabled System ACE CF support on ML300.
+
+* Patch by Sean Chang, 09 Aug 2004:
+  Synch defines for saveenv and do_saveenv functions so they get
+  compiled under the same statement.
+
+* Patch by Sean Chang, 09 Aug 2004:
   - Added I2C support for ML300.
   - Added support for ML300 to read out its environment information
     stored on the EEPROM.
@@ -11,7 +22,7 @@ Changes since U-Boot 1.1.1:
   - Updated MLD files to support configuration for new features
     above.
 
-* Patches by Travis Sawyer, 5 Aug 2004:
+* Patches by Travis Sawyer, 05 Aug 2004:
   - Remove incorrect bridge settings for eth group 6
   - Add call to setup bridge in ppc_440x_eth_initialize
   - Fix ppc_440x_eth_init to reset the phy only if its the

+ 25 - 2
common/cmd_ace.c

@@ -50,12 +50,35 @@
  */
 static unsigned ace_readw(unsigned offset)
 {
-      return readw(CFG_SYSTEMACE_BASE+offset);
+#if (CFG_SYSTEMACE_WIDTH == 8)
+  u16 temp;
+
+#if !defined(__BIG_ENDIAN)
+  temp =((u16)readb(CFG_SYSTEMACE_BASE+offset) << 8);
+  temp |= (u16)readb(CFG_SYSTEMACE_BASE+offset+1);
+#else
+  temp = (u16)readb(CFG_SYSTEMACE_BASE+offset);
+  temp |=((u16)readb(CFG_SYSTEMACE_BASE+offset+1) << 8);
+#endif
+  return temp;
+#else
+  return readw(CFG_SYSTEMACE_BASE+offset);
+#endif
 }
 
 static void ace_writew(unsigned val, unsigned offset)
 {
-      writew(val, CFG_SYSTEMACE_BASE+offset);
+#if (CFG_SYSTEMACE_WIDTH == 8)
+#if !defined(__BIG_ENDIAN)
+  writeb((u8)(val>>8), CFG_SYSTEMACE_BASE+offset);
+  writeb((u8)val, CFG_SYSTEMACE_BASE+offset+1);
+#else
+  writeb((u8)val, CFG_SYSTEMACE_BASE+offset);
+  writeb((u8)(val>>8), CFG_SYSTEMACE_BASE+offset+1);
+#endif
+#else
+  writew(val, CFG_SYSTEMACE_BASE+offset);
+#endif
 }
 
 /* */

+ 3 - 2
common/cmd_nvedit.c

@@ -586,8 +586,9 @@ U_BOOT_CMD(
 	"    - delete environment variable 'name'\n"
 );
 
-#if ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == (CFG_CMD_ENV|CFG_CMD_FLASH))
-
+#if defined(CFG_ENV_IS_IN_NVRAM) || defined(CFG_ENV_IS_IN_EEPROM) || \
+    ((CONFIG_COMMANDS & (CFG_CMD_ENV|CFG_CMD_FLASH)) == \
+      (CFG_CMD_ENV|CFG_CMD_FLASH))
 U_BOOT_CMD(
 	saveenv, 1, 0,	do_saveenv,
 	"saveenv - save environment variables to persistent storage\n",

+ 1 - 1
fs/fat/fat.c

@@ -90,7 +90,7 @@ fat_register_device(block_dev_desc_t *dev_desc, int part_no)
 	}
 	else {
 #if (CONFIG_COMMANDS & CFG_CMD_IDE) || (CONFIG_COMMANDS & CFG_CMD_SCSI) || \
-    (CONFIG_COMMANDS & CFG_CMD_USB)
+    (CONFIG_COMMANDS & CFG_CMD_USB) || defined(CONFIG_SYSTEMACE)
 		disk_partition_t info;
 		if(!get_partition_info(dev_desc, part_no, &info)) {
 			part_offset = info.start;

+ 5 - 0
include/configs/ml300.h

@@ -56,6 +56,11 @@
 #define CONFIG_4xx		1	/* ...member of PPC4xx family	*/
 #define CONFIG_XILINX_ML300	1	/* ...on a Xilinx ML300 board	*/
 
+#define CONFIG_SYSTEMACE	1
+#define CONFIG_DOS_PARTITION	1
+#define CFG_SYSTEMACE_BASE	XPAR_SYSACE_0_BASEADDR
+#define CFG_SYSTEMACE_WIDTH	XPAR_XSYSACE_MEM_WIDTH
+
 #define CFG_ENV_IS_IN_EEPROM	1	/* environment is in EEPROM */
 
 /* following are used only if env is in EEPROM */