Minor fixes and start of consolidation onto mxs SoC
Subsystems (5)
cover Minor fixes and start of consolidation onto mxs SoC
This patchset include some small fixes found while looking at code to start converting it to use a common mxs SoC code in preparation for inclusion of i.MX23 support.
Otavio Salvador (8):
m28evk: use same notation to alloc the 128kB stack
m28evk: use "M28EVK U-Boot =>" as prompt
mx28evk: ensure command definition is in alphabetic order
mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS
SoCs
m28evk: fix board config include guardian macro name
mx28evk: fix board config include guardian macro name
mxs: reorganize source directory for easy sharing of code in i.MXS
SoCs
mxs: prefix register acessor macros with 'mxs' prefix
arch/arm/cpu/arm926ejs/{mx28 => mxs}/Makefile | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/clock.c | 4 +-
arch/arm/cpu/arm926ejs/{mx28 => mxs}/iomux.c | 6 +-
arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28.c | 6 +-
arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28_init.h | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_boot.c | 0
.../cpu/arm926ejs/{mx28 => mxs}/spl_lradc_init.c | 0
.../arm/cpu/arm926ejs/{mx28 => mxs}/spl_mem_init.c | 0
.../cpu/arm926ejs/{mx28 => mxs}/spl_power_init.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/start.S | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/timer.c | 0
.../arm/cpu/arm926ejs/{mx28 => mxs}/u-boot-spl.lds | 2 +-
.../include/asm/{arch-mx28 => arch-mxs}/clock.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/dma.h | 0
.../arm/include/asm/{arch-mx28 => arch-mxs}/gpio.h | 0
.../include/asm/{arch-mx28 => arch-mxs}/imx-regs.h | 0
.../asm/{arch-mx28 => arch-mxs}/iomux-mx28.h | 0
.../include/asm/{arch-mx28 => arch-mxs}/iomux.h | 0
.../asm/{arch-mx28 => arch-mxs}/regs-apbh.h | 254 ++++++++++----------
.../asm/{arch-mx28 => arch-mxs}/regs-base.h | 0
.../include/asm/{arch-mx28 => arch-mxs}/regs-bch.h | 42 ++--
.../asm/{arch-mx28 => arch-mxs}/regs-clkctrl.h | 58 ++---
.../asm/{arch-mx28 => arch-mxs}/regs-common.h | 34 +--
.../asm/{arch-mx28 => arch-mxs}/regs-digctl.h | 50 ++--
.../asm/{arch-mx28 => arch-mxs}/regs-gpmi.h | 26 +-
.../include/asm/{arch-mx28 => arch-mxs}/regs-i2c.h | 28 +--
.../asm/{arch-mx28 => arch-mxs}/regs-lcdif.h | 64 ++---
.../asm/{arch-mx28 => arch-mxs}/regs-lradc.h | 48 ++--
.../asm/{arch-mx28 => arch-mxs}/regs-ocotp.h | 86 +++----
.../asm/{arch-mx28 => arch-mxs}/regs-pinctrl.h | 168 ++++++-------
.../asm/{arch-mx28 => arch-mxs}/regs-power.h | 28 +--
.../include/asm/{arch-mx28 => arch-mxs}/regs-rtc.h | 28 +--
.../include/asm/{arch-mx28 => arch-mxs}/regs-ssp.h | 40 +--
.../asm/{arch-mx28 => arch-mxs}/regs-timrot.h | 38 +--
.../include/asm/{arch-mx28 => arch-mxs}/regs-usb.h | 0
.../asm/{arch-mx28 => arch-mxs}/regs-usbphy.h | 20 +-
.../asm/{arch-mx28 => arch-mxs}/sys_proto.h | 6 +-
boards.cfg | 4 +-
doc/README.m28 | 4 +-
doc/README.mx28evk | 4 +-
drivers/gpio/mxs_gpio.c | 16 +-
drivers/usb/host/ehci-mxs.c | 8 +-
include/configs/m28evk.h | 14 +-
include/configs/mx28evk.h | 12 +-
tools/mxsboot.c | 110 ++++-----
45 files changed, 604 insertions(+), 604 deletions(-)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/Makefile (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/clock.c (98%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/iomux.c (94%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28.c (97%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28_init.h (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_boot.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_lradc_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_mem_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_power_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/start.S (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/timer.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/u-boot-spl.lds (97%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/clock.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/dma.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/gpio.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/imx-regs.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux-mx28.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-apbh.h (77%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-base.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-bch.h (92%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-clkctrl.h (89%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-common.h (78%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-digctl.h (79%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-gpmi.h (95%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-i2c.h (94%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lcdif.h (84%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lradc.h (96%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ocotp.h (72%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-pinctrl.h (93%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-power.h (97%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-rtc.h (92%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ssp.h (95%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-timrot.h (90%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usb.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usbphy.h (95%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/sys_proto.h (93%)Signature · 1 line
1.7.10
PATCH 1/8 m28evk: use same notation to alloc the 128kB stack
--- include/configs/m28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/m28evk.h +1 -1
@@ -88,7 +88,7 @@#define CONFIG_NR_DRAM_BANKS 1/* 1 bank of DRAM */ #define PHYS_SDRAM_1 0x40000000/* Base address */ #define PHYS_SDRAM_1_SIZE 0x20000000/* Max 512 MB RAM */ -#define CONFIG_STACKSIZE 0x00010000/* 128 KB stack */ +#define CONFIG_STACKSIZE (128 * 1024)/* 128 KB stack */ #define CONFIG_SYS_MALLOC_LEN 0x00400000/* 4 MB for malloc */ #define CONFIG_SYS_GBL_DATA_SIZE 128/* Initial data */ #define CONFIG_SYS_MEMTEST_START 0x40000000/* Memtest start adr */
Signature · 1 line
1.7.10
PATCH 1/8 m28evk: use same notation to alloc the 128kB stack
Dear Otavio Salvador,
Quoted 4 lines · In message <[email protected]> you wrote:
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Hacking's just another word for nothing left to kludge.
PATCH 1/8 m28evk: use same notation to alloc the 128kB stack
In reply to Otavio SalvadorQuoted 2 lines · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>---
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 2/8 m28evk: use "M28EVK U-Boot =>" as prompt
In reply to Otavio Salvador--- include/configs/m28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/m28evk.h +1 -1
@@ -114,7 +114,7 @@* U-Boot general configurations */ #define CONFIG_SYS_LONGHELP -#define CONFIG_SYS_PROMPT "=> " +#define CONFIG_SYS_PROMPT "M28EVK U-Boot => "#define CONFIG_SYS_CBSIZE 1024/* Console I/O buffer size */ #define CONFIG_SYS_PBSIZE \ (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
Signature · 1 line
1.7.10
Marek Vasut
NAKPATCH 2/8 m28evk: use "M28EVK U-Boot =>" as prompt
Dear Otavio Salvador,
Quoted 10 lines
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/configs/m28evk.h +0
-0
include/configs/m28evk.h line 117
Quoted 5 lines
include/configs/m28evk.h +1
-1@@ -114,7 +114,7 @@* U-Boot general configurations */ #define CONFIG_SYS_LONGHELP -#define CONFIG_SYS_PROMPT "=> " +#define CONFIG_SYS_PROMPT "M28EVK U-Boot => "
NAK, we want that "=> " prompt there. It'd be preferable if all boards used plain "=> " prompt actually.
include/configs/m28evk.h line 118
Quoted 1 line
include/configs/m28evk.h +0
-0#define CONFIG_SYS_CBSIZE 1024/* Console I/O buffer
size */
include/configs/m28evk.h line 120
Quoted 2 lines
include/configs/m28evk.h +0
-0#define CONFIG_SYS_PBSIZE \ (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
Best regards,
Marek Vasut
Wolfgang Denk
NAKPATCH 2/8 m28evk: use "M28EVK U-Boot =>" as prompt
In reply to Otavio SalvadorDear Otavio Salvador,
Quoted 10 lines · In message <[email protected]> you wrote:
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)include/configs/m28evk.h +0
-0
include/configs/m28evk.h line 120
Quoted 8 lines
include/configs/m28evk.h +1
-1@@ -114,7 +114,7 @@* U-Boot general configurations */ #define CONFIG_SYS_LONGHELP -#define CONFIG_SYS_PROMPT "=> " +#define CONFIG_SYS_PROMPT "M28EVK U-Boot => "#define CONFIG_SYS_CBSIZE 1024/* Console I/O buffer size */ #define CONFIG_SYS_PBSIZE \ (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
NAK.
I really dislike these verbose prompts which serve no real use, but make any scripting (like automatic regression tests) unnecessarily complicated.
Please feel free to do this with your own boards, if you really, really think you must do that. But please do not mess with any other boards.
Thanks.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Anything free is worth what you pay for it.
PATCH 3/8 mx28evk: ensure command definition is in alphabetic order
In reply to Otavio Salvador--- include/configs/mx28evk.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
include/configs/mx28evk.h +1 -1
@@ -54,11 +54,11 @@#include <config_cmd_default.h> #define CONFIG_DISPLAY_CPUINFO #define CONFIG_DOS_PARTITION -#define CONFIG_CMD_FAT #define CONFIG_CMD_CACHE #define CONFIG_CMD_DATE #define CONFIG_CMD_DHCP +#define CONFIG_CMD_FAT #define CONFIG_CMD_GPIO #define CONFIG_CMD_MII #define CONFIG_CMD_MMC
Signature · 1 line
1.7.10
Fabio Estevam
reviewerPATCH 3/8 mx28evk: ensure command definition is in alphabetic order
Quoted 1 line · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>
PATCH 3/8 mx28evk: ensure command definition is in alphabetic order
In reply to Otavio SalvadorQuoted 2 lines · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>---
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
In reply to Otavio Salvador--- tools/mxsboot.c | 110 +++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-)
tools/mxsboot.c +55 -55
@@ -1,5 +1,5 @@/* -* Freescale i.MX28 image generator +* Freescale i.MXS image generator * * Copyright (C) 2011 Marek Vasut <[email protected]> * on behalf of DENX Software Engineering GmbH
@@ -60,13 +60,13 @@ uint32_t sd_sector = 2048;*/ #define MAX_BOOTSTREAM_SIZE (1 * 1024 * 1024) -/* i.MX28 NAND controller-specific constants. DO NOT TWEAK! */ +/* i.MXS NAND controller-specific constants. DO NOT TWEAK! */ #define MXS_NAND_DMA_DESCRIPTOR_COUNT 4#define MXS_NAND_CHUNK_DATA_CHUNK_SIZE 512#define MXS_NAND_METADATA_SIZE 10#define MXS_NAND_COMMAND_BUFFER_SIZE 32 -struct mx28_nand_fcb { +struct mxs_nand_fcb {uint32_t checksum;uint32_t fingerprint;uint32_t version;
@@ -111,7 +111,7 @@ struct mx28_nand_fcb {uint32_t bb_marker_physical_offset; }; -struct mx28_nand_dbbt { +struct mxs_nand_dbbt {uint32_t checksum;uint32_t fingerprint;uint32_t version;
@@ -119,13 +119,13 @@ struct mx28_nand_dbbt {uint32_t number_2k_pages_bb; }; -struct mx28_nand_bbt { +struct mxs_nand_bbt {uint32_t nand;uint32_t number_bb;uint32_t badblock[510 ]; }; -struct mx28_sd_drive_info { +struct mxs_sd_drive_info {uint32_t chip_num;uint32_t drive_type;uint32_t tag;
@@ -133,20 +133,20 @@ struct mx28_sd_drive_info {uint32_t sector_count; }; -struct mx28_sd_config_block { +struct mxs_sd_config_block {uint32_t signature;uint32_t primary_boot_tag;uint32_t secondary_boot_tag;uint32_t num_copies; -struct mx28_sd_drive_info drv_info[1 ]; +struct mxs_sd_drive_info drv_info[1 ]; }; -static inline uint32_t mx28_nand_ecc_size_in_bits (uint32_t ecc_strength) +static inline uint32_t mxs_nand_ecc_size_in_bits (uint32_t ecc_strength) {return ecc_strength *13 ; } -static inline uint32_t mx28_nand_get_ecc_strength (uint32_t page_data_size, +static inline uint32_t mxs_nand_get_ecc_strength (uint32_t page_data_size,uint32_t page_oob_size) {if (page_data_size ==2048 )
@@ -163,7 +163,7 @@ static inline uint32_t mx28_nand_get_ecc_strength(uint32_t page_data_size,return 0 ; } -static inline uint32_t mx28_nand_get_mark_offset (uint32_t page_data_size, +static inline uint32_t mxs_nand_get_mark_offset (uint32_t page_data_size,uint32_t ecc_strength) {uint32_t chunk_data_size_in_bits;
@@ -174,7 +174,7 @@ static inline uint32_t mx28_nand_get_mark_offset(uint32_t page_data_size,uint32_t block_mark_bit_offset; chunk_data_size_in_bits =MXS_NAND_CHUNK_DATA_CHUNK_SIZE *8 ; - chunk_ecc_size_in_bits =mx28_nand_ecc_size_in_bits (ecc_strength); + chunk_ecc_size_in_bits =mxs_nand_ecc_size_in_bits (ecc_strength); chunk_total_size_in_bits = chunk_data_size_in_bits + chunk_ecc_size_in_bits;
@@ -212,21 +212,21 @@ static inline uint32_t mx28_nand_get_mark_offset(uint32_t page_data_size,return block_mark_bit_offset; } -static inline uint32_t mx28_nand_mark_byte_offset (void ) +static inline uint32_t mxs_nand_mark_byte_offset (void ) {uint32_t ecc_strength; - ecc_strength =mx28_nand_get_ecc_strength (nand_writesize, nand_oobsize); -return mx28_nand_get_mark_offset (nand_writesize, ecc_strength) >>3 ; + ecc_strength =mxs_nand_get_ecc_strength (nand_writesize, nand_oobsize); +return mxs_nand_get_mark_offset (nand_writesize, ecc_strength) >>3 ; } -static inline uint32_t mx28_nand_mark_bit_offset (void ) +static inline uint32_t mxs_nand_mark_bit_offset (void ) {uint32_t ecc_strength; - ecc_strength =mx28_nand_get_ecc_strength (nand_writesize, nand_oobsize); -return mx28_nand_get_mark_offset (nand_writesize, ecc_strength) &0x7 ; + ecc_strength =mxs_nand_get_ecc_strength (nand_writesize, nand_oobsize); +return mxs_nand_get_mark_offset (nand_writesize, ecc_strength) &0x7 ; } -static uint32_t mx28_nand_block_csum (uint8_t *block,uint32_t size) +static uint32_t mxs_nand_block_csum (uint8_t *block,uint32_t size) {uint32_t csum =0 ;int i;
@@ -237,9 +237,9 @@ static uint32_t mx28_nand_block_csum(uint8_t *block, uint32_t size)return csum ^0xffffffff ; } -static struct mx28_nand_fcb *mx28_nand_get_fcb (uint32_t size) +static struct mxs_nand_fcb *mxs_nand_get_fcb (uint32_t size) { -struct mx28_nand_fcb *fcb; +struct mxs_nand_fcb *fcb;uint32_t bcb_size_bytes;uint32_t stride_size_bytes;uint32_t bootstream_size_pages;
@@ -248,7 +248,7 @@ static struct mx28_nand_fcb *mx28_nand_get_fcb(uint32_t size) fcb =malloc (nand_writesize);if (!fcb) { -printf ("MX28 NAND: Unable to allocate FCB\n" ); +printf ("MXS NAND: Unable to allocate FCB\n" );return NULL ; }
@@ -289,15 +289,15 @@ static struct mx28_nand_fcb *mx28_nand_get_fcb(uint32_t size) }if (fcb->ecc_block_n_ecc_type ==0 ) { -printf ("MX28 NAND: Unsupported NAND geometry\n" ); +printf ("MXS NAND: Unsupported NAND geometry\n" ); goto err; } fcb->boot_patch =0 ; fcb->patch_sectors =0 ; - fcb->badblock_marker_byte =mx28_nand_mark_byte_offset (); - fcb->badblock_marker_start_bit =mx28_nand_mark_bit_offset (); + fcb->badblock_marker_byte =mxs_nand_mark_byte_offset (); + fcb->badblock_marker_start_bit =mxs_nand_mark_bit_offset (); fcb->bb_marker_physical_offset = nand_writesize; stride_size_bytes =STRIDE_PAGES * nand_writesize;
@@ -324,13 +324,13 @@ err:return NULL ; } -static struct mx28_nand_dbbt *mx28_nand_get_dbbt (void ) +static struct mxs_nand_dbbt *mxs_nand_get_dbbt (void ) { -struct mx28_nand_dbbt *dbbt; +struct mxs_nand_dbbt *dbbt; dbbt =malloc (nand_writesize);if (!dbbt) { -printf ("MX28 NAND: Unable to allocate DBBT\n" ); +printf ("MXS NAND: Unable to allocate DBBT\n" );return NULL ; }
@@ -342,7 +342,7 @@ static struct mx28_nand_dbbt *mx28_nand_get_dbbt(void)return dbbt; } -static inline uint8_t mx28_nand_parity_13_8 (const uint8_t b) +static inline uint8_t mxs_nand_parity_13_8 (const uint8_t b) {uint32_t parity =0 , tmp;
@@ -365,7 +365,7 @@ static inline uint8_t mx28_nand_parity_13_8(const uint8_t b)return parity; } -static uint8_t *mx28_nand_fcb_block (struct mx28_nand_fcb *fcb) +static uint8_t *mxs_nand_fcb_block (struct mxs_nand_fcb *fcb) {uint8_t *block;uint8_t *ecc;
@@ -373,36 +373,36 @@ static uint8_t *mx28_nand_fcb_block(struct mx28_nand_fcb *fcb) block =malloc (nand_writesize + nand_oobsize);if (!block) { -printf ("MX28 NAND: Unable to allocate FCB block\n" ); +printf ("MXS NAND: Unable to allocate FCB block\n" );return NULL ; }memset (block,0 , nand_writesize + nand_oobsize);/* Update the FCB checksum */ - fcb->checksum =mx28_nand_block_csum (((uint8_t *)fcb) +4 ,508 ); + fcb->checksum =mxs_nand_block_csum (((uint8_t *)fcb) +4 ,508 ); -/* Figure 12-11. in iMX28RM, rev. 1, says FCB is at offset 12 */ -memcpy (block +12 , fcb,sizeof (struct mx28_nand_fcb )); +/* Figure 12-11. in iMXSRM, rev. 1, says FCB is at offset 12 */ +memcpy (block +12 , fcb,sizeof (struct mxs_nand_fcb ));/* ECC is at offset 12 + 512 */ ecc = block +12 +512 ;/* Compute the ECC parity */ -for (i =0 ; i <sizeof (struct mx28_nand_fcb ); i++) - ecc[i] =mx28_nand_parity_13_8 (block[i +12 ]); +for (i =0 ; i <sizeof (struct mxs_nand_fcb ); i++) + ecc[i] =mxs_nand_parity_13_8 (block[i +12 ]);return block; } -static int mx28_nand_write_fcb (struct mx28_nand_fcb *fcb,char *buf) +static int mxs_nand_write_fcb (struct mxs_nand_fcb *fcb,char *buf) {uint32_t offset;uint8_t *fcbblock;int ret =0 ;int i; - fcbblock =mx28_nand_fcb_block (fcb); + fcbblock =mxs_nand_fcb_block (fcb);if (!fcbblock)return -1 ;
@@ -415,20 +415,20 @@ static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, char *buf)return ret; } -static int mx28_nand_write_dbbt (struct mx28_nand_dbbt *dbbt,char *buf) +static int mxs_nand_write_dbbt (struct mxs_nand_dbbt *dbbt,char *buf) {uint32_t offset;int i =STRIDE_PAGES *STRIDE_COUNT ;for (; i <2 *STRIDE_PAGES *STRIDE_COUNT ; i +=STRIDE_PAGES ) { offset = i * nand_writesize; -memcpy (buf + offset, dbbt,sizeof (struct mx28_nand_dbbt )); +memcpy (buf + offset, dbbt,sizeof (struct mxs_nand_dbbt )); }return 0 ; } -static int mx28_nand_write_firmware (struct mx28_nand_fcb *fcb,int infd, +static int mxs_nand_write_firmware (struct mxs_nand_fcb *fcb,int infd,char *buf) {int ret;
@@ -454,7 +454,7 @@ void usage(void) {printf ("Usage: mxsboot [ops] <type> <infile> <outfile>\n" -"Augment BootStream file with a proper header for i.MX28 boot\n" +"Augment BootStream file with a proper header for i.MXS boot\n" "\n" " <type> type of image:\n" " \"nand\" for NAND image\n"
@@ -473,10 +473,10 @@ void usage(void) ); } -static int mx28_create_nand_image (int infd,int outfd) +static int mxs_create_nand_image (int infd,int outfd) { -struct mx28_nand_fcb *fcb; -struct mx28_nand_dbbt *dbbt; +struct mxs_nand_fcb *fcb; +struct mxs_nand_dbbt *dbbt;int ret =-1 ;char *buf;int size;
@@ -492,31 +492,31 @@ static int mx28_create_nand_image(int infd, int outfd)memset (buf,0 , size); - fcb =mx28_nand_get_fcb (MAX_BOOTSTREAM_SIZE ); + fcb =mxs_nand_get_fcb (MAX_BOOTSTREAM_SIZE );if (!fcb) {printf ("Unable to compile FCB\n" ); goto err1; } - dbbt =mx28_nand_get_dbbt (); + dbbt =mxs_nand_get_dbbt ();if (!dbbt) {printf ("Unable to compile DBBT\n" ); goto err2; } - ret =mx28_nand_write_fcb (fcb, buf); + ret =mxs_nand_write_fcb (fcb, buf);if (ret) {printf ("Unable to write FCB to buffer\n" ); goto err3; } - ret =mx28_nand_write_dbbt (dbbt, buf); + ret =mxs_nand_write_dbbt (dbbt, buf);if (ret) {printf ("Unable to write DBBT to buffer\n" ); goto err3; } - ret =mx28_nand_write_firmware (fcb, infd, buf); + ret =mxs_nand_write_firmware (fcb, infd, buf);if (ret) {printf ("Unable to write firmware to buffer\n" ); goto err3;
@@ -540,14 +540,14 @@ err0:return ret; } -static int mx28_create_sd_image (int infd,int outfd) +static int mxs_create_sd_image (int infd,int outfd) {int ret =-1 ;uint32_t *buf;int size;off_t fsize;ssize_t wr_size; -struct mx28_sd_config_block *cb; +struct mxs_sd_config_block *cb; fsize =lseek (infd,0 ,SEEK_END );lseek (infd,0 ,SEEK_SET );
@@ -565,7 +565,7 @@ static int mx28_create_sd_image(int infd, int outfd) goto err1; } - cb = (struct mx28_sd_config_block *)buf; + cb = (struct mxs_sd_config_block *)buf; cb->signature =0x00112233 ; cb->primary_boot_tag =0x1 ;
@@ -675,9 +675,9 @@ int main(int argc, char **argv) }if (!strcmp (argv[offset],"sd" )) - ret =mx28_create_sd_image (infd, outfd); + ret =mxs_create_sd_image (infd, outfd);else if (!strcmp (argv[offset],"nand" )) - ret =mx28_create_nand_image (infd, outfd); + ret =mxs_create_nand_image (infd, outfd);close (outfd); err2:
Signature · 1 line
1.7.10
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Dear Otavio Salvador,
I don't like that "ought" in the subject ... did you actually try?
Quoted 2 lines
Signed-off-by Otavio Salvador <[email protected]>---
Best regards,
Marek Vasut
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Quoted 3 lines · Marek Vasut
Dear Otavio Salvador,
I don't like that "ought" in the subject ... did you actually try?
I didn't try it yet as I am in began of iMX23 suppport. I'll keep it in my wip to resend after testing it.
Signature · 3 lines
Otavio Salvador? ? ? ? ? ? ? ? ? ? ? ? ? ? ?O.S. Systems E-mail: otavio at ossystems.com.br? http://www.ossystems.com.br Mobile: +55 53 9981-7854? ? ? ?? ? ? ?http://projetos.ossystems.com.br
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
In reply to Otavio SalvadorDear Otavio Salvador,
tools/mxsboot.c line 2
Quoted 13 lines · In message <[email protected]> you wrote:
Signed-off-by Otavio Salvador <[email protected]>--- tools/mxsboot.c | 110 +++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-)tools/mxsboot.c +1
-1@@ -1,5 +1,5 @@/* -* Freescale i.MX28 image generator +* Freescale i.MXS image generator
I'm unhappy about the name "i.MXS". Either we say "i.MX28" - then it's clear we mean a specific FSL SoC, identified by it's product name. Or we say "mxs" like allover the place in the Linux and U-Boot code.
But I haven't seen "i.MXS" used before, and to me it makes no sense as it mixes unrelated name spaces.
Please either use the Freescale name(s), or use "mxs".
Thanks.
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Copy from one, it's plagiarism; copy from two, it's research.
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Quoted 9 lines · Wolfgang Denk
Quoted 3 lines
/*
- * Freescale i.MX28 image generator
+ * Freescale i.MXS image generatorI'm unhappy about the name "i.MXS". Either we say "i.MX28" - then it's clear we mean a specific FSL SoC, identified by it's product name. Or we say "mxs" like allover the place in the Linux and U-Boot code.
Quoted 5 lines
But I haven't seen "i.MXS" used before, and to me it makes no sense as it mixes unrelated name spaces.
Please either use the Freescale name(s), or use "mxs".
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MXS
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Dear Otavio,
Quoted 7 lines · In message <CAP9ODKoA--EB3EsRP-OrFJ191fTOZvE-gFYCZrULkEtdC=3yYg@mail.gmail.com>…
Quoted 5 lines
But I haven't seen "i.MXS" used before, and to me it makes no sense as it mixes unrelated name spaces.
Please either use the Freescale name(s), or use "mxs".
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MXS
It seems you are supporting my argument? Because the "i.MXS" I see documented there appears to have very little in common with, for example, i.MX28: "The processor features an ARM920T? core operating at 100 MHz"... ?
Best regards,
Wolfgang Denk
Signature · 4 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de Drawing on my fine command of language, I said nothing.
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Quoted 8 lines · Wolfgang Denk
Dear Otavio,
In message <CAP9ODKoA--EB3EsRP-OrFJ191fTOZvE-gFYCZrULkEtdC=
Quoted 4 lines · 3yYg at mail.gmail.com> you wrote:
Quoted 4 lines
But I haven't seen "i.MXS" used before, and to me it makes no sense as it mixes unrelated name spaces.
Quoted 8 lines
Quoted 3 lines
Quoted 1 line
Please either use the Freescale name(s), or use "mxs".
http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MXS
It seems you are supporting my argument? Because the "i.MXS" I see documented there appears to have very little in common with, for example, i.MX28: "The processor features an ARM920T? core operating at 100 MHz"... ?
I was not; I didn't notice it wasn't the same famity.
I will change the patch and post it again later.
Please archive this patch.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
In reply to Wolfgang DenkDear Wolfgang Denk,
Quoted 3 lines
Dear Otavio Salvador,
In message <[email protected]> you
Quoted 13 lines · wrote:
Quoted 13 lines
Signed-off-by Otavio Salvador <[email protected]>---
tools/mxsboot.c | 110+++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-)
tools/mxsboot.c +0
-0@@ -1,5 +1,5 @@
Quoted 6 lines
tools/mxsboot.c line 2
Quoted 4 lines
tools/mxsboot.c +1
-1/* -* Freescale i.MX28 image generator +* Freescale i.MXS image generator I'm unhappy about the name "i.MXS".
I'm unhappy about the image generator ;-)
Ok, now Otavio will probably hate me, but I believe it'd be much more helpful to convert mxsboot into part of mkimage (though this is unrelated to this patch). And maybe even better, study the generation of boot headers and compare it with mx53/mx6q ones, as mx53 ones are supported by imximage and mx28 carries direct predecessor of mx53 bootrom and then try to implement support into imximage part of mkimage.
Quoted 4 lines
Either we say "i.MX28" - then
it's clear we mean a specific FSL SoC, identified by it's product name. Or we say "mxs" like allover the place in the Linux and U-Boot code.
Well, we can also say i.mx233/i.mx28 . MX6Q is supported by mkimage I think (see above).
Quoted 10 lines
But I haven't seen "i.MXS" used before, and to me it makes no sense as it mixes unrelated name spaces.
Please either use the Freescale name(s), or use "mxs".
Thanks.
Best regards,
Wolfgang Denk
Best regards,
Marek Vasut
PATCH 4/8 mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs
Dear Marek Vasut,
Quoted 14 lines · Marek Vasut
I'm unhappy about the image generator ;-)
Ok, now Otavio will probably hate me, but I believe it'd be much more helpful to
convert mxsboot into part of mkimage (though this is unrelated to this patch).
And maybe even better, study the generation of boot headers and compare it with
mx53/mx6q ones, as mx53 ones are supported by imximage and mx28 carries direct
predecessor of mx53 bootrom and then try to implement support into imximage part
of mkimage.
I agree and it would be better to get rid of it however I also think we ought to focus on finishing the i.MX233 support now before start changing it.
Quoted 8 lines
Quoted 4 lines
Either we say "i.MX28" - then
it's clear we mean a specific FSL SoC, identified by it's product name. Or we say "mxs" like allover the place in the Linux and U-Boot code.Well, we can also say i.mx233/i.mx28 . MX6Q is supported by mkimage I think (see
above).
I have done this change here and queued it for the next pull request. I use MXS on some places and the i.MX233/i.MX28 on the usage message.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br
[U-Boot] mxsboot vs. imximage (was: Re: [PATCH 4/8] mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs)
In reply to Marek VasutHi Marek,
Quoted 26 lines · Marek Vasut
Dear Wolfgang Denk,
Quoted 3 lines
Dear Otavio Salvador,
In message<[email protected]> you
Quoted 13 lines · wrote:
Quoted 13 lines
Signed-off-by Otavio Salvador<[email protected]>---
tools/mxsboot.c | 110+++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-)
tools/mxsboot.c +0
-0@@ -1,5 +1,5 @@Quoted 6 lines
tools/mxsboot.c line 2
Quoted 4 lines
tools/mxsboot.c +1
-1/* -* Freescale i.MX28 image generator +* Freescale i.MXS image generator I'm unhappy about the name "i.MXS".
Quoted 8 lines
I'm unhappy about the image generator ;-)
Ok, now Otavio will probably hate me, but I believe it'd be much more helpful to convert mxsboot into part of mkimage (though this is unrelated to this patch). And maybe even better, study the generation of boot headers and compare it with mx53/mx6q ones, as mx53 ones are supported by imximage and mx28 carries direct predecessor of mx53 bootrom and then try to implement support into imximage part of mkimage.
I wasn't aware of mxsboot before this thread, so I start looking at it. I'm no expert of mx28 nor how the boot ROMs handle the NAND. Therefore some comments and questions:
Looking at
mxsboot seem to support NAND and SD. Looking at the options given there, yes it sounds like a good idea to move that to imximage.
One question regarding the NAND handling, though:
Is mxsboot assumed to replace the Freescale tool 'kobs-ng'
?
It was my understanding that for the NAND the bad sector table is necessary to be able to write a bootable image to the NAND? And this can be done only on the target? While mxsboot runs on the host? So it's not sufficient to give mxsboot the page/OOB/erase size options because the bad sector table is individual for each board/NAND chip?
Best regards
Dirk
[U-Boot] mxsboot vs. imximage (was: Re: [PATCH 4/8] mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS SoCs)
Dear Dirk Behme,
Quoted 43 lines
Hi Marek,
Quoted 27 lines · Marek Vasut
Dear Wolfgang Denk,
Quoted 3 lines
Dear Otavio Salvador,
In message<[email protected]> you
Quoted 13 lines · wrote:
Quoted 13 lines
Signed-off-by Otavio Salvador<[email protected]>---
tools/mxsboot.c | 110+++++++++++++++++++++++++++---------------------------- 1 file changed, 55 insertions(+), 55 deletions(-)
tools/mxsboot.c +0
-0@@ -1,5 +1,5 @@Quoted 6 lines
tools/mxsboot.c line 2
Quoted 4 lines
tools/mxsboot.c +1
-1/* -* Freescale i.MX28 image generator +* Freescale i.MXS image generator I'm unhappy about the name "i.MXS".
Quoted 8 lines
I'm unhappy about the image generator ;-)
Ok, now Otavio will probably hate me, but I believe it'd be much more helpful to convert mxsboot into part of mkimage (though this is unrelated to this patch). And maybe even better, study the generation of boot headers and compare it with mx53/mx6q ones, as mx53 ones are supported by imximage and mx28 carries direct predecessor of mx53 bootrom and then try to implement support into imximage part of mkimage.
I wasn't aware of mxsboot before this thread, so I start looking at it. I'm no expert of mx28 nor how the boot ROMs handle the NAND. Therefore some comments and questions:
Quoted 7 lines
Looking at
http://git.denx.de/?p=u-boot.git;a=blob;f=tools/mxsboot.c;h=6c05aa479d4360c
0c14cd0f989c250ecf119126d;hb=HEAD#l453mxsboot seem to support NAND and SD. Looking at the options given there, yes it sounds like a good idea to move that to imximage.
100%
Quoted 3 lines
One question regarding the NAND handling, though:
Is mxsboot assumed to replace the Freescale tool 'kobs-ng'
I believe so. It generates the necessary NAND headers for NAND boot. You can then write the resulting image directly at the begining of the NAND.
Quoted 8 lines
http://imxcommunity.org/forum/topics/i-mx6-nand-boot?commentId=4103961%3ACo
mment%3A69314&xg_source=activity?
It was my understanding that for the NAND the bad sector table is necessary to be able to write a bootable image to the NAND? And this can be done only on the target?
You mean DBBT? From what I remember, the bad block handling is done with the BCH module and the first block is always OK anyway. Or it was somehow like that, but I might be wrong. The point is, mxsboot doesn't use DBBT.
Quoted 3 lines
While mxsboot runs on the host? So
it's not sufficient to give mxsboot the page/OOB/erase size options because the bad sector table is individual for each board/NAND chip?
I don't see why the bad sector table is needed at all as the BCH handles the ECC.
Quoted 3 lines
Best regards
Dirk
Best regards,
Marek Vasut
PATCH 5/8 m28evk: fix board config include guardian macro name
In reply to Otavio Salvador--- include/configs/m28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
include/configs/m28evk.h +3 -3
@@ -17,8 +17,8 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ -#ifndef __M28_H__ -#define __M28_H__ +#ifndef __M28EVK_CONFIG_H__ +#define __M28EVK_CONFIG_H__#include <asm/arch/regs-base.h>
@@ -327,4 +327,4 @@"fi ; " \ "fi\0" -#endif /* __M28_H__ */ +#endif /* __M28EVK_CONFIG_H__ */
Signature · 1 line
1.7.10
PATCH 5/8 m28evk: fix board config include guardian macro name
Dear Otavio Salvador,
Quoted 10 lines
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)include/configs/m28evk.h +0
-0
include/configs/m28evk.h line 21
Quoted 7 lines
include/configs/m28evk.h +2
-2@@ -17,8 +17,8 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ -#ifndef __M28_H__ -#define __M28_H__ +#ifndef __M28EVK_CONFIG_H__ +#define __M28EVK_CONFIG_H__
The module itself is called "m28", but this change is ok with me. WD?
include/configs/m28evk.h line 330
Quoted 9 lines
include/configs/m28evk.h +1
-1#include <asm/arch/regs-base.h> @@ -327,4 +327,4 @@"fi ; " \ "fi\0" -#endif /* __M28_H__ */ +#endif /* __M28EVK_CONFIG_H__ */
Best regards,
Marek Vasut
PATCH 5/8 m28evk: fix board config include guardian macro name
Dear Marek Vasut,
Quoted 7 lines · In message <[email protected]> you wrote:
Dear Otavio Salvador,
Quoted 5 lines
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Quoted 14 lines
include/configs/m28evk.h line 21
Quoted 12 lines
include/configs/m28evk.h +2
-2@@ -17,8 +17,8 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ -#ifndef __M28_H__ -#define __M28_H__ +#ifndef __M28EVK_CONFIG_H__ +#define __M28EVK_CONFIG_H__The module itself is called "m28", but this change is ok with me. WD?
It's OK with me, too.
Best regards,
Wolfgang Denk
Signature · 5 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de "Why waste negative entropy on comments, when you could use the same entropy to create bugs instead?" - Steve Elias
PATCH 5/8 m28evk: fix board config include guardian macro name
Dear Wolfgang Denk,
Quoted 21 lines
Dear Marek Vasut,
Quoted 18 lines · In message <[email protected]> you wrote:
Dear Otavio Salvador,
Quoted 16 lines
Signed-off-by Otavio Salvador <[email protected]>---
include/configs/m28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)include/configs/m28evk.h +0
-0@@ -17,8 +17,8 @@* Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */
Quoted 8 lines
Quoted 6 lines
include/configs/m28evk.h line 21
Quoted 4 lines
include/configs/m28evk.h +2
-2-#ifndef __M28_H__ -#define __M28_H__ +#ifndef __M28EVK_CONFIG_H__ +#define __M28EVK_CONFIG_H__The module itself is called "m28", but this change is ok with me. WD?
It's OK with me, too.
Quoted 4 lines
Best regards,
Wolfgang Denk
Best regards,
Marek Vasut
PATCH 5/8 m28evk: fix board config include guardian macro name
In reply to Otavio Salvadorinclude/configs/m28evk.h
Quoted 7 lines · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>--- include/configs/m28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)include/configs/m28evk.h +0
-0
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 6/8 mx28evk: fix board config include guardian macro name
In reply to Otavio Salvador--- include/configs/mx28evk.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
include/configs/mx28evk.h +3 -3
@@ -16,8 +16,8 @@* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ -#ifndef __CONFIG_H -#define __CONFIG_H +#ifndef __MX28EVK_CONFIG_H__ +#define __MX28EVK_CONFIG_H__#include <asm/arch/regs-base.h>
@@ -252,4 +252,4 @@"run netargs; " \ "dhcp ${uimage}; bootm\0" \ -#endif /* __CONFIG_H */ +#endif /* __MX28EVK_CONFIG_H__ */
Signature · 1 line
1.7.10
Fabio Estevam
reviewerPATCH 6/8 mx28evk: fix board config include guardian macro name
Quoted 4 lines · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>---
?include/configs/mx28evk.h | ? ?6 +++---
?1 file changed, 3 insertions(+), 3 deletions(-)
PATCH 6/8 mx28evk: fix board config include guardian macro name
In reply to Otavio SalvadorQuoted 2 lines · Otavio Salvador
Signed-off-by Otavio Salvador <[email protected]>---
Applied to u-boot-imx, thanks.
Best regards,
Stefano Babic
Signature · 5 lines
===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================
PATCH 7/8 mxs: reorganize source directory for easy sharing of code in i.MXS SoCs
In reply to Otavio SalvadorMost code can be shared between i.MX23 and i.MX28 as both are from i.MXS family; this source directory structure makes easy to share code among them.
---
arch/arm/cpu/arm926ejs/{mx28 => mxs}/Makefile | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/clock.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/iomux.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28_init.h | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_boot.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_lradc_init.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_mem_init.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_power_init.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/start.S | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/timer.c | 0
arch/arm/cpu/arm926ejs/{mx28 => mxs}/u-boot-spl.lds | 2 +-
arch/arm/include/asm/{arch-mx28 => arch-mxs}/clock.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/dma.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/gpio.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/imx-regs.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux-mx28.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-apbh.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-base.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-bch.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-clkctrl.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-common.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-digctl.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-gpmi.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-i2c.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lcdif.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lradc.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ocotp.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-pinctrl.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-power.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-rtc.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ssp.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-timrot.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usb.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usbphy.h | 0
arch/arm/include/asm/{arch-mx28 => arch-mxs}/sys_proto.h | 0
boards.cfg | 4 ++--
doc/README.m28 | 4 ++--
doc/README.mx28evk | 4 ++--
include/configs/m28evk.h | 4 ++--
include/configs/mx28evk.h | 4 ++--
42 files changed, 11 insertions(+), 11 deletions(-)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/Makefile (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/clock.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/iomux.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/mx28_init.h (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_boot.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_lradc_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_mem_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/spl_power_init.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/start.S (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/timer.c (100%)
rename arch/arm/cpu/arm926ejs/{mx28 => mxs}/u-boot-spl.lds (97%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/clock.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/dma.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/gpio.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/imx-regs.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux-mx28.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/iomux.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-apbh.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-base.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-bch.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-clkctrl.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-common.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-digctl.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-gpmi.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-i2c.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lcdif.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-lradc.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ocotp.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-pinctrl.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-power.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-rtc.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-ssp.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-timrot.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usb.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/regs-usbphy.h (100%)
rename arch/arm/include/asm/{arch-mx28 => arch-mxs}/sys_proto.h (100%)arch/arm/cpu/arm926ejs/mxs/Makefile renamed from arch/arm/cpu/arm926ejs/mx28/Makefile +0 -0
arch/arm/cpu/arm926ejs/mxs/clock.c renamed from arch/arm/cpu/arm926ejs/mx28/clock.c +0 -0
arch/arm/cpu/arm926ejs/mxs/iomux.c renamed from arch/arm/cpu/arm926ejs/mx28/iomux.c +0 -0
arch/arm/cpu/arm926ejs/mxs/mx28.c renamed from arch/arm/cpu/arm926ejs/mx28/mx28.c +0 -0
arch/arm/cpu/arm926ejs/mxs/mx28_init.h renamed from arch/arm/cpu/arm926ejs/mx28/mx28_init.h +0 -0
arch/arm/cpu/arm926ejs/mxs/spl_boot.c renamed from arch/arm/cpu/arm926ejs/mx28/spl_boot.c +0 -0
arch/arm/cpu/arm926ejs/mxs/spl_lradc_init.c renamed from arch/arm/cpu/arm926ejs/mx28/spl_lradc_init.c +0 -0
arch/arm/cpu/arm926ejs/mxs/spl_mem_init.c renamed from arch/arm/cpu/arm926ejs/mx28/spl_mem_init.c +0 -0
arch/arm/cpu/arm926ejs/mxs/spl_power_init.c renamed from arch/arm/cpu/arm926ejs/mx28/spl_power_init.c +0 -0
arch/arm/cpu/arm926ejs/mxs/start.S renamed from arch/arm/cpu/arm926ejs/mx28/start.S +0 -0
arch/arm/cpu/arm926ejs/mxs/timer.c renamed from arch/arm/cpu/arm926ejs/mx28/timer.c +0 -0
arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds renamed from arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds +1 -1
@@ -37,7 +37,7 @@ SECTIONS . = ALIGN(4); .text : { - arch/arm/cpu/arm926ejs/mx28/start.o (.text) + arch/arm/cpu/arm926ejs/mxs/start.o (.text) *(.text) }
arch/arm/include/asm/arch-mxs/clock.h renamed from arch/arm/include/asm/arch-mx28/clock.h +0 -0
arch/arm/include/asm/arch-mxs/dma.h renamed from arch/arm/include/asm/arch-mx28/dma.h +0 -0
arch/arm/include/asm/arch-mxs/gpio.h renamed from arch/arm/include/asm/arch-mx28/gpio.h +0 -0
arch/arm/include/asm/arch-mxs/imx-regs.h renamed from arch/arm/include/asm/arch-mx28/imx-regs.h +0 -0
arch/arm/include/asm/arch-mxs/iomux-mx28.h renamed from arch/arm/include/asm/arch-mx28/iomux-mx28.h +0 -0
arch/arm/include/asm/arch-mxs/iomux.h renamed from arch/arm/include/asm/arch-mx28/iomux.h +0 -0
arch/arm/include/asm/arch-mxs/regs-apbh.h renamed from arch/arm/include/asm/arch-mx28/regs-apbh.h +0 -0
arch/arm/include/asm/arch-mxs/regs-base.h renamed from arch/arm/include/asm/arch-mx28/regs-base.h +0 -0
arch/arm/include/asm/arch-mxs/regs-bch.h renamed from arch/arm/include/asm/arch-mx28/regs-bch.h +0 -0
arch/arm/include/asm/arch-mxs/regs-clkctrl.h renamed from arch/arm/include/asm/arch-mx28/regs-clkctrl.h +0 -0
arch/arm/include/asm/arch-mxs/regs-common.h renamed from arch/arm/include/asm/arch-mx28/regs-common.h +0 -0
arch/arm/include/asm/arch-mxs/regs-digctl.h renamed from arch/arm/include/asm/arch-mx28/regs-digctl.h +0 -0
arch/arm/include/asm/arch-mxs/regs-gpmi.h renamed from arch/arm/include/asm/arch-mx28/regs-gpmi.h +0 -0
arch/arm/include/asm/arch-mxs/regs-i2c.h renamed from arch/arm/include/asm/arch-mx28/regs-i2c.h +0 -0
arch/arm/include/asm/arch-mxs/regs-lcdif.h renamed from arch/arm/include/asm/arch-mx28/regs-lcdif.h +0 -0
arch/arm/include/asm/arch-mxs/regs-lradc.h renamed from arch/arm/include/asm/arch-mx28/regs-lradc.h +0 -0
arch/arm/include/asm/arch-mxs/regs-ocotp.h renamed from arch/arm/include/asm/arch-mx28/regs-ocotp.h +0 -0
arch/arm/include/asm/arch-mxs/regs-pinctrl.h renamed from arch/arm/include/asm/arch-mx28/regs-pinctrl.h +0 -0
arch/arm/include/asm/arch-mxs/regs-power.h renamed from arch/arm/include/asm/arch-mx28/regs-power.h +0 -0
arch/arm/include/asm/arch-mxs/regs-rtc.h renamed from arch/arm/include/asm/arch-mx28/regs-rtc.h +0 -0
arch/arm/include/asm/arch-mxs/regs-ssp.h renamed from arch/arm/include/asm/arch-mx28/regs-ssp.h +0 -0
arch/arm/include/asm/arch-mxs/regs-timrot.h renamed from arch/arm/include/asm/arch-mx28/regs-timrot.h +0 -0
arch/arm/include/asm/arch-mxs/regs-usb.h renamed from arch/arm/include/asm/arch-mx28/regs-usb.h +0 -0
arch/arm/include/asm/arch-mxs/regs-usbphy.h renamed from arch/arm/include/asm/arch-mx28/regs-usbphy.h +0 -0
arch/arm/include/asm/arch-mxs/sys_proto.h renamed from arch/arm/include/asm/arch-mx28/sys_proto.h +0 -0
boards.cfg +2 -2
@@ -163,8 +163,8 @@ tx25 arm arm926ejs tx25 karo zmx25 arm arm926ejs zmx25 syteco mx25 imx27lite arm arm926ejs imx27lite logicpd mx27 magnesium arm arm926ejs imx27lite logicpd mx27 -m28evk arm arm926ejs - denx mx28 -mx28evk arm arm926ejs - freescale mx28 +m28evk arm arm926ejs m28evk denx mxs m28evk +mx28evk arm arm926ejs mx28evk freescale mxs mx28evk nhk8815 arm arm926ejs nhk8815 st nomadik nhk8815_onenand arm arm926ejs nhk8815 st nomadik nhk8815:BOOT_ONENAND omap5912osk arm arm926ejs - ti omap
doc/README.m28 +2 -2
@@ -4,8 +4,8 @@ DENX M28EVK Files of the M28/M28EVK port ---------------------------- -arch/arm/cpu/arm926ejs/mx28/ - The CPU support code for the Freescale i.MX28 -arch/arm/include/asm/arch-mx28/ - Header files for the Freescale i.MX28 +arch/arm/cpu/arm926ejs/mxs/ - The CPU support code for the Freescale i.MX28 +arch/arm/include/asm/arch-mxs/ - Header files for the Freescale i.MX28 board/denx/m28evk/ - M28EVK board specific files include/configs/m28evk.h - M28EVK configuration file
doc/README.mx28evk +2 -2
@@ -6,8 +6,8 @@ Supported hardware: only MX28EVK rev D is supported in U-boot. Files of the MX28EVK port -------------------------- -arch/arm/cpu/arm926ejs/mx28/ - The CPU support code for the Freescale i.MX28 -arch/arm/include/asm/arch-mx28/ - Header files for the Freescale i.MX28 +arch/arm/cpu/arm926ejs/mxs/ - The CPU support code for the Freescale i.MX28 +arch/arm/include/asm/arch-mxs/ - Header files for the Freescale i.MX28 board/freescale/mx28evk/ - MX28EVK board specific files include/configs/mx28evk.h - MX28EVK configuration file
include/configs/m28evk.h +2 -2
@@ -50,8 +50,8 @@*/ #define CONFIG_SPL #define CONFIG_SPL_NO_CPU_SUPPORT_CODE -#define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mx28" -#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds" +#define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" +#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds"#define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBGENERIC_SUPPORT #define CONFIG_SPL_GPIO_SUPPORT
include/configs/mx28evk.h +2 -2
@@ -42,8 +42,8 @@*/ #define CONFIG_SPL #define CONFIG_SPL_NO_CPU_SUPPORT_CODE -#define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mx28" -#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds" +#define CONFIG_SPL_START_S_PATH "arch/arm/cpu/arm926ejs/mxs" +#define CONFIG_SPL_LDSCRIPT "arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds"#define CONFIG_SPL_LIBCOMMON_SUPPORT #define CONFIG_SPL_LIBGENERIC_SUPPORT #define CONFIG_SPL_GPIO_SUPPORT
Signature · 1 line
1.7.10
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
In reply to Otavio SalvadorAs the register accessing mode is the same for all i.MXS SoCs we ought to use 'mxs' prefix intead of 'mx28'.
--- arch/arm/cpu/arm926ejs/mxs/clock.c | 4 +- arch/arm/cpu/arm926ejs/mxs/iomux.c | 6 +- arch/arm/cpu/arm926ejs/mxs/mx28.c | 6 +- arch/arm/include/asm/arch-mxs/regs-apbh.h | 254 +++++++++++++------------- arch/arm/include/asm/arch-mxs/regs-bch.h | 42 ++--- arch/arm/include/asm/arch-mxs/regs-clkctrl.h | 58 +++--- arch/arm/include/asm/arch-mxs/regs-common.h | 34 ++-- arch/arm/include/asm/arch-mxs/regs-digctl.h | 50 ++--- arch/arm/include/asm/arch-mxs/regs-gpmi.h | 26 +-- arch/arm/include/asm/arch-mxs/regs-i2c.h | 28 +-- arch/arm/include/asm/arch-mxs/regs-lcdif.h | 64 +++---- arch/arm/include/asm/arch-mxs/regs-lradc.h | 48 ++--- arch/arm/include/asm/arch-mxs/regs-ocotp.h | 86 ++++----- arch/arm/include/asm/arch-mxs/regs-pinctrl.h | 168 ++++++++--------- arch/arm/include/asm/arch-mxs/regs-power.h | 28 +-- arch/arm/include/asm/arch-mxs/regs-rtc.h | 28 +-- arch/arm/include/asm/arch-mxs/regs-ssp.h | 40 ++-- arch/arm/include/asm/arch-mxs/regs-timrot.h | 38 ++-- arch/arm/include/asm/arch-mxs/regs-usbphy.h | 20 +- arch/arm/include/asm/arch-mxs/sys_proto.h | 6 +- drivers/gpio/mxs_gpio.c | 16 +- drivers/usb/host/ehci-mxs.c | 8 +- 22 files changed, 529 insertions(+), 529 deletions(-)
arch/arm/cpu/arm926ejs/mxs/clock.c +2 -2
@@ -207,7 +207,7 @@ void mx28_set_sspclk(enum mxs_sspclock ssp, uint32_t freq, int xtal)return ; clkreg = (uint32_t )(&clkctrl_regs->hw_clkctrl_ssp0) + - (ssp *sizeof (struct mx28_register_32 )); + (ssp *sizeof (struct mxs_register_32 ));clrbits_le32 (clkreg,CLKCTRL_SSP_CLKGATE );while (readl (clkreg) &CLKCTRL_SSP_CLKGATE )
@@ -256,7 +256,7 @@ static uint32_t mx28_get_sspclk(enum mxs_sspclock ssp)return XTAL_FREQ_KHZ ; clkreg = (uint32_t )(&clkctrl_regs->hw_clkctrl_ssp0) + - (ssp *sizeof (struct mx28_register_32 )); + (ssp *sizeof (struct mxs_register_32 )); tmp =readl (clkreg) &CLKCTRL_SSP_DIV_MASK ;
arch/arm/cpu/arm926ejs/mxs/iomux.c +3 -3
@@ -43,7 +43,7 @@ int mxs_iomux_setup_pad(iomux_cfg_t pad) {u32 reg, ofs, bp, bm;void *iomux_base = (void *)MXS_PINCTRL_BASE ; -struct mx28_register_32 *mxs_reg; +struct mxs_register_32 *mxs_reg;/* muxsel */ ofs =0x100 ;
@@ -70,7 +70,7 @@ int mxs_iomux_setup_pad(iomux_cfg_t pad)/* vol */ if (PAD_VOL_VALID (pad)) { bp =PAD_PIN (pad) %8 *4 +2 ; - mxs_reg = (struct mx28_register_32 *)(iomux_base + ofs); + mxs_reg = (struct mxs_register_32 *)(iomux_base + ofs);if (PAD_VOL (pad))writel (1 << bp, &mxs_reg->reg_set);else
@@ -82,7 +82,7 @@ int mxs_iomux_setup_pad(iomux_cfg_t pad) ofs =PULL_OFFSET ; ofs +=PAD_BANK (pad) *0x10 ; bp =PAD_PIN (pad); - mxs_reg = (struct mx28_register_32 *)(iomux_base + ofs); + mxs_reg = (struct mxs_register_32 *)(iomux_base + ofs);if (PAD_PULL (pad))writel (1 << bp, &mxs_reg->reg_set);else
arch/arm/cpu/arm926ejs/mxs/mx28.c +3 -3
@@ -81,7 +81,7 @@ void enable_caches(void)#endif } -int mx28_wait_mask_set (struct mx28_register_32 *reg,uint32_t mask,int timeout) +int mx28_wait_mask_set (struct mxs_register_32 *reg,uint32_t mask,int timeout) {while (--timeout) {if ((readl (®->reg) & mask) == mask)
@@ -92,7 +92,7 @@ int mx28_wait_mask_set(struct mx28_register_32 *reg, uint32_t mask, int timeout)return !timeout; } -int mx28_wait_mask_clr (struct mx28_register_32 *reg,uint32_t mask,int timeout) +int mx28_wait_mask_clr (struct mxs_register_32 *reg,uint32_t mask,int timeout) {while (--timeout) {if ((readl (®->reg) & mask) ==0 )
@@ -103,7 +103,7 @@ int mx28_wait_mask_clr(struct mx28_register_32 *reg, uint32_t mask, int timeout)return !timeout; } -int mx28_reset_block (struct mx28_register_32 *reg) +int mx28_reset_block (struct mxs_register_32 *reg) {/* Clear SFTRST */ writel (MX28_BLOCK_SFTRST , ®->reg_clr);
arch/arm/include/asm/arch-mxs/regs-apbh.h +127 -127
269 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-bch.h +21 -21
51 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-clkctrl.h +29 -29
67 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-common.h +17 -17
@@ -1,5 +1,5 @@/* -* Freescale i.MX28 Register Accessors +* Freescale i.MXS Register Accessors * * Copyright (C) 2011 Marek Vasut <[email protected]> * on behalf of DENX Software Engineering GmbH
@@ -20,11 +20,11 @@* */ -#ifndef __MX28_REGS_COMMON_H__ -#define __MX28_REGS_COMMON_H__ +#ifndef __MXS_REGS_COMMON_H__ +#define __MXS_REGS_COMMON_H__/* -* The i.MX28 has interesting feature when it comes to register access. There +* The i.MXS has interesting feature when it comes to register access. There * are four kinds of access to one particular register. Those are: * * 1) Common read/write access. To use this mode, just write to the address of
@@ -47,36 +47,36 @@ * */ -#define __mx28_reg_8(name) \ +#define __mxs_reg_8(name) \ uint8_t name[4]; \ uint8_t name##_set[4]; \ uint8_t name##_clr[4]; \ uint8_t name##_tog[4]; \ -#define __mx28_reg_32(name) \ +#define __mxs_reg_32(name) \ uint32_t name; \ uint32_t name##_set; \ uint32_t name##_clr; \ uint32_t name##_tog; -struct mx28_register_8 { - __mx28_reg_8(reg) +struct mxs_register_8 { + __mxs_reg_8(reg) }; -struct mx28_register_32 { - __mx28_reg_32(reg) +struct mxs_register_32 { + __mxs_reg_32(reg) }; -#define mx28_reg_8(name) \ +#define mxs_reg_8(name) \ union { \ - struct { __mx28_reg_8(name) }; \ - struct mx28_register_8 name##_reg; \ + struct { __mxs_reg_8(name) }; \ + struct mxs_register_8 name##_reg; \ }; -#define mx28_reg_32(name) \ +#define mxs_reg_32(name) \ union { \ - struct { __mx28_reg_32(name) }; \ - struct mx28_register_32 name##_reg; \ + struct { __mxs_reg_32(name) }; \ + struct mxs_register_32 name##_reg; \ }; -#endif /* __MX28_REGS_COMMON_H__ */ +#endif /* __MXS_REGS_COMMON_H__ */
arch/arm/include/asm/arch-mxs/regs-digctl.h +25 -25
76 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-gpmi.h +13 -13
@@ -30,22 +30,22 @@#ifndef __ASSEMBLY__struct mx28_gpmi_regs { -mx28_reg_32 (hw_gpmi_ctrl0) - mx28_reg_32(hw_gpmi_compare) -mx28_reg_32 (hw_gpmi_eccctrl) - mx28_reg_32(hw_gpmi_ecccount) -mx28_reg_32 (hw_gpmi_payload) - mx28_reg_32(hw_gpmi_auxiliary) -mx28_reg_32 (hw_gpmi_ctrl1) - mx28_reg_32(hw_gpmi_timing0) -mx28_reg_32 (hw_gpmi_timing1) +mxs_reg_32 (hw_gpmi_ctrl0) + mxs_reg_32(hw_gpmi_compare) +mxs_reg_32 (hw_gpmi_eccctrl) + mxs_reg_32(hw_gpmi_ecccount) +mxs_reg_32 (hw_gpmi_payload) + mxs_reg_32(hw_gpmi_auxiliary) +mxs_reg_32 (hw_gpmi_ctrl1) + mxs_reg_32(hw_gpmi_timing0) +mxs_reg_32 (hw_gpmi_timing1) uint32_t reserved[4]; -mx28_reg_32 (hw_gpmi_data) - mx28_reg_32(hw_gpmi_stat) -mx28_reg_32 (hw_gpmi_debug) - mx28_reg_32(hw_gpmi_version) +mxs_reg_32 (hw_gpmi_data) + mxs_reg_32(hw_gpmi_stat) +mxs_reg_32 (hw_gpmi_debug) + mxs_reg_32(hw_gpmi_version) };#endif
arch/arm/include/asm/arch-mxs/regs-i2c.h +14 -14
@@ -27,20 +27,20 @@#ifndef __ASSEMBLY__struct mx28_i2c_regs { -mx28_reg_32 (hw_i2c_ctrl0) - mx28_reg_32(hw_i2c_timing0) -mx28_reg_32 (hw_i2c_timing1) - mx28_reg_32(hw_i2c_timing2) -mx28_reg_32 (hw_i2c_ctrl1) - mx28_reg_32(hw_i2c_stat) -mx28_reg_32 (hw_i2c_queuectrl) - mx28_reg_32(hw_i2c_queuestat) -mx28_reg_32 (hw_i2c_queuecmd) - mx28_reg_32(hw_i2c_queuedata) -mx28_reg_32 (hw_i2c_data) - mx28_reg_32(hw_i2c_debug0) -mx28_reg_32 (hw_i2c_debug1) - mx28_reg_32(hw_i2c_version) +mxs_reg_32 (hw_i2c_ctrl0) + mxs_reg_32(hw_i2c_timing0) +mxs_reg_32 (hw_i2c_timing1) + mxs_reg_32(hw_i2c_timing2) +mxs_reg_32 (hw_i2c_ctrl1) + mxs_reg_32(hw_i2c_stat) +mxs_reg_32 (hw_i2c_queuectrl) + mxs_reg_32(hw_i2c_queuestat) +mxs_reg_32 (hw_i2c_queuecmd) + mxs_reg_32(hw_i2c_queuedata) +mxs_reg_32 (hw_i2c_data) + mxs_reg_32(hw_i2c_debug0) +mxs_reg_32 (hw_i2c_debug1) + mxs_reg_32(hw_i2c_version) };#endif
arch/arm/include/asm/arch-mxs/regs-lcdif.h +32 -32
70 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-lradc.h +24 -24
54 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-ocotp.h +43 -43
92 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-pinctrl.h +84 -84
213 lines not on this page · raw message
arch/arm/include/asm/arch-mxs/regs-power.h +14 -14
@@ -26,10 +26,10 @@ #ifndef __ASSEMBLY__ struct mx28_power_regs { - mx28_reg_32(hw_power_ctrl) - mx28_reg_32(hw_power_5vctrl) - mx28_reg_32(hw_power_minpwr) - mx28_reg_32(hw_power_charge) + mxs_reg_32(hw_power_ctrl) + mxs_reg_32(hw_power_5vctrl) + mxs_reg_32(hw_power_minpwr) + mxs_reg_32(hw_power_charge) uint32_t hw_power_vdddctrl; uint32_t reserved_vddd[3]; uint32_t hw_power_vddactrl;
@@ -44,23 +44,23 @@ struct mx28_power_regs {uint32_t reserved_misc[3 ];uint32_t hw_power_dclimits;uint32_t reserved_dclimits[3 ]; -mx28_reg_32 (hw_power_loopctrl) +mxs_reg_32 (hw_power_loopctrl) uint32_t hw_power_sts;uint32_t reserved_sts[3 ]; -mx28_reg_32 (hw_power_speed) +mxs_reg_32 (hw_power_speed) uint32_t hw_power_battmonitor;uint32_t reserved_battmonitor[3 ];uint32_t reserved[4 ]; - mx28_reg_32(hw_power_reset) - mx28_reg_32(hw_power_debug) - mx28_reg_32(hw_power_thermal) - mx28_reg_32(hw_power_usb1ctrl) - mx28_reg_32(hw_power_special) - mx28_reg_32(hw_power_version) - mx28_reg_32(hw_power_anaclkctrl) - mx28_reg_32(hw_power_refctrl) + mxs_reg_32(hw_power_reset) + mxs_reg_32(hw_power_debug) + mxs_reg_32(hw_power_thermal) + mxs_reg_32(hw_power_usb1ctrl) + mxs_reg_32(hw_power_special) + mxs_reg_32(hw_power_version) + mxs_reg_32(hw_power_anaclkctrl) + mxs_reg_32(hw_power_refctrl) };#endif
arch/arm/include/asm/arch-mxs/regs-rtc.h +14 -14
@@ -27,20 +27,20 @@#ifndef __ASSEMBLY__struct mx28_rtc_regs { -mx28_reg_32 (hw_rtc_ctrl) - mx28_reg_32(hw_rtc_stat) -mx28_reg_32 (hw_rtc_milliseconds) - mx28_reg_32(hw_rtc_seconds) -mx28_reg_32 (hw_rtc_rtc_alarm) - mx28_reg_32(hw_rtc_watchdog) -mx28_reg_32 (hw_rtc_persistent0) - mx28_reg_32(hw_rtc_persistent1) -mx28_reg_32 (hw_rtc_persistent2) - mx28_reg_32(hw_rtc_persistent3) -mx28_reg_32 (hw_rtc_persistent4) - mx28_reg_32(hw_rtc_persistent5) -mx28_reg_32 (hw_rtc_debug) - mx28_reg_32(hw_rtc_version) +mxs_reg_32 (hw_rtc_ctrl) + mxs_reg_32(hw_rtc_stat) +mxs_reg_32 (hw_rtc_milliseconds) + mxs_reg_32(hw_rtc_seconds) +mxs_reg_32 (hw_rtc_rtc_alarm) + mxs_reg_32(hw_rtc_watchdog) +mxs_reg_32 (hw_rtc_persistent0) + mxs_reg_32(hw_rtc_persistent1) +mxs_reg_32 (hw_rtc_persistent2) + mxs_reg_32(hw_rtc_persistent3) +mxs_reg_32 (hw_rtc_persistent4) + mxs_reg_32(hw_rtc_persistent5) +mxs_reg_32 (hw_rtc_debug) + mxs_reg_32(hw_rtc_version) };#endif
arch/arm/include/asm/arch-mxs/regs-ssp.h +20 -20
@@ -29,26 +29,26 @@#ifndef __ASSEMBLY__struct mx28_ssp_regs { -mx28_reg_32 (hw_ssp_ctrl0) - mx28_reg_32(hw_ssp_cmd0) -mx28_reg_32 (hw_ssp_cmd1) - mx28_reg_32(hw_ssp_xfer_size) -mx28_reg_32 (hw_ssp_block_size) - mx28_reg_32(hw_ssp_compref) -mx28_reg_32 (hw_ssp_compmask) - mx28_reg_32(hw_ssp_timing) -mx28_reg_32 (hw_ssp_ctrl1) - mx28_reg_32(hw_ssp_data) -mx28_reg_32 (hw_ssp_sdresp0) - mx28_reg_32(hw_ssp_sdresp1) -mx28_reg_32 (hw_ssp_sdresp2) - mx28_reg_32(hw_ssp_sdresp3) -mx28_reg_32 (hw_ssp_ddr_ctrl) - mx28_reg_32(hw_ssp_dll_ctrl) -mx28_reg_32 (hw_ssp_status) - mx28_reg_32(hw_ssp_dll_sts) -mx28_reg_32 (hw_ssp_debug) - mx28_reg_32(hw_ssp_version) +mxs_reg_32 (hw_ssp_ctrl0) + mxs_reg_32(hw_ssp_cmd0) +mxs_reg_32 (hw_ssp_cmd1) + mxs_reg_32(hw_ssp_xfer_size) +mxs_reg_32 (hw_ssp_block_size) + mxs_reg_32(hw_ssp_compref) +mxs_reg_32 (hw_ssp_compmask) + mxs_reg_32(hw_ssp_timing) +mxs_reg_32 (hw_ssp_ctrl1) + mxs_reg_32(hw_ssp_data) +mxs_reg_32 (hw_ssp_sdresp0) + mxs_reg_32(hw_ssp_sdresp1) +mxs_reg_32 (hw_ssp_sdresp2) + mxs_reg_32(hw_ssp_sdresp3) +mxs_reg_32 (hw_ssp_ddr_ctrl) + mxs_reg_32(hw_ssp_dll_ctrl) +mxs_reg_32 (hw_ssp_status) + mxs_reg_32(hw_ssp_dll_sts) +mxs_reg_32 (hw_ssp_debug) + mxs_reg_32(hw_ssp_version) };#endif
arch/arm/include/asm/arch-mxs/regs-timrot.h +19 -19
@@ -29,25 +29,25 @@#ifndef __ASSEMBLY__struct mx28_timrot_regs { -mx28_reg_32 (hw_timrot_rotctrl) - mx28_reg_32(hw_timrot_rotcount) -mx28_reg_32 (hw_timrot_timctrl0) - mx28_reg_32(hw_timrot_running_count0) -mx28_reg_32 (hw_timrot_fixed_count0) - mx28_reg_32(hw_timrot_match_count0) -mx28_reg_32 (hw_timrot_timctrl1) - mx28_reg_32(hw_timrot_running_count1) -mx28_reg_32 (hw_timrot_fixed_count1) - mx28_reg_32(hw_timrot_match_count1) -mx28_reg_32 (hw_timrot_timctrl2) - mx28_reg_32(hw_timrot_running_count2) -mx28_reg_32 (hw_timrot_fixed_count2) - mx28_reg_32(hw_timrot_match_count2) -mx28_reg_32 (hw_timrot_timctrl3) - mx28_reg_32(hw_timrot_running_count3) -mx28_reg_32 (hw_timrot_fixed_count3) - mx28_reg_32(hw_timrot_match_count3) - mx28_reg_32(hw_timrot_version) +mxs_reg_32 (hw_timrot_rotctrl) + mxs_reg_32(hw_timrot_rotcount) +mxs_reg_32 (hw_timrot_timctrl0) + mxs_reg_32(hw_timrot_running_count0) +mxs_reg_32 (hw_timrot_fixed_count0) + mxs_reg_32(hw_timrot_match_count0) +mxs_reg_32 (hw_timrot_timctrl1) + mxs_reg_32(hw_timrot_running_count1) +mxs_reg_32 (hw_timrot_fixed_count1) + mxs_reg_32(hw_timrot_match_count1) +mxs_reg_32 (hw_timrot_timctrl2) + mxs_reg_32(hw_timrot_running_count2) +mxs_reg_32 (hw_timrot_fixed_count2) + mxs_reg_32(hw_timrot_match_count2) +mxs_reg_32 (hw_timrot_timctrl3) + mxs_reg_32(hw_timrot_running_count3) +mxs_reg_32 (hw_timrot_fixed_count3) + mxs_reg_32(hw_timrot_match_count3) + mxs_reg_32(hw_timrot_version) };#endif
arch/arm/include/asm/arch-mxs/regs-usbphy.h +10 -10
@@ -24,16 +24,16 @@#define __REGS_USBPHY_H__struct mx28_usbphy_regs { -mx28_reg_32 (hw_usbphy_pwd) - mx28_reg_32(hw_usbphy_tx) -mx28_reg_32 (hw_usbphy_rx) - mx28_reg_32(hw_usbphy_ctrl) -mx28_reg_32 (hw_usbphy_status) - mx28_reg_32(hw_usbphy_debug) -mx28_reg_32 (hw_usbphy_debug0_status) - mx28_reg_32(hw_usbphy_debug1) -mx28_reg_32 (hw_usbphy_version) - mx28_reg_32(hw_usbphy_ip) +mxs_reg_32 (hw_usbphy_pwd) + mxs_reg_32(hw_usbphy_tx) +mxs_reg_32 (hw_usbphy_rx) + mxs_reg_32(hw_usbphy_ctrl) +mxs_reg_32 (hw_usbphy_status) + mxs_reg_32(hw_usbphy_debug) +mxs_reg_32 (hw_usbphy_debug0_status) + mxs_reg_32(hw_usbphy_debug1) +mxs_reg_32 (hw_usbphy_version) + mxs_reg_32(hw_usbphy_ip) };#define USBPHY_PWD_RXPWDRX (1 << 20)
arch/arm/include/asm/arch-mxs/sys_proto.h +3 -3
@@ -23,11 +23,11 @@#ifndef __MX28_H__#define __MX28_H__ -int mx28_reset_block (struct mx28_register_32 *reg); -int mx28_wait_mask_set (struct mx28_register_32 *reg, +int mx28_reset_block (struct mxs_register_32 *reg); +int mx28_wait_mask_set (struct mxs_register_32 *reg,uint32_t mask,int timeout); -int mx28_wait_mask_clr (struct mx28_register_32 *reg, +int mx28_wait_mask_clr (struct mxs_register_32 *reg,uint32_t mask,int timeout);
drivers/gpio/mxs_gpio.c +8 -8
@@ -73,8 +73,8 @@ int gpio_get_value(unsigned gpio) {uint32_t bank =PAD_BANK (gpio);uint32_t offset =PINCTRL_DIN (bank); -struct mx28_register_32 *reg = - (struct mx28_register_32 *)(MXS_PINCTRL_BASE + offset); +struct mxs_register_32 *reg = + (struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset);return (readl (®->reg) >>PAD_PIN (gpio)) &1 ; }
@@ -83,8 +83,8 @@ void gpio_set_value(unsigned gpio, int value) {uint32_t bank =PAD_BANK (gpio);uint32_t offset =PINCTRL_DOUT (bank); -struct mx28_register_32 *reg = - (struct mx28_register_32 *)(MXS_PINCTRL_BASE + offset); +struct mxs_register_32 *reg = + (struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset);if (value)writel (1 <<PAD_PIN (gpio), ®->reg_set);
@@ -96,8 +96,8 @@ int gpio_direction_input(unsigned gpio) {uint32_t bank =PAD_BANK (gpio);uint32_t offset =PINCTRL_DOE (bank); -struct mx28_register_32 *reg = - (struct mx28_register_32 *)(MXS_PINCTRL_BASE + offset); +struct mxs_register_32 *reg = + (struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset);writel (1 <<PAD_PIN (gpio), ®->reg_clr);
@@ -108,8 +108,8 @@ int gpio_direction_output(unsigned gpio, int value) {uint32_t bank =PAD_BANK (gpio);uint32_t offset =PINCTRL_DOE (bank); -struct mx28_register_32 *reg = - (struct mx28_register_32 *)(MXS_PINCTRL_BASE + offset); +struct mxs_register_32 *reg = + (struct mxs_register_32 *)(MXS_PINCTRL_BASE + offset);writel (1 <<PAD_PIN (gpio), ®->reg_set);
drivers/usb/host/ehci-mxs.c +4 -4
@@ -75,8 +75,8 @@ int ehci_hcd_init(void)int ret;uint32_t usb_base, cap_base; -struct mx28_register_32 *digctl_ctrl = - (struct mx28_register_32 *)HW_DIGCTL_CTRL ; +struct mxs_register_32 *digctl_ctrl = + (struct mxs_register_32 *)HW_DIGCTL_CTRL ;struct mx28_clkctrl_regs *clkctrl_regs = (struct mx28_clkctrl_regs *)MXS_CLKCTRL_BASE ;
@@ -119,8 +119,8 @@ int ehci_hcd_stop(void) {int ret;uint32_t tmp; -struct mx28_register_32 *digctl_ctrl = - (struct mx28_register_32 *)HW_DIGCTL_CTRL ; +struct mxs_register_32 *digctl_ctrl = + (struct mxs_register_32 *)HW_DIGCTL_CTRL ;struct mx28_clkctrl_regs *clkctrl_regs = (struct mx28_clkctrl_regs *)MXS_CLKCTRL_BASE ;
Signature · 1 line
1.7.10
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Dear Otavio Salvador,
Quoted 3 lines
As the register accessing mode is the same for all i.MXS SoCs we ought to use 'mxs' prefix intead of 'mx28'.
Are you _SURE_ the register offsets are the same on mx233 and mx28? For example for DMA?
Best regards,
Marek Vasut
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Quoted 6 lines · Marek Vasut
Quoted 3 lines
As the register accessing mode is the same for all i.MXS SoCs we ought to use 'mxs' prefix intead of 'mx28'.
Are you _SURE_ the register offsets are the same on mx233 and mx28? For example for DMA?
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Dear Otavio Salvador,
Quoted 8 lines · Marek Vasut
Quoted 5 lines
Quoted 2 lines
As the register accessing mode is the same for all i.MXS SoCs we ought to use 'mxs' prefix intead of 'mx28'.
Are you _SURE_ the register offsets are the same on mx233 and mx28? For example for DMA?
From what I read from mx23 datasheet it is.
From what I saw two days ago in the LAKML it isn't ... compare HW_APBH_CH0_SEMA for instance ;-) Check drivers/dma/mxs-dma.c in Linux for example.
Best regards,
Marek Vasut
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Quoted 4 lines · Marek Vasut
Quoted 1 line
From what I read from mx23 datasheet it is.
From what I saw two days ago in the LAKML it isn't ... compare
HW_APBH_CH0_SEMAfor instance ;-) Checkdrivers/dma/mxs-dma.cin Linux for example.
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Dear Otavio Salvador,
Quoted 9 lines · Marek Vasut
Quoted 5 lines
Quoted 1 line
From what I read from mx23 datasheet it is.
From what I saw two days ago in the LAKML it isn't ... compare
HW_APBH_CH0_SEMAfor instance ;-) Checkdrivers/dma/mxs-dma.cin Linux for example.From what I see the offsets are different but overwall the way to access the data is the same. So it ought to be easy to handle.
So you need two sets of regs, you can't deliberately rename mx28 DMA regset to mxs regset ...
Best regards,
Marek Vasut
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
In reply to Otavio SalvadorReview
Quoted 2 lines · Otavio Salvador
+++
b/arch/arm/include/asm/arch-mxs/regs-apbh.h(quoted diff) +0
-0@@ -30,142 +30,142 @@
My idea is to have a regs-apbh-mx28.h and regs-apbh-mx23.h file. But the macro is mxs_... as it has same structure for mx28 and mx23.
Signature · 3 lines
Otavio Salvador? ? ? ? ? ? ? ? ? ? ? ? ? ? ?O.S. Systems E-mail: otavio at ossystems.com.br? http://www.ossystems.com.br Mobile: +55 53 9981-7854? ? ? ?? ? ? ?http://projetos.ossystems.com.br
PATCH 8/8 mxs: prefix register acessor macros with 'mxs' prefix
Dear Otavio Salvador,
Quoted 8 lines
On Sat, May 12, 2012 at 8:40 PM, Otavio Salvador
Review
Quoted 2 lines · <[email protected]> wrote:
+++
b/arch/arm/include/asm/arch-mxs/regs-apbh.h(quoted diff) +0
-0@@ -30,142 +30,142 @@My idea is to have a
regs-apbh-mx28.handregs-apbh-mx23.hfile. But the macro ismxs_... as it has same structure for mx28 and mx23.
Squash it into one file, have two structures ... it's fine.
Best regards,
Marek Vasut
cover Minor fixes and start of consolidation onto mxs SoC
In reply to Otavio SalvadorDear Otavio Salvador,
Quoted 4 lines · In message <[email protected]> you wrote:
This patchset include some small fixes found while looking at code to start converting it to use a common mxs SoC code in preparation for inclusion of i.MX23 support.
Quoted 11 lines
Otavio Salvador (8):
m28evk: use same notation to alloc the 128kB stack
m28evk: use "M28EVK U-Boot =>" as prompt
mx28evk: ensure command definition is in alphabetic order
mxsboot: stop referring to i.MX28 as this ought to work for all i.MXS
SoCs
m28evk: fix board config include guardian macro name
mx28evk: fix board config include guardian macro name
mxs: reorganize source directory for easy sharing of code in i.MXS
SoCs
mxs: prefix register acessor macros with 'mxs' prefix
I think I have seen this patch list before.
So is this an update dversion that obsoletes older submissions? If so, why is there no indication like a "[PATCH v2]" in the subjec tline? WHy are there no change logs in any of the patches?
Please see
http://www.denx.de/wiki/view/U-Boot/Patches#Sending_updated_patch_versions
and make sure to provide all these mandatory parts with your submissions.
Thanks.
Best regards,
Wolfgang Denk
Signature · 6 lines
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de If all the Chinese simultaneously jumped into the Pacific off a 10 foot platform erected 10 feet off their coast, it would cause a tidal wave that would destroy everything in this country west of Nebraska.
cover Minor fixes and start of consolidation onto mxs SoC
Quoted 4 lines · Wolfgang Denk
So is this an update dversion that obsoletes older submissions? If so, why is there no indication like a "[PATCH v2]" in the subjec tline? WHy are there no change logs in any of the patches?
Yes; I sent it two times.
I have some work being done for MX23 and once it is ready I will post it again. You can ignore the big patches for now.
Signature · 3 lines
Otavio Salvador O.S. Systems E-mail: otavio at ossystems.com.br http://www.ossystems.com.br Mobile: +55 53 9981-7854 http://projetos.ossystems.com.br