Note: this site is still under construction!
Right now, it's being updated almost every day, so come back from time to time to get more info. And feel free to email me if you think there's something that belongs on here.
If you like working on devices like this (or the PSION Netbook, or Compaq IPAQ, among others) and would love to see your code become part of a real product, get in touch with us ASAP! We're now growing very rapidly, so these opportunities won't be around long...
consoleprint=1 shell=/dis/sh.dis b F!kern1
use the e!0 or e!filename device
Note that only one ethernet card is supported, the TDKLan LAC-CD021L, due to the Shannon's PCMCIA port only supporting 3.3V cards. The driver for a variety of 3COM 3C589 cards is compiled into sboot, but the hardware will need to be modified to support 5V. It is also unknown as to whether this driver will actually work on the Shannon. It works on the Brutus, and the core sboot code is the same for both the Shannon and Brutus, so it ought to work when 5V is supplied, but this cannot be guaranteed.
use the h! or h!filename device
to list all accessible files on the flashcard, type the following at the sboot prompt:
c h!. -If your ATA flashcard does not seem to be detected, try the following:
netdebug=09000000 e h!Some messages should appear which show the identification string for your card. Take some substring of that, and then type the following:
pcmatastr=your id string hereNow when you access the h! device it should detect it and work.
The following PCMCIA ID substrings are used to detect an ATA flash card: (more could be added in the future)
SunDisk CF ATA ATA FLASH ATA_FLASH ATA DISK
The h! device does not know any particular filesystem or partition format. Instead, it uses SOLO-style mapfiles, generated by the 'mksolo' utility. These are layered on top of any other filesystem format, and serve to describe the files that are needed at boot-time. (not just the kernel, but also any support files needed-- config files, drivers, etc). It is possible to write to these files using the h! device, but they will remain fixed in size, since the native filesystem format is not known. (therefore, the c/z command might be useful, to zero out any unused portions)
Code for reading/writing files through the mapfiles, and the mksolo utility itself, will be added here soon. (incomplete)
NETDBG_ETH_RECVSHOW = 0x00000001, NETDBG_ETH_SENDSHOW = 0x00000002, NETDBG_ETH_RECVDUMP = 0x00000010, NETDBG_ETH_SENDDUMP = 0x00000020, NETDBG_ETH_INIT = 0x00000080, NETDBG_UDP_RECVSHOW = 0x00000100, NETDBG_UDP_SENDSHOW = 0x00000200, NETDBG_UDP_RECVDUMP = 0x00001000, NETDBG_UDP_SENDDUMP = 0x00002000, NETDBG_BOOTP_STATUS = 0x00010000, NETDBG_BOOTP_INFO = 0x00020000, NETDBG_TFTP_STATUS = 0x00100000, NETDBG_TFTP_INFO = 0x00200000, NETDBG_PCMCIA_INIT = 0x08000000, NETDBG_PCMCIA_STATUS= 0x01000000,You should logically or these values together and then set netdebug, for instance:
netdebug=00330000to turn on everything relating to bootp and tftp.
When in debug mode, the default monitor talks the Styx protocol, initially at 9600bps, although this can be changed up to 230.4Kbps by writing to the 'ctl' file that is exported.
either use ARM tools and copy from the D! device, use the ethernet, and copy from the e! device, use flashcards, and copy from the h! device, or use styxmon and copy to the flash0* partitions.
The BootParam Interface structure (BPI) passes information on from the monitor and boot loader to every program executed by them (kernels, test programs, sboot, etc). It also provides an interface that allows each program to call into some of the functionality of the monitor in a portable way. This includes the ability to read/write the debug console without knowing what it is.
This structure is defined here.
Make sure you know what you're doing before you attempt this. If anything changes the first 16K of the flash memory to anything other than a correct monitor image, then your Shannon phone will be transformed into a paperweight. (don't expect to ever get another one if this happens!)
Underneath the phone, if you remove the memory expansion, you should see a set of contacts that looks like the following:
o o o o o o o / | gnd +12V
Basically, you need to connect (temporarily) +12V to the middle pin in the bottom row, and ground to the left pin in the bottom row. Make sure you connect ground first, and then don't miss with the 12 volt wire!
To unprotect the flash, while 12V is connected, type "P/u 0" at the sboot prompt. If 12V is not detected, the command will wait up to 60 seconds.
To protect the flash, while 12V is connected, type "P/p partition" where "partition" is a name or number of a partition. Note that lockable sectors don't always line up perfectly with partition boundaries. Use the map command "P/m" to list the sector mappings and to show the protections. An 'f' means the sector is completely protected, a '0' means it's not, and some number in between means it is partially protected, and you'd better redo the last command.
Note: while 12V is supplied, all protections are temporarily disabled, so you can write anywhere to the flash, and the map command won't show the protections, even though it still keeps track of them internally.
The Shannon takes 72 pin EDO SODIMM memory modules. The stock device comes with 8MB soldered internally, and an 8MB expansion card. You can purchase 16MB and 32MB cards which will bring your total up to 24MB or 40M, respectively.
The following memory expansion cards from Crucial Technologies (www.crucial.com) have been ordered and tested and appear to work fine with the Shannon:
The Shannon should, theoretically, read any 3.3V PCMCIA ATA flash card, including compact flash with an adapter. However, there appear to be some problems with random corruption with some cards, most notably the 4MB Kodak Digital Science picture card (compact flash).
The following have been tested and appear to work:
Note that these docs are very out-of-date by now, so read them over, and use them loosely as a reference, but don't expect everything to work as stated.
Note that these sites refer to the product by its proper marketing name, of course, and not as a 'Shannon'.
people have visited here since September 17th, 1999.