149 lines · 3.8 KB · Text
RawDownload
raspberry pi broadcom 2835 SoC (based on 2708)arm1176jzf-s (v6 arch) 700MHz cpu, apparently dual-issue, with vfp2videocore 4 gpu l1 I & D VIPT caches	16K each: 4-way, 128 sets, 32-byte lines	l1 D is write-through, l1 I is write-backunified l2 PIPT cache 128K: 4-way?, 1024? sets, 32-byte lines, mostly for gpu(by default CPU doesn't see it) we arrange that device register accesses are uncached and unbuffered(strongly ordered, in armv6/v7 terminology). 256MB or 512MB of dram at physical address 0, shared with gpunon-16550 uart for console	uart serial voltages are TTL (3.3v, not rs232 which is nominally 12v);	could use usb serial (ick).there's no real ethernet controller, so we have to use usb ether,and the usb controller is nastier than usual. There's a serial port (115200b/s) on P1 connector pins (GND,TXD,RXD) =(6,8,10).  These are 3v TTL signals: use a level-shifter to convert toRS232, or a USB-to-TTL-serial adapter.  Add the line "console=0b115200" to the /cfg/pxe file on the server, or the parameter"console='0 b115200'" to cmdline.txt on the SD card. 9pi is a Plan 9 terminal, which can boot with local fossil root on thesd card (/dev/sdM0), or with root from a Plan 9 file server via tcp. 9picpu is a Plan 9 cpu server, which could be used in a headlessconfiguration without screen, keyboard or mouse. 9pifat is a minimal configuration which boots a shell script boot.rcwith root in /plan9 on the dos partition, maybe useful for embeddedapplications where a full Plan 9 system is not needed. Network booting with u-boot:start with a normal rpi u-boot sd (e.g. raspberry-pi-uboot-20120707).update the start.elf with a version from a newer rpi distro (see below).mk installalladd new system to ndbsee booting(8) Booting from sd card:- start with a normal rpi distro sd (e.g. 2012-08-16-wheezy-raspbian)  [NB: versions of start.elf earlier than this may not be compatible]- copy 9pi to sd's root directory- add or change "kernel=" line in config.txt to "kernel=9pi"- plan9.ini is built from the "kernel arguments" in cmdline.txt - each  var=value entry becomes one plan9.ini line, so entries with spaces will  need single quotes.  	physical mem map hex addr size	what----0	 256MB	sdram, cached (newer models have 512MB)00000000 64	exception vectors00000100 7936	boot ATAGs (inc. cmdline.txt)00002000 4K	Mach00003000 1K	L2 page table for exception vectors00003400 1K	videocore mailbox buffer00003800 2K	FIQ stack00004000 16K	L1 page table for kernel00008000 -	default kernel load address01000000 16K	u-boot env20000000 16M	peripherals20003000	system timer(s)20007000	dma2000B000	arm control: intr, timers 0 & 1, semas, doorbells, mboxes20100000	power, reset, watchdog20200000	gpio20201000	uart020202000	mmc20215040	uart1 (mini uart)20300000	eMMC20600000	smi20980000	otg usb 40000000	l2 cache only7e00b000	arm control7e2000c0	jtag7e201000?	pl011 usrt7e215000	aux: uart1, spi[12] 80000000 c0000000	bypass caches 	virtual mem map (from cpu address map & mmu mappings) hex addr size	what----0	 512MB	user process address space7e000000 16M	i/o registers80000000 <=224M	kzero, kernel ram (reserve some for GPU)ffff0000 4K	exception vectors Linux params at *R2 (default 0x100) are a sequence of ATAGs  struct atag {	u32int size;		/* size of ATAG in words, including header */	u32int tag;		/* ATAG_CORE is first, ATAG_NONE is last */	u32int data[size-2];  };00000000	ATAG_NONE54410001	ATAG_CORE54410002	ATAG_MEM54410009	ATAG_CMDLINE uart dmas	15, 14 intrs (96)irq10	timer01	timer12	timer23	timer38	isp9	usb16	dma017	dma1⋯28	dma1229	aux: uart130	arm31	vpu dma irq235	sdc36	dsio40	hdmi041	hdmi148	smi56	sdio57	uart1 aka "vc uart" irq064	timer65	mbox66	doorbell067	doorbell175	usb77	dma278	dma382	sdio83	uart0