firmware

package
v0.0.0-...-3a25cc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2023 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FlashAreaUnknown = FlashArea(iota)
	FlashAreaPublicAPI
)
View Source
const (
	FlashOK = FlashStatus(iota)
	FlashInvAddr
	FlashWrProt
	FlashNotBlank
	FlashVerify
	FlashErase
	FlashProg
	FlashInitEr
	FlashSignEr
	FlashInvalidCRC
	FlashInvalidKeyNumb
	FlashInvalidSign
	FlashInvalidAreaName
	FlashInvalidTarget
	FlashRdpErr
)
View Source
const BaseAddress = 0x8000000
View Source
const BlockHeaderAddrKey = 0xB2D5A864
View Source
const BlockHeaderSizeKey = 0xCE27A932
View Source
const FlashAreaPublicSignature = 0x19601217
View Source
const MarkerAlmaCode = "AlmaCode"
View Source
const MarkerPhyton = "Phyton\x00\x00"
View Source
const MarkerSize = 8
View Source
const SerialNumberSize = 16

Variables

This section is empty.

Functions

This section is empty.

Types

type ASBlockHeader

type ASBlockHeader struct {
	HeaderSize uint32
	Size       uint32
	Addr       uint32

	SizeAligned uint32
}

type ASFileHeader

type ASFileHeader struct {
	Marker       [MarkerSize]byte
	HeaderSize   uint32
	DateTime     DateTime
	BufferSize   uint32
	SerialNumber [SerialNumberSize]byte
	VersionLow   uint8
	VersionHigh  uint8

	// FileCount only available when IsAlmaCode() == true
	FileCount          uint32
	FirmwareHeaderSize uint32
	Compressed         uint8
	Reserved           uint8
	CRC32              uint32
	UpdateCRC32        uint32
}

func (ASFileHeader) IsAlmaCode

func (h ASFileHeader) IsAlmaCode() bool

type ASFirmwareHeader

type ASFirmwareHeader struct {
	Description [256]byte
	DateTime    DateTime
	DataSize    uint32
}

func (ASFirmwareHeader) DescriptionString

func (h ASFirmwareHeader) DescriptionString() string

type Block

type Block struct {
	Header ASBlockHeader
	Block  encryption.EncryptedBlock
}

type Blocks

type Blocks []Block

func BlocksFromData

func BlocksFromData(data []byte) (result Blocks)

type DateTime

type DateTime uint32

func (DateTime) String

func (dt DateTime) String() string

func (DateTime) Time

func (dt DateTime) Time() time.Time

type Entry

type Entry struct {
	Header ASFirmwareHeader
	Blocks Blocks
	// contains filtered or unexported fields
}

func (Entry) Code

func (entry Entry) Code() []byte

type Firmware

type Firmware struct {
	FileHeader ASFileHeader

	Entries []Entry

	Data []byte
}

func LoadFirmware

func LoadFirmware(buf []byte) (f *Firmware, err error)

func (Firmware) Length

func (fw Firmware) Length() int

type FlashArea

type FlashArea uint32

type FlashAreaData

type FlashAreaData struct {
	// PublicSignature Should always be FlashAreaPublicSignature
	PublicSignature uint32
	StructLen       uint32
	Data            []byte
}

func DecodeReadFlashArea

func DecodeReadFlashArea(data []byte) (*FlashAreaData, error)

DecodeReadFlashArea Decodes a result of RD_FLASH_AREA command

func (*FlashAreaData) PublicAPI

func (f *FlashAreaData) PublicAPI() *FlashAreaData_PublicAPI

type FlashAreaData_PublicAPI

type FlashAreaData_PublicAPI struct {
	BootSignature       uint32
	ProductSerialNumber [32]byte
	TargetFileName      [32]byte
	ProductName         [64]byte
	CalibrationBP0      uint32
	CalibrationBP290    uint32
	VendorID            uint16
	ProductID           uint16
	ManufacturerName    [32]byte
	TargetID            uint32
	TargetStartTimeout  uint32
}

type FlashStatus

type FlashStatus uint32

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL