You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(79) |
Aug
(27) |
Sep
(64) |
Oct
(202) |
Nov
(31) |
Dec
(59) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(125) |
Feb
(173) |
Mar
(13) |
Apr
(140) |
May
(75) |
Jun
(1) |
Jul
(37) |
Aug
(14) |
Sep
|
Oct
(20) |
Nov
(9) |
Dec
(2) |
2003 |
Jan
(51) |
Feb
(12) |
Mar
(18) |
Apr
(24) |
May
(1) |
Jun
|
Jul
|
Aug
(72) |
Sep
(12) |
Oct
(18) |
Nov
(60) |
Dec
(26) |
2004 |
Jan
(1) |
Feb
(40) |
Mar
(3) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(5) |
2006 |
Jan
(13) |
Feb
(5) |
Mar
(8) |
Apr
(13) |
May
(7) |
Jun
(6) |
Jul
(10) |
Aug
(6) |
Sep
(6) |
Oct
(35) |
Nov
(20) |
Dec
(10) |
2007 |
Jan
(13) |
Feb
(9) |
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(54) |
Jun
(78) |
Jul
(35) |
Aug
(21) |
Sep
(21) |
Oct
(29) |
Nov
(10) |
Dec
(5) |
2010 |
Jan
|
Feb
|
Mar
(26) |
Apr
(55) |
May
(73) |
Jun
(63) |
Jul
(38) |
Aug
(39) |
Sep
(19) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Dorothy M. <scb...@ya...> - 2003-12-19 11:55:08
|
TECHNOLOGY SECTOR - TECHNOLOGY BREAKTHROUGH - PATENTS FILED Symbol: NMMG Market: OTC.BB Sector: L.E.D. TECHNOLOGY Barcharts Rate NMMG an 80% BUY - http://quotes.barchart.com/texpert.asp?sy= m=3DNMMG BREAKING NEWS in technology - New Millennium Media International (OTCBB: N= MMG) announces that it has officially filed its patents---with over 50 cla= ims---protecting its revolutionary technology, a breakthrough in (LED) arc= hitecture. The OnScreen=99 LED Display Architecture is a radical new type= of Bright LED video display architecture that is expected to revolutioniz= e the 1.5 billion dollar LED display market. This breakthrough technology= will give NMMG great potential to capture significant market share in the= the 19 billion dollar outdoor advertising market. With all the new initiatives in Homeland Security and the Amber Alert, Int= elligent Message Signs (IMS) are the future, and with the recent signing o= f new laws and federally mandated funds in the billions of dollars, NMMG a= nd its patent-pending OnScreen technology is poised to lead the way. NMMG= currently has the only technology that allows it to build onto exisiting = infrastructure, i.e. road signs, billboards, etc. Imagine one day you are= driving home on the freeway past a road sign you have seen a thousand tim= es before--but this time you notice something different. This time you se= e a WARNING lit up--truck overturned 1 mile ahead--hazardous chemicals spi= lled. The sign advises you to exit immediately and to safety. Such a war= ning was broadcast instantly and using NMMG's OnScreen technology. You ne= ver noticed, as you drove by the roadside every day, that OnScreen was dra= ped over the sign all this time. Now it has sprung into action by the pun= ch of a button on a PC from a central station--instantly and just in the n= ick of time. You have just experienced OnScreen technology. And that is = just one example. The possibilities are limitless. And because OnScreen = can be applied to existing structures like road signs or billboards, its c= ost-effectiveness makes it far and away the technology choice. NMMG will unveil its breakthrough technology at the STRATEGIES IN LIGHT co= nference on February 2-4, 2004 at the San Mateo Marriott Hotel in San Mate= o, California. This unique event is considered to be the premier annual fo= rum for addressing commercial developments in high-brightness LEDs, as wel= l as an unparalleled networking opportunity for suppliers and users of the= se devices. The growing interest in, and expanding attendance at, this eve= nt, reflects the excitement associated with a market that has grown by 50= % since 2000, while other semiconductor and optical component industries h= ave stagnated or experienced large declines. ON-SCREEN=99 TECHNOLOGY OnScreen=99 is expected to create a broad-range of products with much bett= er resolution and brighter pictures than the current generation of display= s. OnScreen=99 will be visible in direct sunlight yet avoid many of the is= sues associated with current displays including sun-loading, wind-loading = and excessive weight. In addition, the new LED architecture produces an a= dvantage that is not available in today's marketplace: a more lightweight,= pliable display that can fit any application. These are important advant= ages as the High Brightness LED market is expected to grow from 1.2 billio= n dollars in 2000 to 4 billion in 2006. In addition, according to Stanfor= d Resources, the LED sign market value alone is expected to exceed 1 billi= on by 2006. These projections are made based on existing technology and do= not take into account emerging technologies, such as OnScreen=99, that ca= n rapidly alter the size and shape of this market. COMMERCIAL MARKET & STRATEGY NMMG's initial marketing strategy revolves around licensing intellectual p= roperty (IP) to worldwide manufacturers of LED display products and compon= ents. The LED sign market is projected to reach over 1 billion dollars by = 2006. Lumiled's projects that high brightness LED's, used in LED signs alo= ne, will exceed 1.2 billion by 2007. If these projections hold, the fully = manufactured signs would represent a $5 billion market. Whichever number i= s accurate, they both point towards a robust market for these new LED disp= lays. Many projections don't take into account emerging high growth applic= ations such as the Amber Alert project, Homeland Security and roadway =93i= ntelligent message transfer=94. THE MARKET An article in Media Post's Media Daily News in March of 2003 noted that th= e outdoor industry has successfully weathered the recession and that =93ou= r large members say they're having a great first quarter=94 in 2003. They = go on to note that technology is expected to transform both the display an= d measurement of outdoor advertising. According to Media Daily the most ex= citing news is coming on the display side, where =93Lamar Advertising is c= onverting their key boards to LED units whose messages can be changed at w= ill and sold in day-parts by the hour or even the minute.=94 They added th= at =93Clear Channel's backlit subway panels in stairwells are being conver= ted to LED as well=94. Together these companies represent two of the three= largest outdoor US advertisers. Recent Federal Government legislation has also placed a spotlight on expan= ding the =93Amber Alert=94 network nationwide. The highly publicized succe= ss in locating a number of kidnapped children shortly after their abductio= n in California has now triggered federal funding for U.S.-wide expansion = of these variable-message signs. Homeland Security issues have also incre= ased the number of early warning signs being planned and funded as part of= an overall information sharing network. Traffic safety is also becoming a= much higher priority in the U.S.. It is estimated that just over 60,000 r= oadway dynamic message signs are in operation in the United States. In Jap= an alone there are over 1.5 million of these signs. The United States repr= esents a huge growth market for LED displays. GROWTH OPPORTUNITES In addition to the outdoor television market, another interesting and exci= ting application for OnScreen=99 arrays is artistic lighting in dramatic c= urved and shaped displays in places like Las Vegas, New York City or reall= y virtually any venue. The tensile, flexible structure of OnScreen=99 prov= ides unlimited opportunity for creativity. The anticipated cost reductions of OnScreen=99 will also provide ample opp= ortunity for growth of the large-scale LED display market itself. OnScreen= =99's unique architecture opens the door for new applications such as curv= ed implementations, billboards on the sides of buildings where tenants can= still see out, and lower cost mobile applications on the sides of existin= g vehicles. Homeland Security, Amber Alert variable message signage and instant messag= e transfer applications can also benefit significantly from the advantages= of OnScreen=99. Reduced wind-loading and weight can significantly lower t= he cost of the superstructures required to support these signs and also re= duce the cost to install and maintain them. JUST LOOK WHO IS ALREADY ON BOARD New Millennium has established a Technology Breakthroughsentific Advisory = Board comprised of leading experts in key categories in the research and m= arketing of LED technology. David Pelka, Ph.D.- Chairman =96 Well known expert in physics, founded TIR= Technologies Inc. to pursue patents for his LED lighting systems and LCD = backlits. Dr. Pelka secured more than $2 million in venture capital and l= icensing for TIR before it was acquired by Teledyne Electronic Technologie= s (NYSE:TDY). Since the buyout, Dr. Pelka has served as Director of Produ= ct Development for Teledyne Lighting and Display Products. Dr. Pelka's ac= colades include fellowships and awards from the Smithsonian, National Defe= nse, Northrop University and Ebell Fellowship, as well as countless articl= es published in both classified (the U.S. Air Force and Army) publications= and various non-classified publications. He has founded several technolo= gy companies, which he successfully expanded by building strong revenue st= reams and securing venture capital investments and government contracts. Robert V. Steele, Ph.D. =96 Director of Optoelectronics Programs and Chair= man of the annual conference =93Strategies in Light=94 for Strategies Unli= mited. Steele is responsible for all of Strategies Unlimited's activities= in the area of optoelectronic components, for which the 23-year-old marke= t research firm has specialized in providing market research reports and c= onsulting services. Co-author of =93Solid-State Lighting: New Growth Oppo= rtunities for High-Brightness LED's=94, Dr. Steele writes regularly for in= dustry publications on high-brightness LED markets and applications such a= s Forbes, The Wall Street Journal, The Economist and more. John Biondo =96 Owner and President of Silicon Robotics Corporation, which= provides various product development services including electronic and el= ectromechanical design, software development, optics, and project manageme= nt. Biondo also has extensive patent-process experience. In 1980, Biondo= launched Electric Filmworks, which produced computer-generated visual eff= ects for the television and motion picture industry. He also designed an = apparatus using newly available and inexpensive microcomputers, which allo= wed the company to compete successful against older, more established firm= s. To transfer from the service-sector into manufacturing, Biondo sold El= ectric Filmworks in 1989 and co-founded Amazing Photos. Amazing Photos de= signed, manufactured and sold a variety of innovative coin-operated photo = booths. Polaroid Corporation licensed and marketed the two most popular a= nd cost effective booths under their own name. Richard Reis, Ph.D. =96 Executive Director of the Alliance for Innovative = Manufacturing at Stanford and Director for Academic Partnerships in the St= anford Learning Laboratory. Dr. Reis' impressive career includes serving = as; the Executive director of the Stanford Center for integrated Systems, = a major research partnership between Stanford and 15 industrial companies;= a Consulting Professor in both the Stanford University Electrical and Mec= hanical Engineering departments; professor of a year-round seminar that is= part of the Stanford University Future Professors of Manufacturing progra= m; a professor of astronomy at the College of San Mateo, Calif.; and a cur= riculum consultant at Menlo College, Calif. Ben Jacobson, Ph.D. =96 Dr. Jacobson has worked on numerous impressive LED= projects that have exponentially increased beam density and brightness an= d reduced system costs. Additionally, these projects have improved power r= equirements, heat load and LED count, while improving compactness, efficie= ncy and performance over competitors' products. Dr. Jacobson was instrume= ntal in positioning Illumitech as a new company developing high-performanc= e LED lighting systems with thermal packaging. Dr. Jacobson has over a de= cade of experience developing and marketing new technology for the display= industry, both in his previous positions and currently at Illumitech. Pr= ior to Illumitech, Dr. Jacobson held various executive and research direct= orial positions at EG Controls Inc., ARCH Venture Partners, NiOptics Corpo= ration and the University of Chicago. He has seven U.S. patents, and has = published 13 research articles and seven conference presentations. Joseph D. Tajnai, Ph.D. =96 Dr. Tajnai is a consultant in Optical Radiatio= n Safety, LED's & Applications and Optics & Optical Measurement Training. = He was an engineer, Technology Breakthroughsentist and technical manager f= or 23 years at Hewlett-Packard and Agilent Technologies. He has focused on= fiber optic development, LED development and measurements, new product pr= ocesses, mathematical modeling and international and US standards and regu= lations. He also worked with GE Sylvania for nine years and contributed he= avily to their YAG laser development. Dr. Tajnai received his BS, MS and P= h.D. from California Institute of Technology in Electrical Engineering and= Applied Physics. Please note that NMMG had absolutley nothing to do with this report and is= not a participant in any way. No more advertisements: www.inet-notification.com/away.html Technology Breakthroughs is an independent research firm. This report is b= ased on Technology Breakthroughs's independent analysis but also relies on= information supplied by sources believed to be reliable. This report may = not be the opinion of NMMG management. Technology Breakthroughs has also b= een retained to research and issue reports on NMMG. Technology Breakthroug= hs may from time to time purchase or sell NMMG common shares in the open m= arket without notice. The information contained in this report shall not c= onstitute, an offer to sell or solicitation of any offer to purchase any s= ecurity. It is intended for information only. Some statements may contain = so-called "forward-looking statements". Many factors could cause actual re= sults to differ. Investors should consult with their Investment Advisor co= ncerning NMMG. Copyright 2003 =A9 Technology Breakthroughs. All Rights Res= erved. Technology Breakthroughs was paid eight thousand dollars to distrib= ute this report. Technology Breakthroughs is not affiiated with Technology= Breakthroughs and is not responsible for newsletter content. All informa= tion in this report can be obtained on the world wide web at www.nmmimedia= com. New Millenimum Media was not a participant in this newsletter in an= y way. geru n |
From: Russ D. <ru...@us...> - 2003-12-13 00:24:35
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv16041/src/blob Modified Files: smdk2500.c Log Message: swap interfaces Index: smdk2500.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/smdk2500.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- smdk2500.c 27 Nov 2003 08:04:16 -0000 1.4 +++ smdk2500.c 13 Dec 2003 00:24:32 -0000 1.5 @@ -107,6 +107,8 @@ timer_driver = &s3c2500_timer_driver; ether_driver = &s3c2500_ether_driver; ether_driver->name = "eth0"; + /* Kernel has it backwards, so we do too */ + ether_driver->base = 0xF00C0000; } __initlist(smdk2500_init_hardware, INIT_LEVEL_DRIVER_SELECTION); |
From: Russ D. <ru...@us...> - 2003-12-12 02:59:23
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv30957/src/blob Modified Files: start-s3c2500.S Log Message: How did THAT work for so long Index: start-s3c2500.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/start-s3c2500.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- start-s3c2500.S 27 Nov 2003 03:34:02 -0000 1.2 +++ start-s3c2500.S 12 Dec 2003 02:59:20 -0000 1.3 @@ -66,10 +66,12 @@ /* Disable Custom clocking */ mov r0, #ASIC_BASE orr r0, r0, #SYSCFG_BASEB - mov r0, #0 + ldr r1, [r0] + and r1, r1, #REMAP /* Reset all the bits except remap */ str r1, [r0] /* Disable any clock division */ + mov r1, #0 str r1, [r0, #CLKCON] /* Make sure all external clocks are enabled */ @@ -84,7 +86,8 @@ str r1, [r0, #SPLL] /* Enable "custom" clocks */ - mov r1, #CPLLREN | SPLLREN + ldr r1, [r0] + orr r1, r1, #CPLLREN | SPLLREN str r1, [r0] /* init LED */ |
From: Russ D. <ru...@us...> - 2003-12-12 02:58:44
|
Update of /cvsroot/blob/blob/include/blob/arch In directory sc8-pr-cvs1:/tmp/cvs-serv30869/include/blob/arch Modified Files: s3c2500-regs.h Log Message: fix some defines for the s3c2500 Index: s3c2500-regs.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/s3c2500-regs.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- s3c2500-regs.h 27 Nov 2003 03:23:24 -0000 1.2 +++ s3c2500-regs.h 12 Dec 2003 02:58:41 -0000 1.3 @@ -20,12 +20,12 @@ /* Get the M value for a speed in MHz a P, and an S */ #define Fin 10 /* The +(Fin - 1) thing is so it rounds up */ -#define PLL_CALC_M(Fout, s, p) \ +#define PLL_CALC_M(Fout, p, s) \ (((p + 2) * (1 << s) * Fout + (Fin - 1)) / Fin - 8) /* get the whole kit-n-kaboodle */ -#define PLL_VALUE(Fout, s, p) \ - (PLL_S(s) | PLL_P(p) | PLL_M(PLL_CALC_M(Fout, s, p))) +#define PLL_VALUE(Fout, p, s) \ + (PLL_S(s) | PLL_P(p) | PLL_M(PLL_CALC_M(Fout, p, s))) /* get the MHz as a number */ @@ -39,12 +39,12 @@ #define GET_MHz(x) \ _GET_MHz(GET_PLL_S(x), GET_PLL_P(x), GET_PLL_M(x)) -/* PLL defines for a 10MHz input */ -#define SPEED_33MHz PLL_VALUE(33, 1, 3) -#define SPEED_48MHz PLL_VALUE(48, 3, 3) -#define SPEED_50HMz PLL_VALUE(50, 1, 3) -#define SPEED_66MHz PLL_VALUE(66, 1, 2) -#define SPEED_96MHz PLL_VALUE(96, 3, 2) +/* PLL defines for a 10MHz input MHz P S */ +#define SPEED_33MHz PLL_VALUE(33, 1, 3) +#define SPEED_48MHz PLL_VALUE(48, 3, 3) +#define SPEED_50HMz PLL_VALUE(50, 1, 3) +#define SPEED_66MHz PLL_VALUE(66, 1, 2) +#define SPEED_96MHz PLL_VALUE(96, 3, 2) #define SPEED_100MHz PLL_VALUE(100, 1, 2) #define SPEED_125MHz PLL_VALUE(125, 1, 1) #define SPEED_133MHz PLL_VALUE(133, 1, 1) @@ -83,7 +83,7 @@ */ #define SYSCFG_BASEB 0x00000000 -#define SYSCFG_BASE (ASIC_BASE + SYSCFGB) +#define SYSCFG_BASE (ASIC_BASE + SYSCFG_BASEB) #define SYSCFG __REG2(SYSCFG_BASE,0x00) /* System configuration */ #define CPLLREN (1 << 31) |
From: Charity K. <ihs...@ya...> - 2003-12-11 14:25:35
|
BREAKING NEWS on TRHL True Health (TRHL) Signs Landmark Deal With Spectrum Care; Becomes Preferr= ed Provider To Consortium of 130+ Nursing Homes... BECKENHAM, England---PRNewswire-FirstCall---True Health, Inc., (OTC Bullet= in Board: TRHL) a leader in healthcare recruitment and pressure relieving = systems, announced today that it has been selected as the Preferred Provid= er in three product categories for Spectrum Care Ltd., a first-of-its kind= buying consortium made up of a growing number of nursing homes across the= U.K. This agreement creates efficiencies in marketing for True Health and= an improved purchasing position for Spectrum, reducing the cost of the Co= mpany's products for buyers while improving True Health's margins and sale= s channels. Spectrum Care is a recently formed consortium that consolidates the buying= power of individual nursing homes across the U.K. and currently has over = 130 homes in its network. The consortium is a unique purchasing initiative= for the U.K. nursing home market. Spectrum Care has reached preferred pur= chasing agreements with a wide range of suppliers for various goods and se= rvices. Following careful evaluation, Spectrum has chosen True Health as its prefe= rred provider in three product categories: Pressure Area Care Products, Pa= tient Moving and Handling Equipment, and Nursing Home Beds. Nursing homes = in the Spectrum Care network will be offered True Health products in these= categories at discounted prices and on preferred payment terms. True Heal= th receives access to all 130 nursing homes and has embarked on a joint ma= rketing initiative with Spectrum including a co-branded catalog and joint = sales ventures. "We are very excited about our arrangement with Spectrum. It allows us to = offer lower prices to nursing home customers so that those care centers ca= n apply their savings towards improved direct patient care," stated True H= ealth CEO, Mr. David Frances. "It also creates improved marketing and sale= s economics for us, allowing our sales team to focus on the cornerstones o= f our growth strategy: larger contracts, and the roll out of new products = and services." About True Health, Inc. True Health, through its wholly owned subsidiary, Westmeria Healthcare Lim= ited, is a full service specialist, medical equipment and medical professi= onal supplier to the healthcare industry. Its primary clients are Great Br= itain's National Health Service (NHS) and the private Nursing Home Industr= y. True Health delivers recruitment services to the NHS; specializing in t= he provision of locum radiographers and nurses. Its core business is suppl= ying proprietary branded specialist pressure relieving equipment for the h= ealthcare sector. The branded products are manufactured and licensed for t= he company in Germany, Belgium and Taiwan. The statements contained in this news release that are not historical fact= s may be statements regarding the Company's future that involve risks and = uncertainties which could cause actual results to differ materially from t= hose currently anticipated. For example, statements that describe the Comp= any's hopes, plans, objectives, goals, intentions or expectations are all = forward looking statements. Any such statements made herein about the Comp= any's future are only made as of the date of this news release. Numerous f= actors, many of which are beyond the Company's control, may affect actual = results. The Company undertakes no obligation to publicly update such forw= ard-looking statements to reflect subsequent events or circumstances. nyjxfrdb |
From: Russ D. <ru...@us...> - 2003-12-09 23:20:28
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv13237 Modified Files: memory.c Log Message: slightly more readable, and better compiler output (according to erikm) Index: memory.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memory.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- memory.c 9 Dec 2003 03:28:31 -0000 1.6 +++ memory.c 9 Dec 2003 23:20:24 -0000 1.7 @@ -43,6 +43,7 @@ memory_area_t memory_map[NUM_MEM_AREAS]; +static const u32 mem_magic = 0xabadcafe; @@ -58,14 +59,14 @@ /* first write a magic value to all memory locations */ for(addr = MEMORY_START; addr < MEMORY_END; addr += TEST_BLOCK_SIZE) - * (u32 *)addr = 0xabadcafe; + * (u32 *)addr = mem_magic; /* scan memory in blocks */ i = 0; for(addr = MEMORY_START; addr < MEMORY_END; addr += TEST_BLOCK_SIZE) { if(testram(addr) == 0) { /* yes, memory */ - if(* (u32 *)addr != 0xabadcafe) { /* alias? */ + if(* (u32 *)addr != mem_magic) { /* alias? */ dprintf("detected alias at 0x%08x, " "aliased from 0x%08x\n", addr, * (u32 *)addr); |
From: Erik M. <J.A...@it...> - 2003-12-09 14:10:01
|
On Mon, Dec 08, 2003 at 07:28:33PM -0800, Russ Dill wrote: > Update of /cvsroot/blob/blob/src/blob > In directory sc8-pr-cvs1:/tmp/cvs-serv1976/src/blob >=20 > Modified Files: > memory.c=20 > Log Message: > allow probing of ram at 0x0 Could you make the magic word a define? Something like: #define mem_magic 0xabadcafe or static const u32 mem_magic =3D 0xabadcafe; (I think the compiler will generate slightly better code for the latter case). > --- memory.c 13 Feb 2002 00:09:51 -0000 1.5 > +++ memory.c 9 Dec 2003 03:28:31 -0000 1.6 > @@ -56,16 +56,16 @@ > for(i =3D 0; i < NUM_MEM_AREAS; i++) > memory_map[i].used =3D 0; > =20 > - /* first write a 0 to all memory locations */ > + /* first write a magic value to all memory locations */ > for(addr =3D MEMORY_START; addr < MEMORY_END; addr +=3D TEST_BLOCK_SIZE) > - * (u32 *)addr =3D 0; > + * (u32 *)addr =3D 0xabadcafe; And this will become: * (u32 *)addr =3D mem_magic; =20 etc. Same code, slightly better readable. Erik --=20 Erik Mouw J.A...@it... mo...@nl... |
From: Russ D. <ru...@us...> - 2003-12-09 03:28:34
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv1976/src/blob Modified Files: memory.c Log Message: allow probing of ram at 0x0 Index: memory.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memory.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- memory.c 13 Feb 2002 00:09:51 -0000 1.5 +++ memory.c 9 Dec 2003 03:28:31 -0000 1.6 @@ -56,16 +56,16 @@ for(i = 0; i < NUM_MEM_AREAS; i++) memory_map[i].used = 0; - /* first write a 0 to all memory locations */ + /* first write a magic value to all memory locations */ for(addr = MEMORY_START; addr < MEMORY_END; addr += TEST_BLOCK_SIZE) - * (u32 *)addr = 0; + * (u32 *)addr = 0xabadcafe; /* scan memory in blocks */ i = 0; for(addr = MEMORY_START; addr < MEMORY_END; addr += TEST_BLOCK_SIZE) { if(testram(addr) == 0) { /* yes, memory */ - if(* (u32 *)addr != 0) { /* alias? */ + if(* (u32 *)addr != 0xabadcafe) { /* alias? */ dprintf("detected alias at 0x%08x, " "aliased from 0x%08x\n", addr, * (u32 *)addr); |
From: Stefan E. <se...@us...> - 2003-12-08 14:41:06
|
Update of /cvsroot/blob/blob/include/blob/arch In directory sc8-pr-cvs1:/tmp/cvs-serv16464 Modified Files: ra_alpha.h Log Message: GPIO init Index: ra_alpha.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/ra_alpha.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ra_alpha.h 11 Nov 2003 14:27:12 -0000 1.4 +++ ra_alpha.h 8 Dec 2003 14:41:00 -0000 1.5 @@ -129,25 +129,25 @@ #define RST(reg,bit) ((reg) &= ~(1<<(bit))) /* GPIO configuration */ -#define GPIO0_VALUE GPIO_OUT_LO -#define GPIO1_VALUE GPIO_OUT_LO -#define GPIO2_VALUE GPIO_OUT_LO -#define GPIO3_VALUE GPIO_INPUT /* USB IRQ */ -#define GPIO4_VALUE GPIO_INPUT /* LAN IRQ (neg) */ -#define GPIO5_VALUE GPIO_INPUT /* CF IRQ (neg) */ -#define GPIO6_VALUE GPIO_OUT_LO -#define GPIO7_VALUE GPIO_OUT_LO -#define GPIO8_VALUE GPIO_OUT_LO -#define GPIO9_VALUE GPIO_OUT_LO +#define GPIO0_VALUE GPIO_OUT_LO +#define GPIO1_VALUE GPIO_OUT_LO +#define GPIO2_VALUE GPIO_INPUT /* IRQ CPLD */ +#define GPIO3_VALUE GPIO_INPUT /* USB IRQ */ +#define GPIO4_VALUE GPIO_INPUT /* LAN IRQ (neg) */ +#define GPIO5_VALUE GPIO_INPUT /* CF IRQ (neg) */ +#define GPIO6_VALUE GPIO_INPUT /* nUSB_H_OVERCURRENT */ +#define GPIO7_VALUE (GPIO_OUT_LO|GPIO_ALT_FN1) /* 48MHz Clock Out for CPLD */ +#define GPIO8_VALUE GPIO_INPUT /* OnOff KBD */ +#define GPIO9_VALUE GPIO_OUT_LO #define GPIO10_VALUE GPIO_OUT_LO -#define GPIO11_VALUE GPIO_OUT_LO -#define GPIO12_VALUE GPIO_OUT_LO /* watchdog_strobe */ -#define GPIO13_VALUE GPIO_INPUT /* cpld_hw_reset */ -#define GPIO14_VALUE GPIO_INPUT /* cpld_?? */ -#define GPIO15_VALUE (GPIO_OUT_HI | GPIO_ALT_FN2) /* nCS1 [img_buffer] */ -#define GPIO16_VALUE GPIO_OUT_LO -#define GPIO17_VALUE GPIO_INPUT /* cpld_?? */ -#define GPIO18_VALUE GPIO_INPUT /* vlio_ready_signal */ +#define GPIO11_VALUE (GPIO_OUT_LO|GPIO_ALT_FN1) /* 3.6 MHz Clock out */ +#define GPIO12_VALUE GPIO_OUT_LO +#define GPIO13_VALUE GPIO_OUT_LO +#define GPIO14_VALUE GPIO_OUT_LO +#define GPIO15_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nCS1 */ +#define GPIO16_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD Contrast PWM */ +#define GPIO17_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD Bright PWM */ +#define GPIO18_VALUE GPIO_INPUT /* RDY LAN */ #define GPIO19_VALUE GPIO_OUT_LO #define GPIO20_VALUE GPIO_OUT_LO #define GPIO21_VALUE GPIO_OUT_LO @@ -162,39 +162,39 @@ #define GPIO30_VALUE GPIO_OUT_LO #define GPIO31_VALUE GPIO_OUT_LO #define GPIO32_VALUE GPIO_OUT_LO -#define GPIO33_VALUE GPIO_OUT_HI /* nCS5 [unused] */ -#define GPIO34_VALUE (GPIO_INPUT | GPIO_ALT_FN1) /* FFRXD */ -#define GPIO35_VALUE GPIO_OUT_HI /* Core Voltage */ -#define GPIO36_VALUE GPIO_OUT_HI /* Core Voltage */ -#define GPIO37_VALUE GPIO_OUT_LO -#define GPIO38_VALUE GPIO_OUT_LO -#define GPIO39_VALUE (GPIO_OUT_LO | GPIO_ALT_FN2) /* FFTXD */ -#define GPIO40_VALUE GPIO_OUT_LO -#define GPIO41_VALUE GPIO_OUT_LO -#define GPIO42_VALUE GPIO_OUT_LO -#define GPIO43_VALUE GPIO_OUT_LO -#define GPIO44_VALUE GPIO_OUT_LO -#define GPIO45_VALUE GPIO_OUT_LO -#define GPIO46_VALUE GPIO_OUT_LO -#define GPIO47_VALUE GPIO_OUT_LO -#define GPIO48_VALUE GPIO_OUT_LO -#define GPIO49_VALUE GPIO_OUT_HI /* cpld_pcmcia_pwe */ -#define GPIO50_VALUE GPIO_OUT_LO -#define GPIO51_VALUE GPIO_OUT_LO -#define GPIO52_VALUE GPIO_OUT_LO -#define GPIO53_VALUE GPIO_OUT_LO -#define GPIO54_VALUE GPIO_OUT_LO -#define GPIO55_VALUE GPIO_OUT_LO -#define GPIO56_VALUE GPIO_INPUT -#define GPIO57_VALUE GPIO_INPUT -#define GPIO58_VALUE GPIO_OUT_LO -#define GPIO59_VALUE GPIO_OUT_LO -#define GPIO60_VALUE GPIO_OUT_LO -#define GPIO61_VALUE GPIO_OUT_LO -#define GPIO62_VALUE GPIO_OUT_LO -#define GPIO63_VALUE GPIO_OUT_LO -#define GPIO64_VALUE GPIO_OUT_LO -#define GPIO65_VALUE GPIO_OUT_LO +#define GPIO33_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nCS5 */ +#define GPIO34_VALUE (GPIO_INPUT|GPIO_ALT_FN1) /* FFRXD */ +#define GPIO35_VALUE GPIO_OUT_HI /* Core Fast 1 */ +#define GPIO36_VALUE GPIO_OUT_HI /* Core Fast 2 */ +#define GPIO37_VALUE GPIO_OUT_LO /* n3V3_En */ +#define GPIO38_VALUE GPIO_OUT_LO /* n5V4_En */ +#define GPIO39_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* FFTXD */ +#define GPIO40_VALUE GPIO_OUT_HI /* nUSB_H_ON */ +#define GPIO41_VALUE GPIO_OUT_LO /* CF_RST */ +#define GPIO42_VALUE (GPIO_INPUT|GPIO_ALT_FN1) +#define GPIO43_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) +#define GPIO44_VALUE (GPIO_INPUT|GPIO_ALT_FN1) +#define GPIO45_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) +#define GPIO46_VALUE (GPIO_INPUT|GPIO_ALT_FN2) +#define GPIO47_VALUE (GPIO_OUT_HI|GPIO_ALT_FN1) +#define GPIO48_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPOE */ +#define GPIO49_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPWE */ +#define GPIO50_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPIOR */ +#define GPIO51_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPIOW */ +#define GPIO52_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPCE1 */ +#define GPIO53_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPCE2 */ +#define GPIO54_VALUE GPIO_OUT_HI /* nPKTSEL */ +#define GPIO55_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nPREG */ +#define GPIO56_VALUE (GPIO_INPUT|GPIO_ALT_FN1) /* nPWAIT */ +#define GPIO57_VALUE (GPIO_INPUT|GPIO_ALT_FN1) /* nIOIS16 */ +#define GPIO58_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO59_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO60_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO61_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO62_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO63_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO64_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ +#define GPIO65_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD D0..7 */ #define GPIO66_VALUE GPIO_OUT_LO #define GPIO67_VALUE GPIO_OUT_LO #define GPIO68_VALUE GPIO_OUT_LO @@ -203,16 +203,17 @@ #define GPIO71_VALUE GPIO_OUT_LO #define GPIO72_VALUE GPIO_OUT_LO #define GPIO73_VALUE GPIO_OUT_LO -#define GPIO74_VALUE GPIO_OUT_LO -#define GPIO75_VALUE GPIO_OUT_LO -#define GPIO76_VALUE GPIO_OUT_LO -#define GPIO77_VALUE GPIO_OUT_LO -#define GPIO78_VALUE (GPIO_OUT_HI | GPIO_ALT_FN2) /* nCS2 [img_buffer] */ -#define GPIO79_VALUE (GPIO_OUT_HI | GPIO_ALT_FN2) /* nCS3 [eth] */ -#define GPIO80_VALUE GPIO_OUT_HI /* nCS4 [unused] */ -#define GPIO81_VALUE GPIO_OUT_LO -#define GPIO82_VALUE GPIO_OUT_LO -#define GPIO83_VALUE GPIO_OUT_LO -#define GPIO84_VALUE GPIO_OUT_LO +#define GPIO74_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD FCLK */ +#define GPIO75_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD LCLK */ +#define GPIO76_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD PCLK */ +#define GPIO77_VALUE (GPIO_OUT_LO|GPIO_ALT_FN2) /* LCD BIAS */ +#define GPIO78_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nCS2 */ +#define GPIO79_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nCS3 */ +#define GPIO80_VALUE (GPIO_OUT_HI|GPIO_ALT_FN2) /* nCS4 */ +#define GPIO81_VALUE (GPIO_OUT_LO|GPIO_ALT_FN1) /* BT SCLK */ +#define GPIO82_VALUE (GPIO_OUT_LO|GPIO_ALT_FN1) /* BT SFRM */ +#define GPIO83_VALUE (GPIO_OUT_LO|GPIO_ALT_FN1) /* BT MOSI */ +#define GPIO84_VALUE (GPIO_INPUT |GPIO_ALT_FN2) /* BT MISO */ +#define GPIO85_VALUE GPIO_OUT_HI /* nMSP_RST */ #endif /* #ifndef BLOB_ARCH_RA_ALPHA_H */ |
From: Stefan E. <se...@us...> - 2003-12-07 21:08:54
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv21563 Modified Files: memsetup-pxa.S Log Message: resolve these magic numbers Index: memsetup-pxa.S =================================================================== RCS file: /cvsroot/blob/blob/src/blob/memsetup-pxa.S,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- memsetup-pxa.S 10 Nov 2003 20:53:02 -0000 1.2 +++ memsetup-pxa.S 7 Dec 2003 21:08:51 -0000 1.3 @@ -166,28 +166,26 @@ */ /* clear the free-running clock bits (clear K0Free, K1Free, K2Free) */ - bic r4, r4, #(0x00800000 | 0x01000000 | 0x02000000) + bic r4, r4, #(MDREFR_K2FREE|MDREFR_K1FREE|MDREFR_K0FREE) /* set K1RUN if bank 0 installed */ - orr r4, r4, #0x00010000 + orr r4, r4, #(MDREFR_K1RUN|MDREFR_K0RUN|MDREFR_E0PIN) /* set K1DB2 (SDClk[1] = MemClk/2) */ -#if 0 - orreq r4, r4, #0x00020000 -#endif + orreq r4, r4, #(MDREFR_K1DB2) /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] ldr r4, [r1, #MDREFR_OFFSET] /* deassert SLFRSH */ - bic r4, r4, #0x00400000 + bic r4, r4, #(MDREFR_SLFRSH) /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] /* assert E1PIN */ - orr r4, r4, #0x00008000 + orr r4, r4, #(MDREFR_E1PIN) /* write back MDREFR */ str r4, [r1, #MDREFR_OFFSET] |
From: Nannie M. <y9x...@ya...> - 2003-12-07 08:52:32
|
FUEL SAVER PRO This revolutionary device Boosts Gas Mileage 27%+ by helping fuel burn bet= ter using three patented processes from General Motors. www.eoei.com?axel=3D49 PROVEN TECHNOLOGY A certified U.S. Environmental Protection Agency (EPA) laboratory recently= completed tests on the new Fuel Saver. The results were astounding! Maste= r Service, a subsidiary of Ford Motor Company, also conducted extensive em= issions testing and obtained similar, unheard of results. The achievements= of the Fuel Saver is so noteworthy to the environmental community, that C= ommercial News has featured it as their cover story in their June, 2000 ed= ition. Take a test drive Today - www.eoei.com?axel=3D49 No more advertisements, thanks - http://www.5jzd.org/out5s/pre-rem2e.asp p zq fikxjf nar gmqsxf edpfgzh k |
From: Russ D. <ru...@us...> - 2003-12-04 21:51:28
|
Update of /cvsroot/blob/blob In directory sc8-pr-cvs1:/tmp/cvs-serv19853 Modified Files: configure.in Log Message: cleanup Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -r1.78 -r1.79 --- configure.in 10 Nov 2003 20:50:23 -0000 1.78 +++ configure.in 4 Dec 2003 21:51:23 -0000 1.79 @@ -602,7 +602,6 @@ cramfs_flag=yes zimage_flag=yes network_flag=yes - network_flag=yes fi |
From: Russ D. <ru...@us...> - 2003-12-04 21:50:38
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv19621 Modified Files: reboot.c Log Message: blob_item patch Index: reboot.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/reboot.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- reboot.c 8 Feb 2002 12:55:16 -0000 1.8 +++ reboot.c 4 Dec 2003 21:50:35 -0000 1.9 @@ -42,7 +42,7 @@ void (*blob)(void) = (void (*)(void))BLOB_RAM_BASE; /* sanity check */ - if(blob_status.blobType == fromFlash) { + if(blob_status.blob.type == fromFlash) { printerrprefix(); printf("blob not downloaded\n"); return -EINVAL; |
From: Russ D. <ru...@us...> - 2003-12-04 21:45:50
|
Update of /cvsroot/blob/blob/include/blob In directory sc8-pr-cvs1:/tmp/cvs-serv18205/include/blob Modified Files: download.h main.h Log Message: blob_item patch Index: download.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/download.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- download.h 4 Sep 2003 17:46:59 -0000 1.1 +++ download.h 4 Dec 2003 21:45:16 -0000 1.2 @@ -26,6 +26,7 @@ extern blob_status_t blob_status; +blob_item_t *get_blob_item(char *name); void PrintSerialSpeed(serial_baud_t speed); int set_download_parameters(char *name, u32 *startAddress, int *bufLen, int **numRead, u32 **digest); Index: main.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/main.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- main.h 27 Apr 2002 08:11:58 -0000 1.7 +++ main.h 4 Dec 2003 21:45:16 -0000 1.8 @@ -45,22 +45,20 @@ } block_source_t; +/* possibly switch this all over to a seperate ram partition table + * later (possibly same structure, but different table) */ typedef struct { - int kernelSize; - block_source_t kernelType; - u32 kernel_md5_digest[4]; - - int paramSize; - block_source_t paramType; - u32 param_md5_digest[4]; - - int ramdiskSize; - block_source_t ramdiskType; - u32 ramdisk_md5_digest[4]; + int size; + block_source_t type; + u32 *addr; + u32 md5_digest[4]; +} blob_item_t; - int blobSize; - block_source_t blobType; - u32 blob_md5_digest[4]; +typedef struct { + blob_item_t kernel; + blob_item_t param; + blob_item_t ramdisk; + blob_item_t blob; serial_baud_t downloadSpeed; serial_baud_t terminalSpeed; |
From: Russ D. <ru...@us...> - 2003-12-04 21:45:23
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv18205/src/blob Modified Files: flash-commands.c linux.c load_kernel.c main.c Log Message: blob_item patch Index: flash-commands.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/flash-commands.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- flash-commands.c 11 Mar 2003 19:36:25 -0000 1.7 +++ flash-commands.c 4 Dec 2003 21:45:16 -0000 1.8 @@ -41,6 +41,7 @@ #include <blob/flash.h> #include <blob/partition.h> #include <blob/main.h> +#include <blob/download.h> #include <blob/command.h> @@ -62,14 +63,12 @@ static int Flash(int argc, char *argv[]) { int rv; - u32 *src; u32 *dst; - u32 numBytes = 0; u32 maxSize = 0; u32 nwords; char *dest_part; - block_source_t type = fromFlash; - + blob_item_t *item; + if(argc < 2) return -ENOPARAMS; @@ -85,46 +84,30 @@ return 0; } - if(strncmp(argv[1], "blob", 5) == 0) { - src = (u32 *)BLOB_RAM_BASE; - numBytes = blob_status.blobSize; - type = blob_status.blobType; - } else if(strncmp(argv[1], "param", 6) == 0) { - src = (u32 *)PARAM_RAM_BASE; - numBytes = blob_status.paramSize; - type = blob_status.paramType; - } else if(strncmp(argv[1], "kernel", 7) == 0) { - src = (u32 *)KERNEL_RAM_BASE; - numBytes = blob_status.kernelSize; - type = blob_status.kernelType; - } else if(strncmp(argv[1], "ramdisk", 8) == 0) { - src = (u32 *)RAMDISK_RAM_BASE; - numBytes = blob_status.ramdiskSize; - type = blob_status.ramdiskType; - } else { + if (!(item = get_blob_item(argv[1]))) { printerror(EINVAL, argv[1]); return 0; } - if(type == fromFlash) { + if(item->type == fromFlash) { printerrprefix(); printf("%s not downloaded\n", argv[1]); return -EINVAL; } - if(numBytes > maxSize) { + if(item->size > maxSize) { printerrprefix(); printf("image too large for flash: 0x%08x > 0x%08x\n", - (unsigned int)numBytes, (unsigned int)maxSize); + (unsigned int)item->size, (unsigned int)maxSize); return -ETOOLONG; } - nwords = (numBytes + sizeof(u32) - 1) / sizeof(u32); + nwords = (item->size + sizeof(u32) - 1) / sizeof(u32); printf("Saving %s to flash\n", argv[1]); - flash_write_region(dst, src, nwords); + flash_write_region(dst, item->addr, nwords); return 0; } Index: linux.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/linux.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- linux.c 4 Sep 2003 17:27:33 -0000 1.18 +++ linux.c 4 Dec 2003 21:45:17 -0000 1.19 @@ -34,6 +34,7 @@ #include <blob/main.h> #include <blob/memory.h> #include <blob/util.h> +#include <blob/param_block.h> #include <asm-arm/setup.h> @@ -52,7 +53,7 @@ static int boot_linux(int argc, char *argv[]) { void (*theKernel)(int zero, int arch, u32 params) = - (void (*)(int, int, u32))KERNEL_RAM_BASE; + (void (*)(int, int, u32))blob_status.kernel.addr; setup_start_tag(); setup_memory_tags(); @@ -175,8 +176,8 @@ params->hdr.tag = ATAG_INITRD; params->hdr.size = tag_size(tag_initrd); - params->u.initrd.start = RAMDISK_RAM_BASE; - params->u.initrd.size = RAMDISK_FLASH_LEN; + params->u.initrd.start = blob_status.ramdisk.addr; + params->u.initrd.size = blob_status.ramdisk.size; params = tag_next(params); @@ -197,8 +198,8 @@ params->hdr.tag = ATAG_INITRD2; params->hdr.size = tag_size(tag_initrd); - params->u.initrd.start = RAMDISK_RAM_BASE; - params->u.initrd.size = RAMDISK_FLASH_LEN; + params->u.initrd.start = blob_status.ramdisk.addr; + params->u.initrd.size = blob_status.ramdisk.size; params = tag_next(params); } Index: load_kernel.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/load_kernel.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- load_kernel.c 6 Aug 2003 22:55:41 -0000 1.16 +++ load_kernel.c 4 Dec 2003 21:45:18 -0000 1.17 @@ -64,6 +64,7 @@ 0 }; +/* FIXME: need other fodder ram bases too */ #define FODDER_RAM_BASE (0xC0F00000) const void *fodder_ram_base = (void *) FODDER_RAM_BASE; @@ -117,14 +118,14 @@ printf("Loading kernel from partition %s (%s) ...", p->name, loader->name); - if ((size = loader->load_kernel((u32 *) KERNEL_RAM_BASE, + if ((size = loader->load_kernel(blob_status->kernel.addr, &part, "/boot/linux")) == 0) { eprintf("error loading kernel!\n"); return(EINVAL); } - blob_status->kernelSize = size; - blob_status->kernelType = fromFlash; + blob_status->kernel.size = size; + blob_status->kernel.type = fromFlash; printf("loaded 0x%08x (%d) bytes\n", size, size); return(ENOERROR); Index: main.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/main.c,v retrieving revision 1.54 retrieving revision 1.55 diff -u -d -r1.54 -r1.55 --- main.c 4 Sep 2003 17:46:59 -0000 1.54 +++ main.c 4 Dec 2003 21:45:19 -0000 1.55 @@ -72,9 +72,9 @@ void *params; /* initialise status */ - blob_status.paramType = fromFlash; - blob_status.kernelType = fromFlash; - blob_status.ramdiskType = fromFlash; + blob_status.param.type = fromFlash; + blob_status.kernel.type = fromFlash; + blob_status.ramdisk.type = fromFlash; blob_status.downloadSpeed = baud_115200; blob_status.terminalSpeed = TERMINAL_SPEED; blob_status.load_ramdisk = LOAD_RAMDISK; @@ -179,79 +179,51 @@ } /* main */ - -static int PrintStatus(int argc, char *argv[]) +static int print_item_status(char *name) { - printf(version_str); + blob_item_t *item = get_blob_item(name); + const blob_partition_t *p = pt_find_by_name(name); - printf("Download speed : "); - PrintSerialSpeed(blob_status.downloadSpeed); - printf(" baud\n"); + if (!item || (!p && item->type == fromFlash)) return -EINVAL; - printf("Terminal speed : "); - PrintSerialSpeed(blob_status.terminalSpeed); - printf(" baud\n"); - printf("blob (0x%08x): ", BLOB_FLASH_BASE); - if(blob_status.blobType == fromFlash) { - printf("from flash\n"); - } else { - printf("downloaded at 0x%08x, %i bytes\n", - BLOB_RAM_BASE, blob_status.blobSize); -#ifdef CONFIG_MD5_SUPPORT - printf(" MD5: "); - print_md5_digest(blob_status.blob_md5_digest); - printf("\n"); -#endif - } + printf("%7s ", name); + if (p) + printf("(0x%08x): ", pt_flash_start(p)); + else + printf("%10s", ":"); -#ifdef PARAM_FLASH_BASE - printf("param (0x%08x): ", PARAM_FLASH_BASE); - if(blob_status.paramType == fromFlash) { + if(item->type == fromFlash) { printf("from flash\n"); } else { printf("downloaded at 0x%08x, %i bytes\n", - PARAM_RAM_BASE, blob_status.paramSize); + item->addr, item->size); #ifdef CONFIG_MD5_SUPPORT printf(" MD5: "); - print_md5_digest(blob_status.param_md5_digest); + print_md5_digest(item->md5_digest); printf("\n"); #endif } -#else - printf("param : Not available\n"); -#endif +} -#ifdef KERNEL_FLASH_BASE - printf("kernel (0x%08x): ", KERNEL_FLASH_BASE); - if(blob_status.kernelType == fromFlash) { - printf("from flash\n"); - } else { - printf("downloaded at 0x%08x, %i bytes\n", - KERNEL_RAM_BASE, blob_status.kernelSize); -#ifdef CONFIG_MD5_SUPPORT - printf(" MD5: "); - print_md5_digest(blob_status.kernel_md5_digest); - printf("\n"); -#endif - } -#endif -#ifdef RAMDISK_FLASH_BASE - printf("ramdisk (0x%08x): ", RAMDISK_FLASH_BASE); - if(blob_status.ramdiskType == fromFlash) { - printf("from flash\n"); - } else { - printf("downloaded at 0x%08x, %i bytes\n", - RAMDISK_RAM_BASE, blob_status.ramdiskSize); -#ifdef CONFIG_MD5_SUPPORT - printf(" MD5: "); - print_md5_digest(blob_status.ramdisk_md5_digest); - printf("\n"); -#endif - } -#endif - +static int PrintStatus(int argc, char *argv[]) +{ + printf(version_str); + + printf("Download speed : "); + PrintSerialSpeed(blob_status.downloadSpeed); + printf(" baud\n"); + + printf("Terminal speed : "); + PrintSerialSpeed(blob_status.terminalSpeed); + printf(" baud\n"); + + print_item_status("blob"); + print_item_status("param"); + print_item_status("kernel"); + print_item_status("ramdisk"); + return 0; } |
From: Russ D. <ru...@us...> - 2003-12-04 21:45:23
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1:/tmp/cvs-serv18205/src/lib Modified Files: download.c Log Message: blob_item patch Index: download.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/download.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- download.c 27 Nov 2003 08:28:23 -0000 1.3 +++ download.c 4 Dec 2003 21:45:19 -0000 1.4 @@ -40,12 +40,29 @@ #include <blob/arch.h> #include <blob/errno.h> #include <blob/error.h> +#include <blob/main.h> #include <blob/md5.h> #include <blob/md5support.h> #include <blob/serial.h> #include <blob/download.h> #include <blob/command.h> +#include <blob/partition.h> + +blob_item_t *get_blob_item(char *what) +{ + blob_item_t *ret = NULL; + + if (!strcmp(what, "blob")) + ret = &blob_status.blob; + else if (!strcmp(what, "param")) + ret = &blob_status.param; + else if (!strcmp(what, "kernel")) + ret = &blob_status.kernel; + else if (!strcmp(what, "ramdisk")) + ret = &blob_status.ramdisk; + return ret; +} void PrintSerialSpeed(serial_baud_t speed) { @@ -58,41 +75,25 @@ int *bufLen, int **numRead, u32 **digest) { - /* Use of _FLASH_LEN here is WRONG. This should be - the size of the ram buffer */ - if(strncmp(name, "blob", 5) == 0) { - /* download blob */ - *startAddress = BLOB_RAM_BASE; - *bufLen = BLOB_FLASH_LEN; - *numRead = &blob_status.blobSize; - *digest = blob_status.blob_md5_digest; - blob_status.blobType = fromDownload; - } else if(strncmp(name, "param", 6) == 0) { - /* download param */ - *startAddress = PARAM_RAM_BASE; - *bufLen = PARAM_FLASH_LEN; - *numRead = &blob_status.paramSize; - *digest = blob_status.param_md5_digest; - blob_status.paramType = fromDownload; - } else if(strncmp(name, "kernel", 7) == 0) { - /* download kernel */ - *startAddress = KERNEL_RAM_BASE; - *bufLen = KERNEL_FLASH_LEN; - *numRead = &blob_status.kernelSize; - *digest = blob_status.kernel_md5_digest; - blob_status.kernelType = fromDownload; - } else if(strncmp(name, "ramdisk", 8) == 0) { - /* download ramdisk */ - *startAddress = RAMDISK_RAM_BASE; - *bufLen = RAMDISK_FLASH_LEN; - *numRead = &blob_status.ramdiskSize; - *digest = blob_status.ramdisk_md5_digest; - blob_status.ramdiskType = fromDownload; - } else { + const blob_partition_t *ptable; + blob_item_t *item; + + if (!(ptable = pt_find_by_name(name)) || !(item = get_blob_item(name))) { printerror(-EINVAL, name); return -EINVAL; } + if (!(*startAddress = ptable->mem_base)) { + printf("%s cannot be loaded to ram\n", name); + return -EINVAL; + } + + *bufLen = ptable->size; + *numRead = &item->size; + *digest = item->md5_digest; + item->addr = (u32 *) *startAddress; /* FIXME ? */ + item->type = fromDownload; + return 0; } @@ -101,54 +102,48 @@ { u32 *dst = 0; u32 *src = 0; - int numWords; + u32 numWords; + const blob_partition_t *ptable; + blob_item_t *item; - if(strncmp(what, "blob", 5) == 0) { - dst = (u32 *)BLOB_RAM_BASE; - src = (u32 *)BLOB_FLASH_BASE; - numWords = BLOB_FLASH_LEN / 4; - blob_status.blobSize = 0; - blob_status.blobType = fromFlash; - printf("Loading blob from flash "); -#ifdef PARAM_FLASH_BASE - } else if(strncmp(what, "param", 6) == 0) { - dst = (u32 *)PARAM_RAM_BASE; - src = (u32 *)PARAM_FLASH_BASE; - numWords = PARAM_FLASH_LEN / 4; - blob_status.paramSize = 0; - blob_status.paramType = fromFlash; - printf("Loading paramater block from flash "); -#endif - } else if(strncmp(what, "kernel", 7) == 0) { -#if defined(CONFIG_CRAMFS_SUPPORT) || defined(CONFIG_ZIMAGE_SUPPORT) || defined(CONFIG_JFFS2_SUPPORT) - return load_kernel(&blob_status); -#else - dst = (u32 *)KERNEL_RAM_BASE; - src = (u32 *)KERNEL_FLASH_BASE; - numWords = KERNEL_FLASH_LEN / 4; - blob_status.kernelSize = 0; - blob_status.kernelType = fromFlash; - printf("Loading kernel from flash "); -#endif -#ifdef RAMDISK_FLASH_BASE - } else if(strncmp(what, "ramdisk", 8) == 0) { - dst = (u32 *)RAMDISK_RAM_BASE; - src = (u32 *)RAMDISK_FLASH_BASE; - numWords = RAMDISK_FLASH_LEN / 4; - blob_status.ramdiskSize = 0; - blob_status.ramdiskType = fromFlash; - printf("Loading ramdisk from flash "); -#endif - } else { + if (!(ptable = pt_find_by_name(what)) || + !(item = get_blob_item(what))) { printerror(EINVAL, what); return 0; } - MyMemCpy(dst, src, numWords); - printf(" done\n"); + src = pt_flash_start(ptable); + numWords = ptable->size / 4; + if (!(dst = (u32 *) ptable->mem_base)) { + printf("%s cannot be loaded to ram\n", what); + return 0; + } + + + item->size = numWords * 4; + item->type = fromFlash; + item->addr = dst; + + /* This is a bit messy, stuff needs some cleaup for sure */ +#if defined(CONFIG_CRAMFS_SUPPORT) || \ + defined(CONFIG_ZIMAGE_SUPPORT) || \ + defined(CONFIG_JFFS2_SUPPORT) + if (!strcmp("kernel", what)) { + item->size = 0; + load_kernel(&blob_status); + } else +#endif + { + printf("Loading %s from flash ", what); + MyMemCpy(dst, src, numWords); + printf(" done\n"); + } return 0; } + + + void do_md5sum(u32 *addr, size_t len, u32 *digest) |
From: Erik M. <J.A...@it...> - 2003-12-03 19:01:02
|
On Thu, Nov 27, 2003 at 10:06:09AM -0700, Russ Dill wrote: > This patch gets rid of all the kernelSize, kernelType, paramSize, etc > defines in blob_status_t and replaces them each with a blob_item_t > struct: >=20 > typedef struct { > int size; > block_source_t type; > u32 *addr; > u32 md5_digest[4]; > } blob_item_t; >=20 > This helps generalize and simplify a lot of the code. Let me know what > you think of the patch. Looks good to me. diffstat output: include/blob/download.h | 1=20 include/blob/main.h | 26 ++++---- src/blob/flash-commands.c | 35 +++-------- src/blob/linux.c | 10 +-- src/blob/load_kernel.c | 7 +- src/blob/main.c | 94 +++++++++++-------------------- src/blob/reboot.c | 2=20 src/lib/download.c | 137 ++++++++++++++++++++++-------------------= -----=20 8 files changed, 131 insertions(+), 181 deletions(-) It removes more than it adds, so it simplifies the code. Looks OK to me. Erik --=20 Erik Mouw J.A...@it... mo...@nl... |
From: Russ D. <ru...@in...> - 2003-11-27 17:06:20
|
This patch gets rid of all the kernelSize, kernelType, paramSize, etc defines in blob_status_t and replaces them each with a blob_item_t struct: typedef struct { int size; block_source_t type; u32 *addr; u32 md5_digest[4]; } blob_item_t; This helps generalize and simplify a lot of the code. Let me know what you think of the patch. -- Russ Dill <ru...@in...> Bitpro, Inc |
From: Russ D. <ru...@us...> - 2003-11-27 08:59:50
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1:/tmp/cvs-serv20023 Modified Files: cfi16.c cfi32.c Log Message: copyright notices Index: cfi16.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/cfi16.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- cfi16.c 27 Nov 2003 08:02:30 -0000 1.1 +++ cfi16.c 27 Nov 2003 08:59:46 -0000 1.2 @@ -1,8 +1,8 @@ /* * cfi16: CFI functions for 16 bit flash * - * Copyright (C) 2001 Erik Mouw (J.A...@it...) - * Copyright (C) 1999 Jan-Derk Bakker (J.D...@it...) + * Copyright (C) 2001-2002 Hewlett-Packard Company + * Written by Christopher Hoover <ch...@hp...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by Index: cfi32.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/cfi32.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- cfi32.c 27 Nov 2003 08:02:31 -0000 1.1 +++ cfi32.c 27 Nov 2003 08:59:46 -0000 1.2 @@ -1,8 +1,8 @@ /* * cfi32: CFI functions for 32 bit flash * - * Copyright (C) 2001 Erik Mouw (J.A...@it...) - * Copyright (C) 1999 Jan-Derk Bakker (J.D...@it...) + * Copyright (C) 2001-2002 Hewlett-Packard Company + * Written by Christopher Hoover <ch...@hp...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by |
From: Christopher H. <ch...@mu...> - 2003-11-27 08:50:30
|
This is my code, so please stick my name and add an HP copyright on it. -ch > -----Original Message----- > From: blo...@li... > [mailto:blo...@li...] On > Behalf Of Russ Dill > Sent: Thursday, November 27, 2003 12:03 AM > To: blo...@li... > Subject: CVS: blob/src/lib cfi16.c,NONE,1.1 cfi32.c,NONE,1.1 > Makefile.am,1.34,1.35 > > > Update of /cvsroot/blob/blob/src/lib > In directory sc8-pr-cvs1:/tmp/cvs-serv9521/src/lib > > Modified Files: > Makefile.am > Added Files: > cfi16.c cfi32.c > Log Message: > flesh out cfi probing, and only compile it in if requested by > the arch file > > --- NEW FILE: cfi16.c --- > /* > * cfi16: CFI functions for 16 bit flash > * > * Copyright (C) 2001 Erik Mouw (J.A...@it...) > * Copyright (C) 1999 Jan-Derk Bakker (J.D...@it...) > * > * This program is free software; you can redistribute it > and/or modify > * it under the terms of the GNU General Public License as > published by > * the Free Software Foundation; either version 2 of the License, or > * (at your option) any later version. > * > * This program is distributed in the hope that it will be useful, > * but WITHOUT ANY WARRANTY; without even the implied warranty of > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > * GNU General Public License for more details. > * > * You should have received a copy of the GNU General Public License > * along with this program; if not, write to the Free Software > * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA > 02111-1307 USA > * > */ > > #ident "$Id: cfi16.c,v 1.1 2003/11/27 08:02:30 russd Exp $" > > #ifdef HAVE_CONFIG_H > # include <blob/config.h> > #endif > > #include <blob/errno.h> > #include <blob/flash.h> > #include <blob/util.h> > #include <blob/debug.h> > #include <blob/cfi.h> > > /* flash commands for a single 16 bit cfi flash chip */ > #define READ_ARRAY 0x000000FF > #define READ_QUERY 0x00000098 > > > /* automatic descriptor support */ > > #define MAX_AUTO_DESCRIPTORS 4 > static flash_descriptor_t auto_descriptors[MAX_AUTO_DESCRIPTORS + 1]; > > int flash_query_descriptors_cfi16(u32 *flashAddr, > flash_descriptor_t **out) { > u16 *addr = (u16 *) flashAddr; > int result, nregions, n; > > addr[0x55] = READ_QUERY; > barrier(); > > if (addr[0x10] != 'Q' && addr[0x11] != 'R' && > addr[0x12] != 'Y') { > result = -EINVAL; > goto out; > } > > dprintf("cfi16: manuf_code = %02X\n", addr[CFI16_MANUF_CODE]); > dprintf("cfi16: device code = %02X\n", addr[CFI16_DEVICE_CODE]); > dprintf("cfi16: device size = 2^%d bytes\n", > addr[CFI16_DEVICE_SIZE_LG2]); > > nregions = addr[CFI16_ERASE_REGION_COUNT]; > > #define READ_U16LE(off) ((addr[(off)]) | (addr[(off) + 1]<<8)) > > for (n = 0; n < nregions && n < MAX_AUTO_DESCRIPTORS; n++) { > u32 xcount = READ_U16LE(CFI16_ERASE_REGION_XBLKS(n)); > u32 count = xcount + 1; > u32 xsize = READ_U16LE(CFI16_ERASE_REGION_XSIZE(n)); > u32 size = (xsize == 0) ? 128 : xsize * 256; > > dprintf("cfi16: erase region #%d\n", n); > dprintf("cfi16: count = %d\n", count); > dprintf("cfi16: size = %d\n", size); > > auto_descriptors[n].size = size; > auto_descriptors[n].num = count; > auto_descriptors[n].lockable = 1; /* fix me */ > } > > #undef READ_U16LE > > auto_descriptors[n].size = 0; > auto_descriptors[n].num = 0; > > *out = auto_descriptors; > result = 0; > > out: > /* put flash back into Read Array mode */ > barrier(); > > *addr = READ_ARRAY; > barrier(); > > return result; > } > > --- NEW FILE: cfi32.c --- > /* > * cfi32: CFI functions for 32 bit flash > * > * Copyright (C) 2001 Erik Mouw (J.A...@it...) > * Copyright (C) 1999 Jan-Derk Bakker (J.D...@it...) > * > * This program is free software; you can redistribute it > and/or modify > * it under the terms of the GNU General Public License as > published by > * the Free Software Foundation; either version 2 of the License, or > * (at your option) any later version. > * > * This program is distributed in the hope that it will be useful, > * but WITHOUT ANY WARRANTY; without even the implied warranty of > * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > * GNU General Public License for more details. > * > * You should have received a copy of the GNU General Public License > * along with this program; if not, write to the Free Software > * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA > 02111-1307 USA > * > */ > > #ident "$Id: cfi32.c,v 1.1 2003/11/27 08:02:31 russd Exp $" > > #ifdef HAVE_CONFIG_H > # include <blob/config.h> > #endif > > #include <blob/errno.h> > #include <blob/flash.h> > #include <blob/util.h> > #include <blob/debug.h> > #include <blob/cfi.h> > > /* flash commands for two interleaved 16 bit flash chips */ > #define READ_ARRAY 0x00FF00FF > #define READ_QUERY 0x00980098 > > > /* automatic descriptor support */ > > #define MAX_AUTO_DESCRIPTORS 4 > static flash_descriptor_t auto_descriptors[MAX_AUTO_DESCRIPTORS + 1]; > > int flash_query_descriptors_cfi32(u32 *addr, > flash_descriptor_t **out) { > int result, nregions, n; > > addr[0x55] = READ_QUERY; > barrier(); > > if (addr[0x10] != ('Q' | ('Q' << 16)) && > addr[0x11] != ('R' | ('R' << 16)) && > addr[0x12] != ('Y' | ('Y' << 16))) { > result = -EINVAL; > goto out; > } > > dprintf("cfi32: manuf_code = %02X\n", > addr[CFI32_MANUF_CODE] & 0xff); > dprintf("cfi32: device code = %02X\n", > addr[CFI32_DEVICE_CODE] & 0xff); > dprintf("cfi32: device size = 2^%d bytes\n", > addr[CFI32_DEVICE_SIZE_LG2] & 0xff); > > dprintf("cfi32: manuf_code = %02X\n", > addr[CFI32_MANUF_CODE] >> 16); > dprintf("cfi32: device code = %02X\n", > addr[CFI32_DEVICE_CODE] >> 16); > dprintf("cfi32: device size = 2^%d bytes\n", > addr[CFI32_DEVICE_SIZE_LG2] >> 16); > > /* From here on out, assume both chips return the same data */ > nregions = addr[CFI32_ERASE_REGION_COUNT] & 0xffff; > > #define READ_U16LE(off) ((addr[(off)] & 0xff) | > ((addr[(off) + 1] & 0xff)<<8)) > > for (n = 0; n < nregions && n < MAX_AUTO_DESCRIPTORS; n++) { > u32 xcount = READ_U16LE(CFI32_ERASE_REGION_XBLKS(n)); > u32 count = xcount + 1; > u32 xsize = READ_U16LE(CFI32_ERASE_REGION_XSIZE(n)); > u32 size = (xsize == 0) ? 128 : xsize * 256; > > dprintf("cfi32: erase region #%d\n", n); > dprintf("cfi32: count = %d\n", count); > dprintf("cfi32: size = %d\n", size); > > auto_descriptors[n].size = size; > auto_descriptors[n].num = count; > auto_descriptors[n].lockable = 1; /* fix me */ > } > > #undef READ_U32LE > > auto_descriptors[n].size = 0; > auto_descriptors[n].num = 0; > > *out = auto_descriptors; > result = 0; > > out: > /* put flash back into Read Array mode */ > barrier(); > > *addr = READ_ARRAY; > barrier(); > > return result; > } > > Index: Makefile.am > =================================================================== > RCS file: /cvsroot/blob/blob/src/lib/Makefile.am,v > retrieving revision 1.34 > retrieving revision 1.35 > diff -u -d -r1.34 -r1.35 > --- Makefile.am 10 Nov 2003 17:06:41 -0000 1.34 > +++ Makefile.am 27 Nov 2003 08:02:31 -0000 1.35 > @@ -26,6 +26,8 @@ > > > libblob_a_SOURCES = \ > + cfi16.c \ > + cfi32.c \ > command.c \ > crc32.c \ > download.c \ > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us > help YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > blob-cvs-commit mailing list blo...@li... > https://lists.sourceforge.net/lists/listinfo/blob-cvs-commit > |
From: Russ D. <ru...@us...> - 2003-11-27 08:28:28
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1:/tmp/cvs-serv13693 Modified Files: download.c Log Message: apply strcmp simplication to download.c Index: download.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/download.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- download.c 10 Nov 2003 13:17:26 -0000 1.2 +++ download.c 27 Nov 2003 08:28:23 -0000 1.3 @@ -164,33 +164,33 @@ if(argc < 2) return -ENOPARAMS; - if(strncmp(argv[1], "1200", 5) == 0) { + if(strcmp(argv[1], "1200") == 0) { blob_status.downloadSpeed = baud_1200; - } else if(strncmp(argv[1], "1k2", 4) == 0) { + } else if(strcmp(argv[1], "1k2") == 0) { blob_status.downloadSpeed = baud_1200; - } else if(strncmp(argv[1], "9600", 5) == 0) { + } else if(strcmp(argv[1], "9600") == 0) { blob_status.downloadSpeed = baud_9600; - } else if(strncmp(argv[1], "9k6", 4) == 0) { + } else if(strcmp(argv[1], "9k6") == 0) { blob_status.downloadSpeed = baud_9600; - } else if(strncmp(argv[1], "19200", 6) == 0) { + } else if(strcmp(argv[1], "19200") == 0) { blob_status.downloadSpeed = baud_19200; - } else if(strncmp(argv[1], "19k2", 5) == 0) { + } else if(strcmp(argv[1], "19k2") == 0) { blob_status.downloadSpeed = baud_19200; - } else if(strncmp(argv[1], "38400", 7) == 0) { + } else if(strcmp(argv[1], "38400") == 0) { blob_status.downloadSpeed = baud_38400; - } else if(strncmp(argv[1], "38k4", 5) == 0) { + } else if(strcmp(argv[1], "38k4") == 0) { blob_status.downloadSpeed = baud_38400; - } else if(strncmp(argv[1], "57600", 6) == 0) { + } else if(strcmp(argv[1], "57600") == 0) { blob_status.downloadSpeed = baud_57600; - } else if(strncmp(argv[1], "57k6", 5) == 0) { + } else if(strcmp(argv[1], "57k6") == 0) { blob_status.downloadSpeed = baud_57600; - } else if(strncmp(argv[1], "115200", 7) == 0) { + } else if(strcmp(argv[1], "115200") == 0) { blob_status.downloadSpeed = baud_115200; - } else if(strncmp(argv[1], "115k2", 6) == 0) { + } else if(strcmp(argv[1], "115k2") == 0) { blob_status.downloadSpeed = baud_115200; - } else if(strncmp(argv[1], "230400", 7) == 0) { + } else if(strcmp(argv[1], "230400") == 0) { blob_status.downloadSpeed = baud_230400; - } else if(strncmp(argv[1], "230k4", 6) == 0) { + } else if(strcmp(argv[1], "230k4") == 0) { blob_status.downloadSpeed = baud_230400; } else { return -EINVAL; |
From: Russ D. <ru...@us...> - 2003-11-27 08:25:01
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv13228 Modified Files: amd32.c Log Message: typo Index: amd32.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/amd32.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- amd32.c 27 Nov 2003 08:09:44 -0000 1.7 +++ amd32.c 27 Nov 2003 08:24:58 -0000 1.8 @@ -59,7 +59,7 @@ #define ERR 4 -inline void flash_cmd_amd32(u32 offset, u16 cmd) +inline void flash_cmd_amd32(u32 offset, u32 cmd) { *((u32 *)(flash_base | offset)) = data_to_flash(cmd); barrier(); |
From: Russ D. <ru...@us...> - 2003-11-27 08:09:47
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv10611 Modified Files: amd32.c Log Message: cleanup of amd32 so that it will work for different flash bases Index: amd32.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/amd32.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- amd32.c 19 Jun 2002 04:41:49 -0000 1.6 +++ amd32.c 27 Nov 2003 08:09:44 -0000 1.7 @@ -59,12 +59,13 @@ #define ERR 4 -static void flash_read_array_amd32(void) +inline void flash_cmd_amd32(u32 offset, u16 cmd) { - *(u32 *)FLASH_ADDR1 = data_to_flash(READ_ARRAY); + *((u32 *)(flash_base | offset)) = data_to_flash(cmd); barrier(); } + /* NOT! for amd16.c, this examines one chip of the two chip interleave */ static int get_status_amd16(u32 result, u32 last, int chip) { @@ -113,18 +114,13 @@ static int flash_erase_amd32(u32 *addr) { /* prepare for erase */ - *(u32 *)FLASH_ADDR1 = data_to_flash(UNLOCK1); - barrier(); - *(u32 *)FLASH_ADDR2 = data_to_flash(UNLOCK2); - barrier(); - *(u32 *)FLASH_ADDR1 = data_to_flash(ERASE_SETUP); - barrier(); + flash_cmd_amd32(FLASH_ADDR1, UNLOCK1); + flash_cmd_amd32(FLASH_ADDR2, UNLOCK2); + flash_cmd_amd32(FLASH_ADDR1, ERASE_SETUP); /* erase command */ - *(u32 *)FLASH_ADDR1 = data_to_flash(UNLOCK1); - barrier(); - *(u32 *)FLASH_ADDR2 = data_to_flash(UNLOCK2); - barrier(); + flash_cmd_amd32(FLASH_ADDR1, UNLOCK1); + flash_cmd_amd32(FLASH_ADDR2, UNLOCK2); *addr = data_to_flash(ERASE_CONFIRM); /* I just can't find clean ways of dealing with this flash... @@ -144,7 +140,7 @@ if (get_status_amd32(addr) < 0) { /* put flash back into Read Array mode */ - flash_read_array_amd32(); + flash_cmd_amd32(FLASH_ADDR1, READ_ARRAY); return -EFLASHERASE; } @@ -157,19 +153,16 @@ static int flash_write_amd32(u32 *dst, const u32* src) { - *(u32 *)FLASH_ADDR1 = data_to_flash(UNLOCK1); - barrier(); - *(u32 *)FLASH_ADDR2 = data_to_flash(UNLOCK2); - barrier(); - *(u32 *)FLASH_ADDR1 = data_to_flash(PGM_SETUP); - barrier(); + flash_cmd_amd32(FLASH_ADDR1, UNLOCK1); + flash_cmd_amd32(FLASH_ADDR2, UNLOCK2); + flash_cmd_amd32(FLASH_ADDR1, PGM_SETUP); *dst = *src; barrier(); if (get_status_amd32(dst) < 0 || *dst != *src) { barrier(); - flash_read_array_amd32(); + flash_cmd_amd32(FLASH_ADDR1, READ_ARRAY); return -EFLASHPGM; } @@ -200,15 +193,12 @@ static int flash_query_block_lock_amd32(u32 *blockStart) { int result; - *(u32 *)FLASH_ADDR1 = data_to_flash(UNLOCK1); - barrier(); - *(u32 *)FLASH_ADDR2 = data_to_flash(UNLOCK2); - barrier(); - *(u32 *)FLASH_ADDR1 = data_to_flash(CONFIG_QUERY); - barrier(); + flash_cmd_amd32(FLASH_ADDR1, UNLOCK1); + flash_cmd_amd32(FLASH_ADDR2, UNLOCK2); + flash_cmd_amd32(FLASH_ADDR1, CONFIG_QUERY); result = *(u32 *)(blockStart + 2); - flash_read_array_amd32(); + flash_cmd_amd32(FLASH_ADDR1, READ_ARRAY); return !!result; } |
From: Russ D. <ru...@us...> - 2003-11-27 08:05:43
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv10152 Modified Files: partition.c Log Message: make offset flash work Index: partition.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/partition.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- partition.c 7 Aug 2003 19:31:01 -0000 1.10 +++ partition.c 27 Nov 2003 08:05:39 -0000 1.11 @@ -216,7 +216,7 @@ case BLOB_PART_VALID_MAGIC: printf(" 0x%08x @ 0x%08x (%d kB): '%s'\n", - t->size, t->offset, t->size, t->name); + t->size, t->offset, t->size >> 10, t->name); if(t->flags & BLOB_PART_FLAG_PTABLE) printf(" contains parameter blocks\n"); @@ -259,7 +259,7 @@ /* walk through ptable and fix up BLOB_PART_OFS_APPEND and BLOB_PART_SIZ_FULL entries */ - u32 offset = ptable->offset; + u32 offset = 0; u32 size = ptable->size; int no_more_parts_allowed = 0; blob_partition_t *t = ptable; @@ -436,6 +436,8 @@ const blob_partition_t *pt_find_by_address(u32 addr) { blob_partition_t *t = ptable; + + addr -= ptable->offset; for(;;) { t = next_ptable_entry(t); |
From: Russ D. <ru...@us...> - 2003-11-27 08:04:19
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1:/tmp/cvs-serv9911 Modified Files: smdk2500.c Log Message: update board file Index: smdk2500.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/smdk2500.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- smdk2500.c 27 Nov 2003 03:34:37 -0000 1.3 +++ smdk2500.c 27 Nov 2003 08:04:16 -0000 1.4 @@ -34,73 +34,43 @@ #include <blob/time.h> #include <blob/partition.h> #include <blob/arch.h> +#include <blob/cfi.h> #include <net/ether.h> -/* flash descriptor for smdk2500 flash */ -/* 1x Am29LV160DB (2MB) */ -static const flash_descriptor_t smdk2500_flash_descriptors[] = -{ - { - size: 16 * 1024, - num: 1, - lockable: 1 - }, - { - size: 8 * 1024, - num: 2, - lockable: 1 - }, - { - size: 32 * 1024, - num: 1, - lockable: 1 - }, - { - size: 64 * 1024, - num: 31, - lockable: 1 - }, - { - /* NULL block */ - }, -}; - - /* default partition table for the SMDK2500 */ static const blob_partition_t smdk2500_default_partition_table[] = { { /* start of table */ magic: BLOB_DEFAULT_PART_TABLE_MAGIC, next: sizeof(blob_partition_t), - offset: 0x80000000, /* absolute base address */ + offset: 0x80000000, /* absolute base address */ size: 2 * 1024 * 1024 /* total size of the flash */ }, { /* blob itself */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), - offset: BLOB_FLASH_BASE, size: BLOB_FLASH_LEN, name: "blob", mem_base: BLOB_RAM_BASE }, { /* parameter block */ - magic: BLOB_PART_VALID_MAGIC, - next: sizeof(blob_partition_t), - offset: PARAM_FLASH_BASE, - size: PARAM_FLASH_LEN, - name: "param", + magic: BLOB_PART_VALID_MAGIC, + next: sizeof(blob_partition_t), + offset: BLOB_PART_OFS_APPEND, + size: PARAM_FLASH_LEN, + name: "param", mem_base: PARAM_RAM_BASE, - flags: BLOB_PART_FLAG_PTABLE + flags: BLOB_PART_FLAG_PTABLE }, { /* kernel */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), - offset: KERNEL_FLASH_BASE, - size: KERNEL_FLASH_LEN, + offset: BLOB_PART_OFS_APPEND, + size: BLOB_PART_SIZ_FULL, name: "kernel", flags: BLOB_PART_FLAG_LOAD | BLOB_PART_FLAG_CRAMFS, @@ -117,8 +87,9 @@ static void smdk2500_init_hardware(void) { /* setup flash stuff */ - flash_descriptors = smdk2500_flash_descriptors; flash_driver = &amd16_flash_driver; + flash_driver->query_descriptors = flash_query_descriptors_cfi16; + flash_base = 0x80000000; /* the default partition table */ default_partition_table = smdk2500_default_partition_table; |