]> git.sur5r.net Git - u-boot/commitdiff
powerpc: Move duplicated BAT defines to mmu.h
authorBecky Bruce <beckyb@kernel.crashing.org>
Wed, 4 Feb 2009 00:10:51 +0000 (18:10 -0600)
committerWolfgang Denk <wd@denx.de>
Mon, 9 Feb 2009 23:27:40 +0000 (00:27 +0100)
The BAT fields are architected; there's no need for these to be in
cpu-specific files.  Drop the duplication and move these to
include/asm-ppc/mmu.h.  Also, remove the BL_xxx defines that were only
used by the alaska board, and switch to using the BATU_BL_xxx defines
used by all the other boards.  The BL_ defines previously in use
had to be shifted into the proper position for use, which was inefficient.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
board/alaska/alaska.c
board/etin/debris/flash.c
board/etin/kvme080/kvme080.c
include/74xx_7xx.h
include/asm-ppc/e300.h
include/asm-ppc/mmu.h
include/mpc824x.h
include/mpc86xx.h

index 33b4a6ee4aa9578ca1ed0b7e372890023ffb41f4..89c1abd23361e8d72252959ea0a9718b458813c5 100644 (file)
@@ -33,9 +33,9 @@ void setupBat (ulong size)
 
        /* Flash 0 */
 #if defined (CONFIG_SYS_AMD_BOOT)
-       batu = CONFIG_SYS_FLASH0_BASE | (BL_512K << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_FLASH0_BASE | BATU_BL_512K | BPP_RW | BPP_RX;
 #else
-       batu = CONFIG_SYS_FLASH0_BASE | (BL_16M << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_FLASH0_BASE | BATU_BL_16M | BPP_RW | BPP_RX;
 #endif
        batl = CONFIG_SYS_FLASH0_BASE | 0x22;
        write_bat (IBAT0, batu, batl);
@@ -43,22 +43,22 @@ void setupBat (ulong size)
 
        /* Flash 1 */
 #if defined (CONFIG_SYS_AMD_BOOT)
-       batu = CONFIG_SYS_FLASH1_BASE | (BL_16M << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_FLASH1_BASE | BATU_BL_16M | BPP_RW | BPP_RX;
 #else
-       batu = CONFIG_SYS_FLASH1_BASE | (BL_512K << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_FLASH1_BASE | BATU_BL_512K | BPP_RW | BPP_RX;
 #endif
        batl = CONFIG_SYS_FLASH1_BASE | 0x22;
        write_bat (IBAT1, batu, batl);
        write_bat (DBAT1, batu, batl);
 
        /* CPLD */
-       batu = CONFIG_SYS_CPLD_BASE | (BL_512K << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_CPLD_BASE | BATU_BL_512K | BPP_RW | BPP_RX;
        batl = CONFIG_SYS_CPLD_BASE | 0x22;
        write_bat (IBAT2, 0, 0);
        write_bat (DBAT2, batu, batl);
 
        /* FPGA */
-       batu = CONFIG_SYS_FPGA_BASE | (BL_512K << 2) | BPP_RW | BPP_RX;
+       batu = CONFIG_SYS_FPGA_BASE | BATU_BL_512K | BPP_RW | BPP_RX;
        batl = CONFIG_SYS_FPGA_BASE | 0x22;
        write_bat (IBAT3, 0, 0);
        write_bat (DBAT3, batu, batl);
@@ -80,17 +80,17 @@ void setupBat (ulong size)
        mtspr (DBAT5U, batu);
 
        if (size <= 0x800000)   /* 8MB */
-               blocksize = BL_8M << 2;
+               blocksize = BATU_BL_8M;
        else if (size <= 0x1000000)     /* 16MB */
-               blocksize = BL_16M << 2;
+               blocksize = BATU_BL_16M;
        else if (size <= 0x2000000)     /* 32MB */
-               blocksize = BL_32M << 2;
+               blocksize = BATU_BL_32M;
        else if (size <= 0x4000000)     /* 64MB */
-               blocksize = BL_64M << 2;
+               blocksize = BATU_BL_64M;
        else if (size <= 0x8000000)     /* 128MB */
-               blocksize = BL_128M << 2;
+               blocksize = BATU_BL_128M;
        else if (size <= 0x10000000)    /* 256MB */
-               blocksize = BL_256M << 2;
+               blocksize = BATU_BL_256M;
 
        /* Memory */
        batu = CONFIG_SYS_SDRAM_BASE | blocksize | BPP_RW | BPP_RX;
@@ -108,17 +108,17 @@ void setupBat (ulong size)
        } else {
                size -= 0x10000000;
                if (size <= 0x800000)   /* 8MB */
-                       blocksize = BL_8M << 2;
+                       blocksize = BATU_BL_8M;
                else if (size <= 0x1000000)     /* 16MB */
-                       blocksize = BL_16M << 2;
+                       blocksize = BATU_BL_16M;
                else if (size <= 0x2000000)     /* 32MB */
-                       blocksize = BL_32M << 2;
+                       blocksize = BATU_BL_32M;
                else if (size <= 0x4000000)     /* 64MB */
-                       blocksize = BL_64M << 2;
+                       blocksize = BATU_BL_64M;
                else if (size <= 0x8000000)     /* 128MB */
-                       blocksize = BL_128M << 2;
+                       blocksize = BATU_BL_128M;
                else if (size <= 0x10000000)    /* 256MB */
-                       blocksize = BL_256M << 2;
+                       blocksize = BATU_BL_256M;
 
                batu = (CONFIG_SYS_SDRAM_BASE +
                        0x10000000) | blocksize | BPP_RW | BPP_RX;
index a3c8138841c2aa4098a62203d2dcccc381ac14e5..f9e861942d922f6bd9c2ee72a7691c30be82e5dd 100644 (file)
@@ -27,6 +27,7 @@
 #include <asm/processor.h>
 #include <asm/pci_io.h>
 #include <mpc824x.h>
+#include <asm/mmu.h>
 
 int (*do_flash_erase)(flash_info_t*, uint32_t, uint32_t);
 int (*write_dword)(flash_info_t*, ulong, uint64_t);
index 8c6afc9ca70c156dd1750108b5a75668b5104376..21616f540a9cffe25e2694b694fabe77d052442d 100644 (file)
@@ -27,6 +27,7 @@
 #include <i2c.h>
 #include <netdev.h>
 #include <asm/processor.h>
+#include <asm/mmu.h>
 
 int checkboard(void)
 {
index 4a03cecb5917c28d9756c5cffeeb7cf6deabb5d4..69a2174871b1f32ce9a1b4a0957bd658a7722b3b 100644 (file)
 #define L2CR_L2OH_INV    0x00020000 /* bits 14-15 - output hold time = long */
 #define L2CR_L2IP        0x00000001 /* global invalidate in progress */
 
-/*----------------------------------------------------------------
- * BAT settings.  Look in config_<BOARD>.h for the actual setup
- */
-
-#define BATU_BL_128K            0x00000000
-#define BATU_BL_256K            0x00000004
-#define BATU_BL_512K            0x0000000c
-#define BATU_BL_1M              0x0000001c
-#define BATU_BL_2M              0x0000003c
-#define BATU_BL_4M              0x0000007c
-#define BATU_BL_8M              0x000000fc
-#define BATU_BL_16M             0x000001fc
-#define BATU_BL_32M             0x000003fc
-#define BATU_BL_64M             0x000007fc
-#define BATU_BL_128M            0x00000ffc
-#define BATU_BL_256M            0x00001ffc
-
-#define BATU_VS                 0x00000002
-#define BATU_VP                 0x00000001
-#define BATU_INVALID            0x00000000
-
-#define BATL_WRITETHROUGH       0x00000040
-#define BATL_CACHEINHIBIT       0x00000020
-#define BATL_MEMCOHERENCE      0x00000010
-#define BATL_GUARDEDSTORAGE     0x00000008
-#define BATL_NO_ACCESS         0x00000000
-
-#define BATL_PP_MSK            0x00000003
-#define BATL_PP_00             0x00000000 /* No access */
-#define BATL_PP_01             0x00000001 /* Read-only */
-#define BATL_PP_10             0x00000002 /* Read-write */
-#define BATL_PP_11             0x00000003
-
-#define BATL_PP_NO_ACCESS      BATL_PP_00
-#define BATL_PP_RO             BATL_PP_01
-#define BATL_PP_RW             BATL_PP_10
-
 #ifndef __ASSEMBLY__
 /* cpu ids we detect */
 typedef enum __cpu_t {
index 05db0de8f8cbb10318150266fa7779a02435bb5e..bfef4dfd626e8859346a66034bad6a9bbba1c2da 100644 (file)
 #define HID2_IWLCK_101 0x0000A000 /* way 0 through way 4 locked */
 #define HID2_IWLCK_110 0x0000C000 /* way 0 through way 5 locked */
 
-
-/* BAT (block address translation */
-#define BATU_BEPI_MSK          0xfffe0000
-#define BATU_BL_MSK            0x00001ffc
-
-#define BATU_BL_128K           0x00000000
-#define BATU_BL_256K           0x00000004
-#define BATU_BL_512K           0x0000000c
-#define BATU_BL_1M             0x0000001c
-#define BATU_BL_2M             0x0000003c
-#define BATU_BL_4M             0x0000007c
-#define BATU_BL_8M             0x000000fc
-#define BATU_BL_16M            0x000001fc
-#define BATU_BL_32M            0x000003fc
-#define BATU_BL_64M            0x000007fc
-#define BATU_BL_128M           0x00000ffc
-#define BATU_BL_256M           0x00001ffc
-
-#define BATU_VS                        0x00000002
-#define BATU_VP                        0x00000001
-
-#define BATL_BRPN_MSK          0xfffe0000
-#define BATL_WIMG_MSK          0x00000078
-
-#define BATL_WRITETHROUGH      0x00000040
-#define BATL_CACHEINHIBIT      0x00000020
-#define BATL_MEMCOHERENCE      0x00000010
-#define BATL_GUARDEDSTORAGE    0x00000008
-
-#define BATL_PP_MSK            0x00000003
-#define BATL_PP_00             0x00000000 /* No access */
-#define BATL_PP_01             0x00000001 /* Read-only */
-#define BATL_PP_10             0x00000002 /* Read-write */
-#define BATL_PP_11             0x00000003
-
 #endif /* __E300_H__ */
index 6d942d083a0675a1ba8d2394a2436e9f5014935f..ce04e624d4b403a9399e7573f582b5e98ba28bdb 100644 (file)
@@ -153,19 +153,50 @@ extern void print_bats(void);
 
 #endif /* __ASSEMBLY__ */
 
-/* Block size masks */
-#define BL_128K        0x000
-#define BL_256K 0x001
-#define BL_512K 0x003
-#define BL_1M   0x007
-#define BL_2M   0x00F
-#define BL_4M   0x01F
-#define BL_8M   0x03F
-#define BL_16M  0x07F
-#define BL_32M  0x0FF
-#define BL_64M  0x1FF
-#define BL_128M 0x3FF
-#define BL_256M 0x7FF
+#define BATU_VS                 0x00000002
+#define BATU_VP                 0x00000001
+#define BATU_INVALID            0x00000000
+
+#define BATL_WRITETHROUGH       0x00000040
+#define BATL_CACHEINHIBIT       0x00000020
+#define BATL_MEMCOHERENCE      0x00000010
+#define BATL_GUARDEDSTORAGE     0x00000008
+#define BATL_NO_ACCESS         0x00000000
+
+#define BATL_PP_MSK            0x00000003
+#define BATL_PP_00             0x00000000 /* No access */
+#define BATL_PP_01             0x00000001 /* Read-only */
+#define BATL_PP_10             0x00000002 /* Read-write */
+#define BATL_PP_11             0x00000003
+
+#define BATL_PP_NO_ACCESS      BATL_PP_00
+#define BATL_PP_RO             BATL_PP_01
+#define BATL_PP_RW             BATL_PP_10
+
+/* BAT Block size values */
+#define BATU_BL_128K            0x00000000
+#define BATU_BL_256K            0x00000004
+#define BATU_BL_512K            0x0000000c
+#define BATU_BL_1M              0x0000001c
+#define BATU_BL_2M              0x0000003c
+#define BATU_BL_4M              0x0000007c
+#define BATU_BL_8M              0x000000fc
+#define BATU_BL_16M             0x000001fc
+#define BATU_BL_32M             0x000003fc
+#define BATU_BL_64M             0x000007fc
+#define BATU_BL_128M            0x00000ffc
+#define BATU_BL_256M            0x00001ffc
+
+/* Block lengths for processors that support extended block length */
+#ifdef HID0_XBSEN
+#define BATU_BL_512M            0x00003ffc
+#define BATU_BL_1G              0x00007ffc
+#define BATU_BL_2G              0x0000fffc
+#define BATU_BL_4G              0x0001fffc
+#define BATU_BL_MAX            BATU_BL_4G
+#else
+#define BATU_BL_MAX            BATU_BL_256M
+#endif
 
 /* BAT Access Protection */
 #define BPP_XX 0x00            /* No access */
index 5aa9370b1963f4100e8ff7cd90ef2dbed50441c6..fca9371bddb1fd369e1ab475669449ab645bb788 100644 (file)
 #define MICR_EADDR_MASK                0x30000000
 #define MICR_EADDR_SHIFT       28
 
-#define BATU_BEPI_MSK          0xfffe0000
-#define BATU_BL_MSK            0x00001ffc
-
-#define BATU_BL_128K           0x00000000
-#define BATU_BL_256K           0x00000004
-#define BATU_BL_512K           0x0000000c
-#define BATU_BL_1M             0x0000001c
-#define BATU_BL_2M             0x0000003c
-#define BATU_BL_4M             0x0000007c
-#define BATU_BL_8M             0x000000fc
-#define BATU_BL_16M            0x000001fc
-#define BATU_BL_32M            0x000003fc
-#define BATU_BL_64M            0x000007fc
-#define BATU_BL_128M           0x00000ffc
-#define BATU_BL_256M           0x00001ffc
-
-#define BATU_VS                        0x00000002
-#define BATU_VP                        0x00000001
-
-#define BATL_BRPN_MSK          0xfffe0000
-#define BATL_WIMG_MSK          0x00000078
-
-#define BATL_WRITETHROUGH      0x00000040
-#define BATL_CACHEINHIBIT      0x00000020
-#define BATL_MEMCOHERENCE      0x00000010
-#define BATL_GUARDEDSTORAGE    0x00000008
-
-#define BATL_PP_MSK            0x00000003
-#define BATL_PP_00             0x00000000 /* No access */
-#define BATL_PP_01             0x00000001 /* Read-only */
-#define BATL_PP_10             0x00000002 /* Read-write */
-#define BATL_PP_11             0x00000003
-
-/*
- * I'd attempt to do defines for the PP bits, but it's use is a bit
- * too complex, see the PowerPC Operating Environment Architecture
- * section in the PowerPc arch book, chapter 4.
- */
-
 /*eumb and epic config*/
 
 #define EPIC_FPR               0x00041000
index a6fdea352fd0c4a052c081ef9cf9b625907a8cb5..c6f30f9fd5a7dc91250712e7529f47d817f9c74b 100644 (file)
 #define L2CR_HWF         0x00000800 /* bit 20 - hardware flush */
 #define L2CR_L2IP        0x00000001 /* global invalidate in progress */
 
-/*
- * BAT settings.  Look in config_<BOARD>.h for the actual setup
- */
-
-#define BATU_BL_128K            0x00000000
-#define BATU_BL_256K            0x00000004
-#define BATU_BL_512K            0x0000000c
-#define BATU_BL_1M              0x0000001c
-#define BATU_BL_2M              0x0000003c
-#define BATU_BL_4M              0x0000007c
-#define BATU_BL_8M              0x000000fc
-#define BATU_BL_16M             0x000001fc
-#define BATU_BL_32M             0x000003fc
-#define BATU_BL_64M             0x000007fc
-#define BATU_BL_128M            0x00000ffc
-#define BATU_BL_256M            0x00001ffc
-#define BATU_BL_512M            0x00003ffc
-#define BATU_BL_1G              0x00007ffc
-#define BATU_BL_2G              0x0000fffc
-#define BATU_BL_4G              0x0001fffc
-
-#define BATU_VS                 0x00000002
-#define BATU_VP                 0x00000001
-#define BATU_INVALID            0x00000000
-
-#define BATL_WRITETHROUGH       0x00000040
-#define BATL_CACHEINHIBIT       0x00000020
-#define BATL_MEMCOHERENCE      0x00000010
-#define BATL_GUARDEDSTORAGE     0x00000008
-#define BATL_NO_ACCESS         0x00000000
-
-#define BATL_PP_MSK            0x00000003
-#define BATL_PP_00             0x00000000 /* No access */
-#define BATL_PP_01             0x00000001 /* Read-only */
-#define BATL_PP_10             0x00000002 /* Read-write */
-#define BATL_PP_11             0x00000003
-
-#define BATL_PP_NO_ACCESS      BATL_PP_00
-#define BATL_PP_RO             BATL_PP_01
-#define BATL_PP_RW             BATL_PP_10
-
 #define HID0_XBSEN              0x00000100
 #define HID0_HIGH_BAT_EN        0x00800000
 #define HID0_XAEN               0x00020000