OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [redboot/] [v2_0/] [doc/] [redboot_cmds.sgml] - Blame information for rev 739

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
2
 
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
30
31
 
32
33
RedBoot Commands and Examples
34
35
Introduction
36
RedBootcommands and examples
37
commands and examples
38
RedBoot provides three basic classes of commands:    
39
Program loading and execution
40
41
Flash image and configuration management
42
43
Miscellaneous commands
44
45
Given the extensible and configurable nature of eCos and RedBoot,
46
there may be extended or enhanced sets of commands available.
47
The basic format for commands is:    RedBoot> COMMAND [-S]... [-s val]... operand
48
49
50
51
Commands may require additional information beyond the basic
52
command name. In most cases this additional information is optional, with
53
suitable default values provided if they are not present.
54
 
55
      
56
        
57
          
58
          
59
          
60
          
61
            
62
              Format
63
              Description
64
              Example
65
            
66
          
67
          
68
            
69
              -S
70
              A boolean switch; the behavior of the command will differ, depending
71
on the presence of the switch.  In this example, the -f switch
72
indicates that a complete initialization of the FIS data should be performed.
73
There may be many such switches available for any given command and any or all of
74
them may be present, in any order.
75
              
76
                 RedBoot> fis init -f
77
              
78
            
79
            
80
              -s val
81
              A qualified value; the letter "s" introduces the value, qualifying it's meaning.  In the
82
example, -b 0x100000 specifies where the memory dump should begin.
83
There may be many such switches available for any given command and any or all of
84
them may be present, in any order.
85
86
              
87
                 RedBoot> dump -b 0x100000 -l 0x20
88
              
89
            
90
            
91
               operand
92
              A simple value; some commands require a single parameter for which an additional
93
-X switch would be redundant.  In the example, JFFS2
94
is the name of a flash image.  The image name is always required, thus is no need to qualify it with
95
a switch.
96
Note that any un-qualified operand must always appear at the end of the command.
97
              
98
                 RedBoot> fis delete JFFS2
99
              
100
            
101
          
102
        
103
      
104
 
105
106
The list of available commands, and their syntax, can be obtained by
107
typing help at the command line:
108
109
RedBoot> help
110
Manage aliases kept in FLASH memory
111
      alias name [value]
112
Set/Query the system console baud rate
113
      baudrate [-b <rate>]
114
Manage machine caches
115
      cache [ON | OFF]
116
Display/switch console channel
117
      channel [-1|<channel number>]
118
Display disk partitions
119
      disks
120
Display (hex dump) a range of memory
121
      dump -b <location> [-l <length>] [-s]
122
Manage flash images
123
      fis {cmds}
124
Manage configuration kept in FLASH memory
125
      fconfig [-i] [-l] [-n] [-f] [-d] | [-d] nickname [value]
126
Execute code at a location
127
      go [-w <timeout>] [entry]
128
Help about help?
129
      help [<topic>]
130
Set/change IP addresses
131
      ip_address [-l <local_ip_address>] [-h <server_address>]
132
Load a file
133
      load [-r] [-v] [-d] [-c <channel>] [-h <host>] [-m {TFTP | HTTP | {x|y}MODEM | disk}]
134
      [-b <base_address>] <file_name>
135
Network connectivity test
136
      ping [-v] [-n <count>] [-t <timeout>] [-i <IP_addr]
137
      -h <host>
138
Reset the system
139
      reset
140
Display RedBoot version information
141
      version
142
Display (hex dump) a range of memory
143
      x -b <location> [-l <length>] [-s]
144
145
146
147
Commands can be abbreviated to their shortest
148
unique string. Thus in the list above, d,du,dum
149
and dump are all valid for the dump command. The fconfig
150
command can be abbreviated fc, but
151
f would be ambiguous with fis.
152
153
There is one additional, special command. When RedBoot detects '$' or '+'
154
(unless escaped via '\') in a command, it switches to GDB protocol mode. At this
155
point, the eCos GDB stubs take over, allowing connections from a GDB host.
156
The only way to get back to RedBoot from GDB mode is to restart the platform.
157
158
NOTE
159
160
Multiple commands may be entered on a single line, separated by the semi-colon “;” character.
161
162
163
The standard RedBoot command set is structured around the bootstrap
164
environment. These commands are designed to be simple to use and remember,
165
while still providing sufficient power and flexibility to be useful. No attempt
166
has been made to render RedBoot as the end-all product. As such, things such
167
as the debug environment are left to other modules, such as GDB stubs, which
168
are typically included in RedBoot. 
169
The command set may be also be extended on a platform basis. 
170
171
 
172
173
Common Commands
174
175
  commandscommon
176
  
177
178
 
179
180
  
181
    
182
      alias
183
      Manipulate command line aliases
184
    
185
    
186
      
187
        alias
188
         name
189
         value
190
      
191
    
192
    
193
      Arguments
194
      
195
        
196
          
197
          
198
          
199
          
200
          
201
            
202
              Name
203
              Type
204
              Description
205
              Default
206
            
207
          
208
          
209
            
210
              name
211
              Name
212
              The name for this alias.
213
              none
214
            
215
            
216
              value
217
              String
218
              Replacement value for the alias.
219
              none
220
            
221
          
222
        
223
      
224
    
225
    
226
      Description
227
      The alias command is used to maintain simple command
228
line aliases.  These aliases are shorthand for longer expressions.
229
When the pattern %{name} appears in a command line, including in a script,
230
the corresponding value will be substituted.  Aliases may be nested.
231
      
232
      
233
If no value is provided, then the current value of the alias is displayed.
234
      
235
      
236
If the system supports non-volatile configuration data via the
237
fconfig command (see ),
238
then the value will be saved and used when the system is reset.
239
      
240
    
241
    
242
      Examples
243
      
244
Set an alias.
245
246
RedBoot> alias joe "This is Joe"
247
Update RedBoot non-volatile configuration - continue (y/n)? n
248
249
250
251
Display an alias.
252
253
RedBoot> alias joe
254
'joe' = 'This is Joe'
255
256
257
258
Use an alias.  Note: the "=" command simply echoes the command to to console.
259
260
RedBoot> = %{joe}
261
This is Joe
262
263
264
265
Aliases can be nested.
266
267
RedBoot> alias frank "Who are you? %{joe}"
268
Update RedBoot non-volatile configuration - continue (y/n)? n
269
RedBoot> = %{frank}
270
Who are you? This is Joe
271
272
273
274
Notice how the value of %{frank} changes when %{joe} is changed since
275
the value of %{joe} is not evaluated until %{frank} is evaluated.
276
277
RedBoot> alias joe "This is now Josephine"
278
Update RedBoot non-volatile configuration - continue (y/n)? n
279
RedBoot> = %{frank}
280
Who are you? This is now Josephine
281
282
      
283
    
284
  
285
 
286
287
  
288
    
289
      baudrate
290
      Set the baud rate for the system serial console
291
    
292
    
293
      
294
        baudrate
295
        -b rate
296
      
297
    
298
    
299
      Arguments
300
      
301
        
302
          
303
          
304
          
305
          
306
          
307
            
308
              Name
309
              Type
310
              Description
311
              Default
312
            
313
          
314
          
315
            
316
              -b rate
317
              Number
318
              The baud rate to use for the serial console.
319
              none
320
            
321
          
322
        
323
      
324
    
325
    
326
      Description
327
      The baudrate command sets the baud rate for the system serial console.
328
      
329
      
330
If no value is provided, then the current value of the console baud rate is displayed.
331
      
332
      
333
If the system supports non-volatile configuration data via the
334
fconfig command (see ),
335
then the value will be saved and used when the system is reset.
336
      
337
    
338
    
339
      Examples
340
      
341
Show the current baud rate.
342
343
RedBoot> baudrate
344
Baud rate = 38400
345
346
347
348
Change the console baud rate.  In order to make this operation safer,
349
there will be a slight pause after the
350
first message to give you time to change to the new baud rate.
351
If it doesn't work, or a less than affirmative answer is given to the
352
"continue" prompt, then the baud rate will revert to the current value.
353
Only after the baud rate has been firmly established will RedBoot
354
give you an opportunity to save the value in persistent storage.
355
356
RedBoot> baudrate -b 57600
357
Baud rate will be changed to 57600 - update your settings
358
Device baud rate changed at this point
359
Baud rate changed to 57600 - continue (y/n)? y
360
Update RedBoot non-volatile configuration - continue (y/n)? n
361
362
      
363
    
364
  
365
 
366
367
  
368
    
369
      cache
370
      Control hardware caches
371
    
372
    
373
      
374
        cache
375
        
376
          on
377
          off
378
        
379
      
380
    
381
    
382
      Arguments
383
      
384
        
385
          
386
          
387
          
388
          
389
          
390
            
391
              Name
392
              Type
393
              Description
394
              Default
395
            
396
          
397
          
398
            
399
              on
400
              
401
              Turn the caches on
402
              none
403
            
404
            
405
              off
406
              
407
              Turn the caches off
408
              none
409
            
410
          
411
        
412
      
413
    
414
    
415
      Description
416
      The cache command is used to manipulate the caches on the processor. 
417
      With no options, this command specifies the state of the system caches.
418
      When an option is given, the caches are turned off or on appropriately.
419
    
420
    
421
      Examples
422
      
423
Show the current cache state.
424
425
RedBoot> cache
426
Data cache: On, Instruction cache: On
427
428
429
430
Disable the caches.
431
432
RedBoot> cache off
433
RedBoot> cache
434
Data cache: Off, Instruction cache: Off
435
436
437
438
Enable the caches.
439
440
RedBoot> cache on
441
RedBoot> cache
442
Data cache: On, Instruction cache: On
443
444
      
445
    
446
  
447
 
448
449
  
450
    
451
      channel
452
      Select the system console channel
453
    
454
    
455
      
456
        channel
457
        
458
          -1
459
          channel_number
460
        
461
      
462
    
463
    
464
      Arguments
465
      
466
        
467
          
468
          
469
          
470
          
471
          
472
            
473
              Name
474
              Type
475
              Description
476
              Default
477
            
478
          
479
          
480
            
481
              -1
482
              
483
              Reset the console channel
484
              none
485
            
486
            
487
              channel_number
488
              Number
489
              Select a channel
490
              none
491
            
492
          
493
        
494
      
495
    
496
    
497
      Description
498
      
499
With no arguments, the channel command displays the current console channel number.
500
501
When passed an argument of 0 upward, this command switches the console
502
channel to that channel number. The mapping between channel numbers and
503
physical channels is platform specific but will typically be something like
504
channel 0 is the first serial port, channel 1 is the second, etc.
505
506
When passed an argument of -1, this command reverts RedBoot to responding
507
to whatever channel receives input first, as happens when RedBoot initially
508
starts execution.
509
510
    
511
    
512
      Examples
513
      
514
Show the current channel.
515
516
RedBoot> channel
517
Current console channel id: 0
518
519
520
521
Change to an invalid channel.
522
523
RedBoot> channel 99
524
**Error: bad channel number '99'
525
526
527
528
Revert to the default channel setting (any console mode).
529
530
RedBoot> channel -1
531
532
      
533
    
534
  
535
 
536
537
  
538
    
539
      cksum
540
      Compute POSIX checksums
541
    
542
    
543
      
544
        cksum
545
            -b location
546
            -l length
547
      
548
    
549
    
550
      Arguments
551
      
552
        
553
          
554
          
555
          
556
          
557
          
558
            
559
              Name
560
              Type
561
              Description
562
              Default
563
            
564
          
565
          
566
            
567
              -b location
568
              Memory address
569
              Location in memory for stat of data.
570
              none
571
            
572
            
573
              -l length
574
              Number
575
              Length of data
576
              none
577
            
578
          
579
        
580
      
581
    
582
    
583
      Description
584
          Computes the POSIX checksum on a range of memory (either RAM or FLASH).
585
The values printed (decimal cksum, decimal length, hexadecimal cksum,
586
          hexadecimal length) can be compared with the output from the Linux program 'cksum'.
587
588
    
589
    
590
      Examples
591
      
592
Checksum a buffer.
593
594
RedBoot> cksum -b 0x100000 -l 0x100
595
POSIX cksum = 3286483632 256 (0xc3e3c2b0 0x00000100)
596
597
      
598
      
599
Checksum an area of memory after loading a file. Note that the base
600
address and length parameters are provided by the preceding
601
load command.
602
603
RedBoot> load -r -b %{FREEMEMLO} redboot.bin
604
Raw file loaded 0x06012800-0x0602f0a8
605
RedBoot> cksum
606
Computing cksum for area 0x06012800-0x0602f0a8
607
POSIX cksum = 2092197813 116904 (0x7cb467b5 0x0001c8a8)
608
609
      
610
    
611
  
612
 
613
614
  
615
    
616
      disks
617
      List available disk partitions.
618
    
619
    
620
      
621
        disks
622
      
623
    
624
    
625
      Arguments
626
None.
627
    
628
    
629
      Description
630
        The disks command is used to list disk partitions recognized by RedBoot.
631
    
632
    
633
      Examples
634
      
635
Show what disk partitions are available.
636
637
RedBoot> disks
638
hda1     Linux Swap
639
hda2     Linux
640
00100000: 00 3E 00 06 00 06 00 06  00 00 00 00 00 00 00 00  |.>..............|
641
00100010: 00 00 00 78 00 70 00 60  00 60 00 60 00 60 00 60  |...x.p.`.`.`.`.`|
642
643
      
644
    
645
  
646
 
647
648
  
649
    
650
      dump
651
      Display memory.
652
    
653
    
654
      
655
        dump
656
            -b location
657
            -l length
658
            -s
659
          
660
            -1
661
            -2
662
            -4
663
          
664
      
665
    
666
    
667
      Arguments
668
      
669
        
670
          
671
          
672
          
673
          
674
          
675
            
676
              Name
677
              Type
678
              Description
679
              Default
680
            
681
          
682
          
683
            
684
              -b location
685
              Memory address
686
              Location in memory for start of data.
687
              none
688
            
689
            
690
              -l length
691
              Number
692
              Length of data
693
              32
694
            
695
            
696
              -s
697
              Boolean
698
              Format data using Motorola S-records.
699
              
700
            
701
            
702
              -1
703
              
704
              Access one byte (8 bits) at a time.
705
Only the least significant 8 bits of the pattern will be used.
706
              -1
707
            
708
            
709
              -2
710
              
711
              Access two bytes (16 bits) at a time.
712
Only the least significant 16 bits of the pattern will be used.
713
              -1
714
            
715
            
716
              -4
717
              
718
              Access one word (32 bits) at a time.
719
              -1
720
            
721
          
722
        
723
      
724
    
725
    
726
      Description
727
        Display a range of memory on the system console.
728
        The x is a synonym for dump.
729
        Note that this command could
730
be detrimental if used on memory mapped hardware registers. 
731
        The memory is displayed at most sixteen bytes per line, first as the
732
raw hex value, followed by an ASCII interpretation of the data. 
733
    
734
    
735
      Examples
736
      
737
Display a buffer, one byte at a time.
738
739
RedBoot> mfill -b 0x100000 -l 0x20 -p 0xDEADFACE
740
RedBoot> x -b 0x100000
741
00100000: CE FA AD DE CE FA AD DE  CE FA AD DE CE FA AD DE  |................|
742
00100010: CE FA AD DE CE FA AD DE  CE FA AD DE CE FA AD DE  |................|
743
744
745
746
Display a buffer, one short (16 bit) word at a time.  Note in this case that
747
the ASCII interpretation is suppressed.
748
749
RedBoot> dump -b 0x100000 -2
750
00100000: FACE DEAD FACE DEAD  FACE DEAD FACE DEAD
751
00100010: FACE DEAD FACE DEAD  FACE DEAD FACE DEAD
752
753
754
755
Display a buffer, one word (32 bit) word at a time.  Note in this case that
756
the ASCII interpretation is suppressed.
757
758
RedBoot> dump -b 0x100000 -4
759
00100000: DEADFACE DEADFACE DEADFACE DEADFACE
760
00100010: DEADFACE DEADFACE DEADFACE DEADFACE
761
762
763
764
Display the same buffer, using Motorola S-record format.
765
766
RedBoot> dump -b 0x100000 -s
767
S31500100000CEFAADDECEFAADDECEFAADDECEFAADDE8E
768
S31500100010CEFAADDECEFAADDECEFAADDECEFAADDE7E
769
770
771
772
Display a buffer, with visible ASCII strings.
773
774
RedBoot> d -b 0xfe00b000 -l 0x80
775
0xFE00B000: 20 25 70 0A 00 00 00 00  41 74 74 65 6D 70 74 20 | %p.....Attempt |
776
0xFE00B010: 74 6F 20 6C 6F 61 64 20  53 2D 72 65 63 6F 72 64 |to load S-record|
777
0xFE00B020: 20 64 61 74 61 20 74 6F  20 61 64 64 72 65 73 73 | data to address|
778
0xFE00B030: 3A 20 25 70 20 5B 6E 6F  74 20 69 6E 20 52 41 4D |: %p [not in RAM|
779
0xFE00B040: 5D 0A 00 00 2A 2A 2A 20  57 61 72 6E 69 6E 67 21 |]...*** Warning!|
780
0xFE00B050: 20 43 68 65 63 6B 73 75  6D 20 66 61 69 6C 75 72 | Checksum failur|
781
0xFE00B060: 65 20 2D 20 41 64 64 72  3A 20 25 6C 78 2C 20 25 |e - Addr: %lx, %|
782
0xFE00B070: 30 32 6C 58 20 3C 3E 20  25 30 32 6C 58 0A 00 00 |02lX <> %02lX...|
783
0xFE00B080: 45 6E 74 72 79 20 70 6F  69 6E 74 3A 20 25 70 2C |Entry point: %p,|
784
785
      
786
    
787
  
788
 
789
790
  
791
    
792
      help
793
      Display help on available commands
794
    
795
    
796
      
797
        help
798
         topic
799
      
800
    
801
    
802
      Arguments
803
      
804
        
805
          
806
          
807
          
808
          
809
          
810
            
811
              Name
812
              Type
813
              Description
814
              Default
815
            
816
          
817
          
818
            
819
              topic
820
              String
821
              Which command to provide help for.
822
              All commands
823
            
824
          
825
        
826
      
827
    
828
    
829
      Description
830
      
831
The help command displays information about the available
832
RedBoot commands.  If a topic is given, then the display
833
is restricted to information about that specific command.
834
      
835
      
836
If the command has sub-commands, e.g. fis, then the topic
837
specific display will print additional information about the available sub-commands.
838
special (ICMP) packets to a specific host. These packets should be automatically
839
returned by that host. The command will indicate how many of these round-trips
840
were successfully completed.
841
      
842
    
843
    
844
      Examples
845
      
846
Show generic help.  Note that the contents of this display will depend on the various configuration
847
options for RedBoot when it was built.
848
849
RedBoot> help
850
Manage aliases kept in FLASH memory
851
   alias name [value]
852
Manage machine caches
853
   cache [ON | OFF]
854
Display/switch console channel
855
   channel [-1|<channel number>]
856
Compute a 32bit checksum [POSIX algorithm] for a range of memory
857
   cksum -b <location> -l <length>
858
Display (hex dump) a range of memory
859
   dump -b <location> [-l <length>] [-s] [-1|2|4]
860
Manage FLASH images
861
   fis {cmds}
862
Manage configuration kept in FLASH memory
863
   fconfig [-i] [-l] [-n] [-f] [-d] | [-d] nickname [value]
864
Execute code at a location
865
   go [-w <timeout>] [entry]
866
Help about help?
867
   help [<topic>]
868
Set/change IP addresses
869
   ip_address [-l <local_ip_address>] [-h <server_address>]
870
Load a file
871
   load [-r] [-v] [-d] [-h <host>] [-m {TFTP | HTTP | {x|y}MODEM -c <channel_number>}]
872
        [-b <base_address>] <file_name>
873
Compare two blocks of memory
874
   mcmp -s <location> -d <location> -l <length> [-1|-2|-4]
875
Fill a block of memory with a pattern
876
   mfill -b <location> -l <length> -p <pattern> [-1|-2|-4]
877
Network connectivity test
878
   ping [-v] [-n <count>] [-l <length>] [-t <timeout>] [-r <rate>]
879
        [-i <IP_addr>] -h <IP_addr>
880
Reset the system
881
   reset
882
Display RedBoot version information
883
   version
884
Display (hex dump) a range of memory
885
   x -b <location> [-l <length>] [-s] [-1|2|4]
886
887
      
888
      
889
Help about a command with sub-commands.
890
891
RedBoot> help fis
892
Manage FLASH images
893
   fis {cmds}
894
Create an image
895
  fis create -b <mem_base> -l <image_length> [-s <data_length>]
896
      [-f <flash_addr>] [-e <entry_point>] [-r <ram_addr>] [-n] <name>
897
Display an image from FLASH Image System [FIS]
898
  fis delete name
899
Erase FLASH contents
900
  fis erase -f <flash_addr> -l <length>
901
Display free [available] locations within FLASH Image System [FIS]
902
  fis free
903
Initialize FLASH Image System [FIS]
904
  fis init [-f]
905
Display contents of FLASH Image System [FIS]
906
  fis list [-c] [-d]
907
Load image from FLASH Image System [FIS] into RAM
908
  fis load [-d] [-b <memory_load_address>] [-c] name
909
Write raw data directly to FLASH
910
  fis write -f <flash_addr> -b <mem_base> -l <image_length>
911
912
      
913
    
914
  
915
 
916
917
  
918
    
919
      ip_address
920
      Set IP addresses
921
    
922
    
923
      
924
        ip_address
925
        -l  local_IP_address
926
        -h  server_IP_address
927
        -d 
928
DNS_server_IP_address
929
      
930
    
931
    
932
      Arguments
933
      
934
        
935
          
936
          
937
          
938
          
939
          
940
            
941
              Name
942
              Type
943
              Description
944
              Default
945
            
946
          
947
          
948
            
949
              -l 
950
local_IP_address
951
              Numeric IP or DNS name
952
              The IP address RedBoot should use.
953
              none
954
            
955
            
956
              -h 
957
server_IP_address
958
              Numeric IP or DNS name
959
              The IP address of the default server. Use of this
960
address is implied by other commands, such as
961
load.
962
              none
963
            
964
            
965
              -d 
966
DNS_server_IP_address
967
              Numeric IP or DNS name
968
              The IP address of the DNS server.
969
              none
970
            
971
          
972
        
973
      
974
    
975
    
976
      Description
977
      The ip_address command is used to show and/or change the basic IP
978
addresses used by RedBoot. IP addresses may be given as numeric
979
values, e.g. 192.168.1.67, or as symbolic names such as www.redhat.com
980
if DNS support is enabled.
981
      
982
      
983
The  option is used to set the IP address used by
984
the target device.
985
      
986
      
987
The  option is used to set the default server
988
address, such as is used by the load command.
989
      
990
      
991
The  option is used to set the default DNS server
992
address which is used for resolving symbolic network addresses. Note
993
that an address of 0.0.0.0 will disable DNS lookups.
994
      
995
    
996
    
997
      Examples
998
      
999
Display the current network settings.
1000
1001
RedBoot> ip_address
1002
IP: 192.168.1.31, Default server: 192.168.1.101, DNS server IP: 0.0.0.0
1003
1004
1005
1006
Change the DNS server address.
1007
1008
RedBoot> ip_address -d 192.168.1.101
1009
IP: 192.168.1.31, Default server: 192.168.1.101, DNS server IP: 192.168.1.101
1010
1011
1012
1013
Change the default server address.
1014
1015
RedBoot> ip_address -h 192.168.1.104
1016
IP: 192.168.1.31, Default server: 192.168.1.104, DNS server IP: 192.168.1.101
1017
1018
      
1019
    
1020
  
1021
 
1022
1023
  
1024
    
1025
      load
1026
      Download programs or data to the RedBoot platform
1027
    
1028
    
1029
      
1030
        load
1031
        -v 
1032
        -d 
1033
        -r 
1034
        -m
1035
          
1036
            
1037
              xmodem
1038
              ymodem
1039
            
1040
            tftp
1041
            disk
1042
          
1043
        
1044
        -h  server_IP_address
1045
        -b  location
1046
        -c  channel
1047
        file_name
1048
      
1049
    
1050
    
1051
      Arguments
1052
      
1053
        
1054
          
1055
          
1056
          
1057
          
1058
          
1059
            
1060
              Name
1061
              Type
1062
              Description
1063
              Default
1064
            
1065
          
1066
          
1067
            
1068
              -v
1069
              Boolean
1070
              Display a small spinner (indicator)
1071
while the download is in  progress. This is just for feedback, especially
1072
during long loads. Note that the option has no effect when using a
1073
serial download method since it would interfere with the protocol.
1074
              quiet
1075
            
1076
            
1077
              -d
1078
              Boolean
1079
              Decompress data stream (gzip data)
1080
              non-compressed data
1081
            
1082
            
1083
              -r
1084
              Boolean
1085
              Raw (or binary) data
1086
              formatted (S-records, ELF image, etc)
1087
            
1088
            
1089
              -m tftp
1090
              
1091
              Transfer data via the network using TFTP protocol.
1092
              TFTP
1093
            
1094
            
1095
              -m http
1096
              
1097
              Transfer data via the network using HTTP protocol.
1098
              TFTP
1099
            
1100
            
1101
              -m xmodem
1102
              
1103
              Transfer data using X-modem protocol.
1104
              TFTP
1105
            
1106
            
1107
              -m ymodem
1108
              
1109
              Transfer data using Y-modem protocol.
1110
              TFTP
1111
            
1112
            
1113
              -m disk
1114
              
1115
              Transfer data from a local disk.
1116
              TFTP
1117
            
1118
            
1119
              -h server_IP_address
1120
              Numeric IP or DNS name
1121
              The IP address of the TFTP or HTTP server.
1122
              Value set by ip_address
1123
            
1124
            
1125
              -b location
1126
              Number
1127
              Address in memory to load the data.  Formatted data streams will have
1128
an implied load address which this option may override.
1129
              Depends on data format
1130
            
1131
            
1132
              -c channel
1133
              Number
1134
              Specify which I/O channel to
1135
use for download.  This option is only supported when using either
1136
xmodem or ymodem protocol.
1137
              Depends on data format
1138
            
1139
            
1140
              file_name
1141
              String
1142
              The name of the file on the TFTP or HTTP
1143
server or the local disk. Details of how this is specified for TFTP are
1144
host-specific. For local disk files, the name must be in disk:
1145
filename format. The disk portion must match one of the disk
1146
names listed by the disks command.
1147
              None
1148
            
1149
          
1150
        
1151
      
1152
    
1153
    
1154
      Description
1155
      
1156
The load command is used to download
1157
data into the target system. Data can be loaded via a network connection,
1158
using either the TFTP or HTTP protocols, or the console serial connection using the
1159
X/Y modem protocol. Files may also be loaded directly from local filesystems
1160
on disk. Files to be downloaded may either be executable images in
1161
ELF executable program format,
1162
Motorola S-record (SREC)
1163
format or raw data.
1164
      
1165
    
1166
    
1167
      Examples
1168
      
1169
Download a Motorola S-record (or ELF) image, using TFTP, specifying the
1170
base memory address.
1171
1172
RedBoot> load redboot.ROM -b 0x8c400000
1173
Address offset = 0x0c400000
1174
Entry point: 0x80000000, address range: 0x80000000-0x8000fe80
1175
1176
      
1177
      
1178
Download a Motorola S-record (or ELF) image, using HTTP, specifying the
1179
host [server] address.
1180
1181
RedBoot> load /redboot.ROM -m HTTP -h 192.168.1.104
1182
Address offset = 0x0c400000
1183
Entry point: 0x80000000, address range: 0x80000000-0x8000fe80
1184
1185
      
1186
      
1187
Load an ELF file from /dev/hda1 which should be an EXT2 partition:
1188
1189
RedBoot> load -mode disk hda1:hello.elf
1190
Entry point: 0x00020000, address range: 0x00020000-0x0002fd70
1191
1192
      
1193
    
1194
  
1195
 
1196
1197
  
1198
    
1199
      mcmp
1200
      Compare two segments of memory
1201
    
1202
    
1203
      
1204
        mcmp
1205
            -s location1
1206
            -d location1
1207
            -l length
1208
          
1209
            -1
1210
            -2
1211
            -4
1212
          
1213
      
1214
    
1215
    
1216
      Arguments
1217
      
1218
        
1219
          
1220
          
1221
          
1222
          
1223
          
1224
            
1225
              Name
1226
              Type
1227
              Description
1228
              Default
1229
            
1230
          
1231
          
1232
            
1233
              -s location1
1234
              Memory address
1235
              Location for start of data.
1236
              none
1237
            
1238
            
1239
              -d location2
1240
              Memory address
1241
              Location for start of data.
1242
              none
1243
            
1244
            
1245
              -l length
1246
              Number
1247
              Length of data
1248
              none
1249
            
1250
            
1251
              -1
1252
              
1253
              Access one byte (8 bits) at a time.
1254
Only the least significant 8 bits of the pattern will be used.
1255
              -4
1256
            
1257
            
1258
              -2
1259
              
1260
              Access two bytes (16 bits) at a time.
1261
Only the least significant 16 bits of the pattern will be used.
1262
              -4
1263
            
1264
            
1265
              -4
1266
              
1267
              Access one word (32 bits) at a time.
1268
              -4
1269
            
1270
          
1271
        
1272
      
1273
    
1274
    
1275
      Description
1276
        Compares the contents of two ranges of memory (RAM, ROM, FLASH, etc).
1277
    
1278
    
1279
      Examples
1280
      
1281
Compare two buffers which match (result is quiet).
1282
1283
RedBoot> mfill -b 0x100000 -l 0x20 -p 0xDEADFACE
1284
RedBoot> mfill -b 0x200000 -l 0x20 -p 0xDEADFACE
1285
RedBoot> mcmp -s 0x100000 -d 0x200000 -l 0x20
1286
1287
1288
1289
Compare two buffers which don't match.
1290
Only the first non-matching element is displayed.
1291
1292
RedBoot> mcmp -s 0x100000 -d 0x200000 -l 0x30 -2
1293
Buffers don't match - 0x00100020=0x6000, 0x00200020=0x0000
1294
1295
      
1296
    
1297
  
1298
 
1299
1300
  
1301
    
1302
      mfill
1303
      Fill RAM with a specified pattern
1304
    
1305
    
1306
      
1307
        mfill
1308
            -b location
1309
            -l length
1310
            -p value
1311
          
1312
            -1
1313
            -2
1314
            -4
1315
          
1316
      
1317
    
1318
    
1319
      Arguments
1320
      
1321
        
1322
          
1323
          
1324
          
1325
          
1326
          
1327
            
1328
              Name
1329
              Type
1330
              Description
1331
              Default
1332
            
1333
          
1334
          
1335
            
1336
              -b location
1337
              Memory address
1338
              Location in memory for start of data.
1339
              none
1340
            
1341
            
1342
              -l length
1343
              Number
1344
              Length of data
1345
              none
1346
            
1347
            
1348
              -p pattern
1349
              Number
1350
              Data value to fill with
1351
              0
1352
            
1353
            
1354
              -1
1355
              
1356
              Access one byte (8 bits) at a time.
1357
Only the least significant 8 bits of the pattern will be used.
1358
              -4
1359
            
1360
            
1361
              -2
1362
              
1363
              Access two bytes (16 bits) at a time.
1364
Only the least significant 16 bits of the pattern will be used.
1365
              -4
1366
            
1367
            
1368
              -4
1369
              
1370
              Access one word (32 bits) at a time.
1371
              -4
1372
            
1373
          
1374
        
1375
      
1376
    
1377
    
1378
      Description
1379
        Fills a range of memory with the given pattern.
1380
    
1381
    
1382
      Examples
1383
      
1384
Fill a buffer with zeros.
1385
1386
RedBoot> x -b 0x100000 -l 0x20
1387
00100000: 00 3E 00 06 00 06 00 06  00 00 00 00 00 00 00 00  |.>..............|
1388
00100010: 00 00 00 78 00 70 00 60  00 60 00 60 00 60 00 60  |...x.p.`.`.`.`.`|
1389
RedBoot> mfill -b 0x100000 -l 0x20
1390
RedBoot> x -b 0x100000 -l 0x20
1391
00100000: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
1392
00100010: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
1393
1394
1395
1396
Fill a buffer with a pattern.
1397
1398
RedBoot> mfill -b 0x100000 -l 0x20 -p 0xDEADFACE
1399
RedBoot> x -b 0x100000 -l 0x20
1400
00100000: CE FA AD DE CE FA AD DE  CE FA AD DE CE FA AD DE  |................|
1401
00100010: CE FA AD DE CE FA AD DE  CE FA AD DE CE FA AD DE  |................|
1402
1403
      
1404
    
1405
  
1406
 
1407
1408
  
1409
    
1410
      ping
1411
      Verify network connectivity
1412
    
1413
    
1414
      
1415
        ping
1416
        -v 
1417
        -i  local_IP_address
1418
        -l  length
1419
        -n  count
1420
        -t  timeout
1421
        -r  rate
1422
        -h  server_IP_address
1423
      
1424
    
1425
    
1426
      Arguments
1427
      
1428
        
1429
          
1430
          
1431
          
1432
          
1433
          
1434
            
1435
              Name
1436
              Type
1437
              Description
1438
              Default
1439
            
1440
          
1441
          
1442
            
1443
              -v
1444
              Boolean
1445
              Be verbose, displaying information about each packet sent.
1446
              quiet
1447
            
1448
            
1449
              -n local_IP_address
1450
              Number
1451
              Controls the number of packets to be sent.
1452
              10
1453
            
1454
            
1455
              -i local_IP_address
1456
              Numeric IP or DNS name
1457
              The IP address RedBoot should use.
1458
              Value set by ip_address
1459
            
1460
            
1461
              -h server_IP_address
1462
              Numeric IP or DNS name
1463
              The IP address of the host to contact.
1464
              none
1465
            
1466
            
1467
              -l length
1468
              Number
1469
              The length of the ICMP data payload.
1470
              64
1471
            
1472
            
1473
              -r length
1474
              Number
1475
              How fast to deliver packets, i.e. time between successive sends.
1476
A value of 0 sends packets as quickly as possible.
1477
              1000ms (1 second)
1478
            
1479
            
1480
              -t length
1481
              Number
1482
              How long to wait for the round-trip to complete, specified in milliseconds.
1483
              1000ms (1 second)
1484
            
1485
          
1486
        
1487
      
1488
    
1489
    
1490
      Description
1491
      
1492
The ping command checks the connectivity of the local network by sending
1493
special (ICMP) packets to a specific host. These packets should be automatically
1494
returned by that host. The command will indicate how many of these round-trips
1495
were successfully completed.
1496
      
1497
    
1498
    
1499
      Examples
1500
      
1501
Test connectivity to host 192.168.1.101.
1502
1503
RedBoot> ping -h 192.168.1.101
1504
Network PING - from 192.168.1.31 to 192.168.1.101
1505
PING - received 10 of 10 expected
1506
1507
1508
1509
Test connectivity to host 192.168.1.101, with verbose reporting.
1510
1511
RedBoot> ping -h 192.168.1.101 -v -n 4
1512
Network PING - from 192.168.1.31 to 192.168.1.101
1513
 seq: 1, time: 1 (ticks)
1514
 seq: 2, time: 1 (ticks)
1515
 seq: 3, time: 1 (ticks)
1516
 seq: 4, time: 1 (ticks)
1517
PING - received 10 of 10 expected
1518
1519
1520
1521
1522
Test connectivity to a non-existent host (192.168.1.109).
1523
RedBoot> ping -h 192.168.1.109 -v -n 4
1524
PING: Cannot reach server '192.168.1.109' (192.168.1.109)
1525
1526
      
1527
    
1528
  
1529
 
1530
1531
  
1532
    
1533
      reset
1534
      Reset the device
1535
    
1536
    
1537
      
1538
        reset
1539
      
1540
    
1541
    
1542
      Arguments
1543
None
1544
    
1545
    
1546
      Description
1547
      
1548
The reset command causes the target platform to be reset.
1549
Where possible (hardware support permitting), this will be
1550
equivalent to a power-on reset condition.
1551
      
1552
    
1553
    
1554
      Examples
1555
      
1556
Reset the platform.
1557
1558
RedBoot> reset
1559
... Resetting.+... Waiting for network card: .
1560
Socket Communications, Inc: Low Power Ethernet CF Revision C 5V/3.3V 08/27/98
1561
Ethernet eth0: MAC address 00:c0:1b:00:ba:28
1562
IP: 192.168.1.29, Default server: 192.168.1.101
1563
 
1564
RedBoot(tm) bootstrap and debug environment [ROM]
1565
Non-certified release, version UNKNOWN - built 10:41:41, May 14 2002
1566
 
1567
Platform: Compaq iPAQ Pocket PC (StrongARM 1110)
1568
Copyright (C) 2000, 2001, 2002, Red Hat, Inc.
1569
 
1570
RAM: 0x00000000-0x01fc0000, 0x00014748-0x01f71000 available
1571
FLASH: 0x50000000 - 0x51000000, 64 blocks of 0x00040000 bytes each.
1572
RedBoot>
1573
1574
      
1575
    
1576
  
1577
 
1578
 
1579
1580
  
1581
    
1582
      version
1583
      Display RedBoot version information
1584
    
1585
    
1586
      
1587
        version
1588
      
1589
    
1590
    
1591
      Arguments
1592
      None
1593
    
1594
    
1595
      Description
1596
      The version command simply displays version information about RedBoot.
1597
      
1598
    
1599
    
1600
      Examples
1601
      
1602
Display RedBoot's version.
1603
1604
RedBoot> version
1605
RedBoot(tm) debug environment - built 09:12:03, Feb 12 2001
1606
Platform: XYZ (PowerPC 860)
1607
Copyright (C) 2000, 2001, Red Hat, Inc.
1608
RAM: 0x00000000-0x00400000
1609
1610
      
1611
    
1612
  
1613
 
1614
1615
 
1616
1617
Flash Image System (FIS)
1618
commandsflash image system
1619
flash image system commands
1620
commandsfis
1621
fis commandsIf the platform
1622
has flash memory, RedBoot can use this for image storage. Executable images,
1623
as well as data, can be stored in flash in a simple file store. The 
1624
fis command (fis is short for Flash Image System) is used to
1625
manipulate and maintain flash images.
1626
1627
 
1628
1629
 
1630
  
1631
    
1632
      fis init
1633
      Initialize Flash Image System (FIS)
1634
    
1635
    
1636
      
1637
        fis init
1638
        -f
1639
      
1640
    
1641
    
1642
      Arguments
1643
      
1644
        
1645
          
1646
          
1647
          
1648
          
1649
          
1650
            
1651
              Name
1652
              Type
1653
              Description
1654
              Default
1655
            
1656
          
1657
          
1658
            
1659
              -f
1660
              
1661
              All blocks of flash memory (except for the boot
1662
              blocks) will be erased as part of the initialization
1663
              procedure.
1664
              
1665
            
1666
          
1667
        
1668
      
1669
    
1670
    
1671
      Description
1672
 
1673
       This command is used to initialize the Flash Image System
1674
       (FIS). It should normally only be executed once, when RedBoot
1675
       is first installed on the hardware. If the reserved images or
1676
       their sizes in the FIS change, due to a different configuration
1677
       of RedBoot being used, it may be necessary to issue the command
1678
       again though.
1679
 
1680
        Subsequent executions will cause loss of
1681
       previously stored information in the FIS.
1682
     
1683
    
1684
    
1685
      Examples
1686
      
1687
Initialize the FIS directory.
1688
1689
RedBoot> fis init
1690
About to initialize [format] flash image system - continue (y/n)? y
1691
*** Initialize FLASH Image System
1692
    Warning: device contents not erased, some blocks may not be usable
1693
... Erase from 0x00070000-0x00080000: .
1694
... Program from 0x0606f000-0x0607f000 at 0x00070000: .
1695
1696
1697
 
1698
      
1699
Initialize the FIS directory and all of flash memory, except for first
1700
blocks of the flash where the boot monitor resides.
1701
1702
RedBoot> fis init -f
1703
About to initialize [format] flash image system - continue (y/n)? y
1704
*** Initialize FLASH Image System
1705
... Erase from 0x00020000-0x00070000: .....
1706
... Erase from 0x00080000-0x00080000:
1707
... Erase from 0x00070000-0x00080000: .
1708
... Program from 0x0606f000-0x0607f000 at 0x00070000: .
1709
1710
1711
1712
1713
 
1714
1715
  
1716
    
1717
      fis list
1718
      List Flash Image System directory
1719
    
1720
    
1721
      
1722
        fis list
1723
        -f
1724
      
1725
    
1726
    
1727
      Arguments
1728
      
1729
        
1730
          
1731
          
1732
          
1733
          
1734
          
1735
            
1736
              Name
1737
              Type
1738
              Description
1739
              Default
1740
            
1741
          
1742
          
1743
            
1744
              -c
1745
              
1746
              Show image checksum instead of memory address
1747
              (column Mem addr is
1748
              replaced by
1749
              Checksum).
1750
              
1751
            
1752
            
1753
              -d
1754
              
1755
              Show image data length instead of amount of flash
1756
              occupied by image (column
1757
              Length is replaced by
1758
              Datalen).
1759
              
1760
            
1761
          
1762
        
1763
      
1764
    
1765
    
1766
      Description
1767
This command lists the images currently available in the FIS. Certain
1768
images used by RedBoot have fixed names and have reserved slots in the
1769
FIS (these can be seen after using the fis init
1770
command). Other images can be manipulated by the user.
1771
The images are listed in the order they appear in the FIS
1772
directory, not by name or creation time.
1773
    
1774
 
1775
    
1776
      Examples
1777
      
1778
List the FIS directory.
1779
1780
RedBoot> fis list
1781
Name              FLASH addr  Mem addr    Length      Entry point
1782
RedBoot           0x00000000  0x00000000  0x00020000  0x00000000
1783
RedBoot config    0x0007F000  0x0007F000  0x00001000  0x00000000
1784
FIS directory     0x00070000  0x00070000  0x0000F000  0x00000000
1785
1786
1787
 
1788
      
1789
List the FIS directory, with image checksums substituted for
1790
memory addresses.
1791
1792
RedBoot> fis list -c
1793
Name              FLASH addr  Checksum    Length      Entry point
1794
RedBoot           0x00000000  0x00000000  0x00020000  0x00000000
1795
RedBoot config    0x0007F000  0x00000000  0x00001000  0x00000000
1796
FIS directory     0x00070000  0x00000000  0x0000F000  0x00000000
1797
1798
1799
 
1800
      
1801
List the FIS directory with image data lengths substituted for flash
1802
block reservation lengths.
1803
1804
RedBoot> fis list
1805
Name              FLASH addr  Mem addr    Datalen     Entry point
1806
RedBoot           0x00000000  0x00000000  0x00000000  0x00000000
1807
RedBoot config    0x0007F000  0x0007F000  0x00000000  0x00000000
1808
FIS directory     0x00070000  0x00070000  0x00000000  0x00000000
1809
1810
1811
1812
1813
 
1814
1815
 
1816
  
1817
    
1818
      fis free
1819
      Free flash image
1820
    
1821
    
1822
      
1823
        fis free
1824
      
1825
    
1826
    
1827
      Description
1828
 
1829
 
1830
This command shows which areas of the flash memory are currently
1831
not in use. When a block contains non-erased contents it is considered
1832
in use. Since it is possible to force an image to be loaded at a
1833
particular flash location, this command can be used to check whether
1834
that location is in use by any other image.
1835
 
1836
There is currently no cross-checking between actual flash
1837
contents and the FIS directory, which mans that there could be a
1838
segment of flash which is not erased that does not correspond to a
1839
named image, or vice-versa.
1840
    
1841
 
1842
    
1843
      Examples
1844
      
1845
Show free flash areas.
1846
1847
RedBoot> fis free
1848
        0xA0040000 .. 0xA07C0000
1849
        0xA0840000 .. 0xA0FC0000
1850
1851
1852
1853
 
1854
1855
 
1856
  
1857
    
1858
      fis create
1859
      Create flash image
1860
    
1861
    
1862
      
1863
        fis create
1864
        -b  data address
1865
        -l  length
1866
        -f  flash address
1867
        -e  entry
1868
        -r  relocation address
1869
        -s  data length
1870
        -n 
1871
        name
1872
      
1873
    
1874
    
1875
      Arguments
1876
      
1877
        
1878
          
1879
          
1880
          
1881
          
1882
          
1883
            
1884
              Name
1885
              Type
1886
              Description
1887
              Default
1888
            
1889
          
1890
          
1891
            
1892
              -b
1893
              Number
1894
              Address of data to be written to the flash.
1895
              Address of last loaded file. If not set in a load
1896
              operation, it must be specified.
1897
            
1898
            
1899
              -l
1900
              Number
1901
              Length of flash area to occopy. If specified, and
1902
              the named image already exists, the length must match
1903
              the value in the FIS directory.
1904
              Length of area reserved in FIS directory if the
1905
              image already exists, or the length of the last loaded
1906
              file. If neither are set, it must be specified.
1907
            
1908
            
1909
              -f
1910
              Number
1911
              Address of flash area to occopy.
1912
              The address of an area reserved in the FIS
1913
              directory for extant images. Otherwise the first free block
1914
              which is large enough will be used.
1915
            
1916
            
1917
              -e
1918
              Number
1919
              Entry address for an executable image, used by
1920
              the fis load command.
1921
              The entry address of last loaded file.
1922
            
1923
            
1924
              -r
1925
              Number
1926
              Address where the image should be relocated to by
1927
              the fis load command. This is only
1928
              relevant for images that will be loaded with the
1929
              fis load command.
1930
              The load address of the last loaded file.
1931
            
1932
            
1933
              -s
1934
              Number
1935
              Actual length of data written to image. This is
1936
              used to control the range over which the checksum is
1937
              made.
1938
              It defaults to the length of the last loaded
1939
              file.
1940
            
1941
            
1942
              -n
1943
              
1944
              When set, no image data will be written to the
1945
              flash. Only the FIS directory will be updated.
1946
              
1947
            
1948
            
1949
              name
1950
              String
1951
              Name of flash image.
1952
              
1953
            
1954
          
1955
        
1956
      
1957
    
1958
    
1959
      Description
1960
This command creates an image in the FIS directory. The data for the
1961
image must exist in RAM memory before the copy. Typically, you would use the
1962
RedBoot load command to load file into
1963
RAM and then the fis create command to write
1964
it to a flash image.
1965
1966
 
1967
    
1968
      Examples
1969
      Trying to create an extant image, will require the action
1970
      to be verified.
1971
1972
RedBoot> fis create RedBoot -f 0xa0000000 -b 0x8c400000 -l 0x20000
1973
An image named ‘RedBoot’ exists - continue (y/n)? n
1974
1975
1976
 
1977
Create a new test image, let the command find a suitable place.
1978
1979
RedBoot> fis create junk -b 0x8c400000 -l 0x20000
1980
... Erase from 0xa0040000-0xa0060000: .
1981
... Program from 0x8c400000-0x8c420000 at 0xa0040000: .
1982
... Erase from 0xa0fe0000-0xa1000000: .
1983
... Program from 0x8c7d0000-0x8c7f0000 at 0xa0fe0000: .
1984
1985
1986
 
1987
Update the RedBoot[RAM] image.
1988
1989
RedBoot> load redboot_RAM.img
1990
Entry point: 0x060213c0, address range: 0x06020000-0x06036cc0
1991
RedBoot> fis create RedBoot[RAM]
1992
No memory address set.
1993
An image named 'RedBoot[RAM]' exists - continue (y/n)? y
1994
* CAUTION * about to program 'RedBoot[RAM]'
1995
            at 0x00020000..0x00036cbf from 0x06020000 - continue (y/n)? y
1996
... Erase from 0x00020000-0x00040000: ..
1997
... Program from 0x06020000-0x06036cc0 at 0x00020000: ..
1998
... Erase from 0x00070000-0x00080000: .
1999
... Program from 0x0606f000-0x0607f000 at 0x00070000: .
2000
2001
2002
2003
2004
 
2005
2006
 
2007
  
2008
    
2009
      fis load
2010
      Load flash image
2011
    
2012
    
2013
      
2014
        fis load
2015
        -b  load address
2016
        -c 
2017
        -d 
2018
        name
2019
      
2020
    
2021
    
2022
      Arguments
2023
      
2024
        
2025
          
2026
          
2027
          
2028
          
2029
          
2030
            
2031
              Name
2032
              Type
2033
              Description
2034
              Default
2035
            
2036
          
2037
          
2038
            
2039
              -b
2040
              Number
2041
              Address the image should be loaded to. Executable
2042
              images normally load at the location to which the file
2043
              was linked. This option allows the image to be loaded to
2044
              a specific memory location, possibly overriding any
2045
              assumed location.
2046
              If not specified, the address associated with the
2047
              image in the FIS directory will be used.
2048
            
2049
            
2050
              -c
2051
              
2052
              Compute and print the checksum of the image data
2053
              after it has been loaded into memory.
2054
            
2055
            
2056
              -d
2057
              
2058
              Decompress gzipped image while copying it from
2059
              flash to RAM.
2060
            
2061
            
2062
              name
2063
              String
2064
              The name of the file, as shown in the FIS
2065
              directory.
2066
            
2067
          
2068
        
2069
      
2070
    
2071
    
2072
      Description
2073
This command is used to transfer an image from flash memory to RAM.
2074
2075
Once the image has been loaded, it may be executed using the
2076
go command.
2077
2078
 
2079
    
2080
      Examples
2081
Load and run RedBoot[RAM] image.
2082
2083
RedBoot> fis load RedBoot[RAM]
2084
RedBoot> go
2085
2086
2087
2088
2089
 
2090
2091
 
2092
  
2093
    
2094
      fis delete
2095
      Delete flash image
2096
    
2097
    
2098
      
2099
        fis delete
2100
        name
2101
      
2102
    
2103
    
2104
      Arguments
2105
      
2106
        
2107
          
2108
          
2109
          
2110
          
2111
          
2112
            
2113
              Name
2114
              Type
2115
              Description
2116
              Default
2117
            
2118
          
2119
          
2120
            
2121
              name
2122
              Number
2123
              Name of image that should be deleted.
2124
              
2125
            
2126
          
2127
        
2128
      
2129
    
2130
    
2131
      Description
2132
This command removes an image from the FIS. The flash memory will be
2133
erased as part of the execution of this command, as well as removal of the
2134
name from the FIS directory.
2135
 
2136
Certain images are reserved by RedBoot and cannot be deleted.
2137
RedBoot will issue a warning if this is attempted.
2138
2139
    
2140
      Examples
2141
2142
2143
RedBoot> fis list
2144
Name              flash addr   Mem addr    Length    Entry point
2145
RedBoot          0xA0000000   0xA0000000  0x020000  0x80000000
2146
RedBoot config   0xA0FC0000   0xA0FC0000  0x020000  0x00000000
2147
FIS directory    0xA0FE0000   0xA0FE0000  0x020000  0x00000000
2148
junk             0xA0040000   0x8C400000  0x020000  0x80000000
2149
RedBoot> fis delete junk
2150
Delete image ‘junk’ - continue (y/n)? y
2151
... Erase from 0xa0040000-0xa0060000: .
2152
... Erase from 0xa0fe0000-0xa1000000: .
2153
... Program from 0x8c7d0000-0x8c7f0000 at 0xa0fe0000: .
2154
2155
2156
2157
2158
 
2159
2160
 
2161
  
2162
    
2163
      fis lock
2164
      Lock flash area
2165
    
2166
    
2167
      
2168
        fis lock
2169
        -f flash_address
2170
        -l length
2171
      
2172
    
2173
    
2174
      Arguments
2175
      
2176
        
2177
          
2178
          
2179
          
2180
          
2181
          
2182
            
2183
              Name
2184
              Type
2185
              Description
2186
              Default
2187
            
2188
          
2189
          
2190
            
2191
              flash_address
2192
              Number
2193
              Address of area to be locked.
2194
              
2195
            
2196
            
2197
              length
2198
              Number
2199
              Length of area to be locked.
2200
              
2201
            
2202
          
2203
        
2204
      
2205
    
2206
    
2207
      Description
2208
This command is used to write-protect (lock) a portion of flash memory,
2209
to prevent accidental overwriting of images. In order to make make any modifications
2210
to the flash, a matching fis unlock command must be
2211
issued. This command is optional and will only be provided on hardware
2212
which can support write-protection of the flash space.
2213
2214
Depending on the system, attempting to write to write-protected flash
2215
may generate errors or warnings, or be benignly quiet.  
2216
2217
2218
 
2219
    
2220
      Examples
2221
Lock an area of the flash
2222
2223
RedBoot> fis lock -f 0xa0040000 -l 0x20000
2224
... Lock from 0xa0040000-0xa0060000: .
2225
2226
2227
2228
2229
 
2230
2231
 
2232
  
2233
    
2234
      fis unlock
2235
      Unlock flash area
2236
    
2237
    
2238
      
2239
        fis unlock
2240
        -f flash_address
2241
        -l length
2242
      
2243
    
2244
    
2245
      Arguments
2246
      
2247
        
2248
          
2249
          
2250
          
2251
          
2252
          
2253
            
2254
              Name
2255
              Type
2256
              Description
2257
              Default
2258
            
2259
          
2260
          
2261
            
2262
              flash_address
2263
              Number
2264
              Address of area to be unlocked.
2265
              
2266
            
2267
            
2268
              length
2269
              Number
2270
              Length of area to be unlocked.
2271
              
2272
            
2273
          
2274
        
2275
      
2276
    
2277
    
2278
      Description
2279
This command is used to unlock a portion of flash memory forcibly, allowing
2280
it to be updated. It must be issued for regions which have been locked before
2281
the FIS can reuse those portions of flash.
2282
2283
Some flash devices power up in locked state and always need to
2284
be manually unlocked before they can be written to.
2285
2286
 
2287
    
2288
      Examples
2289
Unlock an area of the flash
2290
2291
RedBoot> fis unlock -f 0xa0040000 -l 0x20000
2292
... Unlock from 0xa0040000-0xa0060000: .
2293
2294
2295
2296
2297
 
2298
2299
 
2300
  
2301
    
2302
      fis erase
2303
      Erase flash area
2304
    
2305
    
2306
      
2307
        fis erase
2308
        -f flash_address
2309
        -l length
2310
      
2311
    
2312
    
2313
      Arguments
2314
      
2315
        
2316
          
2317
          
2318
          
2319
          
2320
          
2321
            
2322
              Name
2323
              Type
2324
              Description
2325
              Default
2326
            
2327
          
2328
          
2329
            
2330
              flash_address
2331
              Number
2332
              Address of area to be erased.
2333
              
2334
            
2335
            
2336
              length
2337
              Number
2338
              Length of area to be erased.
2339
              
2340
            
2341
          
2342
        
2343
      
2344
    
2345
    
2346
      Description
2347
This command is used to erase a portion of flash memory forcibly. There
2348
is no cross-checking to ensure that the area being erased does not correspond
2349
to an existing image.
2350
2351
 
2352
    
2353
      Examples
2354
Erase an area of the flash
2355
2356
RedBoot> fis erase -f 0xa0040000 -l 0x20000
2357
... Erase from 0xa0040000-0xa0060000: .
2358
2359
2360
2361
2362
 
2363
2364
 
2365
  
2366
    
2367
      fis write
2368
      Write flash area
2369
    
2370
    
2371
      
2372
        fis write
2373
        -b mem_address
2374
        -l length
2375
        -f flash_address
2376
      
2377
    
2378
    
2379
      Arguments
2380
      
2381
        
2382
          
2383
          
2384
          
2385
          
2386
          
2387
            
2388
              Name
2389
              Type
2390
              Description
2391
              Default
2392
            
2393
          
2394
          
2395
            
2396
              mem_address
2397
              Number
2398
              Address of data to be written to flash.
2399
              
2400
            
2401
            
2402
              length
2403
              Number
2404
              Length of data to be writtem.
2405
              
2406
            
2407
            
2408
              flash_address
2409
              Number
2410
              Address of flash to write to.
2411
              
2412
            
2413
          
2414
        
2415
      
2416
    
2417
    
2418
      Description
2419
This command is used to write data from memory to flash. There
2420
is no cross-checking to ensure that the area being written to does not
2421
correspond to an existing image.
2422
2423
 
2424
    
2425
      Examples
2426
Write an area of data to the flash
2427
2428
RedBoot> fis write -b 0x0606f000 -l 0x1000 -f 0x00020000
2429
* CAUTION * about to program FLASH
2430
            at 0x00020000..0x0002ffff from 0x0606f000 - continue (y/n)? y
2431
... Erase from 0x00020000-0x00030000: .
2432
... Program from 0x0606f000-0x0607f000 at 0x00020000: .
2433
2434
2435
2436
2437
 
2438
2439
2440
Persistent State Flash-based Configuration and Control
2441
persistent state flash-based configuration and control
2442
flash-based configuration and control
2443
configuration and control
2444
flash-based
2445
RedBoot provides flash management support for storage in the flash memory
2446
of multiple executable images and of non-volatile information such as IP addresses
2447
and other network information.
2448
RedBoot on platforms that support flash based configuration information
2449
will report the following message the first time that RedBoot is booted on
2450
the target:
2451
flash configuration checksum error or invalid key
2452
This error can be ignored if no flash based configuration is desired,
2453
or can be silenced by running the fconfig
2454
command as described below. At this point you may also wish to run the 
2455
fis init command. See other fis commands in .
2456
2457
Certain control and configuration information used by RedBoot can be
2458
stored in flash. 
2459
The details of what information is maintained in flash differ, based
2460
on the platform and the configuration. However, the basic operation used to
2461
maintain this information is the same. Using the fconfig -l
2462
 command, the information may be displayed and/or changed.
2463
2464
If the optional flag -i is specified,
2465
then the configuration database will be reset to its default
2466
state. This is also needed the first time RedBoot is installed on the
2467
target, or when updating to a newer RedBoot with different
2468
configuration keys.
2469
2470
If the optional flag -l is specified,
2471
the configuration data is simply listed. Otherwise, each configuration parameter
2472
will be displayed and you are given a chance to change it. The entire value
2473
must be typed - typing just carriage return will leave a value unchanged.
2474
Boolean values may be entered using the first letter (t
2475
for true, f for false). At any time the editing
2476
process may be stopped simply by entering a period (.) on the line. Entering
2477
the caret (^) moves the editing back to the previous item. See “RedBoot
2478
Editing Commands”, . 
2479
If any changes are made in the configuration, then the updated data
2480
will be written back to flash after getting acknowledgment from the user.
2481
2482
2483
If the optional flag -n is specified
2484
(with or without -l) then “nicknames”
2485
of the entries are used.  These are shorter and less descriptive than
2486
“full” names.  The full name may also be displayed by adding the
2487
-f flag.
2488
The reason for telling you nicknames is that a quick way to set a single
2489
entry is provided, using the format
2490
2491
  RedBoot> fconfig nickname value
2492
2493
If no
2494
value is supplied, the command will list and prompt for only that entry.
2495
If a value is supplied, then the entry will be set to that value.  You will
2496
be prompted whether to write the new information into flash if any change
2497
was made.  For example
2498
2499
  RedBoot> fconfig -l -n
2500
  boot_script: false
2501
  bootp: false
2502
  bootp_my_ip: 10.16.19.176
2503
  bootp_server_ip: 10.16.19.66
2504
  dns_ip: 10.16.19.1
2505
  gdb_port: 9000
2506
  net_debug: false
2507
  RedBoot> fconfig bootp_my_ip 10.16.19.177
2508
  bootp_my_ip: 10.16.19.176 Setting to 10.16.19.177
2509
  Update RedBoot non-volatile configuration - continue (y/n)? y
2510
  ... Unlock from 0x507c0000-0x507e0000: .
2511
  ... Erase from 0x507c0000-0x507e0000: .
2512
  ... Program from 0x0000a8d0-0x0000acd0 at 0x507c0000: .
2513
  ... Lock from 0x507c0000-0x507e0000: .
2514
  RedBoot>
2515
2516
2517
Additionally, nicknames can be used like aliases via the format %{nickname}.
2518
This allows the values stored by fconfig to be used
2519
directly by scripts and commands.
2520
2521
Depending on how your terminal program is connected and its
2522
capabilities, you might find that you are unable to use line-editing to
2523
delete the ‘old’ value when using the default behaviour of
2524
fconfig nickname or just
2525
plain fconfig, as shown in this example:
2526
2527
RedBoot> fco bootp
2528
bootp: false_
2529
2530
The user deletes the word “false;&rdquo and enters “true”
2531
so the display looks like this:
2532
2533
RedBoot> fco bootp
2534
bootp: true
2535
Update RedBoot non-volatile configuration - continue (y/n)? y
2536
... Unlock from ...
2537
RedBoot> _
2538
2539
2540
To edit when you cannot backspace, use the optional flag
2541
-d (for “dumb terminal”)
2542
to provide a simpler interface thus:
2543
2544
RedBoot> fco -d bootp
2545
bootp: false ? _
2546
2547
and you enter the value in the obvious manner thus:
2548
2549
RedBoot> fco -d bootp
2550
bootp: false ? true
2551
Update RedBoot non-volatile configuration - continue (y/n)? y
2552
... Unlock from ...
2553
RedBoot> _
2554
2555
2556
One item which is always present in the configuration data is the ability
2557
to execute a script at boot time. A sequence of RedBoot commands can be entered
2558
which will be executed when the system starts up. Optionally, a time-out period
2559
can be provided which allows the user to abort the startup script and proceed
2560
with normal command processing from the console.     
2561
2562
RedBoot> fconfig -l
2563
Run script at boot: false
2564
Use BOOTP for network configuration: false
2565
Local IP address: 192.168.1.29
2566
Default server IP address: 192.168.1.101
2567
DNS server IP address: 192.168.1.1
2568
GDB connection port: 9000
2569
Network debug at boot time: false
2570
2571
The following example sets a boot script and then shows it running.
2572
    
2573
2574
2575
RedBoot> fconfig
2576
Run script at boot: false t
2577
      Boot script:
2578
Enter script, terminate with empty line
2579
>> fi li
2580
    Boot script timeout: 0 10
2581
Use BOOTP for network configuration: false .
2582
Update RedBoot non-volatile configuration - continue (y/n)? y
2583
... Erase from 0xa0fc0000-0xa0fe0000: .
2584
... Program from 0x8c021f60-0x8c022360 at 0xa0fc0000: .
2585
RedBoot>
2586
RedBoot(tm) debug environment - built 08:22:24, Aug 23 2000
2587
Copyright (C) 2000, Red Hat, Inc.
2588
 
2589
 
2590
RAM: 0x8c000000-0x8c800000
2591
flash: 0xa0000000 - 0xa1000000, 128 blocks of 0x00020000 bytes ea.
2592
Socket Communications, Inc: Low Power Ethernet CF Revision C \
2593
5V/3.3V 08/27/98 IP: 192.168.1.29, Default server: 192.168.1.101 \
2594
== Executing boot script in 10 seconds - enter ^C to abort
2595
RedBoot> fi li
2596
Name              flash addr   Mem addr    Length    Entry point
2597
RedBoot          0xA0000000   0xA0000000  0x020000  0x80000000
2598
RedBoot config   0xA0FC0000   0xA0FC0000  0x020000  0x00000000
2599
FIS directory    0xA0FE0000   0xA0FE0000  0x020000  0x00000000
2600
RedBoot>
2601
2602
2603
NOTE
2604
The bold characters above indicate where something was entered on the
2605
console. As you can see, the fi li command
2606
at the end came from the script,
2607
not the console. Once the script is executed, command processing reverts to
2608
the console. 
2609
2610
2611
NOTE
2612
2613
RedBoot supports the notion of a boot script timeout, i.e. a period of
2614
time that RedBoot waits before executing the boot time script.  This period
2615
is primarily to allow the possibility of canceling the script.  Since
2616
a timeout value of zero (0) seconds would never allow the script to
2617
be aborted or canceled, this value is not allowed.  If the timeout
2618
value is zero, then RedBoot will abort the script execution immediately.
2619
2620
2621
On many targets, RedBoot may be configured to run from ROM or it may be
2622
configured to run from RAM. Other configurations are also possible. All
2623
RedBoot configurations will execute the boot script, but in certain cases
2624
it may be desirable to limit the execution of certain script commands to
2625
one RedBoot configuration or the other. This can be accomplished by
2626
prepending {<startup type>} to the
2627
commands which should be executed only by the RedBoot configured for the
2628
specified startup type. The following boot script illustrates this concept
2629
by having the ROM based RedBoot load and run the RAM based RedBoot. The RAM
2630
based RedBoot will then list flash images.
2631
2632
RedBoot> fco
2633
Run script at boot: false t
2634
Boot script:
2635
Enter script, terminate with empty line
2636
>> {ROM}fis load RedBoot[RAM]
2637
>> {ROM}go
2638
>> {RAM}fis li
2639
>>
2640
Boot script timeout (1000ms resolution): 2
2641
Use BOOTP for network configuration: false
2642
 ...
2643
Update RedBoot non-volatile configuration - continue (y/n)? y
2644
... Unlock from 0x007c0000-0x007e0000: .
2645
... Erase from 0x007c0000-0x007e0000: .
2646
... Program from 0xa0015030-0xa0016030 at 0x007df000: .
2647
... Lock from 0x007c0000-0x007e0000: .
2648
RedBoot> reset
2649
... Resetting.
2650
+Ethernet eth0: MAC address 00:80:4d:46:01:05
2651
IP: 192.168.1.153, Default server: 192.168.1.10
2652
 
2653
RedBoot(tm) bootstrap and debug environment [ROM]
2654
Red Hat certified release, version R1.xx - built 17:37:36, Aug 14 2001
2655
 
2656
Platform: IQ80310 (XScale)
2657
Copyright (C) 2000, 2001, Red Hat, Inc.
2658
 
2659
RAM: 0xa0000000-0xa2000000, 0xa001b088-0xa1fdf000 available
2660
FLASH: 0x00000000 - 0x00800000, 64 blocks of 0x00020000 bytes each.
2661
== Executing boot script in 2.000 seconds - enter ^C to abort
2662
RedBoot> fis load RedBoot[RAM]
2663
RedBoot> go
2664
+Ethernet eth0: MAC address 00:80:4d:46:01:05
2665
IP: 192.168.1.153, Default server: 192.168.1.10
2666
 
2667
RedBoot(tm) bootstrap and debug environment [RAM]
2668
Red Hat certified release, version R1.xx - built 13:03:47, Aug 14 2001
2669
 
2670
Platform: IQ80310 (XScale)
2671
Copyright (C) 2000, 2001, Red Hat, Inc.
2672
 
2673
RAM: 0xa0000000-0xa2000000, 0xa0057fe8-0xa1fdf000 available
2674
FLASH: 0x00000000 - 0x00800000, 64 blocks of 0x00020000 bytes each.
2675
== Executing boot script in 2.000 seconds - enter ^C to abort
2676
RedBoot> fis li
2677
Name              FLASH addr  Mem addr    Length      Entry point
2678
RedBoot           0x00000000  0x00000000  0x00040000  0x00002000
2679
RedBoot config    0x007DF000  0x007DF000  0x00001000  0x00000000
2680
FIS directory     0x007E0000  0x007E0000  0x00020000  0x00000000
2681
RedBoot>
2682
2683
2684
2685
Executing Programs from RedBoot
2686
executing programs
2687
RedBootexecuting programsOnce
2688
an image has been loaded into memory, either via the load
2689
 command or the fis load
2690
command, execution may be transfered to that image.
2691
  NOTE
2692
The image is assumed to be a stand-alone entity, as RedBoot gives the
2693
entire platform over to it. Typical examples would be an eCos application
2694
or a Linux kernel.
2695
2696
 
2697
 
2698
2699
  
2700
    
2701
      go
2702
      Execute a program
2703
    
2704
    
2705
      
2706
        go
2707
        -w  timeout
2708
         start_address
2709
      
2710
    
2711
    
2712
      Arguments
2713
      
2714
        
2715
          
2716
          
2717
          
2718
          
2719
          
2720
            
2721
              Name
2722
              Type
2723
              Description
2724
              Default
2725
            
2726
          
2727
          
2728
            
2729
              -w timeout
2730
              Number
2731
              How long to wait before starting execution.
2732
              0
2733
            
2734
            
2735
              start_address
2736
              Number
2737
              Address in memory to begin execution.
2738
              Value set by last load or fis load command.
2739
            
2740
          
2741
        
2742
      
2743
    
2744
    
2745
      Description
2746
      
2747
The go command causes RedBoot to give control of the target platform to
2748
another program.  This program must execute stand alone, e.g. an eCos
2749
application or a Linux kernel.
2750
      
2751
      
2752
If the -w option is used, RedBoot will print a message and then
2753
wait for a period of time before starting the execution.  This is
2754
most useful in a script, giving the user a chance to abort executing
2755
a program and move on in the script.
2756
      
2757
    
2758
    
2759
      Examples
2760
      
2761
Execute a program - no explicit output from RedBoot.
2762
2763
RedBoot> go 0x40040
2764
2765
      
2766
      
2767
Execute a program with a timeout.
2768
2769
RedBoot> go -w 10
2770
About to start execution at 0x00000000 - abort with ^C within 10 seconds
2771
^C
2772
RedBoot>
2773
2774
Note that the starting address was implied (0x00000000 in this example).
2775
The user is prompted that execution will commence in 10 seconds.  At
2776
anytime within that 10 seconds the user may type  Ctrl+C
2777
on the console and RedBoot will abort execution and return for the next
2778
command, either from a script or the console.
2779
      
2780
    
2781
  
2782
 
2783
2784
  
2785
    
2786
      exec
2787
      Execute a Linux kernel
2788
    
2789
    
2790
      
2791
        exec
2792
        -w  timeout
2793
        -r  ramdisk_address
2794
        -s  ramdisk_length
2795
        -b  load_address
2796
           -l  load_length
2797
        
2798
        -c  kernel_command_line
2799
         entry_point
2800
      
2801
    
2802
    
2803
      Arguments
2804
      
2805
        
2806
          
2807
          
2808
          
2809
          
2810
          
2811
            
2812
              Name
2813
              Type
2814
              Description
2815
              Default
2816
            
2817
          
2818
          
2819
            
2820
              -w timeout
2821
              Number
2822
              Time to wait before starting execution.
2823
              0
2824
            
2825
            
2826
              -r ramdisk_address
2827
              Number
2828
              Address in memory of "initrd"-style ramdisk - passed to Linux kernel.
2829
              None
2830
            
2831
            
2832
              -s ramdisk_length
2833
              Number
2834
              Length of ramdisk image - passed to Linux kernel.
2835
              None
2836
            
2837
            
2838
              -b load_address
2839
              Number
2840
              Address in memory of the Linux kernel image.
2841
              Value set by load or fis load
2842
            
2843
            
2844
              -l load_length
2845
              Number
2846
              Length of Linux kernel image.
2847
              none
2848
            
2849
            
2850
              -c kernel_command_line
2851
              String
2852
              Command line to pass to the Linux kernel.
2853
              None
2854
            
2855
            
2856
              entry_address
2857
              Number
2858
              Starting address for Linux kernel execution
2859
              Implied by architecture
2860
            
2861
          
2862
        
2863
      
2864
    
2865
    
2866
      Description
2867
      
2868
The exec command is used to execute a non-eCos application, typically a
2869
Linux kernel. Additional information may be passed to the kernel at startup
2870
time. This command is quite special (and unique from the go command) in
2871
that the program being executed may expect certain environmental setups, for
2872
example that the MMU is turned off, etc. 
2873
The Linux kernel expects to have been loaded to a particular memory
2874
location which is architecture dependent(0xC0008000 in the case of the SA1110).
2875
Since this memory is  used
2876
by RedBoot internally, it is not possible to load the kernel to that location
2877
directly. Thus the requirement for the "-b" option which tells the command
2878
where the kernel has been loaded. When the exec command runs, the image will
2879
be relocated to the appropriate location before being started. The "-r" and
2880
"-s" options are used to pass information to the kernel about where a statically
2881
loaded ramdisk (initrd) is located.
2882
The "-c" option can be used to pass textual "command line" information
2883
to the kernel.  If the command line data contains any punctuation (spaces,
2884
etc), then it must be quoted using the double-quote character '"'. If the
2885
quote character is required, it should be written as '\"'.
2886
      
2887
    
2888
    
2889
      Examples
2890
      
2891
Execute a Linux kernel, passing a command line, which needs relocation.
2892
The result from RedBoot is normally quiet, with the target platform being
2893
passed over to Linux immediately.
2894
2895
RedBoot> exec -b 0x100000 -l 0x80000 -c "noinitrd root=/dev/mtdblock3 console=ttySA0"
2896
2897
      
2898
      
2899
Execute a Linux kernel, default entry address and no relocation required, with a timeout.
2900
The  emphasized lines are output from the loaded kernel.
2901
2902
RedBoot> exec -c "console=ttyS0,38400 ip=dhcp nfsroot=/export/elfs-sh" -w 5
2903
Now booting linux kernel:
2904
Base address 0x8c001000 Entry 0x8c210000
2905
Cmdline : console=ttyS0,38400 ip=dhcp nfsroot=/export/elfs-sh
2906
About to start execution at 0x8x210000 - abort with ^C within 5 seconds
2907
2908
Linux version 2.4.10-pre6 (...) (gcc version 3.1-stdsh-010931) #3 Thu Sep 27 11:04:23 BST 2001
2909
2910
2911
      
2912
    
2913
  
2914
 
2915
2916

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.