The 2024 Summer Olympics, officially known as the Games of the XXXIII Olympiad, is a forthcoming international multi-sport event. Bidding for the games started in 2015, with five candidate cities in contention, but Hamburg and Rome subsequently withdrew. The three remaining candidate sites are Budapest, Los Angeles, and Paris. The host of the Summer Olympic Games is scheduled to be announced at the 130th International Olympic Committee Session in Lima, Peru, on 13 September 2017.
The candidature process was announced at the same time as the names of the five candidates cities on 16 September 2015.
Five candidate cities were announced by the IOC on 16 September 2015, Budapest, Hamburg, Los Angeles, Paris and Rome. Hamburg withdrew its bid per a referendum held on 29 November 2015, while, citing fiscal difficulties, Rome withdrew on 21 September 2016.
In June 2015, the Assembly of the Hungarian Olympic Committee (MOB) and the Assembly of Budapest decided to bid for the Olympics. Previous bids to host the games, in 1916, 1920, 1936, 1944, and 1960 were defeated by Berlin, Antwerp, Berlin again, London, and Rome, respectively. In July 2015, the Hungarian Parliament also voted to support the bid. On 28 January 2016, Budapest City Council approved the list of venues.
Los Angeles hosted the 1932 and 1984 Summer Olympics, and the 2015 Special Olympics World Summer Games. If Los Angeles won the bid It would be the third time Los Angeles held the Summer Olympics. On 26 April 2014, the Southern California Committee for the Olympic Games announced its bid proposal for the 2024 Olympics. Los Angeles could be the second city to host the games three times, after London. On 28 July 2015, the USOC contacted Los Angeles about the possibility of stepping in as a replacement bidder for the 2024 Summer Games after Boston dropped its bid. On 1 September 2015, the LA City Council voted 15–0 to support a bid for the 2024 Olympic Games. The U.S. Olympic Committee finalized its selection moments after the LA City Council's vote. On 13 January 2016, Los Angeles 2024 committee officials said they were "thrilled to welcome" the construction of a $2-billion-plus, state-of-the-art football stadium in Inglewood, California and with the arrival of one—and perhaps two—NFL teams would bolster its chances. On 25 January 2016, the Los Angeles 2024 committee announced that it planned to place its Olympic Village on the UCLA campus. LA 2024 also announced that media members and some Olympic officials would be housed in a 15-acre residential complex planned to be built by USC.
On 16 February 2016, LA 2024 unveiled a new logo and slogan, "Follow the sun." On 23 February 2016, more than 88% of Angelenos were in favor of the city's hosting the 2024 Olympic and Paralympic Games bid, according to a survey conducted by Loyola Marymount University. On 10 March 2016, Los Angeles officials bidding for the 2024 Summer Olympics turned their focus to temporary facilities that might be needed. Current plans include an elevated track built over the football field at the Los Angeles Memorial Coliseum and a proposal to temporarily convert Figueroa Street into a miles-long promenade for pedestrians and bicyclists.
On 1 June 2016, the California State Senate approved a bill that would have the state cover up to $250 million in liabilities if Los Angeles’ bid to host the Summer Olympics in 2024 is approved and the effort goes over budget. On 2 June 2016, the IOC confirmed that Los Angeles would proceed to the second stage of bidding for the 2024 Summer Games. On 29 July 2016, LA 2024 officials released artist renderings of an updated Los Angeles Memorial Coliseum and temporary swim stadium that would be used if Los Angeles is awarded the 2024 Summer Olympics.
On 31 July 2016, Mayor Eric Garcetti led a 25-person contingent from Los Angeles to Rio de Janeiro to promote their city's bid for the 2024 Summer Olympics. On September 7, 2016 LA 2024 will send a 16-person delegation to the 2016 Paralympics in Rio de Janeiro as part of its ongoing campaign to bring the Olympics back to Southern California. On September 13, 2016 with a year remaining before Olympic leaders gather to vote, the LA 2024 bid committee has released the latest video touting its campaign to bring the Summer Games back to Los Angeles. The two-minute spot features a montage of local scenes with narration by children talking about their “dream city.”. On September 23, 2016 as part of its bid for the 2024 Summer Games, LA 2024 has agreed to terms with the U.S. Olympic Committee on a marketing arrangement that is required but has often been controversial.The Joint Marketing Program Agreement outlines shared responsibilities — and shared income — between the host city and the USOC if Los Angeles is selected. On September 29, 2016 California will provide up to $250 million in guarantees should the city of Los Angeles go over budget in its bid to host the 2024 Summer Olympic Games and Paralympic Games. On October 7, 2016 LA 2024 officials have once again made adjustments to their proposal for the 2024 Summer Olympics, moving half of a large and potentially expensive media center to the USC campus. On October 21, 2016 the LA 2024 bid committee has once again enlisted U.S. Olympians to help make the case for bringing the Summer Olympics to Los Angeles for a third time. On November 9, 2016 "LA 2024 congratulates President-elect Donald J. Trump and appreciates his longstanding support of the Olympic movement in the United States,” the group in a statement. “We strongly believe the Olympics and LA 2024 transcend politics and can help unify our diverse communities and our world.”. On November 12, 2016 the private committee hoping to bring the Olympic Games back to Los Angeles in 2024 will face a critical test in Doha, Qatar. Mayor Eric Garcetti and Allyson Felix,the six-time gold medalist sprinter, lead an LA 2024 contingent that will present its bid to an array of Olympic leaders and sports officials at a general assembly for the Assn. of National Olympic Committees. On November 23, 2016 President elect Donald Trump expressed his support for Los Angeles’ 2024 Olympic bid during a phone call with Mayor Eric Garcetti. On December 2, 2016 the private bid committee seeking to bring the Olympics back to Southern California for a third time has released a new budget estimating it would spend $5.3 billion to stage the Games.
Paris hosted the Summer Olympics in 1900 and 1924. If Paris won the bid, it would be the centennial of the previous games. The French capital's bids for the 1992, 2008, and 2012 Olympic Games were defeated by Barcelona, Beijing, and London respectively. Paris could be the second city to host the games three times, after London. The former French Minister of Sports, Jean-Francois Lamour, had made it clear that 2024 represents a choice objective for a Parisian bid. €35 million will be budgeted to build new sports venues around Paris in order to improve the quality of the future Parisian bid. On 15 October 2014, Prime Minister Manuel Valls declared that the city would bid for the World's Fair of 2025, prompting concerns that Paris would no longer submit an application for the Olympics. However, no city official has stated that Paris is out of the bidding process.
On 8 November 2014, the mayor of Paris, Anne Hidalgo, suggested that the city might not be able to afford to put itself forward as host, saying: "We are in a financial and budgetary position today that does not allow me to say that I am making this bid." In addition, she talked about a potential bid for the 2028 Summer Olympics. However, in March 2015, Hidalgo gave her blessing to a bid for 2024. The decision to make a bid was to be taken with a vote at the council of Paris in April 2015. On 13 April 2015, the council of Paris approved the candidacy, making Paris an applicant.
On 26 June 2015 the French Sailing Federation announced it had selected candidate venues interested in hosting the sailing competitions. Le Havre (Seine-Maritime), La Rochelle (Charente-Maritime), Brest (Finistère), Hyères (Var), Marseille (Bouches-du-Rhône) and Quiberon (Morbihan) were the venues being considered. On 7 September 2015, Marseille was chosen to host the sailing competitions.
Host city of the 1960 Summer Olympics last bid for the 2004 Summer Olympics, but was eliminated in second place over Athens. A bid for the 2020 Summer Olympics was canceled in 2012, but the Italian government still expressed interest in hosting a future games. IOC president Thomas Bach confirmed that "Rome is a very strong and appreciated candidate for the 2024 Olympic Games." On 15 December 2014, prime minister Matteo Renzi confirmed that Rome would be bidding for the 2024 Olympics. The same month it was also revealed that Pope Francis met with the head of the Italian Olympic Committee to discuss Vatican City hosting some events at the games, namely archery and football.
On 10 February 2015, the Italian National Olympic Committee (CONI) confirmed that former Ferrari President Luca di Montezemolo, who headed the organising committee of the 1990 FIFA World Cup would lead Rome's bid as president of the Organising Committee. "I don't think anyone in Italy is as popular as Luca is abroad," said CONI President Giovanni Malagò.
On 21 September 2016, Mayor of Rome Virginia Raggi told reporters the bid for the games would go no further. Raggi, whose party the Five Star Movement have long been opposed to Rome hosting the games, cited ongoing financial troubles in the country as the main reason for cancelling the bid. She said hosting the games would be "irresponsible" and would only cause the city to fall into further debt. On 11 October 2016, the bid was officially suspended, though not formally cancelled should any future city leaders want to revive it if they were to come into power before September 2017. On 17 October 2016, Olympic leaders continued to voice their displeasure with the political climate that forced Rome to suspend its bid for the 2024 Summer Games.
In October 2012, Thomas Bach, president of the IOC, stated that Hamburg will apply for the 2024 Olympic Games. Hamburg could combine the water based and the other non-water based games in a very small circle, due to its good location. Hamburg would host the games the first time and would therefore be preferred to Berlin. On 16 March 2015, the National Olympic Committee (DOSB) proposed Hamburg to be the candidate city from Germany. On 21 March 2015, the DOSB's general assembly confirmed the decision to allow Hamburg to bid for the games.
For its 2024 bid, Hamburg re-used the logo and the slogan of an earlier bid to host the 2012 Summer Olympics. The logo showed a wave of water turning into a flame, referring to the water that is a defining aspect of Hamburg's cityscape and the Olympic flame. The slogan is "Feuer und Flamme", or "Fire and Flame", combining the Olympic flame with a German expression translating to "to be fire and flame for something", meaning to be very enthusiastic and/or excited about something. (West) Germany last hosted the 1972 Summer Olympics in Munich and also had recent experience with the success of the 1974 and 2006 World Cups, where Hamburg was one of the host cities.
On 13 April 2015, it was announced that Kiel would be Hamburg's venue for all sailing competitions.
On 29 November 2015, a referendum was held in which 51.6% of the citizens voted against a bid for the Olympics.
The former mayor of Berlin, Klaus Wowereit, had stated that Berlin was exploring a bid for the 2024 or 2028 Olympic Games. Berlin hosted the 1936 Summer Olympics and last bid for the 2000 Summer Olympics, but was eliminated in the second round with the Olympics awarded to Sydney, Australia. As polls in Berlin showed, 55% of Berlin's population supported the application. Nevertheless, on 16 March 2015 the National Olympic Committee (DOSB) proposed Hamburg to be the candidate city from Germany.
On 19 February 2013, the United States Olympic Committee (USOC) sent letters to the mayors of 35 American cities to gauge their interest in hosting the 2024 Olympics. Some of the cities included were Atlanta, Chicago, Boston, New York City, Philadelphia, Washington D.C., Indianapolis, Austin, San Antonio, Houston, Dallas, Memphis, Milwaukee, Minneapolis–Saint Paul, New Orleans, Pittsburgh, Jacksonville, Miami, Orlando, Tampa, St. Louis, Tulsa, Los Angeles, San Diego, San Francisco, Sacramento, Seattle, Charlotte, Portland, Phoenix, Las Vegas, Detroit, Columbus, Nashville, Rochester, and Denver.
On 10 June 2014, the USOC met in Boston to confirm the shortlist of cities drawn up for the 2024 Olympics. On 13 June 2014, the USOC announced its shortlist for potential host cities: Boston, Los Angeles, San Francisco, and Washington. On 26 September 2014, The U.S. Olympic Committee received near-unanimous support from the country's sports federations in a poll asking whether they would support a bid for the 2024 Olympics. Forty of the 47 national governing bodies took part in the poll and all 40 answered positively to the question. On 1 December 2014 all four shortlisted cities Boston, Los Angeles, San Francisco, and Washington met the final deadline to submit their bid proposals prior to the USOC Board Meeting held on 16 December 2014 in Redwood City, California. During the closed door meeting each of the four cities were given two hours to present their city's bids. Following the final presentation, the USOC announced that the United States would bid to host the 2024 Olympic and Paralympic Games, but did not announce which city would bid. On 8 January 2015, the USOC selected Boston to be the candidate city from the United States but on 27 July 2015 Boston's bid was withdrawn and the USOC bid process was reopened. On 1 September 2015 the USOC announced that Los Angeles was chosen for the United States bid for the 2024 Summer Games.
On 7 May 2013, there was a meeting held about the chance of Boston and New England hosting the Summer Games in 2024. There was a large group of leaders and politicians that supported the bid. Early proposed venues included TD Garden, Fenway Park, Gillette Stadium, Agganis Arena, Dunkin Donuts Center, and the Verizon Wireless Arena. In October, Deval Patrick signed a bill to let a group look into the bid. Boston lacked a stadium of sufficient size to use as an Olympic stadium, but had most of the venues for other sports within a close radius. Boston 2024 proposed building a temporary main Olympic Stadium with an unnamed developer providing an estimated $1.2 billion deck over a large rail yard in exchange for development rights for the property after the games. In January 2015, the USOC selected Boston as the official candidate city. Local public opinion on hosting the 2024 Games was divided; a March 2015 poll indicated that 52% of Boston area residents were opposed to hosting them. On 27 July 2015, the USOC dropped its bid to host the Olympics in Boston citing the lack of public support and uncertainties in the bid.
Washington 2024, the bid team dedicated to bringing the 2024 Olympic and Paralympic Games to the Capital Region, was led by Russ Ramsey, a venture capitalist and philanthropist, and Ted Leonsis, owner of the Washington Wizards, Washington Capitals, and former America Online executive. Other key leadership included former NFL Commissioner Paul Tagliabue, BET co-founder and Washington Mystics President Sheila Johnson, Olympic silver-medalist and Washington developer Jair Lynch, celebrity chef Jose Andres, former DC Mayor Anthony A. Williams, Under Armour founder Kevin Plank and others. The bid launched publicly in September 2014 with a theme of “Unity” that aimed to bring together leaders from the Nation’s Capital in business, philanthropy, sports, and politics. Ultimately, the group assembled a vision of Washington that addressed its transit woes, harnessed the potential of both the Potomac and Anacostia rivers and escaped its reputation as a breeding ground for political dysfunction. All of these goals hoped to spur economic investment and serve as an inspirational event for Washington’s young athletes. The group released a video in December 2014 that built on their theme of Unity by featuring an array of Washington citizens, sports figures like Washington Wizard John Wall and Washington Capital John Carlson, political icons like John Lewis, Newt Gingrich, Bob Dole, and Howard Dean, local political leaders like Tim Kaine, Mark Warner, Muriel Bowser, and Eleanor Holmes Norton, and many others. The bid team presented its case to the US Olympic Committee Board of Directors on 17 December 2014 with a presentation team of five that consisted of: Chairman Russ Ramsey, Vice-Chairman Ted Leonsis, Board Member Paul Tagliabue, Mayor Muriel Bowser, and gold-medalist and Washington-area resident Katie Ledecky. On 9 January 2015, the USOC announced they would be endorsing Boston’s bid for the 2024 Olympic Games, ending DC’s hopes for 2024. Despite the loss, Washington remains enthusiastic about the plan devised during the bid process and optimistic about the city’s future chances of hosting a major international sporting contest. In May 2015, Washington 2024 was presented the DC Building Industry Association Community Partnership Award by Mayor Muriel Bowser, during which Chairman Russ Ramsey said he thought the 2024 bid has “shelf-life.”  The full plans devised by city planners Brailsford & Dunlavey and architecture firm Gensler were released to the Washington Post in June 2015 to wide praise by community and political leadership.
Baku submitted a bid for the 2016 Summer Olympics and submitted a bid for the 2020 Summer Olympics. Baku failed to become a candidate both times. Upon failing to become a candidate for the 2020 Games, it was stated that Baku would "come back again next time even stronger". Baku was chosen to host the 2015 European Games and had already hosted the 2012 FIFA U-17 Women's World Cup and various other international competitions, such as the 2011 World Amateur Boxing Championships, the Eurovision Song Contest 2012, and the 2016 European Grand Prix. Baku National Stadium also hosted the 2015 European Games.
In November 2013, Hasan Arat, who was the head of the Istanbul 2020 Olympic bid, vowed that the campaign to bring the Olympic Games to Turkey would continue and that the next bid will be the strongest yet: "We are now better equipped and major sports events and we have a greater understanding of Olympic Games." Istanbul had lost bids for the games in 2000, 2008, and 2020 to Sydney, Beijing, and Tokyo respectively, and also bid for the 2004 and 2012 Summer Olympics, but failed to become a candidate both times, losing to Athens and London respectively. Istanbul is expected to bid for the 2019 European Games, as European Olympic Committee president Spyros Capralos stated that hosting the European Games would help with its future Olympic bids.
In March 2010, Ukrainian Deputy Prime Minister Borys Kolesnikov stated that if Ukraine successfully co-hosted the UEFA Euro 2012 with Poland, it might place a bid for hosting the 2024 Summer Olympics. Kiev was one of the host cities of UEFA Euro 2012 and was the city where the final match was held.
Doha bid to host the 2016 Summer Olympics, in addition to bidding for the 2020 Summer Olympics. If Doha were to host the games, the games would be held from 14 to 30 October, due to Qatar's hot summer temperatures. Additionally it would also be the first games held in the Middle East region. After Doha failed to become a candidate for the 2016 and 2020 Games, it was stated that Doha looks "forward to the 2024 race". Doha was last hosted the 2006 Asian Games, Qatar is scheduled to host the 2022 FIFA World Cup and several stadiums will be located in Doha.
In August 2012, Kenyan Prime Minister Raila Odinga announced that the capital city Nairobi was planning to bid for the 2032 games. It may also bid for the 2028 Summer Olympics.
In March 2011, the Moroccan government confirmed that it would begin construction of an 80,000-seat stadium and will bid for the 2028 Summer Olympics instead of 2024.
Ana Botella, Mayor of Madrid, confirmed that the city will not take part in the competition for 2024 Olympic Games after three failed consecutive bids (2012, 2016 and 2020, losing to London, Rio de Janeiro and Tokyo respectively). Despite this, all sporting projects and infrastructure of the 2020 Olympic bid would be finished on the date scheduled.
According to reports, a bid from Singapore and Malaysia was explored. Most likely, Kuala Lumpur and Singapore were to be the main cities. Malaysia bid in 2008, but failed to become a candidate. Kuala Lumpur received a 7.4 in transportation infrastructure, but nothing higher in any other category. Singapore was the host of the inaugural Youth Olympics in 2010 and the 117th IOC Session. Though previously not allowed by the Olympic Charter, recent changes have allowed multi-national bids. Despite this, it was acknowledged by the president of the Olympic council of Malaysia that it was too late to submit an Olympic bid for 2024, saying that the committees should focus on either the 2028 or 2032 games.
Postponed its plans to bid because Tokyo won the 2020 Games. The city hosted the 2002 Asian Games. The city decided to bid for the 2028 Summer Olympics instead. Pyeongchang will host the 2018 Winter Olympics.
On 31 March 2014 a political commission looking at the possibility of a Mexican bid for the 2024 Olympics concluded that there were no economic or infrastructure conditions in Mexico for a bid to take place.
A San Francisco bid would likely have expanded to Oakland and other parts of the Bay Area for help in filling venue requirements such as indoor sports. Possible Bay Area venues included AT&T Park, Oracle Arena, O.co Coliseum, SAP Center, Avaya Stadium, Levi's Stadium, and the projected Chase Center in San Francisco. Events could also have been held at area universities such as UC Berkeley's Haas Pavilion and Stanford Stadium. However, on 12 August 2015, it was announced that the Bay Area had pulled its bid.
Tulsa had been interested in bidding for the 2024 Olympic Games and was one of 35 cities to which the USOC had sent invitations. Following high-profile news reports in several national newspapers, city officials distanced themselves from the Tulsa 2024 Olympic Exploratory Committee and declined to bid. The committee was still seeking the bid as a private endeavor.
On 14 May 2014, a report in The Financial Times claimed that New York governor Andrew Cuomo was seriously considering an Olympic bid for New York City, if his administration received a proposal for the games. According to the Financial Times source, talks were taking place between the Governor and New York City Mayor Bill de Blasio, and an advisory committee would likely be formed soon. However, de Blasio decided against the bid in late May.
On 22 April 2013, Mayor Michael Nutter's office declared Philadelphia's interest in bidding for the 2024 Games. The city had expressed interest in hosting the 2016 Games, but lost out to Chicago as the USOC's bid city. The City of Philadelphia withdrew from consideration on 28 May 2014 in a letter to the USOC, citing "timing" as a major factor in the decision. The city reiterated a continued interest in pursuing the games in the future. On 28 May 2014, Mayor Michael Nutter announced that he had written to the USOC earlier that month, informing it of the city's decision not to pursue a bid to host the 2024 Summer Olympic Games.
Dallas had planned to bid for the 2024 Games, but it was not selected by the USOC as one of the four potential host cities.
After the multinational bid with Tijuana was rejected, San Diego had explored a possible bid for the 2024 Games without Tijuana. It was not selected by the USOC as one of the four potential host cities.
Indian Prime Minister Narendra Modi and IOC president Thomas Bach agreed during a meeting on 27 April 2015 in New Delhi that 2024 is too early for India to bid for hosting an Olympics. Delhi has hosted the 2010 Commonwealth Games.
While South Africa was seen as a likely bidder for the 2024 Olympic Games, events ended its hopes of hosting the games. Due to Edmonton's decision to end its bid for the 2022 Commonwealth Games, Durban will host the games. South Africa's sports minister indicated on 1 March 2015 that the nation would focus on the Commonwealth Games instead of the Olympics.
Australia, mainly Melbourne, had been seen as a likely bidder for the 2024 Summer Olympics. However, the head of the Australian Olympic Committee stated that Australia will focus on 2028 or 2032 instead of 2024. Melbourne hosted the 1956 Olympic Games and the 2006 Commonwealth Games and Brisbane hosted the 1982 Commonwealth Games. Queensland is currently in the process of constructing and upgrading facilities in Brisbane and the Gold Coast for the 2018 Commonwealth Games.
In December 2013, the ex-president of the Peruvian Sports Institute (IPD), Arturo Woodman, declared that Lima should bid to host the Olympic Games in 2024. The city will host the 2019 Pan American Games. Akio Tamashiro, Affiliate Manager at IPD, stated that this would be the next target of the country, using the new infrastructure, experience and legacy of many sporting events as Lima 2019.
Due to the city winning the bid to host the 130th IOC Session in 2017, Lima cannot be a candidate city to host the 2024 Summer Olympics. On 22 January 2015, Lima lost its bid to host the World Games 2021 to Birmingham, Alabama.
Saudi Arabia has published plans to bid to host the games together with Bahrain. All men's events would be held in Saudi Arabia and all women's events in Bahrain, because women are not allowed to participate in sports in Saudi Arabia. The IOC has dismissed the plans and said this gender split would not be allowed.
Taiwan's capital and largest city may put in a bid in accordance with a campaign promise made by then-presidential candidate Ma Ying-jeou while he was running for president in 2008. It is seen as the culmination of a build-up in hosting sporting events for Taipei and the rest of Taiwan. Taipei hosted the 2009 Deaflympics while Kaohsiung hosted the 2009 World Games. Taipei is hosting the 2017 Summer Universiade. In 2011, President Ma Ying-jeou stated again that Taiwan will bid for the 2024 Games. On 11 June 2014, the Sports Administration reported that it has no intention of bidding for the 2024 Olympic Games.
On 19 May 2014, Governor of Saint Petersburg Georgy Poltavchenko said that the city can apply for hosting the Olympic Games in 2024. According to him, St. Petersburg already has about 70% of the infrastructure needed for the Olympics. Also on 22 May 2014, Deputy Prime Minister of the Russian Federation Dmitry Kozak, who was responsible for holding the 2014 Winter Olympics, said that St. Petersburg had a good chance to win the right to host the Olympics in 2024. According to him, a lot of costs would not be required to prepare the city for the Olympics. Russia has not hosted the Summer Games since the 1980 Summer Olympics in Moscow, when it was part of the Soviet Union. On 6 May 2015, it was announced that Russia will focus on the 2018 World Cup and not a bid for the 2024 Summer Olympic Games. St. Petersburg is also preparing to host UEFA Euro 2020, where it will act as one of the venues. Russia will also host the 2019 Winter Universiade in the Siberian city of Krasnoyarsk.
Dmitry Chernyshenko, the organizer of the 2014 Winter Olympics, says there is a huge potential in bringing the games back to Sochi. Beijing will be the first city to host a summer and winter games after it won the right to hold the 2022 Winter Olympics. Sochi would need to build many facilities to hold the games, although some indoor arenas from the Winter Olympics could conceivably be re-purposed. Sochi was the first Russian city to consider a bid for the 2024 Summer Olympics. Sochi's bid for the 2024 Summer Olympics was canceled on 31 July 2015.
Toronto's economic development committee voted against bidding for the 2024 games on 20 January 2014, citing a bid would cost the city $50 to 60 million. Toronto's mayor at the time, Rob Ford, suggested that a bid for the 2028 games may be more realistic. Toronto bid for the 1996 and 2008 Summer Olympics (as well as undocumented failures to make final rounds for 1960, 1964 and 1976), but lost to Atlanta and Beijing, respectively. In 2009, Toronto won the bid for the 2015 Pan American Games. However, discussions to submit a 2024 Olympic bid were revived during the lead-up to the 2015 Pan American Games, with new philosophical changes announced for the bidding process by the IOC, “to actively promote the maximum use of existing facilities”, which means that venues built for the Pan Ams may not have met IOC requirements but they could be adapted to comply under the new approach, boosting Toronto's viability as a host city. International Olympic Committee President Thomas Bach was among those who, in light of the Pan American Games, stated that Toronto would be a good candidate.
On the CBC Radio One Toronto morning show Metro Morning on 10 July 2015, Mayor John Tory acknowledged that the city could revisit the idea of hosting the 2024 games, pending the results of the 2015 Pan American Games, and the financial viability, effectively reopening the possibility of a Toronto bid. On 11 August 2015, Tory met with the head of the Canadian Olympic Committee to discuss the bid process and the city's previous bids. The COC encouraged the mayor to consider bidding. On 11 September 2015, the COC held a conference about a potential bid and voted unanimously in support for a Toronto bid for the 2024 games. This vote allowed the COC to prepare a letter of intent to send to the IOC by the September 15 deadline. On 15 September 2015, Mayor Tory announced that the city will not make a bid for the 2024 Summer Olympics.
In 2007, the IOC established the concept of Olympics including 28 sports: 25 permanent 'core' sports with 3 additional sports selected for each individual Games. On 8 September 2013, IOC added wrestling to the Olympic programme for the 2020 and 2024 Games, representing one of these additional sports. FILA (now known as United World Wrestling) changed freestyle and Greco-Roman wrestling weight classes for men and decreased to 6 categories in order to add more weights for women. However, in August 2016, the IOC added five sports to the 2020 Olympics, with plans to separately evaluate the existing 28 sports. No indication was given how this would affect the number of sports in 2024.
↑ "Five world-class cities in strong competition for Olympic Games 2024 – IOC to contribute USD 1.7 billion to the local organising committee" (Press release). Lausanne, Switzerland: International Olympic Committee. 16 September 2015. Retrieved 17 September 2015.
↑ Rome 2024 Olympic bid collapses in acrimony at BBC News. Retrieved 21 September 2016.
↑ "A MOB közgyűlése támogatja a budapesti olimpiapályázat szándéknyilatkozatának benyújtását" (in Hungarian). Hungarian Olympic Committee (MOB). 10 June 2015. Retrieved 23 June 2015.
↑ Tenczer Gábor (23 June 2015). "A főváros szavazott: kell az olimpia" (in Hungarian). Index. Retrieved 23 June 2015.
↑ "Los Angeles 2015". Special Olympics. 14 September 2011. Retrieved 1 November 2011.
↑ "Southern California Committee for the Olympic Games". sccog.org. 2014. Retrieved 15 June 2014.
↑ Wharton, David (28 July 2015). "U.S. Olympic Committee contacts Los Angeles about 2024 Summer Games". Retrieved 30 July 2015.
↑ "USOC endorses Los Angeles for 2024 Olympics bid". ABC 7 Los Angeles. 1 September 2015. Retrieved 11 September 2015.
↑ "USOC names Los Angeles the official U.S. bidder for the 2024 Summer Olympics". Los Angeles Times. 1 September 2015. Retrieved 11 September 2015.
↑ "Angelenos have mixed opinions about 2024 Olympic bid". ABC 7 Los Angeles. 2 September 2015. Retrieved 11 September 2015.
↑ "NFL stadium could boost L.A.'s Olympic bid". Los Angeles Times. January 2016. Retrieved 13 January 2015.
↑ "Where would L.A. put all those Olympic athletes? Panel looks at UCLA". Los Angeles Times. January 2016. Retrieved 25 January 2015.
↑ "LA 2024 unveils logo for Olympic bid". Los Angeles Times. February 2016. Retrieved 16 February 2016.
↑ "LA 2024 Olympic bid receives wide public support in new poll". Los Angeles Times. February 2016. Retrieved 23 February 2016.
↑ "LA 2024 mulls temporary Olympic facilities – a raised Coliseum track, maybe?". Los Angeles Times. March 2016. Retrieved 10 March 2016.
↑ "Senate approves backup cash for L.A. Olympics bid". Los Angeles Times. June 2016. Retrieved 1 June 2016.
↑ "L.A. advances to next stage of 2024 Olympic bidding process". Los Angeles Times. June 2016. Retrieved 2 June 2016.
↑ "LA 2024 releases renderings of updated Coliseum, temporary swim stadium". Los Angeles Times. July 2016. Retrieved 29 July 2016.
↑ "LA 2024 brings large crew to Rio Olympics". Los Angeles Times. July 2016. Retrieved 31 July 2016.
↑ "LA 2024 will send a delegation of 16 people to 2016 Paralympics in Rio". Los Angeles Times. September 2016. Retrieved 7 September 2016.
↑ "LA 2024 video marks one year until Olympic leaders select host for 2024 Summer Games". Los Angeles Times. September 2016. Retrieved 13 September 2016.
↑ "LA 2024 and U.S. Olympic leaders come to terms on marketing agreement". Los Angeles Times. September 2016. Retrieved 23 September 2016.
↑ "The state will cover $250 million in costs if L.A.'s Olympics bid goes over budget". Los Angeles Times. September 2016. Retrieved 29 September 2016.
↑ "LA 2024 relocates Summer Olympics press center to USC in latest bid documents". Los Angeles Times. October 2016. Retrieved 7 October 2016.
↑ "U.S. Olympians make video pitches for Los Angeles' 2024 bid". Los Angeles Times. October 2016. Retrieved 21 October 2016.
↑ "LA 2024 is about to find out how a Donald Trump presidency will affect Los Angeles' Olympic bid". Los Angeles Times. November 2016. Retrieved 9 November 2016.
↑ "L.A. 2024 committee to present bid to Olympic leaders in Qatard". Los Angeles Times. November 2016. Retrieved 12 November 2016.
↑ "Trump supports L.A.'s Olympic bid, Mayor Garcetti's office says". Los Angeles Times. November 2016. Retrieved 24 November 2016.
↑ "LA 2024 releases revised budget for Olympics, revenue to equal $5.3 billion in costs". Los Angeles Times. December 2016. Retrieved 2 December 2016.
↑ "Voeux du CNOSF – Pas de candidature française aux JO avant 2024".
↑ "Paris 2024 Ambition Dead as PM Backs World Expo Bid". Around The Rings. 15 October 2014.
↑ "Paris mayor gives backing to 2024 Games bid – Olympic Games". Eurosport. 2015-03-23. Retrieved 2015-09-11.
↑ (French) "JO 2024 – Le Conseil de Paris approuve la candidature de la ville pour les JO 2024". Lequipe.fr. 2015-06-23. Retrieved 2015-09-11.
↑ "JO 2024 : Paris à la recherche d'un site pour la voile". Sport & Société. 22 June 2015. Retrieved 20 July 2015.
↑ "JO 2024. Le Morbihan candidat pour les épreuves de voile". Ouest France. 12 May 2015. Retrieved 20 July 2015.
↑ "Paris fait le choix de Marseille pour les compétitions de voile". Sport & Société. 7 September 2015. Retrieved 15 September 2015.
↑ "Letta rompe gli indugi: 'Roma può candidarsi alle Olimpiadi 2024'". La Gazzetta dello Sport (in Italian). 8 September 2013. Retrieved 15 June 2014.
↑ "Olimpiadi, la capitale ci riprova Bonino: 'Possibile candidatura per il 2024'" [Olympics, the capital tries again. Bonino: 'It is a possible candidate for 2024']. la Repubblica (in Italian). 10 January 2014. Retrieved 15 June 2014.
↑ Di Pillo, Laura (22 November 2013). "Olimpiadi 2024, Bach (Cio): per Roma candidatura forte. Letta: si può fare" [Olympics 2024, Bach (IOC): Rome strong candidate. Read: it can be done.]. Il Sole 24 Ore (in Italian). Retrieved 15 June 2014.
↑ "2024 Olympics: Italy PM Matteo Renzi confirms Rome bid". 15 December 2014. Retrieved 15 December 2014.
↑ McKenna, Josephine. "If Rome wins 2024 Summer Olympics, Vatican could host competitions". The Washington Post. Retrieved 26 August 2016.
↑ "2024 Olympics: Montezemolo leads Rome 2024 bid". 10 February 2015. Retrieved 10 February 2015.
↑ Reynolds, J. (21 September 2016). "Rome 2024 Olympic bid collapses in acrimony". BBC. Retrieved 21 September 2016.
↑ Yambao, Kathzie Pena (2016-10-12). "Italy Abandons Bid for Rome to Host 2024 Olympic Games". Newsline. Retrieved 2016-10-14.
↑ Press, Associated (11 October 2016). "Italy suspends Rome's 2024 Olympic bid". The Guardian. Associated Press. Retrieved 11 October 2016.
↑ "Italy withdraws Rome 2024 Olympic Games bid". BBC News. 11 October 2016. Retrieved 12 October 2016.
↑ "Olympic leaders vent about Rome's withdrawal from 2024 bidding". Los Angeles Times. October 2016. Retrieved October 17, 2016.
↑ "Hamburg bleibt Kandidat für Olympische Sommerspiele". Hamburger Abendblatt. 16 October 2012.
↑ "Berlin mayor: we are fit to host Olympics" (in German). The Local. 31 July 2012.
↑ "Ja in Hamburg, Jein in Berlin". Retrieved 10 March 2015.
↑ "Hamburg soll Olympia nach Deutschland holen". Retrieved 16 March 2015.
↑ Lynn Zinser (19 February 2013). "Trolling for a Summer 2024 Host, the U.S.O.C. Casts a 35-City Net". New York Times. Retrieved 20 February 2013.
↑ Butler, Nick (10 June 2014). "USOC confirm shortlist of cities drawn up for 2024 Olympics and Paralympics bid but will not say who they are – yet". insidethegames.biz. Retrieved 15 June 2014.
↑ Rosewater, Amy (13 June 2014). "List Of Cities For Potential U.S. Bid For 2024 Games Narrowed To Four". usoc.org. Archived from the original on 14 July 2014. Retrieved 15 June 2014.
↑ "Sports federations on board for US 2024 Olympics bid". Fox Sports. 26 September 2014. Archived from the original on 27 September 2014. Retrieved 26 September 2014.
↑ "United States To Bid For 2024 Olympic And Paralympic Games".
↑ "Boston wins USOC bid to host 2024 Olympic Games". WCVB-TV. 8 January 2015. Retrieved 8 January 2015.
↑ "Boston ends bid for 2024 Olympic and Paralympic Games". BBC.com. 27 July 2015. Retrieved 27 July 2015.
↑ Wharton, David (1 September 2015). "USOC names Los Angeles the official U.S. bidder for the 2024 Summer Olympics". Los Angeles Times. Retrieved 11 September 2015.
↑ "Private group explores possible Boston bid for 2024 summer Olympics – Boston.com". The Boston Globe.
↑ "Group of Boston leaders looks to bring 2024 Olympics to Boston, recruits Mitt Romney as adviser". masslive.com. Retrieved 13 February 2014.
↑ Nikisch, Kurt (20 March 2015). "Support For Boston Olympics Falls Further, WBUR Poll Finds". WBUR.org. Retrieved 20 March 2015.
↑ "Group seeking to bring 2024 Olympics to Washington names executive board". Washington Post. 4 September 2014.
↑ "Why the Olympics Washington didn't win could still transform the city". Washington Post. 12 June 2015.
↑ "D.C. can still gain from its 2024 Olympic Games bid". Washington Post. 27 February 2015.
↑ "Washington D.C. Wants You To Look Past The Rumors, And Get To Know Their Town (Olympic Promo Video)". 9 December 2014.
↑ "DC2024 Olympic bid to present its case to USOC board of directors". Washington Post. 16 December 2014.
↑ "D.C. Loses 2024 Olympics Bid". Roll Call. 8 January 2015.
↑ "Four reasons to be optimistic about D.C.'s future". Washington Business Journal. 7 May 2015.
↑ "Baku 2020 Disappointed – Calls IOC Decision A "Setback"". GamesBids.com. Retrieved 2 August 2012.
↑ "Baku Moves Forward [sic], Azerbaijan Plans Joint Bid to Host UEFA Euro 2020". GamesBids.com. Retrieved 2 August 2012.
↑ "BOM Head: 'Istanbul Promises "Strongest Bid Yet" For Olympic Games' ". GamesBids. 20 November 2013. Retrieved 26 December 2013.
↑ Колесніков марить Олімпіадою в Україні | Чемпіон (in Ukrainian). Champion.com.ua. Retrieved 2 August 2012.
↑ "Doha 2020 Disappointed And Surprised Over Shortlist Elimination". GamesBids.com. Archived from the original on 17 August 2012. Retrieved 2 August 2012.
↑ "Nairobi Plans A 2024 Olympic Bid". GamesBids Inc. 8 August 2012. Retrieved 8 August 2012.
↑ "Nairobi planning bid for 2024 Olympics: Kenyan PM". Reuters. 8 August 2012. Retrieved 8 August 2012.
↑ "Morocco to bid for 2028 Summer Olympics". Chinese Olympic Committee. Retrieved 25 August 2015.
↑ "La alcaldesa anuncia que Madrid no optará a los Juegos Olímpicos de 2024".
↑ "Botella descarta Madrid 2024 y critica la "ingratitud" y los análisis interesados".
↑ "Ana Botella: "Madrid no debe buscar la celebración de los Juegos de 2024"".
↑ "Malaysia-Singapore can be Olympics host, says Bach". Daily Express.
↑ GB Staff (10 September 2013). "Busan Postpones 2024 Summer Olympic Bid". Gamesbids.com. Retrieved 10 September 2013.
↑ "Mexico 2024 Olympic Bid Off The Table". GamesBids.com. Retrieved 28 May 2014.
1 2 Chagniot, Micheline (2013). "The Design and Legacy of the 2024 Olympics in San Francisco" (PDF). University of California, Davis. Retrieved 15 June 2014.
↑ Kadvany, Elena (20 February 2013). "San Francisco: 2024 Olympic host?". Sfbay.ca. Retrieved 13 February 2014.
↑ "Sacramento likely to pass on U.S. Olympic bid". News10.net. 20 February 2013. Retrieved 13 February 2014.
↑ Young, Eric (4 June 2014). "San Francisco in running for 2024 Summer Olympics bid". San Francisco Business Times. Retrieved 15 June 2014.
↑ Elliott Almond (2015-08-12). "Bay Area officially out of 2024 Olympics chase; L.A. or nothing". mercurynews.com. San Jose Mercury News. Retrieved 2015-09-11.
↑ Overall, Michael (2 July 2013). "Tulsa 2024 Olympic prospects still alive as private endeavor". Tulsa World. Retrieved 4 August 2013.
↑ "New York Considers 2024 Olympic Bid". GamesBids.com. Retrieved 28 May 2014.
↑ "NYC Summer Olympics 2024". Therealdeal.com. Retrieved 28 May 2014.
↑ Howard, Michael. "New York City Mayor Bill de Blasio Decides Against Bid to Host 2024 Olympics". Online.wsj.com. Retrieved 28 May 2014.
↑ Warner, Bob. "Philadelphia voices interest in the 2024 Olympics". Philly.com. Retrieved 22 April 2013.
↑ "Nutter: Philly won't bid on 2024 summer Olympics after all". philly.com. Retrieved 28 May 2014.
1 2 Rosewater, Amy (13 June 2014). "List Of Cities For Potential U.S. Bid For 2024 Games Narrowed To Four". Team USA. Archived from the original on 14 July 2014. Retrieved 27 September 2014.
↑ Bacchus, Danya (12 February 2014). "San Diego Vying to Host 2024 Olympics". 7 San Diego (KNSD). San Diego, California. Archived from the original on 13 February 2014. Retrieved 27 September 2014.
↑ Liam Morgan, ed. (27 April 2015). "IOC President Bach rules out Indian bid for 2024 Olympic and Paralympic Games". Inside the Games. Retrieved 28 April 2015.
↑ "India PM to Bach: No 2024 Olympic Bid". Aroundtherings.com. 27 April 2015. Retrieved 28 April 2015.
↑ "IOC chief Thomas Bach to meet PM Narendra Modi today". Times of India. 27 April 2015. Retrieved 28 April 2015.
↑ "Exclusive: South African bid for 2024 Olympics and Paralympics "unrealistic", admits Sports Minister". insidethegames.biz. 2 March 2015. Retrieved 18 March 2015.
↑ "South Africa 2024 Olympic bid 'unrealistic,' official says". Olympictalk.nbcsports.com. Retrieved 18 March 2015.
↑ "South African 2024 Olympics Bid Now Seems "Unlikely"". Swimswam.com. 2 March 2015. Retrieved 18 March 2015.
↑ "IOC President Sets Meeting in Australia". Aroundtherings.com. 7 February 2012. Retrieved 18 March 2015.
↑ "Peru wants to organize the Olympic Games 2024". Depor.pe. 20 December 2013. Retrieved 20 April 2014.
↑ "KMT presidential candidate aims at hosting Olympics". www.chinapost.com.tw. Retrieved 3 October 2009.
↑ "Universiade Doorway To Taiwan 2024 Summer Olympic Bid". GamesBids.com. Retrieved 2 August 2012.
↑ Shan, Shelley (12 June 2014). "No plans for Taipei to bid for the 2024 Olympics: officials". Taipei Times. Retrieved 15 June 2014.
↑ Zaccardi, Nick (19 May 2014). "St. Petersburg still in the mix for 2024 Olympic bid". NBC Sports. Retrieved 8 June 2014.
↑ "St. Petersburg still in the mix for 2024 Olympic bid". Sports.ru. Retrieved 8 June 2014.
↑ "St. Petersburg has a chance to host the Olympics". ITAR-TASS. Retrieved 10 June 2014.
↑ "Russia's Sochi suggested as host for 2024 Olympics". Washington Times. 2015-07-31. Retrieved 2015-09-11.
↑ Peter Edwards (2015-07-24). "Toronto has made 5 attempts to host the Olympics. Could the sixth be the winner?". thestar.com. Toronto Star. Retrieved 2015-09-11.
↑ GB Staff (20 January 2014). "Toronto won't bid for 2024 Summer Games". Gamesbids.com. Retrieved 20 January 2014.
↑ Paul Hunter (2015-06-10). "Canadian Olympics chief says Toronto ready for bid". thestar.com. Toronto Star. Retrieved 2015-09-11.
↑ "Pan Am Games could boost a Toronto Olympic bid, IOC president says". cbc.ca. CBC News. 2015-07-07. Retrieved 2015-09-11.
↑ Matt Galloway (2015-07-10). "Toronto – Metro Morning podcast, Fri, Jul 10, Pan Am special, judo family, John Tory, Pan Am CEO, Brazil, Pan Am portraits, archer". cbc.ca (Podcast). CBC Radio. Retrieved 2015-09-11.
↑ Rogers Digital Media (2015-08-12). "Toronto mayor meets with COC to talk Olympics". Sportsnet.ca. Retrieved 2015-09-11.
↑ "Canadian Olympic Committee confirms interest in Toronto 2024 bid".
↑ "Toronto Mayor John Tory confirms city will not bid for 2024 Olympics". InsidetheGames. 2015-09-15. Retrieved 2015-09-15.
↑ "2020 Olympic Games: Shortlisted International Federations Report" (PDF). International Olympic Committee. August 2013. Retrieved 15 June 2014.
↑ "IOC awards 2018–2024 broadcast rights in Asia". International Olympic Committee. Olympic.org. 29 July 2015. Retrieved 29 July 2015.
↑ "IOC reaches agreement for broadcast rights in Brazil with Grupo Globo through to 2032". International Olympic Committee. Olympic.org. 10 December 2015. Retrieved 11 December 2015.
↑ "IOC awards 2022–2024 broadcast rights in Canada to CBC/Radio-Canada". International Olympic Committee. Olympic.org. 21 October 2015. Retrieved 21 October 2015.
↑ "TSN, RDS to broadcast 2022 and 2024 Olympic Games". TSN. 21 October 2015. Retrieved 21 October 2015.
↑ "IOC awards 2018–2024 broadcast rights in China". International Olympic Committee. Olympic.org. 4 December 2014. Retrieved 4 December 2014.
↑ "IOC awards all TV and multiplatform broadcast rights in Europe to Discovery and Eurosport for 2018–2024 Olympic Games". International Olympic Committee. Olympic.org. 29 June 2015. Retrieved 29 June 2015.
↑ "Hungarian Public Television Agrees Deal To Broadcast Summer And Winter Olympics Until 2024". Hungary today. hungarytoday.hu. 20 June 2016. Retrieved 20 June 2016.
↑ "IOC awards 2018–2024 broadcast rights in Japan". International Olympic Committee. Olympic.org. 19 June 2014. Retrieved 19 June 2014.
↑ "IOC awards 2018–2024 broadcast rights in Middle East and North Africa". International Olympic Committee. Olympic.org. 27 July 2015. Retrieved 27 July 2015.
1 2 "IOC awards 2018-2024 broadcast rights in New Zealand and Pacific Island Territories". Olympic.org. 23 March 2016. Retrieved 23 March 2016.
1 2 "IOC awards SBS broadcast rights for 2018, 2020, 2022 and 2024 Olympic Games". Olympic.org. 4 July 2011. Retrieved 18 August 2011.
↑ "IOC awards Olympic Games broadcast rights to NBCUniversal through to 2032". Olympic.org. 7 May 2014. Retrieved 7 May 2014.
↑ "Olympics: BBC to broadcast every Games up to and including 2024". BBC Sport. 2 February 2016. Retrieved 3 February 2016.


The TS-7552 was released Jan. 2010. It is in a larger form factor than the TS-7550/TS-7500 but contains both XNAND and microSD socket, extra USB ports due to the inclusion of a onboard USB hub chip, an optional 802.11bg wifi radio, and a DB9 containing 2 RS232 serial ports, 1 RS485 port, and 1 CAN bus port. A metal enclosure with wifi antenna mount is also available for the TS-7552.
The KIT-7552 includes the items that are necessary for development with the TS-7552.
The RC-DB9 brings out the 10 pin connection to a DB9. See the RC-DB9 page for the exact pinout. The red line indicates pin 1 and should be lined up with the white dot on the board.
The TS-9448 console board allows you to control the boot media with the switch, reset the board, and you can even boot to the offboard flash by setting JP1 on this board. The TS-9448 also brings the TTL console (ttyS0) to RS232 on a standard 10 pin header. The RC-DB9 is also pictured to bring out console. For new development, you can also instead use the TS-9449 (not included in the kit) at the same cost which brings out a USB port that can be plugged into your workstation which eliminates the requirement for a serial on your workstation.
This is a 12V 1A DC power supply on a center pin positive barrel connector. Optionally type I or C adapters are available and will ship with the product if ordered to a country where this specific adapter is required. If you require one of these adapters it is recommended to put this in the comments for your order.
The TS-9449 console board is an alternative to the TS-9448. This board converts the TTL console to a USB serial device using an FTDI chip.
The WIFI-G-MINIPCI is a QCOM wifi adapter. See the WIFI-G-MINIPCI page for more details on using this device. Keep in mind that while this uses the mini PCI-E form factor, this device uses the USB pins on this header. The TS-7552 does not have any PCIE or PCI lanes.
The CB-ANT-MINIPCI includes an I-PEX connector to an RP-SMA female adapter, as well as an antenna.
The TS-ENC755 is a metal enclosure for the TS-7552.
The TS-ENC755-DIN is the TS-ENC755 with a DIN rail mount.
With the development kit you should have the TS-9448, or optionally the TS-9449. Either will connect to the 26 pin header labelled JTAG with the console board away from the board so it hangs off the board.
Note: You can also hold the button (SW1) on the TS-7552 for 5 seconds to redirect console to XUART port 0 on the DB9 on the TS-7552.
So in this case my device is "/dev/ttyUSB1". These are allocated numerically so if you do not have another usb serial device it may be "/dev/ttyUSB0". If you do not see this device you will need to see your distribution's support for adding the ftdi_sio driver. New versions of Ubuntu/Debian/Fedora and most popular distributions include this by default.
If you're in Windows XP or above the USB FTDI driver will be autodetected if you allow it to search for drivers on Windows Update. If you go into "Device Manager" you will see the COM# device that was allocated.
In this example, my COM device is COM5.
The TS-9448 board connects to your workstation through a db9 serial cable. Connect the RC-DB9 to the TS-9448 lining up the red wire with the white dot on the "Console" 10 pin header. The CB-705 null modem cable which crosses the RX/TX pairs included in the kit connects to the RC-DB9. On your workstation you will need to determine which UART you are using.
Under Linux these will typically show up as /dev/ttyS0 or a similar number if they are connected through pci, or embedded in a laptop. If you're using a USB to RS232 device these will show up as /dev/ttyUSB#. On Windows you will need to check the device manager to get the COM device from the "Ports" section.
The console from either UART will use 115200 baud, 8n1 (8 data bits 1 stop bit), and no flow control.
The TS-7552 has 3 ways that it can be powered. The development kit includes a wall wart power supply that can be connected to the barrel connector which provides 1A@12V. The barrel connector input supports 8-12V. There is a terminal block connector that can also provide 8-12V. The third option is to use the USB device port which can provide 500mA@5V.
WARNING: Do not use multiple power connections simultaneously or you may damage the board.
This output will only appear on the serial console on the 26 pin header and cannot be redirected like the rest of the booting messages. The "Booting From" message will indicate your boot media. The 3 dots after indicate steps of the booting procedure. The first dot means the MBR was copied into memory and executed. The next two dots indicate that the MBR executed and the kernel and initrd were found and copied to memory.
When you first apply power to the board, the logic values on the MODE1 and MODE2 pins are latched. These signals decide if you boot from the MicroSD, XNAND, or offboard flash. Keep in mind this only includes the initial boot of the kernel and initrd, but once the initrd is booted you can load the Debian partition from the XNAND, SD, USB drive, or an NFS root regardless of your initially booted media. Most common cases will boot from only one media.
The typical case for a production unit does not contain the development boards so you can just use the "SD Boot" jumper to control the boot device. If the SD boot jumper is on as expected it will boot to the MicroSD slot if there is a card available. If there is no jumper then it will boot to XNAND. If the SD card is not detected on boot, it will fall back to the XNAND. The XNAND however will not fall back to the SD card. Both the MODE1 and MODE2 signals are also available on the #26 Pin Header and can be influenced by the TS-9448/TS-9449 development boards.
The MODE1 and MODE2 signals both have 4.7k pull-ups. For a logic 0 these should be pulled to ground with a 680ohm resistor.
The offboard SPI flash is only present with the TS-9449/TS-9448. The TS-9449 shows the MODE signals with an LED. The TS-9448 controls the modes through the switch, and JP1.
Note: Your version dates may be different depending on ship date and the image used. On newer units, "Offboard SPI" and "Onboard SPI" flashes may show "unknown" for the type. This is purely cosmetic and is no cause for concern. The SPI flash can be queried with the 'spiflashctl' tool which will return a proper manufacturer and device ID.
This is a busybox shell which presents you with a very minimalistic system. While this has access to many Debian applications, it is important to note that this is not Debian. This environment will allow very fast boot times closer to 2-4 seconds, while Debian takes closer to 30-45 seconds but provides an init system and a more standard environment. As described in the previous section, the kernel and initrd are copied into RAM so any changes to this filesystem are temporary. You can commit changes using the "save" command.
linuxrc-fastboot (default) Boots immediately to a shell in ramdisk. This will mount whichever boot medium you have selected to /mnt/root/. When you type 'exit', it will boot to that medium.
linuxrc-nandmount Same as the linuxrc-fastboot script, but will mount and boot the debian partition from NAND.
linuxrc-sdmount Same as the linuxrc-fastboot script, but will mount and boot the debian partition from SD.
linuxrc-sdroot Boots immediately to the Debian stored on either SD or NAND depending on which media the SBC was booted from.
linuxrc-sdroot-readonly Same as linuxrc-sdroot, except it will mount the Debian partition read only while creating a unionfs with a ramdisk. Changes will only happen in memory and not on disk.
linuxrc-usbroot Mounts the first partition of the first detected USB mass storage device and boots there.
The small default initrd is only 2Mbyte but there is space for approximately 800 Kbyte of additional user applications. This constraint is important if you are running your application without Debian, but only from the initrd. If you have the Debian partition available you can access that partition under /mnt/root/ to run your application.
will act like whatever it was invoked as!
For development it is recommended to go boot to the full Debian where there is plenty of space for development work. Debian provides many more packages and a much more familiar environment for users already versed in Debian. Once here you can use apt-get to install/remove packages, configure the network, and perform other common tasks.
From almost any Linux system you can use "ip" or the ifconfig/route commands to initially set up the network. To configure the network interface manually you can use the same set of commands in the initrd or Debian.
To make your changes permanent in the initrd you will need to edit the linuxrc script. Use the same commands you would use to manually configure it and place them over the current ifconfig calls.
Debian provides the apt-get system which lets you manage prebuilt applications. Before you do this you need to update Debian's list of package versions and locations. This assumes you have a valid network connection to the internet.
For example, if you wanted to install picocom you could use the apt-cache command to search the local cache of Debian's packages.
You can often find the names of packages from Debian's wiki or from just searching on google as well.
To make your application startup from the initrd you only need to add the required lines (no need for the Debian init syntax) to the linuxrc script. Usually the best place to add in your application is right after /mnt/root/ is mounted so the Debian libraries and applications are available.
This board optionally supports 802.11 through the #WIFI-G-MINIPCI, or the #WIFI-N-USB module. Both of these use ralink chipsets which will show up as ra0 or rausb0. These examples will use rausb0, but replace this with your devices interface.
rausb0    RT73 WLAN  ESSID:off/any  Nickname:""
iwconfig rausb0 essid "default" key "yourpassword"
When you have successfully connected, it will list an "Access Point" bssid, and a "Link Quality" of greater than 0/100.
rausb0    RT73 WLAN  ESSID:"default"  Nickname:""
Now you are connected to the network, but this would be close to the equivilant of connecing a network cable. To connect to the internet or talk to your internal network you will need to configure the interface. See the #Configuring the Network for more information.
Click to download the latest 2GB SD card image.
The resulting file will be "2gbsd-noeclipse-latest.dd".
For imaging the SD card we recommend using a Linux or similar operating system that allows you to access a block device using dd. We do not support rewriting the SD card from Windows.
On this system my SD card block device is /dev/sdb, but your system will likely be different. The block devices are allocated in order by the letter so the next USB drive connected would be /dev/sdc. On some newer kernels you will see '/dev/mmcblk0' as the block device and '/dev/mmcblk0p1' for the first partition. For these examples I will use the '/dev/mmcblk0' format.
WARNING: Many distributions will name your hard drive something like /dev/sda or /dev/hda which will have the same naming scheme as an SD card or a USB drive. Make sure you are aware which device is which before writing the disk. Technologic Systems is not responsible for any data lost/destroyed because of improper command execution.
WARNING: If you are working with the SD card from your workstation, keep in mind that most Linux distributions will mount the partitions that they can as soon as the drive is inserted. This is desirable if you want to open the filesystem, but for dealing directly with the block device for performing backups or restoring an image this is dangerous to your data.
# look for your SD card block device to see if this is already mounted.
If the block device did automatically mount, you will need to refer to your distribution's documentation for disabling automounting. For example, this is Ubuntu's documentation on disabling automounting. If you are not using a graphical Linux system this should not be a concern, but make sure no filesystems are mounted read only or read write while writing or reading an image.
To write the latest image or restore to stock you would use the dd command. This will perform a byte for byte copy from our image. This contains the MBR boot code with the partition tables, the kernel, initrd, and Debian filesystem. No other formatting or partitioning is needed.
This will create a dd file the size of the card.
Note: A MicroSD card from one manufacturer will likely not be the exact same size as another manufacturer's MicroSD card of the same size. Our partition layouts by default leave the last 10% of the images unallocated to account for the size difference of various manufacturers MicroSD cards. As long as you use our partition layout you should not need to be concerned with this, but if you create your own layout we strongly recommend leaving 10% of the disk unallocated.
Keep in mind these numbers are an example and are not necessarily representative of your image.
If you would like to backup just the Kernel partition, you would grab partition 2.
This will create an image file the size of the card.
If there is no /mnt/root/ directory then the system is still booted to Debian and you should not proceed with the backup/restore sections. The image that is written or read back will be corrupt.
WARNING: Rewriting the XNAND from a Debian filesystem on the XNAND will result in a corrupted image.
The resulting file will be "xnandimg-latest.dd".
To create the image first connect a USB drive and then power the device on. Boot to the busybox environment and not the full Debian. The USB drive should be formatted with ext2/3 or fat32.
To write the image first connect a USB drive with the image and then power the device on. Boot to the busybox environment and not the full Debian. The USB drive should be formatted with ext2/3 or fat32.
Some of this series contains a 4MB SPIflash embedded on the board that can be written to by specifying lun 0, or "-l 0" which will use that chip select. The offboard flash found on various baseboards, or console boards like the TS-9448 or TS-9449 can be written to using lun 1, or "-l 1".
Since the Aug 5 2010 release, scripts have been added to the bash subroutine to ease in saving, recovering, and moving around images from one flash device to another. Below is a brief list of the commands that are provided as well as what they do. See the file /ts7500.subr (or /initrd/ts7500.subr from full Debian) for more information on the commands and what they do.
Most of our examples are going to be in C, but Debian will include support for many more programming languages. Including (but not limited to) C++, PERL, PHP, SH, Java, BASIC, TCL, and Python. Most of the functionality from our software examples can be done from using system calls to run our userspace utilities. For higher performance, you will need to either use C/C++ or find functionally equivalent ways to perform the same actions as our examples.
While the onboard tools are recommended for development, some applications can reach a size where the compile time is not feasible. An example of this is the Linux Kernel which will take 5-10 minutes to compile on a typical X86 workstation, but it can take 7-15 hours to compile on the SBC depending on several factors. A hello world application in comparison will take only a couple seconds on the board.
Cross compiling has a complication in that the onboard libraries do not exactly match the cross compiler environment. Debian has around 15,000 to 20,000 packages available in the apt repositories, and there is no way to feasibly build a cross compiler to account for all of these libraries. If you are cross compiling you will need to have your application entirely self contained and linking to any third party libraries in your build system.
Note: We do not support third party cross compilers.
Note: The provided cross compilers are only for C development.
The TS kernel is built from the same Linux sources Cavium Networks has tested and used on their CPU evaluation boards. There are no Technologic Systems specific drivers or kernel support implemented. Instead, there has been userspace driver support implemented for the SPI NOR flash, MicroSD cards, XNAND drive, battery-backed real-time clock, XUART serial port channels, watchdog, and GPIO pins. This allows easy migration to newer kernels when either Cavium or the mainline Linux kernel community creates them. In the past, constant Linux-internal API redesign required rewriting and revisiting custom drivers with each new kernel revision, in effect locking customers in to whatever kernel version was released and tested during initial product release. Being free to update to newer kernels in the future allows easier support of the new USB devices as those drivers tend to only be developed for the newest kernel sources.
We provide Linux 2.6.24 as the supported kernel.
WARNING: Backup any important data on the board before replacing the kernel.
Note: If you get the message "Make: *** mixed implicit and normal rules. Stop." Then you may need to downgrade your version of make.
This will bring up a graphical menu where you can edit the configuration to include support for new devices. For Example, to include CIFS support, use the arrow and Enter keys to navigate to Filesystems -> Network File Systems -> CIFS Support. Press "y" to include CIFS support into the kernel (alternatively, you could modularize the feature with "m" so you can enable or disable the module on demand which will also enable you to simply copy/paste the cifs.ko into the correct path in the kernel instead of copying the entire kernel (outlined below in appendix)). Keep hitting "exit" until you're prompted to save changes, choose "yes".
Once you have it configured, start building. This usually takes a few minutes.
The new kernel will be at "arch/arm/boot" in a compressed format called "zImage". The uncompressed version is simply called "Image". With the default partitioning scheme it is REQUIRED that the kernel be < 2096640 bytes in size. If you need to shorten the size, try including your changes to the kernel as modules instead. Otherwise you will need to resize the kernel partition to account for the size difference.
Now that you have a kernel you can install it as you would our stock. See the #Backup / Restore section for examples on writing this to disk.
Now we need to install the modules.
After you install the new modules, you will need to boot the kernel and run "depmod -a" to rebuild the dependency map. You can them use modprobe to load the individual modules.
You can also copy individual modules to your existing kernel assuming the kernel is the exact same version as the installed one.
If you require functionality from a newer kernel, we also provide sources for the 2.6.36 kernel patched with support as-is. You can find the sources here. You will need to also use this toolchain. The rest of the steps for building the kernel are the same. This kernel should function the same as the other, however the USB device driver is not implemented. We strongly suggest using the 2.6.24 kernel unless you have a requirement for a later kernel as the 2.6.24 is supported and has gone through much more testing through various productions.
We also now have a copy of a 3.4.0 kernel source here. These same instructions are applicable but you will need to use this toolchain instead of the one used with 2.6.24.
This board features a CNS2132 250MHz ARM9 processor. For more details see the CPU Datasheet.
This board features a Lattice LFXP2 FPGA. The CPU connects to the FPGA using SPI, and since access to SPI is not atomic we have implemented the SBUS as a safe way for multiple processes to access FPGA registers.
If we do not have a configuration you need, you can build a new bitstream, or contact us for our engineering services.
The released FPGA has undergone minor bug fixes throughout the product liftime.
2 SPI controller supports lower speeds and CS# bit in reg. RS485 RX is now muted while transmitting.
Note: We do not provide support for the opencores under our free support, however we do offer custom FPGA programming services. If interested, please contact us.
The opencore FPGA sources are available here.
For more advanced changes you may look to opencores.org which has many examples of FPGA cores. To build the FPGA with your new changes, go to the 'Processes' tab and double-click 'JEDEC File'. This will build a jedec file in the project directory. On a linux system, either x86 compatible or ARM, we provide an application called jed2vme.
We also have the sources here.
WARNING: Do not use the 'jed2vme' provided by Lattice. Their version writes to flash and as the opencores do not contain the bootrom so this will brick your board.
As space is constrained in the initrd it is suggested to gzip the file as shown in the jed2vme example. To load this bitstream automatically you can place it in the root of the initrd and name it '/ts7500_bitstream.vme.gz'. The linuxrc script will by default load this bitstream immediately on startup (before the fastboot shell). You should first test it manually to make sure it loads ok.
The FPGA contains flash memory which contains Technologic System's default FPGA flash load. Using an SRAM bitstream generated by our "jed2vme" with "ts7500ctl --loadfpga" will not overwrite the flash memory of the FPGA and will only load the SRAM contents of the FPGA, making for an unbrickable system.
The RTC connects through I2C to the FPGA. Typically, the battery-backed real time clock is only set or read in the linuxrc bootup script by the ts7500ctl utility. It is only necessary to read the RTC once per bootup to initialize the Linux time of day. This is done with the command "ts7500ctl --getrtc". To set the RTC time, you simply set the Linux time of day (with e.g. the "date" utility) and then run ts7500ctl --setrtc. RTC's are already set before shipment to atomic UTC time and should hold time within 15 PPM while at room temperature.
WARNING: Be careful when handling board with a battery inserted -- the battery holder leads are through-hole and should the board be placed on a conductive surface and short the battery leads, the RTC will loose its track of time and need to be reset.
Note: NBD devices report their size as SIZE_MAX for more flexibility when using them with nandctl. If you are formatting a partition or using dd you will need to specify the size of the block device or partition.
XNAND2 is an innovation built upon its XNAND predecessor. This engineering effort was predicated by the NAND industry's falling quality standards and Technologic Systems' dedication to continued superior quality, long lifespan products. XNAND2 introduces a more robust system of redundant, error-corrected data storage, and a whole-device wear leveling system that ensures the longest possible lifespan for NAND media.
Please see our whitepaper on the subject for more detail and information.
To facilitate this new paradigm, a new 'nandctl' binary has been introduced. The features and output of this new utility are detailed in this section.
Technologic Systems NAND flash manipulation.
devices and partitions for the NBD servers starting at port 7525.
port 7526 serving the whole disc device of chip #1.
The --dmesg command will show a running event log since boot. This is useful for troubleshooting if a failure is suspected.
This --stats output is helpful for systems where monitoring long-term health is useful.
nbdpid: This is the process id of the nandctl process.
nbd_readreqs: This is the number of read requests received by nandctl since boot.
nbd_read_blks: This is the number of blocks read by the nbd client since boot.
nbd_writereqs: This is the number of write requests received by nandctl since boot.
nbd_write_blks: This is the number of blocks written by the nbd client since boot.
nbd_seek_past_eof_errs: This statistic should always read zero. It's the number of times the OS has asked nandctl to seek past the end of the media.
xnand2_most_worn: This is the number of writes that have been made to the most worn block on the NAND chip over the lifetime of the XNAND2 media.
xnand2_spares_used: This is the number of bad blocks marked by XNAND2 over the lifetime of the XNAND2 media.
xnand2_spares_remaining: This is the number of blocks not currently in active use by the disk block device or the RAID5 like redundant data backup. They are available to participate in wear-leveling activities (along with the blocks used by the disk block device and redundant data).
xnand2_total_erases: This is the number of erases over the lifetime of the XNAND2 media since boot.
xnand2_ecc_fixups: This is the total number of ecc correctable errors XNAND2 has corrected since boot.
xnand2_parity_recovers: This is the total number of blocks XNAND2 has had to recover from parity data.
read_seeks: This is the number of read seeks done since boot.
write_seeks: This is the number of write seeks done since boot.
You can find the new nandctl binary here.
An XNAND2 formatted NAND device will work on supported products with any bootrom date, whether or not the bootrom supports XNAND2. However, devices can only be booted from the XNAND technology that their bootrom supports. An XNAND2 formatted NAND cannot be booted from a bootrom that only supports XNAND1 and vice versa. This allows for application support of XNAND2, regardless of bootrom support, but only if NAND is not the boot media. Because of this, it is important to update all programming and production processes to support XNAND2. For other production preparation processes that do not re-image the entire device, it is still important to confirm the production process is using the XNAND2 nandctl binary dated October 2016 or later. The following section provides the necessary information to update an existing XNAND1 image with the new XNAND2 nandctl software.
The latest nandctl binary is compatible with both XNAND1 and XNAND2; however it will assume that disk initialization will be targeted at XNAND2 support and it is not possible to force XNAND1 formatting. Because of this, the bootrom should be updated to be compatible with XNAND2 before using '--xnandinit' against a NAND device using the latest nandctl binary. TS-BOOTROMs with a date after October 2016 are compatible with and able to boot XNAND2 devices.
This update will walk through the steps of updating the nandctl binary contained in a customized production image. These steps are not necessary when using our stock image, only if your production process is using an SD or NAND image that has been based on any of our previous shipping images. Note that both SD and NAND images should be updated to properly support XNAND2 in all situations.
To prepare this update, a workstation running linux is necessary, either in a virtual machine or native install. From the workstation, open a terminal window and copy your original production image file to a local working directory (this is done to limit working on production used images). This file will be referenced as diskimg.dd in the following instructions. The latest XNAND2 compatible nandctl binary (link to download is at the top of this section) should also be downloaded in the same working directory.
The above is the partition table of an XNAND disk. An image for an SD card will have 4 partitions rather than 3, but the same basic layout. The necessary information is the start sector of the second partition with the Id of "da," and the "Sector size" listed above the partition table. In this case it is partition 2 in which the start block is 5120 and the Sector size is 512. Multiply the two numbers to obtain the necessary offset: 5120 * 512 = 2621440.
The XUART ports will be controlled with xuartctl. By default they will not have devices in /dev/.
ttyS0 (console) TTL pins 7 (TX) and 8 (RX) of the #26 Pin Header.
XUART0 RS232 pins 3 (TX) and 2 (RX) of the #DB9 Port.
XUART1 RS232 pins 7 (TX) and 8 (RX) of the #DB9 Port.
XUART2 RS485 pins 1 as + and 6 as - on the #DB9 Port.
Note: NBD devices report their size as SIZE_MAX for more flexibility when using them with sdctl. If you are formatting a partition or using dd you will need to specify the size of the block device or partition.
The SPI flash is also implemented in userspace with NBD, however it is not mounted or running by default. Even when you are booted to SPI, it does not need to access it directly since the bootrom will load it into memory before the Linux kernel is even executing. If you want to mount any part of it see the spiflashctl page for usage.
The FPGA contains a SJA1000C compatible CAN controller that can be accessed using canctl which provides a CAN network service. Any application on the network can make use of this service to send or receive CAN packets using the API defined by canctl. Thus, it is possible to develop code written in other languages (java, python, etc.) and/or to run this code under other operating systems.
Technologic Systems CAN controller manipulation.
The canctl application implements network CAN functionality using the can_rx_remote() and can_tx_remote() functions. These functions which read and write one fixed-size packet of struct canmsg to a TCP socket descriptor. Writing your own canctl client in the language of your choice is as simple as doing the same thing. The format of the each CAN packet sent or received via the network interface is described below. The terms "Rx" and "Tx" are relative to the client, so "Rx" would describe packets read from CAN over the network and "Tx" would describe packets written to CAN over the network.
canctl server to allow control functionality.
CAN packets which pass the filter will be received.
id compared to corresponding bit in received id).
UINT32 values are sent in little-endian format.
See the SBUS page for more details on using the SBUS in your application.
0x64 15-0 Read Only 16-bits of random data changed every 1 second.
This board brings out only FPGA DIO. Since the FPGA is connected to the processor using SPI which is not atomic, we have created the SBUS which allows safe access from multiple processes. The SBUS mechanism of locking as well as it being a serial bus to the FPGA does put a limit on how fast the DIO can be read or set. Depending on the needs of the application the code can be structured to provide a bit of flexibility in speeds.
You can also interface with this DIO in C using the example here.
Using this method of an atomic read-modify-write will achieve about a 20KHz wave with a 50% duty cycle.
Using this method of atomic writes will achieve about a 30KHz wave with about a 20% duty cycle.
The SBUS link between the FPGA and CPU is SPI with a 16-bit data frame per bus cycle. When setting and reading one pin at a time, a whole 16-bit cycle is used to accomplish the needed goal. If multiple pins need to be set or read at once, a performance gain can be had from reading/writing entire 16bit registers at a time as opposed to iterating through each pin sequentially.
Other factors can contribute to speeds of the SBUS. Since the SBUS is shared across multiple peripherals there could be bus contention. It may also be that there are very few other applications wanting access to the bus, it all depends on usage. There is more overhead in doing a sbuslock() and sbusunlock() after every transaction than there would be to queue up transactions, lock the bus, and then do them all at once. There is also another function provided in sbus.c that is a smarter version of sbusunlock(), it is called sbuspreempt(). sbuspreempt() will check to see if any other applications are blocked in acquiring the lock, if there are, the SBUS is unlocked, giving other applications access to it. If there are no other applications waiting for the lock, the current application retains the lock. The benefit of this, is next time sbuslock() is called, the function returns almost instantly because the lock is already held. This greatly reduces overhead.
It may be necessary to "tune" an application with locking, unlocking, and preempting the SBUS to find what works best if speed is a factor.
The DIO registers are described in the #Syscon section. This board has 40 logical DIO registers on the FPGA to remain consistant with the series, but not all of the pins are brought out. DIO 9 by default is an external reset which is pulled high, and when it is set to 0 the board will reboot. You can disable this functionality by clearing bit 4 of 0x76 in the #Syscon.
The FPGA has a random number generator. On startup, ts7500ctl is called with the --setrng option to seed Linux's random number generator from the hardware random number generator. Without a good source of entropy, Linux's random number generator will start up in a very predictable state which is undesirable for the security of many cryptography protocols.
This board does not bring out any CPU DIO directly, so to access any IRQs you would require an FPGA customization. There are 2 IRQs connected to the FPGA which are typically used for CAN or the XUART core. The XUARTs by default will poll at 100hz which will be acceptable for most applications accessing the UARTs so this IRQ may not be required. See the #FPGA Programming section for more details.
The I2C_SCL and I2C_SDA pins bring out the I2C bus from the CNS2132 CPU. We do have an example for connecting to the I2C bus that uses the temperature sensor used on some of this series. You can find the C example here.
Please refer to the CNS2132 user's guide, page 55, 144, and 312 for more information on this I2C bus.
This core is for high speed SPI with auto-CS#. Starts at offset 0x40 on the this series. Chip select #0 is typically used for onboard spiflash. Chip select #1 is used for offboard spiflash. The last 2 chip selects are always available on the Cavium series boards.
Technologic Systems SPI controller manipulation.
The data stream packet to a spictl server consists of opcodes and operands. Each opcode is one byte long and may encode part or all of the operand. Some opcodes specify that additional bytes of data follow to contain the remainder of the operands.
The chip number is encoded in the two LSB.
If Bit 5 is set, OPCODE = ASSERT CHIP SELECT.
The number of bytes to write is encoded in the same manner as for a READ opcode. After the opcode byte, the number of bytes to write follows as the operands.
This opcode encodes identically as the WRITE opcode. However it specifies that bytes are to be READ as well as written.
You can also use the spictl --server=<port> and run a second invokation of spictl with --port=<port> to have the second instance act as a client to the server. You can then use tcpdump to see the exact tcp packets being sent back and forth for various operations.
The SPI clk state register should be set when CS# is deasserted. Value 0 makes SPI rising edge (CPOL=0), 1 is falling edge (CPOL=1). This only applies to speed >= 1. For speed == 0, SPI clock polarity/skew must be set from the PLL phase adjust registers in the syscon block.
Bits 10-15 were not present on TS-75XX FPGA prior to rev 4. On those TS-75XX's, SPI speed was hardcoded to 75Mhz and 75Mhz only.
The pipelined read register is for read bursts and will automatically start a subsequent SPI read upon completion of the requested SPI read. Reading from this register infers that another read will shortly follow and allows this SPI controller "a head start" on the next read for optimum read performance. This register should be accessed as long as there will be at least one more SPI read with CS# asserted to take place. This register is an appropriate target address for SBUS burst reads.
The CNS2132 features a 10/100 Ethernet port. The str8100 ethernet driver provides abstraction to the hardware as a standard linux ethernet interface. You can find instructions on using this in Linux here.
This board features a 50mm MiniPCI express header. The only connected pins on this header are the ground pins, the 3.3V rail, and the USB data positive (36) and negative (38) pins. The CNS2132 processor does not have have any PCI-E lanes, but it does have USB which is used by many devices. This allows you to use devices internal to the board such as the WIFI-G-MINIPCI which only make use of USB for communication on this header.
The barrel connector supports 2.1mm barrel plugs. The power supply must be center pin positive, and supply between 8-28V.
This is a 5mm terminal block connector that can support 8-28V to power the board. The mating connetor is an OSTTH020160.
The Cavium CPU supplies standard USB 2.0 ports. The power to the USB can also be toggled by setting a DIO.
# from Debian you will need to source the subroutine file.
The TS-7552 features 4 USB type A hosts. There is also a USB host on the #Mini PCI-E Header for supported devices.
Keep in mind that you can only use the 5 pin header, or the USB3 header, but not both at the same time.
This board contain both USB Host and USB Device ports. This section will discuss the configuration and use of the Linux USB device gadgets (http://www.linux-usb.org/). The two supported gadgets are 1) USB Mass Storage Device and 2) IP over USB (A.K.A. USB Ethernet).
The USB Mass Storage Device Linux USB gadget will allow you to use your SBC as a storage device, like a USB thumb drive, when connected to a host PC. Subsequently, the SBC can access the saved data through the storage element named usb_storage_file.
The IP over USB (A.K.A. USB Ethernet) Linux USB gadget will allow you to connect to your SBC with a USB cable from a PC like you would with a CAT5 Ethernet cable. You will have access to the SBC via the TCP/IP connection allowing you to use any networking utility (e.g. ping, ssh, ftp, http, etc).
All software modules required for Linux are contained on recent SBCs (those released with the May 18, 2010 or later software load). For Windows, a driver interface configuration file (linux.inf) will need to be downloaded and installed on the host PC. This procedure is described in detail below. The linux.inf file can be downloaded here.
The USB Gadget file storage device will allow you to allow access to a block device (file or otherwise) over USB. To use this functionality, you must first have a block device to give to the driver. In this example I will use a 100MB file on the Debian filesystem.
Now on your workstation you can use this device as any other usb storage. As this file contains all zeros, you will need to format it and create a partition/filesystem to be able to store data on it. See the documentation for your workstation for more details. Keep in mind you cannot mount the same block device or file twice so this will not allow you to share your live filesystem over USB.
The board must be setup prior to connection to a host PC. These steps are outline below.
The IP address in the above example may be any valid IP address, but should typically not be on the same subnet as the Ethernet network on the the board (if connected), or the host computer to which the SBC will be connected.
Most modern Linux distributions already have all of the required modules (such as usbnet.ko) and utilities installed, so the setup steps are minimal. Simply plug in the board after it has been prepared for IP over USB (see above) and observe that a new interface has been added named usb0 or similar (use dmesg | tail to verify). You can now assign an IP address to that interface with ifconfig (e.g. ifconfig usb0 192.168.42.21) and begin using the TCP/IP connection. To test your connection, use ping 192.168.42.20. You should also be able to login to the SBC using ssh ie. ssh root@192.168.42.40.
Select Include this location in the search and choose the location of the driver you downloaded. Finish running the wizard.
Go to the Control Panel and open "Network Connections". Right-click the new connection (labeled "Linux USB Ethernet/RNDIS Gadget") and click "Rename". Rename it to something useful such as "USB Network".
Right-click on the newly labeled icon, and select properties.
Select Use the following IP Address, and enter 192.168.42.21.
You may now access the board via the TCP/IP connection. Use ping in the Command Prompt window to verify connectivity (e.g. ping 192.168.42.20).
Note: The IP address above may be any valid IP address, but must be in the same subnet as the IP address assigned to the board IP over USB connection above. The subnet used should also be different from any other interfaces on the SBC or PC, otherwise strange results may occur.
TS-7552 also includes a .1" pin spacing external header for board to board interfacing.
16 WD_RESET# 0-3.3V 1 Ground to reset the board.
None of the DIO pins are 5V tolerant. The FPGA DIO all support up to 3.3V with 12mA drive capability.
Note: Use of the JTAG pins for programming the board is not supported or recommended.
The CAN bus has optional termination resistor enabled by JP2 jumper. The termination resistor is 124 ohms across the CAN_H and CAN_L pins.
Disk corruption is a common issue in embedded development and considerations must be made for a robust system. When used correctly, the Sandisk SD cards we include should provide a total write lifetime of around 8TB.
It's been quoted from a Sandisk engineer that a third of the Sandisk branded flash cards on the planet are fake. We recommend Sandisk SD cards as that is what we use for our testing, but make sure you use a reputable source for acquiring any flash media.
We recommend avoiding ATP flash media as well as "Industrial SD cards". We have experienced corruption with Industrial Cards, though they seem to work if multiwrite is disabled but this makes the card extremely slow to write.
Most issues are caused by interrupting a write to the storage media by disconnecting power. In a normal Linux environment for a server or desktop the start up and shutdown sequences should be very predictable, but on an embedded system a safe shutdown cannot always be guaranteed.
The most common issue is when powering off SD cards in the middle of a write. SD cards usually use MLC NAND flash for storage coupled with a manufacturer and model specific firmware. The NAND flash has a limitation where in order to perform a single byte write it must first read about 128KB to 256KB (or more) containing that byte into memory and erase that sector on the NAND chip. This is the erase block size and can vary based on the card. It takes the block in memory, changes the single byte in that copy, erases the intended location on the flash and then commits it back to the disk.
Most SD card firmwares also contain a wear leveling mechanism where they maintain a logical to physical mapping. This means that writing a contiguous file may actually end up in different areas in the NAND chip. If you interrupt a write cycle where it has erased a block, but not yet committed changes to the disk it will have lost data seemingly randomly across the card. There are several strategies you can adopt to avoid or limit your chance of corruption.
The most safe method is possible if you do not need to perform any writes that need to persist across reboots. If you are designing a data logger this is certainly not a good option, but if you're only responding to outside I/O this is your best choice. Once you get your application developed and ready for deployment you should try running from the initrd. This is already a read only filesystem which will never write to the disk. Powering off in the middle of a read is still safe. You can still write data to /tmp/ which will go to memory, but it will be lost on a poweroff. If you require the full Debian filesystem you could use the linuxrc-sdroot-readonly startup script. This will mount the Debian filesystem on the SD card as read only, but will commit any attempted writes to a ramdisk using unionFS. The downside to this configuration while booting to Debian is that you have to manage all writes to the system or risk filling up your memory and causing a crash.
The next best method is to use a battery backup. Most UPS backup solutions, or one you build yourself should contain a method to see the battery level. Once you reach lower levels you can simply run a "shutdown -h now". When power is available the board will boot back up, but you may want to check in the initrd while it is read only if the battery is back to an acceptable level before making the SD card read/write.
The last option is to limit your writes to reduce the chance of corruption. Make all of your writes to a ramdisk like /tmp/ and copy them to the physical media periodically or when you know power will be safe. This is the option many consumer electronics choose. You can make writes more predictable by mounting with the options "sync" which will stop linux from buffering writes in RAM, and "noatime" which will prevent linux from writing access times when reading a file.
The usleep allows the user time to react to a new write. Most people should be able to react to an LED in about 215ms, but to be safe I would use a higher number.
You may also want to consider using the XNAND which from our testing has proven to be much more reliable with sudden power loss.
To prepare the USB drive, erase any existing partitions and replace them with a single FAT32 or EXT2/EXT3 partition. The script will attempt to mount /dev/sda1. The linuxrc script will execute a file on the drive named "tsinit". Make sure the script is marked as executable.
This example expects an xnand-image.dd and/or an sd-image.dd in the root of the flash drive. If you exclude either, it will still run while only programming one. Normally, it will begin programming both and wait for them both to finish executing. When the script exits, the red LED will turn off automatically.
# files you access must use that path.
You could also mount a network drive and write the image from NFS rather than keeping the image on the USB drive.
The issue appears to correspond to the length of cable used as well as the network device connected to the board.
You can force the cavium PHY to 10MB/s which drastically improves reliability, and in most cases eliminates the issue. This needs to be run each time the interface is brought back up. If link is lost you would need to reset the interface (ifconfig eth0 up && ifconfig eth0 down) and run the devmem command again.
This will disable the link speed auto-negotiation and force the PHY to communicate at 10Mb/s.
The TS-75XX image was updated as of Feb 11 includes extra version information that is printed by the linuxrc. This behavior has exacerbated a bug in nandctl that can cause the SBUS to get in a hung state. Using nandctl for access via NBD is and has always been safe, however using the -k or --setmbr options are potentially unsafe. The tsversions application used in the Feb 11th release uses the -k option and can get in to a hung up state. Please note that under rare circumstances this issue can cause NAND flash corruption and it is highly recommended to update to the latest nandctl.
TS-755X/TS-4500 products and images shipped on or after March 11th 2011 are not affected by this bug.
1) Simply disable the execution of tsversions and bootmsg in the linuxrc. Any linuxrc other than linuxrc-fastboot already have this disabled.
2) Download the new nandctl binary from our FTP site to /sbin/nandctl in the fastboot shell. If booted to the fastboot shell, remember to type `save` to save the initrd back to disk.
Affected All TS-755X/TS-4500 SBCs with a NAND chip marked with "SAMSUNG"
Will put the correct timing value in the timing register, however, this leaves the SBC vulnerable to this corruption until the command is issued.
The Cavium STR8100 NIC driver was programmed with 160ms delays when Ethernet is physically disconnected (see function static void internal_phy_patch_check(int init) of .../drivers/net/str8100/star_nic.c). This causes delayed responses in real-time applications such as canctl. When Ethernet is physically connected, the issue is nonexistent.