From: Masahiro Yamada Date: Wed, 01 Oct 2014 20:23:08 +0900 Subject: [U-Boot] [Question] Driver-Model UART on NOR-boot ? Work? Message-ID: <20141001202307.90B5.AA925319@jp.panasonic.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon, I am looking at the driver-model serial code. I notice driver-model serial code uses ".data" section for storing the current device even before relocation. This code in drivers/serial/serial-uclass.c: /* The currently-selected console serial device */ struct udevice *cur_dev __attribute__ ((section(".data"))); In my understanding, we should not write any data to .data section before relocation. Let's say we are booting U-Boot from NOR flash. Before relocation, everything (including .data section) is placed on NOR flash which is read-only. (Please point out if I am wrong.) We are only allowed to write data to the stack, gd_t, bd_t and malloc area (if CONFIG_SYS_MALLOC_F_LEN is defined) before relocation, I think. I think that is why pre-driver-model serial uses a hard-coded default serial port before relocation. This code in driver/serial/serial.c: if (!(gd->flags & GD_FLG_RELOC)) dev = default_serial_console(); else if (!serial_current) dev = default_serial_console(); else dev = serial_current; My question is, does printf() work with driver-model UART and XIP device such NOR flash? Best Regards Masahiro Yamada