Changeset 27880


Ignore:
Timestamp:
2011-08-02T20:55:46+02:00 (7 years ago)
Author:
florian
Message:

[brcm63xx] improve BCM6345 support

  • runtime detect the amount of memory available
  • define EBI_BASE as MPI_BASE to get rid of chip-select specific hacks
  • fix GPIO control
Location:
trunk/target/linux/brcm63xx
Files:
2 added
31 edited

Legend:

Unmodified
Added
Removed
  • trunk/target/linux/brcm63xx/patches-2.6.39/007-usb-ohci-support.patch

    r27235 r27880  
    5353  
    5454 #define PFX    "board_bcm963xx: " 
    55 @@ -877,6 +878,9 @@ int __init board_register_devices(void) 
     55@@ -871,6 +872,9 @@ int __init board_register_devices(void) 
    5656            !board_get_mac_address(board.enet1.mac_addr)) 
    5757                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-2.6.39/008-usb-ehci-support.patch

    r27235 r27880  
    4545  
    4646 #define PFX    "board_bcm963xx: " 
    47 @@ -878,6 +879,9 @@ int __init board_register_devices(void) 
     47@@ -872,6 +873,9 @@ int __init board_register_devices(void) 
    4848            !board_get_mac_address(board.enet1.mac_addr)) 
    4949                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-2.6.39/040-bcm963xx_flashmap.patch

    r27235 r27880  
    1313--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    1414+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    15 @@ -816,20 +816,6 @@ void __init board_setup(void) 
     15@@ -810,20 +810,6 @@ void __init board_setup(void) 
    1616                panic("unexpected CPU for bcm963xx board"); 
    1717 } 
     
    3434        { 
    3535                .start          = 0,    /* filled at runtime */ 
    36 @@ -839,12 +825,9 @@ static struct resource mtd_resources[] = 
     36@@ -833,12 +819,9 @@ static struct resource mtd_resources[] = 
    3737 }; 
    3838  
  • trunk/target/linux/brcm63xx/patches-2.6.39/100-reset_buttons.patch

    r27235 r27880  
    4444  
    4545 static struct board_info __initdata board_FAST2404 = { 
    46 @@ -838,12 +860,23 @@ static struct platform_device bcm63xx_gp 
     46@@ -832,12 +854,23 @@ static struct platform_device bcm63xx_gp 
    4747        .dev.platform_data      = &bcm63xx_led_data, 
    4848 }; 
     
    6868        if (board.has_uart0) 
    6969                bcm63xx_uart_register(0); 
    70 @@ -888,5 +921,16 @@ int __init board_register_devices(void) 
     70@@ -879,5 +912,16 @@ int __init board_register_devices(void) 
    7171  
    7272        platform_device_register(&bcm63xx_gpio_leds); 
  • trunk/target/linux/brcm63xx/patches-2.6.39/141-led_count.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -877,6 +877,7 @@ int __init board_register_devices(void) 
     3@@ -871,6 +871,7 @@ int __init board_register_devices(void) 
    44 { 
    55        u32 val; 
     
    99        if (board.has_uart0) 
    1010                bcm63xx_uart_register(0); 
    11 @@ -916,7 +917,11 @@ int __init board_register_devices(void) 
     11@@ -907,7 +908,11 @@ int __init board_register_devices(void) 
    1212  
    1313        platform_device_register(&mtd_dev); 
  • trunk/target/linux/brcm63xx/patches-2.6.39/180-udc_preliminary_support.patch

    r27284 r27880  
    1818  
    1919 static struct board_info __initdata board_rta1025w_16 = { 
    20 @@ -905,6 +908,9 @@ int __init board_register_devices(void) 
     20@@ -899,6 +902,9 @@ int __init board_register_devices(void) 
    2121        if (board.has_dsp) 
    2222                bcm63xx_dsp_register(&board.dsp); 
     
    2626+ 
    2727        /* read base address of boot chip select (0) */ 
    28         if (BCMCPU_IS_6345()) 
    29                 val = 0x1fc00000; 
     28        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     29        val &= MPI_CSBASE_BASE_MASK; 
    3030--- /dev/null 
    3131+++ b/arch/mips/bcm63xx/dev-usb-udc.c 
  • trunk/target/linux/brcm63xx/patches-2.6.39/200-extended-platform-devices.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -911,6 +911,9 @@ int __init board_register_devices(void) 
     3@@ -905,6 +905,9 @@ int __init board_register_devices(void) 
    44        if (board.has_udc0) 
    55                bcm63xx_udc_register(); 
     
    99+ 
    1010        /* read base address of boot chip select (0) */ 
    11         if (BCMCPU_IS_6345()) 
    12                 val = 0x1fc00000; 
     11        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     12        val &= MPI_CSBASE_BASE_MASK; 
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
  • trunk/target/linux/brcm63xx/patches-2.6.39/200-spi-board-info.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -914,6 +914,9 @@ int __init board_register_devices(void) 
     3@@ -908,6 +908,9 @@ int __init board_register_devices(void) 
    44        if (board.num_devs) 
    55                platform_add_devices(board.devs, board.num_devs); 
     
    99+ 
    1010        /* read base address of boot chip select (0) */ 
    11         if (BCMCPU_IS_6345()) 
    12                 val = 0x1fc00000; 
     11        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     12        val &= MPI_CSBASE_BASE_MASK; 
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
  • trunk/target/linux/brcm63xx/patches-2.6.39/220-wl_exports.patch

    r27235 r27880  
    1515  */ 
    1616 #ifdef CONFIG_BCM63XX_CPU_6338 
    17 @@ -747,6 +754,7 @@ void __init board_prom_init(void) 
     17@@ -741,6 +748,7 @@ void __init board_prom_init(void) 
    1818  
    1919        /* extract nvram data */ 
  • trunk/target/linux/brcm63xx/patches-2.6.39/230-6358-enet1-external-mii-clk.patch

    r27235 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -818,6 +818,8 @@ void __init board_prom_init(void) 
     3@@ -812,6 +812,8 @@ void __init board_prom_init(void) 
    44                if (BCMCPU_IS_6348()) 
    55                        val |= GPIO_MODE_6348_G3_EXT_MII | 
  • trunk/target/linux/brcm63xx/patches-2.6.39/240-spi.patch

    r27774 r27880  
    171171--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    172172+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    173 @@ -771,4 +771,116 @@ 
     173@@ -773,4 +773,116 @@ 
    174174 #define DMIPSPLLCFG_N2_SHIFT           29 
    175175 #define DMIPSPLLCFG_N2_MASK            (0x7 << DMIPSPLLCFG_N2_SHIFT) 
     
    920920  
    921921 #define PFX    "board_bcm963xx: " 
    922 @@ -927,6 +928,8 @@ int __init board_register_devices(void) 
     922@@ -921,6 +922,8 @@ int __init board_register_devices(void) 
    923923        if (board.num_spis) 
    924924                spi_register_board_info(board.spis, board.num_spis); 
     
    927927+ 
    928928        /* read base address of boot chip select (0) */ 
    929         if (BCMCPU_IS_6345()) 
    930                 val = 0x1fc00000; 
     929        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     930        val &= MPI_CSBASE_BASE_MASK; 
  • trunk/target/linux/brcm63xx/patches-2.6.39/250-boardid_fixup.patch

    r27235 r27880  
    4545  * early init callback, read nvram data from flash and checksum it 
    4646  */ 
    47 @@ -771,6 +798,11 @@ void __init board_prom_init(void) 
     47@@ -765,6 +792,11 @@ void __init board_prom_init(void) 
    4848                return; 
    4949        } 
  • trunk/target/linux/brcm63xx/patches-2.6.39/260-ssb_sprom_mac_pool.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -856,17 +856,6 @@ void __init board_prom_init(void) 
     3@@ -850,17 +850,6 @@ void __init board_prom_init(void) 
    44        } 
    55  
     
    1919  
    2020 /* 
    21 @@ -942,6 +931,18 @@ int __init board_register_devices(void) 
     21@@ -936,6 +925,18 @@ int __init board_register_devices(void) 
    2222            !board_get_mac_address(board.enet1.mac_addr)) 
    2323                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-2.6.39/441-board-NB4.patch

    r27235 r27880  
    558558  * Register a sane SPROMv2 to make the on-board 
    559559  * bcm4318 WLAN work 
    560 @@ -959,6 +1485,9 @@ void __init board_prom_init(void) 
     560@@ -953,6 +1479,9 @@ void __init board_prom_init(void) 
    561561                boardid_fixup(boot_addr); 
    562562        } 
  • trunk/target/linux/brcm63xx/patches-2.6.39/452-board_V2500V.patch

    r27448 r27880  
    7373  
    7474 #ifdef CONFIG_BCM63XX_CPU_6358 
    75 @@ -2059,6 +2117,22 @@ void __init board_prom_init(void) 
    76                 val &= MPI_CSBASE_BASE_MASK; 
    77         } 
     75@@ -2053,6 +2111,22 @@ void __init board_prom_init(void) 
     76        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     77        val &= MPI_CSBASE_BASE_MASK; 
    7878        boot_addr = (u8 *)KSEG1ADDR(val); 
    7979+       printk(KERN_INFO PFX "Boot address 0x%08x\n",(unsigned int)boot_addr); 
     
    9696        /* dump cfe version */ 
    9797        cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; 
    98 @@ -2262,6 +2336,14 @@ int __init board_register_devices(void) 
    99                 val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
    100                 val &= MPI_CSBASE_BASE_MASK; 
    101         } 
    102 + 
     98@@ -2253,6 +2327,13 @@ int __init board_register_devices(void) 
     99        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     100        val &= MPI_CSBASE_BASE_MASK; 
     101  
    103102+       /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks 
    104103+        * Loading from CFE always uses Bank 0 */ 
  • trunk/target/linux/brcm63xx/patches-2.6.39/500-ssb-add-callback-for-sprom.patch

    r27622 r27880  
    1919  
    2020 /* 
    21 @@ -2406,8 +2417,9 @@ int __init board_register_devices(void) 
     21@@ -2400,8 +2411,9 @@ int __init board_register_devices(void) 
    2222        if (!board_get_mac_address(bcm63xx_sprom.il0mac)) { 
    2323                memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN); 
  • trunk/target/linux/brcm63xx/patches-3.0/007-usb-ohci-support.patch

    r27192 r27880  
    5353  
    5454 #define PFX    "board_bcm963xx: " 
    55 @@ -889,6 +890,9 @@ int __init board_register_devices(void) 
     55@@ -883,6 +884,9 @@ int __init board_register_devices(void) 
    5656            !board_get_mac_address(board.enet1.mac_addr)) 
    5757                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-3.0/008-usb-ehci-support.patch

    r27192 r27880  
    4545  
    4646 #define PFX    "board_bcm963xx: " 
    47 @@ -890,6 +891,9 @@ int __init board_register_devices(void) 
     47@@ -884,6 +885,9 @@ int __init board_register_devices(void) 
    4848            !board_get_mac_address(board.enet1.mac_addr)) 
    4949                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-3.0/040-bcm963xx_flashmap.patch

    r27192 r27880  
    1313--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    1414+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    15 @@ -828,20 +828,6 @@ void __init board_setup(void) 
     15@@ -822,20 +822,6 @@ void __init board_setup(void) 
    1616                panic("unexpected CPU for bcm963xx board"); 
    1717 } 
     
    3434        { 
    3535                .start          = 0,    /* filled at runtime */ 
    36 @@ -851,12 +837,9 @@ static struct resource mtd_resources[] = 
     36@@ -845,12 +831,9 @@ static struct resource mtd_resources[] = 
    3737 }; 
    3838  
  • trunk/target/linux/brcm63xx/patches-3.0/100-reset_buttons.patch

    r27192 r27880  
    4444  
    4545 static struct board_info __initdata board_FAST2404 = { 
    46 @@ -850,12 +872,23 @@ static struct platform_device bcm63xx_gp 
     46@@ -844,12 +866,23 @@ static struct platform_device bcm63xx_gp 
    4747        .dev.platform_data      = &bcm63xx_led_data, 
    4848 }; 
     
    6868        if (board.has_uart0) 
    6969                bcm63xx_uart_register(0); 
    70 @@ -900,5 +933,16 @@ int __init board_register_devices(void) 
     70@@ -891,5 +924,16 @@ int __init board_register_devices(void) 
    7171  
    7272        platform_device_register(&bcm63xx_gpio_leds); 
  • trunk/target/linux/brcm63xx/patches-3.0/141-led_count.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -889,6 +889,7 @@ int __init board_register_devices(void) 
     3@@ -883,6 +883,7 @@ int __init board_register_devices(void) 
    44 { 
    55        u32 val; 
     
    99        if (board.has_uart0) 
    1010                bcm63xx_uart_register(0); 
    11 @@ -928,7 +929,11 @@ int __init board_register_devices(void) 
     11@@ -919,7 +920,11 @@ int __init board_register_devices(void) 
    1212  
    1313        platform_device_register(&mtd_dev); 
  • trunk/target/linux/brcm63xx/patches-3.0/180-udc_preliminary_support.patch

    r27284 r27880  
    1818  
    1919 static struct board_info __initdata board_rta1025w_16 = { 
    20 @@ -917,6 +920,9 @@ int __init board_register_devices(void) 
     20@@ -911,6 +914,9 @@ int __init board_register_devices(void) 
    2121        if (board.has_dsp) 
    2222                bcm63xx_dsp_register(&board.dsp); 
     
    2626+ 
    2727        /* read base address of boot chip select (0) */ 
    28         if (BCMCPU_IS_6345()) 
    29                 val = 0x1fc00000; 
     28        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     29        val &= MPI_CSBASE_BASE_MASK; 
    3030--- /dev/null 
    3131+++ b/arch/mips/bcm63xx/dev-usb-udc.c 
  • trunk/target/linux/brcm63xx/patches-3.0/200-extended-platform-devices.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -923,6 +923,9 @@ int __init board_register_devices(void) 
     3@@ -917,6 +917,9 @@ int __init board_register_devices(void) 
    44        if (board.has_udc0) 
    55                bcm63xx_udc_register(); 
     
    99+ 
    1010        /* read base address of boot chip select (0) */ 
    11         if (BCMCPU_IS_6345()) 
    12                 val = 0x1fc00000; 
     11        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     12        val &= MPI_CSBASE_BASE_MASK; 
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
  • trunk/target/linux/brcm63xx/patches-3.0/200-spi-board-info.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -926,6 +926,9 @@ int __init board_register_devices(void) 
     3@@ -920,6 +920,9 @@ int __init board_register_devices(void) 
    44        if (board.num_devs) 
    55                platform_add_devices(board.devs, board.num_devs); 
     
    99+ 
    1010        /* read base address of boot chip select (0) */ 
    11         if (BCMCPU_IS_6345()) 
    12                 val = 0x1fc00000; 
     11        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     12        val &= MPI_CSBASE_BASE_MASK; 
    1313--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
    1414+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h 
  • trunk/target/linux/brcm63xx/patches-3.0/220-wl_exports.patch

    r27192 r27880  
    1515  */ 
    1616 #ifdef CONFIG_BCM63XX_CPU_6338 
    17 @@ -758,6 +765,7 @@ void __init board_prom_init(void) 
     17@@ -752,6 +759,7 @@ void __init board_prom_init(void) 
    1818  
    1919        /* extract nvram data */ 
  • trunk/target/linux/brcm63xx/patches-3.0/230-6358-enet1-external-mii-clk.patch

    r27192 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -829,6 +829,8 @@ void __init board_prom_init(void) 
     3@@ -823,6 +823,8 @@ void __init board_prom_init(void) 
    44                if (BCMCPU_IS_6348()) 
    55                        val |= GPIO_MODE_6348_G3_EXT_MII | 
  • trunk/target/linux/brcm63xx/patches-3.0/240-spi.patch

    r27774 r27880  
    171171--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    172172+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 
    173 @@ -771,4 +771,116 @@ 
     173@@ -773,4 +773,116 @@ 
    174174 #define DMIPSPLLCFG_N2_SHIFT           29 
    175175 #define DMIPSPLLCFG_N2_MASK            (0x7 << DMIPSPLLCFG_N2_SHIFT) 
     
    920920  
    921921 #define PFX    "board_bcm963xx: " 
    922 @@ -939,6 +940,8 @@ int __init board_register_devices(void) 
     922@@ -933,6 +934,8 @@ int __init board_register_devices(void) 
    923923        if (board.num_spis) 
    924924                spi_register_board_info(board.spis, board.num_spis); 
     
    927927+ 
    928928        /* read base address of boot chip select (0) */ 
    929         if (BCMCPU_IS_6345()) 
    930                 val = 0x1fc00000; 
     929        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     930        val &= MPI_CSBASE_BASE_MASK; 
  • trunk/target/linux/brcm63xx/patches-3.0/250-boardid_fixup.patch

    r27192 r27880  
    4545  * early init callback, read nvram data from flash and checksum it 
    4646  */ 
    47 @@ -782,6 +809,11 @@ void __init board_prom_init(void) 
     47@@ -776,6 +803,11 @@ void __init board_prom_init(void) 
    4848                return; 
    4949        } 
  • trunk/target/linux/brcm63xx/patches-3.0/260-ssb_sprom_mac_pool.patch

    r27284 r27880  
    11--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    22+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c 
    3 @@ -867,18 +867,6 @@ void __init board_prom_init(void) 
     3@@ -861,18 +861,6 @@ void __init board_prom_init(void) 
    44        } 
    55  
     
    2020  
    2121 /* 
    22 @@ -954,6 +942,19 @@ int __init board_register_devices(void) 
     22@@ -948,6 +936,19 @@ int __init board_register_devices(void) 
    2323            !board_get_mac_address(board.enet1.mac_addr)) 
    2424                bcm63xx_enet_register(1, &board.enet1); 
  • trunk/target/linux/brcm63xx/patches-3.0/441-board-NB4.patch

    r27192 r27880  
    558558  * Register a sane SPROMv2 to make the on-board 
    559559  * bcm4318 WLAN work 
    560 @@ -970,6 +1496,9 @@ void __init board_prom_init(void) 
     560@@ -964,6 +1490,9 @@ void __init board_prom_init(void) 
    561561                boardid_fixup(boot_addr); 
    562562        } 
  • trunk/target/linux/brcm63xx/patches-3.0/452-board_V2500V.patch

    r27448 r27880  
    7373  
    7474 #ifdef CONFIG_BCM63XX_CPU_6358 
    75 @@ -2070,6 +2128,22 @@ void __init board_prom_init(void) 
    76                 val &= MPI_CSBASE_BASE_MASK; 
    77         } 
     75@@ -2064,6 +2122,22 @@ void __init board_prom_init(void) 
     76        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     77        val &= MPI_CSBASE_BASE_MASK; 
    7878        boot_addr = (u8 *)KSEG1ADDR(val); 
    7979+       printk(KERN_INFO PFX "Boot address 0x%08x\n",(unsigned int)boot_addr); 
     
    9696        /* dump cfe version */ 
    9797        cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET; 
    98 @@ -2274,6 +2348,14 @@ int __init board_register_devices(void) 
    99                 val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
    100                 val &= MPI_CSBASE_BASE_MASK; 
    101         } 
    102 + 
     98@@ -2265,6 +2339,13 @@ int __init board_register_devices(void) 
     99        val = bcm_mpi_readl(MPI_CSBASE_REG(0)); 
     100        val &= MPI_CSBASE_BASE_MASK; 
     101  
    103102+       /* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */ 
    104103+       /* Loading from CFE always uses Bank 0 */ 
     
    106105+               printk(KERN_INFO PFX "V2500V: Start in Bank 0\n"); 
    107106+               val = val + 0x400000; // Select Bank 0 start address 
    108 +               } 
     107+       } 
    109108+ 
    110109        mtd_resources[0].start = val; 
Note: See TracChangeset for help on using the changeset viewer.