You are on page 1of 53

BRICK MASONARY WORK REPLACED BY PLASTIC

BOTTLES IN RESIDENTIAL CONSTRUCTION

Abstract
In this method of construction we used waste plastic bottles filled an air-tight sand which
is used instead of bricks. And from that use we construct economical houses and also utilize waste
plastic bottle. The compacted sand inside the bottles is almost 20 times stronger than bricks. This
type of construction is more durable than that of brick construction the cost of this construction
can reduce 33% cost of house made of concrete and bricks. The bottles can last as long as 300
years (undoubtedly longer than the cement used to bind the bottles together in the walls).
INTRODUCTION :
The first bottle house was constructed in 1902 by William F.Peck in Tonopah; Nevda. The house
was built with 10,000 bottles of beer, which were 90% alcohol and 10% opium. The Peck house
was demolished in the early 1980’s. The use of empty vessels in construction dates back to
ancient Rome, which had structures with amphorae embedded in concrete. This was not done
for aesthetic reasons, but to lighten the load of upper levels of structures empty, and to reduce
concrete usage. The first plastic bottle construction project in Africa was pioneered in Uganda by
Butakoola Village Association for Development (BUVAD) in 2010 in Cayuga district. The idea
followed a BUVAD community survey in 2009 that revealed that many farmers in Kayunga were
experiencing low crop yields due to poor soil fertility, which was a result of the presence of waste
plastics, such as bottles and polythene bags, in the soil. Dec 2nd, 2010 proving that there are all
kinds of uses for recycled PET plastic, Taiwanbased Er. Arthur Huang processed 1.8 million used
plastic bottles into honey comb-shaped bricks for a boat-shaped exhibition hall called the Eco-
ARK. Built for Taipei’s flower show, Eco-ARK was constructed for just one-third the cost of a
conventional structure. Once locked together, the bricks are extremely strong . May 2011
Samarpan Foundation has constructed a children school in New Delhi, using hundreds of used
PET bottles instead of conventional bricks bottle wall is less as compared to brick wall.
Transportation cost for plastic bottle wall construction is less than brick wall. Plastic bottle wall
construction require less manpower as compare to brick wall and require high cost. Strength and
load capacity for plastic bottle wall construction is 20 times more than brick wall construction

Mortar Calculation:
No. of labour calculation: One labour can made 400 bottles per day (filling soil in bottles).

Total no. of bottles = 157.

Numbers of labour needed = (1572/400) = 4 nos (Table 4).

Comparison between the walls by plastic bottle wall and brick wall : For construction Time and
speed of Execution for 5 persons team-one working day for plastic wall is 15% faster and for brick
wall 120 m2. Material and equipment cost for plastic

Disadvantages of Plastic Bottles:


Introduction Plastic bottles are certainly ubiquitous they bring us everything from house hold
cleaners to soft dryings to things so readily available as water these bottles, while convenient, do
have disadvantages when used on as wide a scale while most of these disadvantages are
environmental in nature the consequences could have widespread economical consequences in
the long term.

Disadvantages of Plastic Bottles

1. Decompositio

2. Non Renewable

3. Hard To Use

4. Difficult To Recycle

Decomposition: The main disadvantages of plastic bottles is the shear amount of time they take
to decompose he averages plastic bottle takes 500 years plastics decomposition can be agented
by various factors, such as the types of plastic, the climate and acids in the landfill; plastic still
lasts a long time, filling landfills for an indefinite period.

Non-renewable: Plastic is manufactured using oil by products and natural gas material that could
be used in numerous other applications or conserved were plastic usage lower. natural gas for
example, can be used to heat houses and cook food. using plastic in the volume we currently do
reduces the availability of these resources, which are gone forever when used up.

Hard to use: The standard disposable plastic bottle is meant for one use, not many. recycled
plastic bottles are not refilled in mass they glass beer bottles are , and flimsy plastic bottles do
not lead themselves well to at home re-usage. water bottles, for example, are often reused in
the home but become less and less sturdy over time and are ultimately thrown away.

Difficult to recycle: Glass bottles can be meted and easily reused as can tin cans. recycling plastic
is not so simple. Much of the plastic placed in recycling boxes is not recycled at all, as most plastic
cannot be recycled those bottles that are recycled are not used to make new bottles. Instead
recycled plastic bottles are used to make non-recyclable products, such as t-shirts, lactic lumber
or parking lot bumers. This means more raw materials need to be used to create new plastic
bottles than is the case with easily recycled material, such as glass or tin.

Cost Estimation of Brick Wall Masonry:


Sr. no Material Quantity Rate Per Amount(Rs.)
1 Brick 1150 nos. 5 1 no. 5750
2 Cement 5.45 300 1 bag 1635
3 Sand 0.237 250 1 m3 59.25
total - - - - 7444.25

Cost Estimation of Plastic Bottle Wall:

Sr.no Material Quantity Rate Per Amount(Rs.)


1 Plastic bottle 1572 Nos. 0.5 1 No. 786
2 Cement 5.45 300 1 bag 1635
3 Sand 0.237 250 1m3 59.25
4 Soil 1.99 100 1m3 199
5 Labour Work 4 300 1 person 1200
Total - - - - 3879.25

Benefits of Plastic Bottle Masonry Wall:


Good construction ability:
The walls built by these bottles are lighter than the walls built by brick and block, and that makes
these buildings to show a good response against earthquake. Due to the compaction of filling
materials in each bottle, resistance of each bottle against the load is 20 times higher compared
to brick. And these compressed filling materials, makes the plastic bottle to be prevented from
passing the shot that makes the building as a bulletproof shelter.

Low cost:
Constructing a house by plastic bottles used for the walls, joist ceiling and concrete column offers
us 45% diminution in the final cost. Separation of various components of cost shows that the use
of local manpower in making bottle walls can lead to cost reduction up to 75% compared to
building the walls using the brick and concrete block. It must be noted that the sophisticated
manpower can lead to reducing the construction time and the relative costs also become lower.

Comparison between the wall by plastic bottle and brick:


Sr. Factors Considerations Plastic bottle wall Brick wall
No
1 Time and speed of 5 persons team one 15% faster 120 m2
execution working day
2 Material and Implementation and Saving in cement, More weight,
equipment costs installation of water, grinder and more materials
materials and fitting
equipments
3 Transportation costs Displacement in the Lighter and higher Greater weight
building volume, easy and and less
cheap displacement volume, Hard
and costly
displacement
4 Execution costs Using calculations of Less manpower and More human
panel indigenous resources-the
higher cost
5 Strength and load - 20 times more than Greater wall
capacity brick thickness, lower
strength high
weight and loss
of materials
6 Resistance to earth Earthquake has a Low and integrated -
quake direct relationship weight without
with the weight of falling debris
each structure
7 Cleanness and beauty - Very clean execution, High volume of
of work no construction construction
waste waste
8 Flexibility - Very clean execution, -
no construction
waste

Abstract
The project elucidates about the use of plastic in civil construction. The components used
include everything from plastic screws and hangers to bigger plastic parts that are used
in decoration, electric wiring, flooring, wall covering and waterproofing. Plastic use in
road construction that have shown same hope in terms of using plastic waste in road
construction. i.e. plastic roads. Plastic roads mainly use plastic carry bags, disposable
cups and PET bottles that are

collected from garbage dumps as important ingredients of the construction materials. By


using plastic waste as modifier, we can reduce the quantity of cement and sand by their
weight, hence decreasing the overall cost of construction. At 5% optimum modifier
content, strength of modified concrete we found to see the times greater than the plain
cement concrete. Using plastic poisons our food chain under the plastic affects human
health. By the disposable plastics is the main source of plastic. For these plastic pollution
is not only the ocean also in desert. Plastic will increase the melting point of the bitumen.
Rain water will not seep through because of the plastic in the tar. So, this technology will
result in lesser road repairs.

Keywords: M2O; Plain cement concrete; Waste plastic; Technology; Construction; Rain
water

Go to...

Introduction
Nowadays, human apply all of its potentiality to consume more. The result of this high
consumption is nothing unless reducing the initial resources and increasing the landfill.
In recent times, human from the one hand is always seeking broader sources with lower
price and from the other hand is following the way to get rid of the wastes. The waste
today can be produced wherever humans footprints be existed, and remind him that they
have not chosen the appropriate method for exploitation of the nature. This paper
introduces the development and low cost housing in India. At the present time, the
possibility of utilizing the renewable resources such as solar, geothermal has been
provided for us more than before, and development of the renewable and alternative
energies is making progress. Plastic have become an essential part of our day to day life
since their introduction over hundred years ago. The only way to reduce the hazards of
plastic is reduce and reuse (Figure1).

Figure 1: Types of plastic.


Go to...

Pet Plastic
Introduction of PET

PET is used for high impact resistant container for packaging of soda, edible oils and
Peanut butter (Table 1). Used for cereal box liners, Microwave food trays. Used in
medicine for plastic vessels and for Implantation. Plastic is heat resistant and chemically
stable. PET is resistant to acid, base, some solvents, oils, fats. PET is difficult to melt and
transparent and other properties are Table 2.
Full Form Polyethylene Terephthalate
Molecular formula C10H8O4
Polyester of Terephthalic acid and ethylene
Structure Composition
glycol

Table 1: Properties of Plastic.

Soil Particle Diameter(mm)


Gravel >2.0
Sand 0.05-2.0
Silt 0.002-0.05
Clay <0.002

Table 2: Properties of Soil.


Properties of plastic

Plastic have many good characteristics which include versatility, light-ness, hardness,
and resistant to chemicals, water and impact. Plastic is one of the most disposable
materials in the modern world. It makes up much of the street side litter in urban and
rural areas. It is rapidly filling up landfills as choking water bodies. Plastic bottles make
up approximately 11% of the content landfills, causing serious environmental
consequences.

Due to the consequences some of the plastic facts are as follow:

1. More than 20,000 plastic bottles are needed to obtain one ton of plastic.
2. It is estimated that 100 million tons of plastic are produced each year.
3. The average European throws away 36 kg. of plastics each year.
4. Some plastic waste sacks are made from 64% recycled plastic.
5. Plastics packaging totals 42% of total consumption and every year little of this is
recycled. According to ENSO Bottles, in the 1960’s plastic bottle production has been
negligible but over the years there was an alarming increase in bottles produced and
sold but the rate of recycling is still very low.

Plastics are produced from the oil that is considered as non-renewable resource. Because
plastic has the insolubility about 300 years in the nature, it is considered as a sustainable
waste and environmental pollutant. So reusing or recycling of it can be effectual in
mitigation of environmental impacts relating to it. It has been proven that the use of
plastic bottles as innovative materials for building can be a proper solution for
replacement of conventional materials. The use of this material has been considered not
only for exterior walls but also for the ceiling of the building. The objective of this paper
is to investigate the key and positive characteristics of this product and the benefits
obtained by using it in building. It also intends to compare the characteristics of some
construction materials such as brick, ceramic and concrete block with bottle. One can use
solar bomb (bottle filled with bleaching powder solution) will be fitted on the roof for
light source (Figure 2).
Figure 2: PET Bottle Sales/ Recycled.

Go to...

Chapter-2 Disadvantages of Plastic Bottles


Introduction

Plastic bottles are certainly ubiquitous they bring us everything from house hold cleaners
to soft dryings to things so readily available as water these bottles, while convenient, do
have disadvantages when used on as wide a scale while most of these disadvantages are
environmental in nature the consequences could have widespread economical
consequences in the long-term.

Disadvantages of Plastic Bottles

I. Decomposition
II. Non Renewable
III. Hard To Use
IV. Difficult To Recycle

Decomposition: The main disadvantages of plastic bottles is the shear amount of time
they take to decompose he averages plastic bottle takes 500 years plastics decomposition
can be agented by various factors, such as the types of plastic, the climate and acids in
the landfill; plastic still lasts a long time, filling landfills for an indefinite period.
Non-renewable: Plastic is manufactured using oil by products and natural gas material
that could be used in numerous other applications or conserved were plastic usage
lower. natural gas for example, can be used to heat houses and cook food. using plastic in
the volume we currently do reduces the availability of these resources, which are gone
forever when used up.

Hard to use: The standard disposable plastic bottle is meant for one use, not many.
recycled plastic bottles are not refilled in mass they glass beer bottles are , and flimsy
plastic bottles do not lead themselves well to at home re-usage. water bottles, for
example, are often reused in the home but become less and less sturdy over time and are
ultimately thrown away.

Difficult to recycle: Glass bottles can be meted and easily reused as can tin cans.
recycling plastic is not so simple. Much of the plastic placed in recycling boxes is not
recycled at all, as most plastic cannot be recycled those bottles that are recycled are not
used to make new bottles. Instead recycled plastic bottles are used to make non-
recyclable products, such as t-shirts, lactic lumber or parking lot bumers. This means
more raw materials need to be used to create new plastic bottles than is the case with
easily recycled material, such as glass or tin.

Go to...

Chapter-3: Basic Construction Materials and Properties


Introduction

This construction require some of the basic materials which ensures a stable, eco friendly
structure and also results in cheap construction as compared to brick wall. Materials uses
for Bottle wall masonry construction are:

a. Soil
b. Plastic bottles
c. Cement
d. Nylon rope
e. Water
Soil: Soil is the basic element in any construction project so before using it in our project
we have to study the basic properties of the soil and go through different tests, so as to
check whether the soil sample selected is suitable for the given project (Table 2).

Soil texture: Soil texture can have a profound effect on many other properties and is
considered among the most important physical properties. Texture is the proportion of
three mineral particles, sand, silt and clay, in a soil. These particles are distinguished by
size, and make up the fine mineral fraction.

Soil colloids: Soil colloids refer to the finest clay in a soil. Colloids are an important soil
fraction due to properties that make them the location of most physical and chemical
activity in the soil. One such property is their large surface area. Smaller particles have
more surface area for a given volume or mass of particles than larger particles. Thus,
there is increased contact with other colloids and with the soil solution. This results in
the formation of strong friction and cohesive bonds between colloid particles and soil
water, and is why a clay soil holdstogether better than a sandy soil when wet.

Soil structure: Soil structure is the arrangement and binding together of soil particles
into larger clusters, called aggregates or pads. Aggregation is important for increasing
stability against erosion, for maintaining porosity and soil water movement, and for
improving fertility and carbon sequestration in the soil. Granular structure consists of
loosely packed spherical pads that are glued together mostly by organic substances.

Soil porosity: Many important soil processes take place in soil pores (air or water-filled
spaces between particles). Soil texture and structure influence porosity by determining
the size, number and interconnection of pores. Coarse textured soils have many large
(macro) pores because of the loose arrangement of larger particles with one another.
Fine-textured soils are more tightly arranged and have more small (micro) pores. Macro
pores in fine textured soils exist between aggregates. Because fine-textured soils have
both macro- and micro pores, they generally have a greater total porosity, or sum of all
pores, than coarse-textured soils.

Plastic bottle: In this paper plastic bottles are used as a fundamental element, so we
have gone through every property of the PETE bottles so as to ensure a stable structure.

Properties of pete bottle: Polyethylene Terephthalate Ethylene (PETE) bottles are


thermoplastic materials. This type of plastic are polymers and with or without cross
linking and branching, and they soften on the application of heat, with or without
pressure and require cooling to be set to a shape. Following are properties of plastic
bottle:

a. Wax like in appearance, translucent, odorless and one of the lightest plastics.
b. Flexible over a wide temperature.
c. Heat resistance.
d. Chemically stable.
e. Do not absorb moisture.
f. Transparent.

Cement: Cement is the important binding material. In these paper it is use to bind the
plastic bottles to make the masonry wall more durable so that the quality of cement is
check by following properties.

Properties of cement

Fineness: Fineness or particle size of Portland cement affects Hydration rate and thus
the rate of strength gain. The smaller particle size, and the greater the surface area-to-
volume ratio so that the more area available for water cement interaction per unit
volume. The effects of greater fineness on strength are generally seen during the first
seven days.

Soundness: Soundness is defined as the volume stability of the cement paste.

Strength: Cement paste strength is typically defined in three ways: compressive, tensile
and flexural. These strengths can be affected by a number of items including: water
cement ratio, cement-fine aggregate ratio, type and grading of fine aggregate, curing
conditions, size and shape of specimen, loading conditions and age.

Setting Time: The initial setting time is defined as the length of time between the
penetration of the paste and the time when the needle penetrates 25mm into the cement
paste.

Nylon rope: Nylon rope has a very high tensile strength so that it is use as the main
binder for PETE bottles masonry.

Properties of nylon Rope: Nylon rope is gotten from coal, Petroleum, air and water. It
is a polyamide thermoplastic produced by series of condensation reaction between an
amine and organic acids. the properties of nylon as follow:
a. Good abrasion resistance.
b. Tough and strong but flexible too.
c. High impact strength.
d. Absorb water which causes reduction in strength and impact properties
e. Resistant to most of the solvents and chemicals
f. High softening temperatures and thus molding becomes difficult.

Water: Water is in a similar way like cement, an active component in mortar. For
cement-sand mortar, without water no hydration can be attained, hence no strength can
be achieved. Water is responsible for the workability of a fresh mortar. 20% of the overall
weight of the cement and soil was used to determine the quantity of water to be used in
the mix. A slump test and a flow test were conducted to evaluate the consistency of the
fresh mortar.

Go to...

Chataper-4: Literature Review


Mojtaba et al. [1] Concluded that reusing the plastic bottles as the building materials can
have substantial effects on saving the building embodied energy by using them instead
of bricks in walls and reducing the CO2 emission in manufacturing the cement by
reducing the percentage of cement used. It is counted as one of the foundation’s green
project and has caught the attention of the architecture and construction industry.
Generally the bottle houses are bioclimatic in design, which means that when it is cold
outside is warm inside and when it is warm it is cold inside. Constructing a house by
plastic bottles used for the walls, joist ceiling and concrete column offers us 45%
diminution in the final cost. Separation of various components of cost shows that the use
of local manpower in making bottle panels can lead to cost reduction up to 75%
compared to building the walls using the brick and concrete block.

Shilpi et al. [2] concluded that by utilizing PET bottles in construction recycled materials,
thermal comfort can be achieved in very low cost housing, benefit in residents for those
who cannot afford to buy and operate heating and cooling systems. Plastic is non
biodegradable, toxic, highly resistant to heat and electricity (best insulator) and not
recyclable in true sense, plastic PET bottles use in bottle brick technique. This gives relief
for the poor people of India to provide cheap and best houses for living [3-5].

Puttaraj et al. [6] examined that efficient usage of waste plastic in plastic-soil bricks has
resulted in effective usage of plastic waste and thereby can solve the problem of safe
disposal of plastics, also avoids its widespread littering and the utilization of quarry
waste has reduced to some extent the problem of its disposal. Plastics are produced from
the oil that is considered as non-renewable resource. Because plastic has the insolubility
about 300 years in the nature, it is considered as a sustainable waste and environmental
pollutant. So reusing or recycling of it can be effectual in mitigation of environmental
impacts relating to it. It has been proven that the use of plastic bottles as innovative
materials for building can be a proper solution for replacement of conventional materials
[4].

Pratima et al. [7] studied that plastic bottles wall have been less costly as compare to
bricks and also they provide greater strength than bricks. The PET bottles that are not
recycled end up in landfills or as litter, and they take approximately 1000 years to
biodegrade. This has resulted in plastic pollution problems in landfills, water ways and
on the roadside, and this problem continues to grow along with the plastic bottle
industry.

Arulmalar et al. [8] studied that the initial perception on the use of PET bottles in
construction is changing day by day. A paradigm which emerged as PET bottle bricks in
the construction of load bearing walls with steel trusses and prefabricated metal sheet is
at present witnessing flat roofs with nylon 6 replacing steel reinforcement and intuitive
vault construction [6]. Even though research on the effective use PET in developing new
material as an option, solutions exploring the application of PET bottles as structural
members, foundation, retaining walls and secondary elements like street furniture, road
dividers, pavements and other landscape elements is to be looked in to. The Governing
bodies shall formulate policies to propagate this eco centric approach via appropriate
practices, research investigations on the properties of the materials and construction
techniques.

Vikram Pakrashi et al. [9] examined Eco-brick is a viable resource for construction
purposes with a number of possible applications. The bricks are relatively easily
manufactured with controlled weight and packing. Eco bricks have relatively good
compressive strength, with values matching that of basic concrete cubes. The weight of
Eco-brick was observed to hold a nearly relationship with load at failure and with specific
strength. Eco-bricks have a relatively good specific strength. They are lightweight but
strong for the weight they bear.

Andreas Froese et al. [10] concluded that when the bottles are filled with soil or sand
they work as bricks and form a framework for walls or pillars. Different types of walls
varying in size and orientation of the bottles are built. The compression strength and
fracture behavior of each wall are measured and compared. PET bottle walls can bear up
to 4.3 N/mm² when the bottles are filled with sand which is the weakest filling material.
The bottles bear one third of the load while the plaster bears two thirds. Plaster made of
clay or a cement mixture fills the space between all bottles while a roof made of wood or
corrugated metal completes the house. As only regional products are used the houses are
cheap and can be afforded even by poor families. Additionally the method has so far
proven to be earthquake resistant and allows short construction periods.

Yahaya Ahmade et al. [11] said that the structure has the added advantage of being fire
proof, bullet proof and earthquake resistant, with the interior maintaining a constant
temperature of 18 degrees C (64 degrees F) which is good for tropical climate.

Seltzer et al. [12] revealed that the first example of known structures built with bottles
is the William F. Peck’s Bottle House located in Nevada (USA). It was built around 1902,
and it required 10,000 beer bottles to be built. These buildings were primarily made out
of glass bottles used as masonry units and they were bound using mortar made out of
adobe, sand, cement, clay and plaster.

Job Bwire & Arithea Nakiwala et al. [13] suggested that, baked bricks, tiles, concrete and
rocks, among other construction materials, have been essentials in construction. But did
you know that a house constructed using plastic bottles can save you more and be just as
strong as or even stronger than brick homes? Water bottle housing is an innovation
aimed at providing low cost housing, while contributing to environment management
[14-18].

Go to...

Chapter-5
Background

Introduction: The first bottle house was constructed in 1902 by William F.Peck in
Tonopah; Nevda. The house was built with 10,000 bottles of beer, which were 90%
alcohol and 10% opium. The Peck house was demolished in the early 1980’s. The use of
empty vessels in construction dates back to ancient Rome, which had structures with
amphorae embedded in concrete. This was not done for aesthetic reasons, but to lighten
the load of upper levels of structures empty, and to reduce concrete usage. The first
plastic bottle construction project in Africa was pioneered in Uganda by Butakoola
Village Association for Development (BUVAD) in 2010 in Cayuga district. The idea
followed a BUVAD community survey in 2009 that revealed that many farmers in
Kayunga were experiencing low crop yields due to poor soil fertility, which was a result
of the presence of waste plastics, such as bottles and polythene bags, in the soil (Figure
3). Dec 2nd, 2010 proving that there are all kinds of uses for recycled PET plastic, Taiwan-
based Er. Arthur Huang processed 1.8 million used plastic bottles into honey comb-
shaped bricks for a boat-shaped exhibition hall called the Eco-ARK. Built for Taipei’s
flower show, Eco-ARK was constructed for just one-third the cost of a conventional
structure. Once locked together, the bricks are extremely strong (Figure 4). May 2011
Samarpan Foundation has constructed a children school in New Delhi, using hundreds of
used PET bottles instead of conventional bricks (Figure 5 & 6).

Figure 3: First bottle house construction.


Figure 4: Eco-ARC built for taipei's.

Figure 5: Samarpan foundation.


Figure 6: Methodology for construction of plastic bottle House.

Go to...

Chapter-6: Mortar Calculation


No. of labour calculation: One labour can made 400 bottles per day (filling soil in
bottles) (Table 3).
Sr. no Material Quantity Rate Per Amount(Rs.)
1 Brick 1150 nos. 5 1 no. 5750
2 Cement 5.45 300 1 bag 1635
3 Sand 0.237 250 1 m3 59.25
Total - - - - 7444.25

Table 3: Cost Estimation of Brick Wall Masonry.

Total no. of bottles = 157.


Numbers of labour needed = (1572/400) = 4 nos (Table 4).
Sr. no Material Quantity Rate Per Amount(Rs.)
1 Plastic bottle 1572 nos. 0.5 1 no. 786
2 Cement 5.45 300 1 bag 1635
3 Sand 0.237 250 1m3 59.25
4 Soil 1.99 100 1m3 199
5 Labour work 4 300 1 person 1200
Total - - - - 3879.25

Table 4: Cost Estimation of Plastic Bottle Wall.

Comparison between the walls by plastic bottle wall and brick wall: For
construction Time and speed of Execution for 5 persons team-one working day for plastic
wall is 15% faster and for brick wall 120 m2. Material and equipment cost for plastic
bottle wall is less as compared to brick wall. Transportation cost for plastic bottle wall
construction is less than brick wall. Plastic bottle wall construction require less
manpower as compare to brick wall and require high cost. Strength and load capacity for
plastic bottle wall construction is 20 times more than brick wall construction (Table s 5
& 6).
Sr. No Factors Considerations Plastic Bottle Wall Brick Wall
Time and
5 persons team one
1 speed of 15% faster 120 m2
working day
Execution
Material and Implementation and Saving in cement,
More weight, more
2 equipment installation of water,
materials
costs materials and equipment grinder and fitting
Greater weight and less
Lighter and higher
Transportatio Displacement in the volume,
3 volume, easy and
n Costs building hard and costly
cheap displacement
displacement
More human
Execution Using calculations of Less manpower and
4 resources- the higher
cost panel indigenous
cost
Greater wall thickness,
Strength and 20 times more than lower
5 -
load Capacity brick strength High weight
and loss of material
Earthquake has a direct
Low and Integrated
Resistance to relationship
6 weight -
Earthquake with the weight of each
without falling debris
structure
Cleanness Very clean
High volume of
7 and beauty of - execution, no
construction waste
work construction waste
Very clean
8 Flexibility - execution, no -
construction waste

Table 5: Comparison between the wall by Plastic bottle and Brick.


Go to...

Chapter-7:Benefits of Plastic Bottle Masonry Wall


The most important benefits of these alternative innovative materials compared to
conventional materials such as brick can include:

Good construction ability

The walls built by these bottles are lighter than the walls built by brick and block, and
that makes these buildings to show a good response against earthquake. Due to the
compaction of filling materials in each bottle, resistance of each bottle against the load is
20 times higher compared to brick. And these compressed filling materials, makes the
plastic bottle to be prevented from passing the shot that makes the building as a
bulletproof shelter.

Low cost
Constructing a house by plastic bottles used for the walls, joist ceiling and concrete
column offers us 45% diminution in the final cost. Separation of various components of
cost shows that the use of local manpower in making bottle walls can lead to cost
reduction up to 75% compared to building the walls using the brick and concrete block.
It must be noted that the sophisticated manpower can lead to reducing the construction
time and the relative costs also become lower.

Non-britte characteristics

Using the non-brittle materials can reduce construction waste. Unlike brick, plastic bottle
is non-brittle. So due to the frangibility property, the percentage of producing
construction waste in brick is more than plastic bottles.

Absorbs abrupt shock loads

Flexibility is a characteristic which makes the buildings performance higher against the
unexpected load. Since the plastic bottles are not fragile, they can be flexible and tolerates
sudden loads without failure. This characteristic can also increase the buildings bearing
capacity against the earthquake.

Green construction

Plastic bottles can cause the green construction by saving energy and resources,
recycling materials, minimizing the emission, having significant operational savings and
increasing work place productivity. These 13 plastic bottle vertical garden ideas will
interest you if you are a creative person, DIY lover and love to grow plants. This way you
can use plastic bottles to make something amazing out of them. Repurpose those old
bottles, which you usually throw away to grow your favorite plants either indoor or
outdoor and help to save our environment (Figure 7). If you love DIY ideas and you have
a green thumb then starting a window farm is a smart idea. A window farm will let you
do a lot with the little amount of space you have. The indoor windowfarms (Figure 8).
Fallows the crops to take full advantage of the light and vertical space available at the
windows. Here in this PDF, you will find all the instructions on how to build a Window
Farm. Follow this amazing idea for growing small leafy vegetables, such as lettuce,
fenugreek and spinach, herbs and medicinal plants. This plastic bottle vertical garden is
made of by stringing the bottles horizontally in a grid along an interior wall, which then
filled up by substrate and herbs (Figure 9). A remarkable kitchen garden with plastic
bottles with minimal means and efforts. It can be set up easily and does not require
regular watering. Here is the tutorial with more images of it (Figure 10). Do you want to
create a low maintenance vertical soda bottle garden? Follow this idea. All that is
required is bottles cut in half, cactus plants or succulents, and many colorful threads to
get a really cool decorative effect (Figure 11) Use two-liter soda bottles, cut them in half
and use the neck side. Turn them upside down. Adhere the bottles to a wooden frame
and arrange them in such a way so that the open neck of the bottle will drain out the
water into the bottle below it (Figure 12) Here’s an another idea to create a vertical
garden using the plastic bottles. It is a great way to reuse old plastic bottles and to
introduce some greenery to a small urban space (Figure 13). One more wonderful idea
to make use of plastic bottles, more useful if you don’t have much space on the ground
(Figure 14) A hanging plastic bottle garden to make full use of vertical space. In this post,
which we found on Source: Container Gardening. (Figure15). Plastic bottles are mounted
on the wall for utilizing the vertical space. Bushy and trailing plants like lettuces and
strawberries hide the structure, creating a nice ‘green wall’ effect (Figure 16). Another
innovative and great looking plastic bottle vertical garden. Bottles are hanging
horizontally, attached through the strings (Figures 17 & 18). Want to grow herbs but you
don’t have space? Well, even a wooden plank is enough. All you need is some plastic
bottles, hooks, nails and hammer and you’re all set to grow your own herbs. Be sure to
check out our post on balcony herb garden ideas to find out more ideas like that (Figures
19 & 20).
Figure 7: Window Farm

Figure 8: Plastic Bottles on Walls.

Figure 9: Plastic Bottle Tower Garden.


Figure 10: Growing Cactus in Hanging Plastic Bottles.

Figure 11: Half Plastic Bottle Vertical Garden on Wooden Frame.


Figure 12: Here’s an another idea to create a vertical garden using the plastic bottles.

Figure 13: Another Vertical Garden.


Figure 14: Bottles Hanging on String.

Figure 15: Plastic Bottles Hanging on Net.


Figure 16: Inspiring Plastic Bottle Garden.

Figure 17: Hanging Soda Bottle Garden.


Figure 18: Vertical Plastic Bottle Herb Garden.

Figure 19: Pyramid Plastic Bottle Garden.


Figure 20: A vertical pyramid garden made of plastic bottles.

Go to...

Chapter-8: Conclusion

1. Use of innovative materials with sustainable application such as plastic bottles can
have considerable benefits including finding the best optimization in energy
consumption of the region, reducing environmental degradation.
2. Generally the bottle houses are bio-climatic in design, which means that when it is
cold outside is warm inside and vice versa.
3. Re-using the plastic bottles as the building materials can have substantial effects on
saving the building embodied energy by using them instead of bricks in walls and
reducing the CO2 emission in manufacturing the cement by reducing the percentage
of cement used.
4. Plastic bottles can cause the green construction by saving energy and resources,
recycling materials, minimizing the emission, having significant operational savings
and increasing work place productivity.
5. Cost compression between bottles wall is roughly half than conventional brick
masonry. i.e., Total cost of10 m2 Brick masonry wall is Rs. 7444.25 and total cost of
10 m2 Bottle masonry wall is Rs. 3879.2
6. Use of innovative materials with sustainable application such as plastic bottles can
have considerable benefits including finding the best optimization in energy
consumption of the region, reducing environmental degradation.
7. Plastic bottles can cause the green construction by saving energy and resources,
recycling materials, minimizing the emission, having significant operational savings
and increasing work place productivity (Figure 21).

Figure 21: Graph between Cost in Rupees and total Cost.


Go to...

Acknowledgment
None.

Go to...
Conflict of Interest
None.

Go to...

References

1. Mojtaba Valinejad Shoubi, Azin Shakiba Barough (2013) Investigating the Application of Plastic
Bottle as a Sustainable Material in the Building Construction. International Journal of Science,
Engineering and Technology Research (IJSETR) 2(1): 2278 -7798.

2. Shilpi Saxena, Monika Singh (2013) Eco-Architecture: PET Bottle Houses. International Journal of
Scientific Engineering and Technology 2(12): 1243-1246.

3. K Ramadevi (2012) Experimental Investigation on the Properties of Concrete With Plastic PET
(Bottle) Fibers as Fine Aggregates’ International Journal of Emerging Technology and Advanced
Engineering 2(6): 1-5.

4. Samarpan foundation, House construction with plastic bottles, New Delhi, India.

5. How-To Make a Bottle Brick.

6. Puttaraj Mallikarjun Hiremath, Shanmukha shettya (2014) Utilization Of Waste Plastic In


Manufacturing of Plastic-Soil Bricks, International journal of technology enhancements and
emerging engineering research 2(4): 2347-4289.

7. Pratima Patel, Akash Shah, (2014) Sub stainable development using waste PET bottles as
construction element’www.wastebottleconstruction.com.

8. Arulmalar Ramaraj, Jothilakshmy Nagammal (2014) 30TH International Plea Conference 16-18
December 2014, CEPT University, Ahmedabad, India.

9. Vikram Pakrashi (2014) Experimental Characterization of Polyethylene Terephthalate 1 (PET)


Bottle Eco-Bricks 60: 50-56.

10. Andreas Froese (2001) Plastic bottles in construction who is the founder of ECO-TEC.

11. Yahaya Ahmed (2015) Development Association for Renewable Energies, Nigeria.
12. Seltzer DJ (2000) bottle houses.

13. Job Bwirea, Arithea Nakiwala (2013) Cut costs with a plastic bottle house, New Vision.

14. The sandglass construction material, www.Throughthesandglass.typepad.com.

15. Rajputa RK (2007) Engineering materials: including construction materials. (3rd edn), S Chand &
company, New York, USA.

16. K Jayaprakash (2008) Treasure from the trash in Indian Express 15th December 2008, India.

17. K Jayaprakash (2008) News Article of Indian express: Treasure from the trash, India.

18. Lauren Vork, How to Build a Plastic Bottle Wall, How Contributor.
1. Conventions used in this manual
This list shows the typographical conventions used in this guide:
Style Used for file and directory names, variables in commands, URLs
and new terms.
Style In examples, to show the contents of files, the output from
commands, the C code.
Variables to be replaced with actual values are shown in italics.
Style Variable's names and commands.
In examples, to show the text that should be typed literally by the
user.
# A prompt that indicates the action is performed in the target device.
$ A prompt that indicates the action is performed in the host
computer.
<field> A mandatory field that must be replaced with a value
[field] An optional field
[a|b|c] A field that can take one of several values
This manual also uses these frames and symbols:
This is a warning. It helps solve or to avoid common mistakes
or problems
This is a hint. It contains useful information about a topic
$ This is a host computer session
$ Bold text indicates what must be input
# This is a target session
# Bold text indicates what must be input
This is an excerpt from a file
Bold text indicates what must be input
6
2. Acronyms and Abbreviations
BIOS Basic Input Output System
CPU Central Processing Unit
FAT File Allocation Table
I2C Inter-Integrated Circuit
MBR Master Boot Record
MII Media Independent Interface
NVRAM Non Volatile RAM
OS Operating System
PC Personal Computer
RAM Random Access Memory
TFTP Trivial File Transfer Protocol
USB Universal Serial Bus
7
3. Introduction
3.1 What is a boot loader?
Microprocessors can execute only code that exists in memory (either ROM or RAM), while
operating systems normally reside in large-capacity devices such as hard disks, CD-ROMs, USB
disks, network servers, and other permanent storage media.
When the processor is powered on, the memory doesn't hold an operating system, so special
software is needed to bring the OS into memory from the media on which it resides. This software
is normally a small piece of code called the boot loader. On a desktop PC, the boot loader resides
on the master boot record (MBR) of the hard drive and is executed after the PC's basic input output
system (BIOS) performs system initialization tasks.
In an embedded system, the boot loader’s role is more complicated because these systems rarely
have a BIOS to perform initial system configuration. Although the low-level initialization of the
microprocessor, memory controllers, and other board-specific hardware varies from board to board
and CPU to CPU, it must be performed before an OS can execute.
At a minimum, a boot loader for an embedded system performs these functions:
Initializing the hardware, especially the memory controller
Providing boot parameters for the OS
Starting the OS
Most boot loaders provide features that simplify developing and updating firmware; for example:
Reading and writing arbitrary memory locations
Uploading new binary images to the board's RAM from mass storage devices
Copying binary images from RAM into flash
3.2 What is U-Boot?
U-Boot is an open-source, cross-platform boot loader that provides out-of-box support for hundreds
of embedded boards and many CPUs, including PowerPC, ARM, XScale, MIPS, Coldfire, NIOS,
Microblaze, and x86.
For more information about the U-Boot project see http://sourceforge.net/projects/u-boot/ and
http://www.denx.de/wiki/DULG/Manual.
3.3 Features of U-Boot
3.3.1 Customizable footprint
U-Boot is highly customizable to provide both a rich feature set and a small binary footprint.
3.3.2 Monitor
U-Boot has a command shell (also called a monitor) in which you work with U-Boot commands to
create a customized boot process.
8
3.3.3 Variables
U-Boot uses environment variables that can be read or written to and from non-volatile media. Use
these variables to create scripts of commands (executed one after the other) and to configure the
boot process.
3.3.4 Ethernet and USB
Because U-Boot can download a kernel image using either Ethernet or USB, no flash programming
is needed to test a new kernel. This prevents the deterioration of flash caused by repeated flash
erases and writes.
3.3.5 Numbers
Numbers used by U-Boot are always considered to be in hexadecimal format. For example, U-Boot
understands number 30100000 as 0x30100000.
3.4 The boot process
After power-up or reset, the processor loads the U-Boot boot loader in several steps.
The processor does these steps:
Executes a primary bootstrap that configures the interrupt and exception vectors, clocks,
and SDRAM
Decompresses the U-Boot code from flash to RAM
Passes execution control to the U-Boot
U-Boot does these steps:
Configures the Ethernet MAC address, flash, and, serial console
Loads the settings stored as environment variables in non-volatile memory
After a few seconds (a length of time you can program), automatically boots the preinstalled
kernel
To stop the automatic booting (autoboot) of the pre-installed kernel, send a character to the serial port
by pressing a key from the serial console connected to the target. If U-Boot is stopped, it displays a
command line console (also called monitor).
UU-Boot 1.1.6 (Aug 28 2009 - 14:03:27 - GCC 4.3.2) DUB-RevF3
for ConnectCore 9M 2443 on Development Board
DRAM: 64 MB
NAND: 128 MB
CPU: S3C2443@534MHz
Fclk = 534MHz, Hclk = 133MHz, Pclk = 66MHz
Autoscript from TFTP... [not available]
Hit any key to stop autoboot: 0
9
4. U-Boot commands
4.1 Overview
U-Boot has a set of built-in commands for booting the system, managing memory, and updating an
embedded system’s firmware. By modifying U-Boot source code, you can create your own built-in
commands.
4.2 Built-in commands
For a complete list and brief descriptions of the built-in commands, at the U-Boot monitor prompt,
enter either of these commands:
help
?
You see a list like this one
# help
? - alias for 'help'
autoscr - run script from memory
base - print or set address offset
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootelf - Boot from an ELF image in memory
bootm - boot application image from memory
bootp - boot image via network using BootP/TFTP protocol
bootvx - Boot vxWorks from an ELF image
clock - Set Processor Clock
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
date - get/set/reset date & time
dboot - Digi ConnectCore modules boot commands
dcache - enable or disable data cache
dhcp - invoke DHCP client to obtain IP/boot params
echo - echo args to console
envreset- Sets environment variables to default setting
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
flpart - displays or modifies the partition table.
fsinfo - print information about filesystems
fsload - load binary file from a filesystem image
go - start application at address 'addr'
help - print online help
icache - enable or disable instruction cache
icrc32 - checksum calculation
iloop - infinite loop on address range
imd - i2c memory display
iminfo - print header information for application image
imm - i2c memory modify (auto-incrementing)
imw - memory write (fill)
inm - memory modify (constant address)
intnvram- displays or modifies NVRAM contents like IP or partition table
iprobe - probe to discover valid I2C chip addresses
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
10
ls - list files in a directory (default /)
md - memory display
mm - memory modify (auto-incrementing)
mtest - simple RAM test
mw - memory write (fill)
nand - NAND sub-system
nboot - boot from NAND device
nfs - boot image via network using NFS protocol
nm - memory modify (constant address)
ping - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
printenv_dynamic- Prints all dynamic variables
rarpboot- boot image via network using RARP/TFTP protocol
reset - Perform RESET of the CPU
run - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv - set environment variables
sleep - delay execution for some time
sntp - synchronize RTC via network
tftpboot- boot image via network using TFTP protocol
update - Digi ConnectCore modules update commands
usb - USB sub-system
usbboot - boot from USB device
version - print monitor version
The available commands can vary according to the capabilities of your hardware platform.
For more information about a command, enter:
help command name
# help run
run var [...]
- run the commands in the environment variable(s) 'var'
As you enter the first letters of a command, U-Boot searches its list of built-in
commands until it finds a match. For example, if you enter save or sav or even
sa, U-Boot executes the saveenv command.
You need to enter enough letters for U-Boot to determine the command to
execute. For example, if you enter loa U-Boot cannot tell whether to execute
loadb, loads or loady, and you get an 'Unknown command' message.
4.2.1 Information commands
To get information, use these commands:
Command Description
bdinfo Prints board info structure.
coninfo Prints console devices and information.
date [MMDDhhmm[[CC]YY][.ss]] Gets / sets / resets system date/time.
fatinfo <interface> <dev[:part]> Prints information about the file system from 'dev' on 'interface.'
flinfo [bank] Prints information about the flash memory banks.
fsinfo Prints information about file systems.
iminfo [addr ...] Prints header information for the application image starting at the
'addr' address in memory, including verification of the image
contents (magic number, header, and payload checksums).
This command works only for Linux kernel images.
11
nand bad Shows NAND bad blocks.
nand info Shows available NAND devices.
mii info <addr> Prints MII PHY info
version Displays U-Boot version and timestamp.
4.2.2 MII commands
To access the Ethernet PHY use this commands:
Command Description
mii device Lists available devices.
mii device <device name> Set current device.
mii read <addr > <reg> Reads register 'reg' from MII PHY 'addr'.
mii write <addr > <reg> <data> Writes 'data' to register 'reg' at MII PHY 'addr'.
mii dump <addr > <reg> Displays data of register 'reg' from MII PHY 'addr'.
The parameter addr and reg can be range e.g. 2-7.
The command mii dump is only usable for register 0-5.
4.2.3 Network commands
This table shows the network-related commands:
Command Description
bootp [loadAddress] [bootFilename] Boots the image over the network using the BootP/TFTP
protocol. If no argument is given, bootp takes the values
from the 'loadaddr' and 'bootfile' environment variables.
dhcp Requests an IP address from a DHCP server.
If the ‘autoload’ variable is set to ‘yes’, also transfers the file
to which the ‘bootfile’ environment variable points to the
‘loadaddr” RAM memory address by TFTP.
ping <pingAddress> Pings the IP address passed as parameter. If the other end
responds, you see this message:
"host <pingAddress> is alive".
tftpboot [loadAddress] [bootfilename] Using FTP, transfers image 'bootfilename' into the RAM
address 'loadAddress'.
nfs [loadAddress] [host ip addr:bootfilename] Using NFS, transfers image 'bootfilename' into the RAM
address 'loadAddress'.
rarpboot [loadAddress] [bootfilename] Using RARP/TFTP, transfers image into the RAM address
'loadAddress'.
sntp Gets the date and time from the NTP server to which the
'ntpserverip' environment variable' points..
12
Netconsole is not supported, because of poor performance.
If the autostart variable is set to 'yes', all these commands
(except ping and sntp) boot the transferred image by calling
the bootm command.
bootm does not work for WinCE images. If you are working
with a WinCE image file, either set the autostart variable to
'no' or delete it before executing these network commands.
4.2.4 USB commands
To access the USB subsystem, use the usb command, followed by its operations:
Command Description
usb reset Resets (rescans) USB controller
usb stop [f] Stops USB [f]=force stop
usb tree Shows USB device tree
usb info [dev] Shows available USB devices
usb storage Shows details of USB storage devices
usb dev [dev] Shows or set current USB storage device
usb part [dev] Prints the partition table of one or all USB storage devices
usb read addr blk# cnt Reads 'cnt' blocks starting at block 'blk#' to RAM address
'addr'
fatload usb <dev[:part]> <addr> <filename> Reads 'filename' image from FAT partition 'part' of USB
device 'dev' into the RAM memory address 'addr'.
If part is not specified, partition 1 is assumed.
ext2load usb <dev[:part]> <addr>
<filename>
Reads 'filename' image from EXT2/3 partition 'part' of USB
device 'dev' into the RAM memory address 'addr'.
If part is not specified, partition 1 is assumed.
4.2.5 Memory commands
These commands manage RAM memory:
Command Description
cmp[.b, .w, .l] addr1 addr2 count Compares memory contents from address 'addr1' to 'addr2'
for as many 'count' bytes, words, or long words.
cp[.b, .w, .l] source target count Copies memory contents from address 'source' to 'target'
for as many 'count' bytes, words, or long words.
dcache [on|off] Turns data cache on or off.
eeprom read <addr> <off> <cnt> Copies 'cnt' bytes memory contents from eeprom offset 'off'
to RAM address 'addr'.
eeprom write <addr> <off> <cnt> Copies 'cnt' bytes memory contents from RAM address
'addr' to eeprom offset 'off'.
erase_pt <name> Erases the partition 'name'. With flpart the 'name' can be
found.
go addr [arg ...] Starts the application at address 'addr' passing 'arg' as
arguments.
13
imls Prints information about all images found at sector
boundaries in flash.
icache [on|off] Turns instruction cache on or off.
md[.b, .w, .l] <address> [# of
objects]
Displays the contents of the memory at address 'addr' for as
many '[#of objects]' bytes, words, or long words.
mm[.b, .w, .l] <address> Lets you modify locations of memory, beginning at
‘address,’ which gets auto-incremented.
mw[.b, .w, .l] <address> <value >
[count]
Writes 'value' into 'address' for as many 'count' bytes,
words, or long words.
nm[.b, .w, .l] address Lets you modify a fixed location of memory.
nand[.jffs2] read <addr> <off>
<size>
Copies the memory contents from flash address 'off' to
RAM address 'addr' for as many 'size' bytes (only for NAND
flash memories). Bad block management is used, when
using .jffs2. The bad block management detects bad blocks
and skips them.
nand[.jffs2] write <addr> <off>
<size>
Copies the memory contents from RAM address 'addr' to
flash address 'off' for as many 'size' bytes (NAND flash
memories only). Bad block management is used, when
using .jffs2. The bad block management detects bad blocks
and skips them.
nand erase [off size] Erases 'size' bytes from address 'off'. Erases the entire
device if no parameters are specified (NAND flash
memories only).
U-Boot skips bad blocks and shows their addresses.
nand dump[.oob] off Dumps NAND page at address 'off' with optional out-ofband
data (only for NAND flash memories).
nand markbad <off> Marks block at 'off' as bad.
nand unmarkbad <off> Erases bad block at 'off'.
nboot address dev [off] Boots image from NAND device dev at offset off
(transferring it first to RAM address).
protect [on|off] ... Protects/unprotects NOR sector(s).
The eeprom command uses default eeprom configured by
CFG_I2C_EEPROM_ADDR.
When writing your own boot macro, make sure data cache and
instruction cache are turned off right before booting the OS.
14
4.2.6 Serial port commands
Use these commands to work with the serial line:
Command Description
loadb [off] [baud] Loads binary file over serial line with offset 'off' and baud
rate 'baud' (Kermit mode)
loads [off] Loads S-Record file over the serial line with offset 'off'
loady [off] [baud] Loads binary file over the serial line with offset 'off' and
baud rate 'baud' (Ymodem mode)
4.2.7 I2C commands
These commands interface with the I2C interface:
Command Description
iloop chip address[.0, .1, .2] [# of objects] Loops, reading a set of I2C addresses
imd chip address[.0, .1, .2] [# of objects] Displays I2C memory
imm chip address[.0, .1, .2] Lets you modify I2C memory, with auto-incremented
address
imw address[.0, .1, .2] value [count] Fills with 'value' an I2C memory range
inm chip address[.0, .1, .2] Memory modify, read, and keep address
iprobe Discovers valid I2C chip addresses
itest [.b, .w, .l, .s] [*]value1 <op> [*]value2 Returns TRUE/FALSE on integer compare
4.2.8 Environment variables commands
To read, write, and save environment variables, use these commands:
Command Description
printenv [name ...] If no variable is given as argument, prints all U-Boot
environment variables.
If a list of variable names is passed, prints only those variables.
printenv_dynamic Prints all dynamic variables
envreset Overwrites all current variables values to factory default values.
Does not reset the 'wlanaddr' or 'ethaddr' variables or any other
persistent settings stored in NVRAM (see topic 8.2).
saveenv Writes the current variable values to non-volatile memory
(NVRAM).
setenv name [value] If no value is given, the variable is deleted. If the variable is
dynamic, it is reset to the default value.
If a value is given, sets variable 'name´ to value 'value'.
15
5. Environment variables
5.1 Overview
U-Boot uses environment variables to tailor its operation. The environment variables configure
settings such as the baud rate of the serial connection, the seconds to wait before auto boot, the
default boot command, and so on.
These variables must be stored in either non-volatile memory (NVRAM) such as an EEPROM or a
protected flash partition.
The factory default variables and their values also are stored in the U-Boot binary image itself. In
this way, you can recover the variables and their values at any time with the envreset command.
Environment variables are stored as strings (case sensitive). Custom variables can be created as
long as there is enough space in the NVRAM.
5.2 Simple and recursive variables
Simple variables have a name and a value (given as a string):
# setenv myNumber 123456
# printenv myNumber
myNumber=123456
To expand simple variables, enclose them in braces and prefix a dollar sign:
# setenv myNumber 123456
# setenv var This is my number: ${myNumber}
# printenv var
var=This is my number: 123456
Recursive variables (or scripts) contain one or more variables within their own value. The inner
variables are not expanded in the new variable. Instead, they are expanded when the recursive
variable is run as a command, as shown here:
# setenv dumpaddr md.b \${addr} \${bytes}
# printenv dumpaddr
dumpaddr=md.b ${addr} ${bytes}
# setenv addr 2C000
# setenv bytes 5
# run dumpaddr
0002c000: 00 00 00 00 00 .....
You must use the back slash '\' before '$' to prevent variables from being expanded into other
variables’ values.
5.3 Scripts
In U-Boot, a script is made up of variables that contain a set of commands; the commands are
executed one after another.
Consider this variable:
# printenv cmd1
setenv var val;printenv var;saveenv
If you were to run this script, with run cmd1 the var variable would be created with val value, the
value would be printed to the console, and the variables would be saved to either the EEPROM or
flash partition dedicated to variables.
# run cmd1
var=val
Saving Environment to Flash...
16
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... done
Protected 1 sectors
Separate the commands in a script with semi-colons. (;). As with recursive variables, this sign must
be preceded by a back-slash sign or it is considered the termination of the first command itself.
This is how you would save cmd1:
# setenv cmd1 setenv var val\;printenv var\;saveenv
For running commands stored in variables, use the run command and its variables separated by
spaces:
# setenv cmd1 setenv var val
# setenv cmd2 printenv var
# setenv cmd3 saveenv
# run cmd1 cmd2 cmd3
See how to create a bootscript that automatically executes at start at topic 6.
5.4 System variables
U-Boot uses several built-in variables:
5.4.1 Common system variables
Variable Description
autoload If set to "no" (or any string beginning with 'n'), the rarpboot, bootp, or
dhcp command performs a configuration lookup from the BOOTP /
DHCP server but does not try to load any image using TFTP.
autostart If set to "yes", an image loaded using the rarpboot, bootp, dhcp or
tftpboot commands is automatically started (by internally calling the
bootm command).
baudrate The baud rate of the serial connection.
bootcmd Defines a command string that is automatically executed when the
initial countdown is not interrupted.
Executed only when the bootdelay variable is also defined.
bootdelay Seconds to wait before running the automatic boot process in
bootcmd.
bootfile Name of the default image to load with TFTP.
filesize Contains the size of the last file transferred by TFTP or USB.
fileaddr The RAM address where the last file transferred by TFTP was placed.
ntpserverip NTP server IP address (for getting the date/time).
stdin Standard input system.
stdout Standard output system.
stderr Standard error output system.
17
verify If set to 'n' or 'no,' disables the checksum calculation over the complete
image in the bootm command to trade speed for safety in the boot
process. Note that the header checksum is still verified.
ipaddr IP address of the target's Ethernet interface.
ipaddr_wlan IP address of the target's WLAN interface (for modules that have it).
netmask Subnet mask of Ethernet interface.
netmask_wlan Subnet mask of WLAN interface (for modules that have it).
gatewayip IP address used as network gateway.
serverip IP address of the host PC (for remote connections like TFTP transfers).
5.4.2 Dynamic variables
Depending on the module, the partitioning information, and so on, U-Boot generates some
variables "on the fly" if they do not already exist in U-Boot.
These variables can be overwritten with setenv thus becoming standard U-Boot variables.
Dynamic variables which are not set with setenv also exist (they are automatically created), but
they cannot be printed with printenv.
Some of these variables are OS-specific for different OS implementations (Linux, Windows CE,
NET+OS). They provide special functionality for the OS running in the platform.
For more information, see the boot loader development chapter of your
development kit's documentation.
5.4.3 User keys
The development board in the kit may have two user buttons. If it does, U-Boot can detect which
one is pressed when it starts.
If you press either key when the boot loader is starting, the key1 or key2 variable is executed
before the bootcmd. This lets you have different boot scripts, depending on the key pressed during
boot, so you can boot two different kernels, such as a dual Linux/Windows CE or two versions of
the same OS.
If the key1 and key2 variables do not exist, the normal bootcmd is executed.
When the two keys are pressed during boot, both are detected as pressed, and both scripts are
launched. The script in variable key1 is always executed before the one in variable key2.
You can disable detection of user keys for customized hardware where these
keys don't exist. To do so, you need to reconfigure and recompile U-Boot. See
chapter 11 for information about U-Boot development.
For the Digi Connect ME 9210 only user key 2 is enabled by
default.
18
5.4.4 Protected variables
Several variables are of great relevance for the system and are stored in a protected section of
NVRAM.
Some of these protected variables are, for example, the serial number of the module and the MAC
addresses of the network interfaces, which are programmed during production and normally should
not be changed.
19
6. Bootscript
The bootscript is an script that is automatically executed when the boot loader starts, and before
the OS auto boot process.
The bootscript allows the user to execute a set of predefined U-Boot commands automatically
before proceeding with normal OS boot. This is especially useful for production environments and
targets which don’t have an available serial port for showing the U-Boot monitor.
6.1 Bootscript process
The bootscript works in the following way:
1. U-Boot checks the variable loadbootsc. If set to “no”, it continues normal execution.
2. If the variable loadbootsc is set to “yes” (factory default value) U-Boot tries to download
the bootscript file with the filename stored in variable bootscript from the TFTP server IP
address defined at variable serverip (by default 192.168.42.1).
The default value of the bootscript variable is <platformname>-bootscript.
3. If the bootscript file is successfully downloaded, it is executed.
4. If any of the commands in the bootscript fails, the rest of script is cancelled.
5. When the bootscript has been fully executed (or cancelled) U-Boot continues normal
execution.
6.2 Creating a bootscript
To create a bootscript file:
1. Create a plain text file with the sequence of U-Boot commands. Usually, it is recommended
that the last command sets the variable loadbootsc to “no”, to avoid the bootscript from
executing a second time.
For example, create a file called myscript.txt with the following contents:
setenv company digi
setenv bootdelay 1
printenv company
setenv loadbootsc no
saveenv
This script creates a new variable called company with value digi and sets the bootdelay
to one second. Finally it sets the variable loadbootsc to “no” so that U-Boot doesn’t try to
execute the bootscript in the future, and saves the changes.
2. Execute the mkimage tool (provided with U-Boot) with the file above as input file. Syntax is:
mkimage -T script -n "Bootscript" -C none -d <input_file> <output_file>
The name of the output file must be in the form <platformname>-bootscript, where
<platformname> must be replaced with your target’s platform name.
For example, to create the bootscript from the text file above and for a Connect ME 9210
platform, go to the U-Boot directory and execute:
$ tools/mkimage -T script -n “Bootscript” -C none -d myscript.txt
cme9210js-bootscript
20
6.2.1 Creating a bootscript in Windows
There are some important caveats when producing a bootscript in a Windows host PC.
6.2.1.1 Final carriage return
When creating the plain text file with the sequence of commands, make sure that the last command
in the sequence contains a final carriage return (in other words, a blank line at the end of the file).
Otherwise, the last command in the sequence may not execute.
6.2.1.2 Windows line-end characters
If developing U-Boot in a Windows host (using Cygwin), the plaintext file with the list of commands
might contain incorrect line-end characters. If this is the case, the plaintext file must be converted
first to UNIX line-end format before generating the bootscript. This can be done using the dos2unix
application over the file, before calling mkimage:
$ dos2unix.exe myscript.txt
The prebuilt mkimage tool is not included with the Cygwin
development environment. This tool is built the first time you
compile U-Boot under Cygwin.
6.3 Configuration for launching the bootscript
Once the bootscript file has been created two more steps are needed to let the target run the
bootscript at start.
1. Place the bootscript file into the TFTP exposed folder, so that the target is able to find it
when it boots.
2. The U-Boot variable serverip of the target must point to the host PC with the TFTP server.
You have two options:
a. Connect to the target’s U-Boot monitor and set the serverip variable to the IP of
your host PC.
b. If you don’t have access to the U-Boot monitor or simply don’t want to have any
user interaction with the target (for example in a production environment), configure
the host PC Ethernet card’s IP to the factory default IP address stored in variable
serverip, which is 192.168.42.1.
Once done with all the steps, power up the target and it will connect to the host PC, will download
the bootscript to RAM, execute it, and continue booting as usual.
6.4 Bootscript restrictions
The Digi U-Boot command flpart (for partitioning the Flash) is a menu-driven program, which
expects key presses for different user selections. This command may not work in a bootscript. For
repartitioning the Flash, use the command intnvram instead (refer to chapter 8.2 for more
information).
21
7. Boot commands
7.1 Overview
U-Boot runs code placed in RAM, although it can also read data from other media. The boot
process normally takes place in two steps:
Reading the OS image from media (Ethernet, flash, USB, MMC) into RAM
Jumping to the first instruction of the image in RAM
7.2 Reading images into RAM
7.2.1 From Ethernet
The most common way to boot an image during development is by transferring it using TFTP over
the Ethernet interface. You do this with the tftpboot command, passing:
The address of RAM in which to place the image
The image file name
# tftpboot <loadAddress> <bootfilename>
The TFTP transfer takes place between the serverip address (host) and the ipaddr address
(target). The host must be running a TFTP server and have bootfilename archive placed in the
TFTP-exposed directory.
For Linux kernel images, if the autostart variable is set to yes, this command directly boots the
kernel after downloading it.
7.2.2 From USB
Another way to boot an image is by reading it from a USB flash storage device. The USB disk must
be formatted either in FAT, ext2, or ext3 file system.
To read an image from a USB flash disk formatted in FAT, enter:
# usb reset
# fatload usb <dev>[:partition] <loadAddress> <bootfilename>
If the flash disk is formatted in ext2/ext3:
# usb reset
# ext2load usb <dev>[:partition] <loadAddress> <bootfilename>
This command reads file bootfilename from device dev, partition partition of the USB flash disk into
the RAM address loadAddress. Device and partition are given as a number (0, 1, 2...).
If no partition is specified, partition 1 is assumed.
7.2.3 From MMC
If the target has an MMC or HSMMC (High Speed MMC) interface U-Boot can also read from it.
The MMC card must be formatted either in FAT, ext2, or ext3 file system.
22
To read an image from an MMC card formatted in FAT, enter:
# mmcinit
# fatload mmc <dev>[:partition] <loadAddress> <bootfilename>
If the card is formatted in ext2/ext3:
# mmcinit
# ext2load mmc <dev>[:partition] <loadAddress> <bootfilename>
This command reads file bootfilename from device dev, partition partition of the MMC card into the
RAM address loadAddress. Device and partition are given as a number (0, 1, 2...).
If no partition is specified, partition 1 is assumed.
7.2.4 From flash
For standalone booting, the device can read the image from flash, avoiding dependency on any
external hardware.
In targets with NOR flash memories, do this with memory commands:
# cp.[b/w/l] <sourceAddress> <loadAddress> <count>
This command copies count bytes, words, or long words (depending on the suffix used -: b, w, l -
from sourceAddress into loadAddress.
In targets with NAND flash memories, the special NAND commands must be used:
# nand read <loadAddress> <sourceAddress> <count>
This command copies count bytes from sourceAddress into loadAddress.
7.3 Booting images in RAM
After the image is transferred to RAM, you can boot it in either of two ways, depending on the OS:
For Windows CE images:
# go <loadAddress>
For Linux images:
# bootm <loadAddress>
where loadAddress (in both cases) is the address in RAM at which the image resides.
Windows CE images must be compiled with the information
about the address in RAM from which they will be booted. For
example, if a WinCE kernel is compiled with a boot address of
0x2C0000, it can be transferred to a different address, but the
system can boot only from the compiled-in address.
23
7.4 Direct booting
To simplify the boot process, Digi's U-Boot version includes the dboot built-in command, which
reads the OS image from the media and runs it from RAM in a single step.
The syntax for the dboot command is:
# dboot <os> <media> <dev>[:partition] <filesystem> <bootfilename>
where
os is either linux, wce or netos.
media is either flash, tftp, nfs, usb, mmc, or hsmmc.
dev[:partition] is the device index (only for USB, MMC, HSMMC media) starting at 0 and the
partition number (starting at 1) where the image to boot resides. If not provided, device 0 and
partition 1 are assumed
filesystem is either fat, ext2, or ext3 (only for USB, MMC, HSMMC media) and must match the
file system of the partition that holds the image to boot. If not provided, FAT is assumed.
bootfilename is the name of the kernel image file to download and boot. If not provided, the
filename is taken from ‘kimg’ variable for Linux, or ‘wimg’ for Windows CE
If booting from a network media (tftp, nfs) and the dhcp variable is set to yes or
on, the command first gets an IP address from a DHCP.
7.4.1 Boot examples
Boot default Windows CE image stored in a USB disk with partition 1 formatted in FAT, plugged in
the USB host device 0:
# dboot wce usb
Boot default Linux image stored in an SD card with partition 3 formatted in ext3, plugged in the
USB host device 0:
# dboot linux mmc 0:3 ext3
Refer to your OS user manual for further instructions on booting your kernel
image.
7.5 Automatic booting
If U-Boot is not interrupted after the delay established in bootdelay, the automatic boot process
takes place. Automatic booting consists of running what is specified in the bootcmd environment
variable.
24
In other words, automatic booting has the same effect as doing either of the next two examples:
# run bootcmd
# boot
If, for example, if you want to automatically boot a WinCE image from TFTP server, set bootcmd
like this:
# setenv bootcmd dboot wce tftp
Or, if you want to automatically boot a Linux image from flash, set bootcmd like this:
# setenv bootcmd dboot linux flash
If bootdelay is set to 0, the autoboot happens immediately
after U-Boot starts. To stop the process and enter the monitor,
press a key as soon as the first U-Boot output lines appear.
25
8. Using NVRAM
An embedded OS requires some persistent settings; for example, MAC address, IP address, Internet
gateway, flash partition table, and U-Boot environment variables. You change some of these only in
production and others only during custom setup.
These settings must be stored in non-volatile memory (NVRAM) so they are not lost when you power the
target off.
A partition called NVRAM on the flash memory is used to store these settings. The contents are protected
by a CRC32 checksum and they are also mirrored to a different location in the partition. This way, if
anything goes wrong reading these data or data becomes corrupted, the information can be restored from
the mirrored data.
8.1 The 'flpart' command
To print, modify, or restore the partitions table, use the flpart command. This U-Boot command
requires no arguments; you create the partitions table using a menu of options.
8.1.1 A partition table entry
A partition table entry contains these fields:
Field Description
Number Index of partition in the table
Name Name of the partition
Chip Index of flash chip (normally, only one)
Start Physical start address of the partition (in hex)
Size Size of the partition (in hex)
Type Partition type (what it will contain)
U-Boot
NVRAM
FPGA
Linux-Kernel
WinCE-EBoot
WinCE-Kernel
Net+OS-Kernel
Net+OS-Loader
Net+OS-NVRAM
File system
WinCE-Registry
Splash-Screen
Unknown
FS File system that the partition contains:
YAFFS
JFFS2
CRAMFS
SQUASHFS
INITRD
26
FlashFX
Unknown
Flags Flags (non-exclusive):
read-only
mount read-only
rootfs
8.1.2 Changing the partition table
To modify the partition table, use the flpart command in U-Boot:
# flpart
Commands:
a) Append partition
d) Delete partition
m) Modify partition
p) Print partition table
r) Reset partition table
q) Quit
Cmd (? for help)> p
Nr | Name | Start | Size | Type | FS | Flags
----------------------------------------------------------------------
0 | U-Boot | 0 | 768 KiB | U-Boot | None | fixed
1 | NVRAM | 768 KiB | 256 KiB | NVRAM | None | fixed
2 | FPGA | 1 MiB | 1 MiB | FPGA | None | fixed
3 | EBoot | 2 MiB | 1 MiB | WinCE-EBoot | None |
4 | Registry | 3 MiB | 1 MiB | WinCE-Registry | None |
5 | Kernel | 4 MiB | 20 MiB | WinCE-Kernel | None |
6 | FFX | 24 MiB | 2 MiB | Filesystem | FlashFX |
You add, modify, or delete partitions step-by-step; the command prompts you for the necessary
information.
Start and Size values can be given as hexadecimal numbers (prefixed with 0x)
or as decimal numbers followed with k (for KiB) or m (for MiB).
The partition table also can be reset to the default values. In this case, because the partition table
differs according to the target’s OS, you select the OS you want.
Changes take effect only after quitting 'flpart' and saving the
changes.
When the size or start address of a partition has been changed,
it is always necessary to erase it and write a new image to it.
8.2 The ‘intnvram’ command
Most of the variables stored in NVRAM can be read with the printenv command, modified or
erased with the setenv command, stored with the saveenv command, and reset with the envreset
command. There are, however, protected variables in the NVRAM which are read-only. These are,
for example, the MAC address of the module, the serial number, the boot and NVRAM partitions,
the wireless calibration data, etc.
Protected variables stored in NVRAM can be read, modified, erased, stored, or reset with the
intnvram command.
27
DO NOT USE THE intnvram COMMAND UNLESS YOU ARE
COMPLETELY SURE OF WHAT YOU ARE DOING. INCORRECT USE
CAN DESTROY SENSITIVE NVRAM DATA FOREVER AND MAKE
THE MODULE UNUSABLE
Changes made to NVRAM with the intnvram command are kept in RAM. U-Boot writes the
changes to NVRAM only when you execute the saveenv command or intnvram save command.
Here is the syntax of the intnvram command:
Usage: intnvram help|print <params>|printall|repair|reset|save|set <params>
help : prints this
print : prints selected parameters.
E.g.: print module mac serialnr
printall : prints complete contents and metainfo
repair : Repairs the contents. If one image is
bad, the good one is copied onto it.
If both are good or bad, nothing happens.
reset : resets everything to factory default values.
save : saves the parameters
set : sets parameters.
For help with this command, enter intnvram help.
To print the complete contents of the NVRAM settings, enter intnvram printall.
You can set or print either one parameter or a set of parameters. Parameters are grouped in
blocks. This is the complete parameters list with the possible values some of them can take:
params for "set" or "print" can be
module [producttype=] [serialnr=] [revision=] [patchlevel=]
[ethaddr1=] [ethaddr2=]
network [gateway=] [dns1=] [dns2=] [server=] [netconsole=] [ip1=]
[netmask1=] [dhcp1=] [ip2=] [netmask2=] [dhcp2=]
partition [add] [del] [select=] [name=] [chip=] [start=] [size=]
[type=] [flag_fixed=] [flag_readonly=]
[flag_fs_mount_readonly=] [flag_fs_root=] [flag_fs_type=]
[flag_fs_version=]
os [add] [del] [select=] [type=] [start=] [size=]
Params trailed with '=' require a value in the set command. In the print
command, '=' mustn't be used.
Possible Values are
os type: None,Critical,OS-Meta,U-Boot,Linux,EBoot,WinCE,Net+OS,
Unknown,Application
partition type: U-Boot,NVRAM,FPGA,Linux-Kernel,WinCE-EBoot,WinCE-Kernel,
Net+OS-Kernel,Filesystem,WinCE-Registry,Unknown,
Splash-Screen
flag_fs_type: None,JFFS2,CRAMFS,INITRD,FlashFX,Unknown
Specify the group of the parameter before the parameter itself. For example, to print the module IP
for the wired Ethernet interface, execute:
# intnvram print network ip1
ip1=192.168.42.30
28
For printing different parameters of a block, the block must be used only once. For example, to print
the module's MAC address and serial number, execute:
# intnvram print module ethaddr1 serialnr
ethaddr1=00:40:9D:2E:92:D4
serialnr=0700-94000329A
To set a parameter a valid value must be provided, as shown here:
# intnvram set module serialnr=REVA-6_001
To access a partition parameter, address the specific partition with the parameter select=n, where
n is the index to the partition. This example prints the names of partitions 1 and 2:
# intnvram print partition select=0 name select=1 name
name=U-Boot
name=NVRAM
The ‘reset’ command will completely erase the MAC addresses
and the wireless calibration data of your module. Do not use
the ‘reset’ command unless you have a backup file with the
wireless calibration data for future restoration.
8.2.1 Mappings of variables
Some of the protected variables in NVRAM are mapped to U-Boot environment variables.
Therefore, modifying them with intnvram command is the same as doing so with setenv
command. For security reasons, however, some variables cannot be modified with the
setenv command.
This table lists the mapped variables:
U-Boot variable NVRAM parameter Blocked for 'setenv'
ethaddr ethaddr1 X
wlanaddr ethaddr2 X
netmask netmask1
netmask_wlan netmask2
ipaddr ip1
ipaddr_wlan ip2
dnsip dns1
dnsip2 dns2
dhcp dhcp1
dhcp2 dhcp2
serverip server
gatewayip gateway
29
9. Firmware update commands
9.1 Overview
The boot loader, kernel, and other data stored in flash form the firmware of the device. Because
U-Boot can write any part of flash, its flash commands can be used to reprogram (update) any part
of the firmware. This includes the boot loader itself.
The update process normally takes place in three steps:
Reading image from media (Ethernet, USB, MMC) into RAM memory
Erasing the flash that is to be updated
Copying the image from RAM into flash
9.2 Updating flash with images in RAM
Flash memory must be updated with images located in RAM memory. You can move images to
RAM using either Ethernet, USB, or MMC (see section 7.2 for more information).
To erase flash and copy the images from RAM to flash, use these commands:
For NOR flash memory:
# erase address +size
# cp.[b|w|l] sourceAddress targetAddress count
The first command erases size bytes beginning at address. The second command copies count
bytes, words or long words (depending on the suffix used: b, w, l) from sourceAddress into
targetAddress.
For NAND flash memory:
# nand erase address size
# nand write sourceAddress targetAddress count
The first command erases size bytes beginning at address. The second command copies count
bytes from sourceAddress into targetAddress.
The erasure of the flash comprises whole erase-blocks.
The address and size parameters must be multiples of the
erase-blocks of the flash memory. See your module's flash
datasheet for the erase-block size.
30
9.3 Direct updating
Digi's U-Boot version includes the built-in update command. This command copies the image from
the media to RAM, erases the flash size needed for the image, and moves the image from RAM
into flash in a single step, simplifying the update process.
Here is the syntax for update:
# help update
update partition [source [device:part filesystem] [file]]
- updates 'partition' via 'source'
values for 'partition': uboot, linux, rootfs, userfs, eboot, wce, wcez,
netos, netos_loader, splash, or any partition name
values for 'source': tftp, nfs, usb, mmc, hsmmc
'device:part': number of device and partition, for 'usb', 'mmc', 'hsmmc'
sources
values for 'filesystem': fat|vfat, ext2|ext3
values for 'file' : the file to be used for updating
source is the place to take the image from. If not provided, tftp is assumed.
dev[:partition] is the device index (only for USB, MMC, HSMMC media) starting at 0, and the
partition number (starting at 1) where the image to update resides. If not provided, device 0 and
partition 1 are assumed
filesystem is either fat, ext2, or ext3 (only for USB, MMC, HSMMC media). If not provided, FAT
is assumed.
file is the name of the image to download and update. If not provided, the filename is taken
from one of the following U-Boot environment variables (depending on the partition to be
updated):
o kimg: for the Linux kernel image
o wimg: for the Windows CE kernel image
o nimg: for the NET+OS kernel image
o uimg: for the boot loader image
o usrimg: for the user image
o rimg: for the Linux root file system image
o simg: for the Splash screen image
o fimg: for the FPGA image
o nloader: for the Windows CE kernel image
If updating from a network media (tftp, nfs) and the dhcp variable is set to yes
or on, the command first gets an IP address from a DHCP server.
For example, to update the Splash screen partition using a file called ‘mylogo.bmp’ that resides on
the second partition (formatted in ext3) of an SD card which is plugged in the first MMC device
(index 0), the update command would be:
# update splash mmc 0:2 ext3 mylogo.bmp
31
To update the boot loader from the TFTP exposed folder with the default name image stored in
variable uimg, the update command would be:
# update uboot
9.3.1 Update limits
The update command in U-Boot transfers files to RAM, erases the flash partition, and writes the
files from RAM into flash memory.
The file that is transferred is copied to a specific physical address in RAM; therefore, the maximum
length of the file to update is:
Update file size limit = Total RAM memory – RAM offset where the file was loaded
As a general rule, U-Boot does not let you update a flash partition with a file whose size exceeds
the available RAM memory. This means that, for example, if you have a module with 32MB RAM
and 64MB flash and you want to update a partition with a file that is 35MB, U-Boot will not do it.
Note that this limitation is due to the RAM memory size, as U-Boot first needs to transfer the file to
RAM before copying it to flash.
For updating partitions with files larger than the available RAM memory, see
your OS-specific update flash tool.
32
10. Customize U-Boot
10.1 Overview
U-Boot has a lot of functionalities, which can only be enabled before compiling U-Boot. To
configure U-Boot options and customize the boot loader, refer to your OS specific user manual.
Description of some available configurations follow:
10.2 JTAG Console
The JTAG console uses the JTAG interface instead of the serial line, which is used by the default
console. The Requirements for the JTAG console are a debugger and a host application to
communicate with the Direct Communication Channel. The BDI2000 supports input/output and the
Segger jlink supports output only.
This configuration does not work together with silent mode.
Before you can start using JTAG-Console you have to configure your debugger for using the Direct
Communication Channel. Using a BDI200 you have to add the following line in section [TARGET]
to your BDI configuration file:
DCC 7
After that type:
$ telnet <bdi2000 ip-address> 7
Connected to bdi2000.
Escape character is '^]'.
Using a Segger jlink the version 3.87i or higher of jlink-software is required. Start the
jlinkcommander and type:
$ term
Only stdout can be used with the Segger jlink.
After starting your target you can switch output and input independently to JTAG console by typing
# setenv stdout jtag
# setenv stdin jtag
# setenv stderr jtag
# saveenv
After reboot the JTAG console is used by default, if you have stored the
environment.
33
10.3 Silent Console
The target does not display any output when the console is set to silent mode. Before using a boot
loader with silent console, you should first define a way to recover from it. Otherwise you will not be
able to disable it in the future.
The first possibility is using the key environments variables (see topic 5.4.3):
# setenv key1 setenv silent no\;saveenv
# saveenv
The sequence to recover from silent mode is the following:
1. Keep Key1 pressed while the target is booting
2. After a short time (about 4 seconds) press the reset button
3. The target now boots with output on the console
The second possibility to recover from silent mode is using a gpio. To use this functionality you
have to define the gpio number and the level of the gpio, which signals the console to leave the
silent mode. The number of the gpios can be found in the hardware reference.
You will need the JTAG interface to flash the firmware, when
the function to recover from silent mode is undefined.
The console is switch to silent mode after reboot by typing:
# setenv silent yes
# saveenv
After reboot you can recover from silent mode, by setting the gpio to the defined level short after
the target starts to boot or when the target end to boot. The second point is only reached, when
autoboot is not used or the execution fails.
10.4 Splash screen support
The U-Boot splash screen support allows the user to display a picture at boot time on an LCD or
monitor that is connected to the target. The picture is read from a partition in the flash.
Some platforms have splash support already enabled in U-Boot and some have not. To determine
if your platform has splash support enabled, check if the variable video exists:
# printenv_dynamic
If it exists and has some value, there should also be a partition for the splash screen image. Check
it with command flpart and option p to print the partition table. If there is no splash screen partition,
refer to chapter 8.1 to create one. If there is, you can go to chapter 10.4.3 to see how to upload a
splash image to the flash partition.
34
10.4.1 Enable splash screen support in U-Boot
Go to your OS configuration tool for U-Boot and enable the Display support and splash screen
support. You will need to select the displays you want to support (more than one can be
supported):
Display resolution
Sharp LQ057Q3DC12I 320x240
Sharp LQ064V3DG01 640x480
VGA monitor 640x480
EDT 8-inch QVGA 320x240
Sharp LQ070Y3DG3B1 800x480
Note that, depending on your platform, some displays might not be available.
Save the changes and recompile U-Boot. Then update the U-Boot image in your target.
10.4.2 Creating a splash partition
A partition is needed to hold the splash screen image. If your partition table doesn’t have one, you
need to create it with the flpart command:
# flpart
Nr | Name | Start | Size | Type | FS |
Flags
---------------------------------------------------------------------
0 | U-Boot | 0 |768 KiB |U-Boot | | fixed
1 | NVRAM | 768 KiB |512 KiB |NVRAM | | fixed
2 | Kernel | 1280 KiB | 3 MiB |Linux-Kernel | |
3 | RootFS-JFFS2 | 4352 KiB | 16 MiB |Filesystem | JFFS2 | rootfs
4 | User-JFFS2 |20736 KiB | 11 MiB | Filesystem | JFFS2 |
Commands:
a) Append partition
d) Delete partition
m) Modify partition
p) Print partition table
r) Reset partition table
q) Quit
Cmd (? for help)> a
Last partition 4 had already maximum size.
Size (in MiB, 0 for auto, 11 MiB max) (11 MiB): 10 MiB
Adding partition # 5
Name (): Splash
Chip (0): 0
Start (in MiB, 0 for auto) (0): 0
--> Set to 31 MiB
Size (in MiB, 0 for auto, 1 MiB max) (0): 1MiB
Partition Types
Partition Type (U-Boot, ? for help)> s
Fixed (n): n
Readonly (n): n
Partition 5 added
Cmd (? for help)> p
Nr | Name | Start | Size | Type | FS | Flags
---------------------------------------------------------------------
0 | U-Boot | 0 |768 KiB |U-Boot | | fixed
1 | NVRAM | 768 KiB |512 KiB |NVRAM | | fixed
2 | Kernel | 1280 KiB | 3 MiB |Linux-Kernel | |
3 | RootFS-JFFS2 | 4352 KiB | 16 MiB |Filesystem | JFFS2 | rootfs
35
4 | User-JFFS2 |20736 KiB | 10 MiB |Filesystem | JFFS2 |
5 | Splash | 31 MiB | 1 MiB |Splash-Screen | |
Cmd (? for help)>q
Partition table has been modified. Save? (y): y
Writing Parameters to NVRAM
10.4.3 Uploading a splash image
After the partition is created the splash image has to be flashed. Only 8-bit BMP images can be
used. Images must match the display resolution.
Uploading is done by following command (in the example, the bitmap file digi.bmp is used):
# update Splash tftp digi.bmp
TFTP from server 192.168.42.1; our IP address is 192.168.42.30
Filename 'digi.bmp'.
Load address: 0x200000
Loading: ######
done
Bytes transferred = 77878 (13036 hex)
Calculated checksum = 0x2a13f7f
Erasing: complete
Writing: complete
Verifying: complete
Update successful
Or, if the variable simg contains the BMP filename, you can simply execute:
# update splash
A splash image takes about 75 KiB for QVGA resolution and 300 KiB for VGA
resolution.
If the splash image does not match the resolution of the
display or it is not 8-bit pallet bitmap, U-Boot will print an
error message and will not show the splash screen.
10.4.4 Initialize video interface
To initialize the video interface in U-Boot, the following variables must be set:
# setenv videoinit yes
# setenv video displayfb:DISPLAYNAME
# saveenv
where DISPLAYNAME is the name of the connected display:
LQ057Q3DC12I
LQ064V3DG01
VGA
EDT28
36
LQ070Y3DG3B1
In order to change the selected display without recompiling U-Boot, each display
must have support enabled. See in topic 10.4.1.
The default location of the frame buffer is at the end of U-Boot in RAM. The location can be
changed by setting:
# setenv fb_base <address>
The default is also used if the passed address for the frame buffer is inside of a protected area (for
example if the address points to the U-Boot code).
Platforms cc9m2443 and ccw9m2443 always initialize the
video interface, regardless of the value of ‘videoinit’ variable or
the existence of a splash partition.
37
11. U-Boot development
U-Boot is an open source project. Sources are freely distributed, and you can modify them to meet
your requirements for a boot loader.
The project sources are ready to be installed and compiled in a Linux environment. If you do not
have a Linux machine for development, you can install the Cygwin X-Tools software
(http://www.cygwin.com). The X-Tools provide a Unix-like development environment for Windows,
based on Cygwin and the GNU toolchain, to cross-compile the boot loader.
For information about installing the U-Boot sources, modifying platform-specific sources, and
recompiling the boot loader, see your development kit documentation. Procedures may vary
according to hardware platform and OS.
38
12. Troubleshooting
12.1 Work with FIMs on NS921x based modules
Modules using NS921x processors can use the FIMs in the processor as UART and/or SD
controller.
When using the FIMs, instruction cache must be enabled, otherwise they may malfunction.
Instruction cache is enabled by default in U-Boot, so do not disable it when using the FIMs.
12.2 Problems booting from NFS
When booting or updating directly from NFS, sometimes U-Boot can experience problems
mounting or unmounting the NFS server. To work around this problem, edit the file /etc/hosts of
the host PC serving the NFS path and add a line with the IP address of the target.
192.168.42.40 mytarget
12.3 USB memory sticks
U-Boot might experience problems detecting certain USB memory sticks due to different response
timings.

You might also like