From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23632 invoked by alias); 26 Jun 2012 09:31:42 -0000 Received: (qmail 23617 invoked by uid 22791); 26 Jun 2012 09:31:40 -0000 X-SWARE-Spam-Status: No, hits=-2.8 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED X-Spam-Check-By: sourceware.org Received: from hagrid.ecoscentric.com (HELO mail.ecoscentric.com) (212.13.207.197) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 26 Jun 2012 09:31:26 +0000 Received: from localhost (hagrid.ecoscentric.com [127.0.0.1]) by mail.ecoscentric.com (Postfix) with ESMTP id 34FA12FF0008 for ; Tue, 26 Jun 2012 10:31:25 +0100 (BST) Received: from mail.ecoscentric.com ([127.0.0.1]) by localhost (hagrid.ecoscentric.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id an40G-FNwaJw; Tue, 26 Jun 2012 10:31:23 +0100 (BST) From: bugzilla-daemon@bugs.ecos.sourceware.org To: ecos-patches@ecos.sourceware.org Subject: [Bug 1001561] Internal flash driver for Freescale TWR-K60N512 board X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: eCos X-Bugzilla-Component: Patches and contributions X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: nau@csm-instruments.com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: low X-Bugzilla-Assigned-To: ilijak@siva.com.mk X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: In-Reply-To: References: X-Bugzilla-URL: http://bugs.ecos.sourceware.org/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 Date: Tue, 26 Jun 2012 09:31:00 -0000 Message-Id: <20120626093123.B180E2F78003@mail.ecoscentric.com> Mailing-List: contact ecos-patches-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-patches-owner@ecos.sourceware.org X-SW-Source: 2012-06/txt/msg00018.txt.bz2 Please do not reply to this email. Use the web interface provided at: http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001561 --- Comment #25 from Nicolas Aujoux 2012-06-26 10:31:10 BST --- (In reply to comment #21) > Hi Nicolas > > I'm sorry for late reply, but I was busy. I tried to disable keeping Redboot > configuration data in FLASH bit it still raises exception. Can you post your > ECM file? No problem. I posted a working for me configuration. I hope this works for you as well. > > (In reply to comment #20) > > Hi Ilija, > > > > I have made some tests and in order for the driver to work, I desactivated the > > "Redboot FIS support" (in Redboot ROM monitor -> Allow RedBoot tu support FLASH > > programming) and desactivated the "Keep Redboot configuration data in flash" > > option. > > When this options are enabled, Redboot try to read a portion of flash (with a > > memcpy) which leads to a problem. > > Have you tried with cyg_flash_read()? It is recommended in manual and I would > recommend too. I found out something about that : it seems to come from th "Flash block containing the directory" option which has the value "-1". This value should correspond to the last block of flash but when I put the value to 2, I get a prompt and the fis command (even if it still crash when I do a fis init). > > > > > I also try to move the CYG_FLASH_DRIVER into a new kinetis_flash.c file and add > > it to the file to be compile in the .cdl file. Redboot builds fine with it but > > when I launch it, it seems that there is no flash init done. I'll keep working > > on that but if you have any idea of what I am missing ... > > Probably the object file containing CYG_FLASH_DRIVER has been discarded by the > linker since effectively there aren't references to it. > If the driver is general for all Kinetis devices you can leave it in > kinetis_misc.c or put it in kinetis_flash.inl and include in kinetis_misc.c. > Otherwise you can put copies in platforms (see STM32 for example). However > driver inclusion for compilation should be conditional with some #ifdef. So I let it where it is for the moment. Thanks > > Ilija (In reply to comment #24) > (In reply to comment #23) > > (In reply to comment #21) > > > Hi Nicolas > > > > > > I'm sorry for late reply, but I was busy. I tried to disable keeping Redboot > > > configuration data in FLASH bit it still raises exception. Can you post your > > > ECM file? > > > > No problem. I posted a working for me configuration. I hope this works for you > > as well. > > Thanks. I did some testing. > > > > > > > > > (In reply to comment #20) > > > > Hi Ilija, > > > > > > > > I have made some tests and in order for the driver to work, I desactivated the > > > > "Redboot FIS support" (in Redboot ROM monitor -> Allow RedBoot tu support FLASH > > > > programming) and desactivated the "Keep Redboot configuration data in flash" > > > > option. > > > > When this options are enabled, Redboot try to read a portion of flash (with a > > > > memcpy) which leads to a problem. > > > > > The end address in CYG_FLASH_DRIVER is 1 byte too high and it triggers > exception when you FIS directory and fconfig are at end of the FLASH. > It should be > > (CYGMEM_REGION_flash + CYGMEM_REGION_flash_SIZE - 1) Thanks for pointing that out. > > > Also I think that for the time being we should protect Redboot from overwriting > itself (and prevent writing to FLASH security area (0x400..0x40f). > Note this can be the reason for your system freeze when you put FIS directory > at beginning of FLASH. Something like this: > > #define REDBOOT_IMAGE_SIZE CYGBLD_REDBOOT_MIN_IMAGE_SIZE > > cyg_kinetis_flash_dev hal_kinetis_flash_priv; > static const cyg_flash_block_info_t cyg_flash_kinetis_block_info[1] = { > { KINETIS_FLASH_BLOCK_SIZE, (CYGMEM_REGION_flash_SIZE - > REDBOOT_IMAGE_SIZE)/ > KINETIS_FLASH_BLOCK_SIZE }}; > > CYG_FLASH_DRIVER(hal_kinetis_flash, > &cyg_kinetis_flash_funs, > 0, > CYGMEM_REGION_flash + REDBOOT_IMAGE_SIZE, > (CYGMEM_REGION_flash + CYGMEM_REGION_flash_SIZE - 1), > 1, //number of block info > cyg_flash_kinetis_block_info, > &hal_kinetis_flash_priv); > > With this configuration it works with default configuration. But I have tried > fconfig -i and fis init and it fails to write. Here is the "fconfig -i" minicom > output: > > RedBoot> fconfig -i > Initialize non-volatile configuration - continue (y/n)? y > Run script at boot: false > Use BOOTP for network configuration: false > Gateway IP address: 192.168.209.1 > Local IP address: 192.168.209.77 > Local IP address mask: 255.255.255.0 > Default server IP address: 192.168.209.7 > Console baud rate: 38400 > GDB connection port: 9000 > Force console for special debug messages: false > Network debug at boot time: false > Update RedBoot non-volatile configuration - continue (y/n)? y > ... Erase from 0x0007e000-0x0007efff: .. > ... Program from 0x2000d800-0x2000e800 to 0x0007e000: V > Error writing config data at 0x0007e000: Data verify failed after operation > The problem here is that in my driver, I expect a relative address in flash so I substract the flash base to the address and thus the program command actually programs the address minus 0x20000. Anyway, my bad, I will post a patch to correct this. > > > > > I found out something about that : it seems to come from th "Flash block > > containing the directory" option which has the value "-1". This value should > > correspond to the last block of flash but when I put the value to 2, I get a > > prompt and the fis command (even if it still crash when I do a fis init). > > > > > > > > > > > > > I also try to move the CYG_FLASH_DRIVER into a new kinetis_flash.c file and add > > > > it to the file to be compile in the .cdl file. Redboot builds fine with it but > > > > when I launch it, it seems that there is no flash init done. I'll keep working > > > > on that but if you have any idea of what I am missing ... > > > > > > Probably the object file containing CYG_FLASH_DRIVER has been discarded by the > > > linker since effectively there aren't references to it. > > > If the driver is general for all Kinetis devices you can leave it in > > > kinetis_misc.c or put it in kinetis_flash.inl and include in kinetis_misc.c. > > > Otherwise you can put copies in platforms (see STM32 for example). However > > > driver inclusion for compilation should be conditional with some #ifdef. > > > > So I let it where it is for the moment. Thanks > > For the time being you could leave it, but for the permanent > > > > > > > > > > Ilija -- Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.